<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://docs.pwpush.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://docs.pwpush.com/" rel="alternate" type="text/html" /><updated>2026-04-23T06:06:54-04:00</updated><id>https://docs.pwpush.com/feed.xml</id><title type="html">Password Pusher Documentation</title><subtitle>Documentation portal for Password Pusher - securely share sensitive information.</subtitle><author><name>Peter Giacomo Lombardo</name></author><entry><title type="html">Self-Hosted Pricing Philosophy</title><link href="https://docs.pwpush.com/posts/self-hosted-pricing-philosophy/" rel="alternate" type="text/html" title="Self-Hosted Pricing Philosophy" /><published>2026-02-24T00:00:00-05:00</published><updated>2026-02-24T00:00:00-05:00</updated><id>https://docs.pwpush.com/posts/Pricing-Philosopy</id><content type="html" xml:base="https://docs.pwpush.com/posts/self-hosted-pricing-philosophy/"><![CDATA[<p>Security tools like Password Pusher ought to be available to your entire organization—always. They educate your team, build better security habits, and protect sensitive data. When security is the default, the whole organization benefits.</p>

<p>We know you have choices. There are alternatives and competitors.</p>

<p>Our main criticism of many of them isn’t features—it’s price. Some charge up to $30/user/month. Others charge per push and charge for API access.  How can security become the default when adoption is that complicated and expensive? That kind of pricing shuts out smaller teams and orgs that need it most.</p>

<p>Apnotic is a small, dedicated team. We have open source roots, no venture funding, no debt, and we’re profitable. No outside investors or pressures—just a long history of building Password Pusher (since 2011) and a focus on making a sincere, honest, and secure product.</p>

<p>We believe these tools should be priced so that entire organizations can have access—not just the few who use them every day.  That’s the position we’re coming from.</p>

<p><img src="/assets/images/posts/2026/self-hosted-pwpush-pro.png" alt="" class="align-center" /></p>

<h2 id="self-hosted-pricing">Self-Hosted Pricing</h2>

<p>We priced Self-Hosted with one goal: let you roll the tool out to your entire organization without per-user sticker shock with all the features you need out of the box.</p>

<p>We don’t charge for every user. Each plan includes a base number of seats: <strong>Starter</strong> (5), <strong>Advanced</strong> (25), and <strong>Enterprise</strong> (50). Need more than the base? We charge for extra seats—but not at competitor rates. Additional seats start at $1/user/month and go down on larger plans.</p>

<p>What’s more, we never limit pushes or requests, and API access is always included.</p>

<p>With Self-Hosted Password Pusher Pro, your data is yours. We even declare this in the <a href="https://pwp.apnotic.com/documents/eula-self-hosted-pro.pdf">EULA</a>:</p>

<blockquote>
  <p><strong>To be absolutely clear</strong>: Apnotic has no ability to access Your Data, and we never will. Your sensitive information, passwords, user content, and all other data stored within your self-hosted deployment remain completely private and inaccessible to Apnotic. We cannot see it, we do not want to see it, and we have designed the Software specifically to ensure that your data stays within your control at all times.</p>
</blockquote>

<p>We hope you see the same value we do in this approach. As always, we’ll keep listening to the community and evolving. Password Pusher is what it is today because of the feedback, suggestions, and ideas you’ve shared over the years.</p>

<p>See Self-Hosted pricing at the links below. Where you purchase determines your customer data residency:</p>

<ul>
  <li><a href="https://us.pwpush.com/self-hosted-pricing">US — us.pwpush.com</a></li>
  <li><a href="https://eu.pwpush.com/self-hosted-pricing">EU — eu.pwpush.com</a> (GDPR compliant)</li>
</ul>

<div class="notice notice--info">
  <p><strong>Questions or feedback?</strong> Email me directly anytime: <a href="mailto:pglombardo@apnotic.com">pglombardo@apnotic.com</a>.</p>

  <p><strong>Need support?</strong> <a href="mailto:support@pwpush.com">support@pwpush.com</a></p>
