Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
January 11, 2023 22:26
February 6, 2023 09:41
December 28, 2011 18:40
December 1, 2022 22:14

Password Pusher Front Page

Simple & Secure Password Sharing with Auto-Expiration of Shared Items

Github CI Dependencies Status Semantic Versions License

Password Pusher is an opensource application to communicate passwords over the web. Links to passwords expire after a certain number of views and/or time has passed.

Hosted at but you can also easily run your own private instance with just a few steps.

  • Easy-to-install: Host your own via Docker, a cloud service or just use
  • Opensource: No blackbox code. Only trusted, tested and reviewed opensource code.
  • Audit logging: Track and control what you've shared and see who has viewed it.
  • Encrypted storage: All sensitive data is stored encrypted and is deleted once expired.
  • Host your own: Database backed or ephemeral, easily run your own instance isolated from the world.
  • JSON API: Raw JSON API available for 3rd party tools or command line via curl or wget.
  • Command line interface: Automate your password distribution with CLI tools or custom scripts.
  • Internationalized: 17 language translations are bundled in. Easily selectable via UI or URL
  • Unbranded delivery page: No logos, superfluous text or unrelated links to confuse end users.
  • Customizable: Change text and default options via environment variables.
  • Light & dark themes: Via CSS @media integration, the site theme follows your local preferences
  • Rebrandable: Customize the site name, tagline and logo to fit your environment.
  • 10 Years Old: Password Pusher has securely delivered millions and millions of passwords in it's 10 year history.
  • Honest Software: Opensource written and maintained by me with the help of some great contributors. No organizations, corporations or evil agendas.

๐Ÿ’Œ --> Sign up for the newsletter to get updates on big releases, security issues, new features, integrations, tips and more.

Password Pusher is also on on Twitter, Gettr and on Facebook

โšก๏ธ Quickstart

โ†’ Go to and try it out.


โ†’ Run your own instance with one command: docker run -d -p "5100:5100" pglombardo/pwpush-ephemeral:release then go to http://localhost:5100


โ†’ Use one of the 3rd party tools that interface with Password Pusher.

๐Ÿ’พ Run Your Own Instance

Note: Password Pusher can be largely configured by environment variables so after you pick your deployment method below, make sure to read the configuration page. Take particular attention in setting your own custom encryption key which isn't required but provides the best security for your instance.

On Docker

Docker images of Password Pusher are available on Docker hub.

โžœ ephemeral Temporary database that is wiped on container restart.

docker run -d -p "5100:5100" pglombardo/pwpush-ephemeral:release

Learn more

โžœ using an External Postgres Database Postgres database backed instance.

docker run -d -p "5100:5100" pglombardo/pwpush-postgres:release

Learn more

โžœ using an External MariaDB (MySQL) Database Mariadb database backed instance.

docker run -d -p "5100:5100" pglombardo/pwpush-mysql:release

Learn more

Note: The latest Docker container tag builds nightly off of the latest code changes and can occasionally be unstable. Always use the 'release' or version'd tags if you prefer more stability in releases.

With Docker Compose

โžœ One-liner Password Pusher with a Postgres Database

curl -s -o docker-compose.yml && docker compose up -d

โžœ One-liner Password Pusher with a MariaDB (MySQL) Database

curl -s -o docker-compose.yml && docker compose up -d

On Kubernetes

Instructions and explanation of a Kubernetes setup can be found here.

On Microsoft Azure

There used to be a 3rd party blog post with instructions but it's been deleted. If anyone has instructions they would like to contribute, it would be greatly appreciated.

See issue #277

On Heroku

One click deploy to Heroku Cloud without having to set up servers.


This option will deploy a production Password Pusher instance backed by a postgres database to Heroku. Heroku used to offer free dynos but that is no longer the case from November 28, 2022. Hosting charges will be incurred.

From Source

Make sure you have git and Ruby installed and then:

git clone
cd PasswordPusher
gem install bundler
bundle config set with 'sqlite' # Or 'postgres' or 'mysql'
bundle install --without development production test --deployment
bundle exec rake assets:precompile
RAILS_ENV=private ./bin/rake db:setup
./bin/rails server --environment=private

Then view the site @ http://localhost:5100/.

๐Ÿ”จ 3rd Party Tools

Command Line Utilities

Libraries & APIs

  • oyale/PwPush-PHP: a PHP library wrapper to easily push passwords to any Password Pusher instance

Android Apps

Application Integrations

See also the Tools Page on

๐Ÿ“ก The Password Pusher API

๐Ÿ‡ฎ๐Ÿ‡น Internationalization

Password Pusher is currently available in 18 languages with more languages being added often as volunteers apply.

From within the application, the language is selectable from a language menu. Out of the box and before any language menu selection is done, the default language for the application is English.

Changing the Default Language

The default language can be changed by setting an environment variable with the appropriate language code:


For more details, a list of supported language codes and further explanation, see the bottom of this configuration file.

๐Ÿ›Ÿ Help Out is hosted on Digital Ocean and is happily paid out of pocket by myself for more than 10 years.

But you could help out greatly by signing up to Digital Ocean with this link (and get $200 credit). In return, Password Pusher gets a helpful hosting credit.

tldr; Sign up to Digital Ocean with this link, get a $200 credit for free and help Password Pusher out.

DigitalOcean Referral Badge

๐Ÿ“ผ Credits


Thanks to our great translators!

If you would like to volunteer and assist in translating, see this page.

Name Language
Oyale Catalan
Finn Skaaning Danish
Mihail Tchetchelnitski Finnish
Thibaut French
Thomas Wรถlk German Github, Twitter
Martin Otto German
Robin Jรธrgensen Norwegian
ลukasz Polish
Jair Henrique Portuguese
Fabrรญcio Rodrigues Portuguese
Ivan Freitas Portuguese
Sara Faria Portuguese
Oyale Spanish
johan323 Swedish
Fredrik Arvas Swedish

Also thanks to for their great service in managing translations. It's also generously free for opensource projects.


Thanks to:


Thanks to:

...and many more. See the Contributors page for more details.

๐Ÿ›ก License


This project is licensed under the terms of the GNU General Public License v3.0 license. See LICENSE for more details.

๐Ÿ“ƒ Citation

  author = {Peter Giacomo Lombardo},
  title = {An application to securely communicate passwords over the web. Passwords automatically expire after a certain number of views and/or time has passed.},
  year = {2022},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{}}