</div>

<hr />

<p><strong>Peter Giacomo Lombardo</strong></p>

<p><em>Founder &amp; Principal, <a href="https://apnotic.com">Apnotic</a> · Creators of <a href="https://pwpush.com">Password Pusher</a></em></p>]]></content><author><name>Peter Giacomo Lombardo</name></author><category term="New" /><category term="General" /><summary type="html"><![CDATA[How we price Self-Hosted Password Pusher and why.]]></summary></entry><entry><title type="html">A Tale of One IP and Password Pusher’s Balancing Act</title><link href="https://docs.pwpush.com/posts/a-tale-of-one-ip-and-balancing-act/" rel="alternate" type="text/html" title="A Tale of One IP and Password Pusher’s Balancing Act" /><published>2025-09-07T00:00:00-04:00</published><updated>2025-09-07T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/Tale-of-One-IP</id><content type="html" xml:base="https://docs.pwpush.com/posts/a-tale-of-one-ip-and-balancing-act/"><![CDATA[<p><img src="/assets/images/posts/2025/tale-of-one-ip-2.jpg" alt="" class="align-center" /></p>

<h1 id="a-single-german-ip">A Single German IP</h1>

<p>For over a year, <em>a single IP from Germany has been generating 8,000–10,000 anonymous pushes daily</em> on <a href="https://pwpush.com">pwpush.com</a>, far exceeding the activity of any other single IP. Initially, I wondered if this was spam or abuse, but it could also have been a legitimate automated use case—who’s to say? With no complaints or harm reported, I let it slide.</p>

<p>Then, a few weeks ago, <strong>this IP ramped up to 90,000–100,000 pushes per day</strong>, dwarfing all other activity.</p>

<p>More recently, it spiked to a staggering <strong>~200,000 pushes daily</strong>, pushing our system to its limits. This surge began to impact the experience for other users, so I had to take action.</p>

<p>Here’s the story, along with some context about how Password Pusher handles push expiration and what we’ve done to keep the service running smoothly.</p>

<h1 id="how-push-expiration-works">How Push Expiration Works</h1>

<p>In Password Pusher, pushes (and their associated requests) are designed to expire automatically based on either a view limit or a duration limit. Once a limit is reached, the secret URL self-destructs, ensuring sensitive data doesn’t linger.</p>

<ul>
  <li><strong>View-Based Expiration</strong>: This is straightforward. When a push reaches its final allowed view, the application displays the payload and immediately deletes the push.</li>
  <li><strong>Duration-Based Expiration</strong>: This requires periodic scans. Background jobs run at intervals to identify pushes that have exceeded their duration and trigger their deletion.</li>
</ul>

<p>To ensure no expired pushes slip through, we re-verify expiration limits whenever a viewer requests a push. If the limits are exceeded, the push is deleted on the spot, and the viewer sees an expiration message. This approach guarantees that expiration rules are always enforced, even if a background job hasn’t yet processed a push.</p>

<h1 id="the-impact-of-the-anonymous-ip">The Impact of the Anonymous IP</h1>

<p>As the IP’s activity surged to ~200,000 pushes per day, our background expiration jobs took longer to complete. This increased system load and began affecting other users’ experience. While I’d like to believe there was a valid use case behind this activity, the strain it placed on Password Pusher’s infrastructure was undeniable.</p>

<p>Of course I can scale out more workers and increase resources but this all has a financial cost.  For the single anonymous source with unknown motives, this wasn’t an option.</p>

<p>So to address this, I made the tough decision to block the IP—a step I’ve rarely taken. I also optimized the performance of the background expiration job and tightened API throttling to better manage high-volume usage. These changes have helped stabilize the system and ensure a smoother experience for all users.</p>

<h1 id="looking-ahead">Looking Ahead</h1>

<p>Password Pusher is an open-source project at its core, built by the team at <a href="https://apnotic.com">Apnotic</a> to serve the community.</p>

<p>We’re committed to providing anonymous access and supporting diverse use cases, but we also have to prioritize the availability and performance of the service for everyone.</p>

<h1 id="a-message-to-the-owner-of-that-ip">A Message to the Owner of that IP</h1>

<p>If you’re the user behind this IP and have a legitimate use case, <a href="https://docs.pwpush.com/docs/support/">please reach out</a>! I’d be happy to discuss how we can support your needs without compromising the experience for others.</p>

<p>You can contact me directly, and we’ll work to find a solution.</p>

<p>Alternatively, if your use case involves high-volume pushes, you might consider self-hosting your own instance of Password Pusher to better suit your needs. Here’s how you can get started:</p>

<h2 id="run-your-own-ephemeral-instance">Run Your Own Ephemeral Instance</h2>

<p>Set up a DNS record to point to your server (e.g., pwpush.example.com).</p>

<p>Run the following command:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>docker run -d -p "80:80" -p "443:443" --env TLS_DOMAIN=pwpush.example.com pglombardo/pwpush:latest
</code></pre></div></div>

<p>Browse to <code class="language-plaintext highlighter-rouge">https://pwpush.example.com</code>.</p>

<h2 id="or-alternatively">Or Alternatively</h2>

<p>Use one of our <a href="https://docs.pwpush.com/docs/installation/#docker-compose">production-ready Docker Compose files</a> with persistent databases for a more robust setup.</p>

<hr />

<p>Thank you to our amazing community for your continued support. Password Pusher thrives because of you.</p>]]></content><author><name>Peter Giacomo Lombardo</name></author><category term="Community Updates" /><category term="community" /><summary type="html"><![CDATA[For over a year, a single IP from Germany consistently generated 8,000–10,000 anonymous pushes daily on Password Pusher, far surpassing typical activity. Recently, this surged to 100,000 pushes per day, and now it’s reached an astonishing 200,000 daily pushes.]]></summary></entry><entry><title type="html">Introducing the Feature Pipeline</title><link href="https://docs.pwpush.com/posts/feature-pipeline/" rel="alternate" type="text/html" title="Introducing the Feature Pipeline" /><published>2024-08-15T00:00:00-04:00</published><updated>2024-08-15T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/Feature-Pipeline</id><content type="html" xml:base="https://docs.pwpush.com/posts/feature-pipeline/"><![CDATA[<p><img src="/assets/images/posts/2025/pwpush-new-feature-pipeline.jpeg" alt="" class="align-center" /></p>

<h1 id="background">Background</h1>

<p>Up to this point, I’ve been happily working on Password Pusher since it’s inception in 2011 in my free time and it’s been greatly rewarding.</p>

<p>But over the last few years, popularity has grown to such a point that, because of the large backlog of work to do, <strong>feature
requests have had to wait sometimes a year or more</strong> before I can even get the point of implementing them.</p>

<p>Some of these requests are:</p>

<ul>
  <li>Extended Branding: More logos &amp; custom text on more pages</li>
  <li>SSO &amp; LDAP</li>
  <li>More Password Generator Options</li>
  <li>Bulk push operations</li>
  <li>Automatic Emailing of Pushes</li>
  <li>Large (&gt;4GB) file uploads</li>
  <li>and a lot more…</li>
</ul>

<p>These would be great additions to the project but have been delayed over and over again just because of the sheer number of requests and limited time.</p>

<h1 id="which-direction-forward">Which Direction Forward?</h1>

<p>So what to do?</p>

<p>My options are that I can either:</p>

<ul>
  <li><strong>Option 1</strong>: maintain the current pace with recreational coding in my free time, adding a few big features each year</li>
</ul>

<p>or</p>

<ul>
  <li><strong>Option 2</strong>: find a way to to accelerate this project, make it self-sufficient and start to add the features users are asking for now</li>
</ul>

<p>…we are going with the second option.</p>

<h1 id="feature-pipeline">Feature Pipeline</h1>

<p>The feature pipeline is <strong>a set of premium and pro features over and beyond the open-source code base that is available through subscriptions</strong>.</p>

<p>As development progresses, <strong>many of these premium features will periodically be moved to the open-source code base</strong>.</p>

<p>Organizations that subscribe get immediate access to these premium features and support open-source development.</p>

<p>Going forward, some newly developed features may be premium at first only, others will go straight to open-source.</p>

<p>This model creates a “pipeline of features” that progress from premium to open-source.  It will allow me to work far more on the project and really accelerate development.</p>

<h2 id="self-hosted-whats-changed">Self-Hosted: What’s Changed?</h2>

<p>Absolutely nothing has changed but do <strong>expect more features faster</strong> in the open-source version coming soon.</p>

<p class="notice notice--info"><strong>Note</strong>: A self-hosted version of the Premium/Pro features (Self-Hosted Pro) is now available. See <a href="/docs/pro-self-hosted/">Pro Self-Hosted</a> and <a href="https://us.pwpush.com/self-hosted-pricing">Self-Hosted Pricing</a>.</p>

<h2 id="pwpushcom-whats-changed">pwpush.com: What’s Changed?</h2>

<p><strong>You get a ton of new features immediately (without a subscription).</strong></p>

<p>And for those who want to subscribe, there are even more features aimed at professionals and teams.  Read about them <a href="/posts/pipeline-new-features/">here</a>.</p>

<p>But there is one feature that is now subscription limited that wasn’t previously: <em>file uploads</em>.   Read on for more.</p>

<h3 id="pwpushcom-file-uploads">pwpush.com: File Uploads</h3>

<p>For a long time, on pwpush.com, anyone could upload files and attach them to pushes.  Essentially anonymous file uploads.</p>

<p>It started out well but lately there has been some hints of abuse and after thinking it through, I’ve realized that anonymous file uploads pose a real risk to myself and to the project.</p>

<p>I really tried to keep these free but unfortunately, the risk is too great and hence are now only available to subscribers.</p>

<p><strong>This only affects users of pwpush.com</strong>.  Those self-hosting the application are unaffected.</p>

<p class="notice notice--info"><strong>Note</strong>: To utilize file uploads, you can either <a href="https://pwpush.com/pricing">subscribe</a> or self-host Password Pusher which doesn’t have any limitations on file uploads.</p>

<p>My apologies on this one. I really tried to keep file uploads free but unfortunately it’s just not possible.</p>

<h1 id="editions">Editions</h1>

<p>There are now three editions of Password Pusher:</p>

<ul>
  <li><strong>OSS</strong>: The open source version as always available in the <a href="https://github.com/pglombardo/PasswordPusher">Github repository</a></li>
  <li><strong>Premium</strong>: A Premium edition on pwpush.com with file uploads, a personal policy &amp; extensive branding</li>
  <li><strong>Pro</strong>: A Pro edition for teams collaboration, custom domains &amp; team policy enforcement</li>
</ul>

<p>Where are these editions available?  Here’s a table to illustrate:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: left">Edition</th>
      <th style="text-align: center">pwpush.com?</th>
      <th style="text-align: center">Can Self-Host?</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: left"><strong>OSS</strong></td>
      <td style="text-align: center">✅️️️</td>
      <td style="text-align: center">✅</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Premium</strong></td>
      <td style="text-align: center">✅️</td>
      <td style="text-align: center">✖️</td>
    </tr>
    <tr>
      <td style="text-align: left"><strong>Pro</strong></td>
      <td style="text-align: center">✅️</td>
      <td style="text-align: center">✅</td>
    </tr>
  </tbody>
</table>

<p>See the subscription pricing <a href="https://pwpush.com/pricing">here</a>.</p>

<p class="notice notice--info"><strong>Note</strong>: The Pro self-hosted option (Self-Hosted Pro) is now available. See <a href="/docs/pro-self-hosted/">Pro Self-Hosted</a> and <a href="https://us.pwpush.com/self-hosted-pricing">Self-Hosted Pricing</a>.</p>

<h2 id="how-to-subscribe">How to Subscribe</h2>

<p>Thank you for even considering to support the project.  Pricing for the new subscriptions is <a href="https://pwpush.com/pricing">here</a>.</p>

<h1 id="summary">Summary</h1>

<p>My hope is that the introduction of subscriptions and this new feature pipeline will allow me to build out Password Pusher to better secure you and your organizations and to to hopefully make your professional lives a little bit easier.</p>

<p>And ultimately, to have the open-source version as the eventual &amp; final benefactor of new features.</p>

<h1 id="wrap-up">Wrap Up</h1>

<p>Thanks to the Password Pusher community for the trust, support &amp; feedback over the years.</p>

<p>As always, if you have any questions, problems or feedback, feel free to contact me anytime: <code class="language-plaintext highlighter-rouge">pglombardo</code> at the <code class="language-plaintext highlighter-rouge">pwpush.com</code> domain or see the <a href="/docs/support/">Support page</a> for other methods.</p>

<h1 id="see-also">See Also</h1>

<ul>
  <li><a href="/posts/pipeline-new-features/">Pipeline New Features</a></li>
  <li><a href="https://pwpush.com/pricing">Subscription Pricing</a></li>
</ul>]]></content><author><name>Peter Giacomo Lombardo</name></author><category term="New" /><category term="General" /><summary type="html"><![CDATA[...a set of premium and pro features over and beyond the open-source code base that are periodically migrated to OSS.]]></summary></entry><entry><title type="html">Pipeline: New Features</title><link href="https://docs.pwpush.com/posts/pipeline-new-features/" rel="alternate" type="text/html" title="Pipeline: New Features" /><published>2024-08-04T00:00:00-04:00</published><updated>2024-08-04T00:00:00-04:00</updated><id>https://docs.pwpush.com/posts/Pipeline-New-Features</id><content type="html" xml:base="https://docs.pwpush.com/posts/pipeline-new-features/"><![CDATA[<p><img src="/assets/images/posts/2025/pipeline-new-features.jpeg" alt="" class="align-center" /></p>

<p>This page explains and illustrates the new features introduced along with subscriptions and the new Feature Pipeline.</p>

<p class="notice notice--info"><strong>Note</strong>: These features are not yet available in the OSS edition.  Read about the <a href="/posts/feature-pipeline/">Feature Pipeline</a> for more info.</p>

<h1 id="for-all-users">For All Users</h1>

<h2 id="two-factor-authentication">Two Factor Authentication</h2>

<p>User accounts now include the option of enabling two-factor authentication.  Make sure to download your backup codes.</p>

<p><img src="/assets/images/screenshots/pwpush-2fa.png" alt="" class="shadow" /></p>

<h2 id="google--microsoft-single-sign-on">Google &amp; Microsoft Single Sign-On</h2>

<p>Login with your Google and/or Microsoft account</p>

<p><img src="/assets/images/screenshots/pwpush-sso-login.png" alt="" class="shadow" /></p>

<h2 id="personal-policies">Personal Policies</h2>

<p>Set Push defaults, preferences, limits and even hide options entirely.</p>

<p><img src="/assets/images/screenshots/pwpush-personal-policy.png" alt="" class="shadow" /></p>

<h2 id="multiple-api-tokens">Multiple API Tokens</h2>

<p>Create a Unique token for each tool that you connect with.</p>

<p><img src="/assets/images/screenshots/pwpush-api-tokens-1.png" alt="" class="shadow" /></p>

<p>You can even revoke tokens now.</p>

<p><img src="/assets/images/screenshots/pwpush-api-tokens-2.png" alt="" class="shadow" /></p>

<h2 id="multiple-accounts">Multiple Accounts</h2>

<p>One for you, one for your day-time job and others for whatever your needs are.</p>

<p>Easy switch between accounts without having to change your log in.</p>

<p><img src="/assets/images/screenshots/pwpush-multiple-accounts.png" alt="" class="shadow" /></p>

<h2 id="set-your-timezone-preferred-language-and-more">Set your timezone, preferred language and more.</h2>

<p>Finally - show dates/times in your local timezone.</p>

<p><img src="/assets/images/screenshots/pwpush-edit-profile.png" alt="" class="shadow" /></p>

<h1 id="premium">Premium</h1>

<p>Premium &amp; Pro subscribers get personalized branding and can attach files to pushes.</p>

<h2 id="file-uploads">File Uploads</h2>

<p>Add files to text pushes:</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-file-uploads.png" alt="" /></p>

<p>Or push only files:</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-file-pushes.png" alt="" /></p>

<p>Users receive branded pushes with files:</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-file-push-delivery.png" alt="" /></p>

<h2 id="logo-branding">Logo Branding</h2>

<p>Add a logo to your pushes.</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-brand-logo.png" alt="" class="shadow" /></p>

<h2 id="1-click-retrieval-step-branding">1-Click Retrieval Step Branding</h2>

<p>The 1-click retrieval step page can be customized to <strong>increase end-user confidence</strong> with a logo or custom text.  You can even <strong>change the text of the “Click Here to Proceed” link</strong> if you wish.</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-1-click.png" alt="" class="shadow" /></p>

<h2 id="passphrase-page-branding">Passphrase Page Branding</h2>

<p>The passphrase page can be branded with custom text, links and a logo.</p>

<p><img src="/assets/images/screenshots/premium-pro/pro-push-passphrase.png" alt="" class="shadow" /></p>

<h2 id="delivery-page-branding">Delivery Page Branding</h2>

<p>Customize the push delivery page according to your organization’s needs.</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-delivery-page.png" alt="" class="shadow" /></p>

<h2 id="expired-page-branding">Expired Page Branding</h2>

<p><img src="/assets/images/screenshots/premium-pro/pro-push-expired.png" alt="" class="shadow" /></p>

<h1 id="pro">Pro</h1>

<p>Pro subscribers get everything above plus…</p>

<h2 id="custom-domain">Custom Domain</h2>

<p>Use your own custom domain on Pushes.</p>

<p><img src="/assets/images/screenshots/premium-pro/pro-custom-domain-url.png" alt="" class="shadow" /></p>

<p><img src="/assets/images/screenshots/premium-pro/pro-custom-domain-edit.png" alt="" class="shadow" /></p>

<h2 id="invite-the-team">Invite the Team</h2>

<p>Invite colleagues to collaborate and manage pushes</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-teams.png" alt="" class="shadow" /></p>

<h2 id="team-roles">Team Roles</h2>

<p>Decide who is admin and who is a member.  Authorize others to set policy and to add/delete users.</p>

<p><img src="/assets/images/screenshots/premium-pro/pro-user-roles.png" alt="" class="shadow" /></p>

<h2 id="team-collaboration">Team Collaboration</h2>

<p>View and manage all pushes created by your team</p>

<p><img src="/assets/images/screenshots/premium-pro/pwpush-shared-dashboard.gif" alt="" class="shadow" /></p>

<h2 id="team-policies">Team Policies</h2>

<p>Enforce security policies on your team; hide or force options, set defaults</p>

<p><img src="/assets/images/screenshots/premium-pro/premium-full-policy.png" alt="" class="shadow" /></p>

<h1 id="summary">Summary</h1>

<p>I hope you find the new features useful.  As always, if you have any issues, questions or feedback, feel free to <a href="/docs/support/">contact me anytime</a>!</p>

<p class="notice--info">🤔 Still need something for you or your organization that you don’t see here?  <a href="/docs/support/">Let me know</a>!</p>

<h1 id="see-also">See Also</h1>

<ul>
  <li><a href="https://pwpush.com/pricing">Subscription Pricing</a></li>
  <li><a href="https://pwpush.com/features">Features Matrix</a></li>
  <li><a href="/posts/feature-pipeline/">Introducing the Feature Pipeline</a> - Announcement Post</li>
</ul>]]></content><author><name>Peter Giacomo Lombardo</name></author><category term="New" /><category term="General" /><summary type="html"><![CDATA[The new features introduced with the Premium & Pro versions.]]></summary></entry></feed>