yopass

yopass

Docker app from hoody424's Repository

Overview

Yopass shares passwords, secrets and small files through links that expire and can be opened only once. Paste the secret, send the link, done: the recipient needs no account. Secrets are encrypted in the browser before they are uploaded, and the key stays in the link, so the server only ever stores ciphertext. This image adds a built-in Memcached, so secrets live in RAM only: nothing is written to disk, and a container restart deletes all open secrets. Yopass needs HTTPS: browsers only allow the encryption on https:// pages (or on localhost). Put it behind your reverse proxy (Nginx Proxy Manager, SWAG, Traefik, Zoraxy, ...). It works on its own domain or under a path such as https://example.com/yopass/. Over plain http://[IP]:1337 the page only shows a notice.

Yopass for Unraid

Yopass shares passwords, secrets and small files through links that expire and can be opened only once. The recipient needs no account, which makes it handy for sending a password to someone outside your organisation.

Secrets are encrypted in the browser before upload. The key is part of the link (after #, which browsers never send to the server), so the server only stores ciphertext.

Template: yopass.xml, image: ghcr.io/hoody424/yopass (amd64), built from image/.

What the image adds to the official one

  • Built-in Memcached: one container instead of two. Secrets live in RAM only: nothing is written to disk, and a restart or update deletes all open secrets. There is no appdata folder and nothing to back up.
  • Works under a path: the official web UI only works at the root of a domain. This image builds it with relative URLs, so https://example.com/yopass/ works as well as https://yopass.example.com/, and the links it generates keep the path.
  • HTTPS notice: without HTTPS the official UI stays blank. This one explains why.
  • Updates: the image is rebuilt every week with the newest Yopass release and Debian updates, and tagged latest plus the Yopass version (for example 15.0.0).

Setup

  1. Install the template. The defaults work as they are.
  2. Put Yopass behind your reverse proxy with HTTPS, pointing at http://<server>:1337. Browsers only allow the encryption on https:// pages (or on localhost), so http://<server-ip>:1337 (the WebUI button) only shows a notice.
    • Own domain: proxy https://yopass.example.com/ to port 1337.
    • Under a path: proxy https://example.com/yopass/ to port 1337 and strip the /yopass prefix. Redirect /yopass to /yopass/: the trailing slash is required.
  3. Open the https:// address, paste a secret, and send the link.

Sending secrets safely

  • Use two channels: send the link by mail and say on the phone what it is for. With Hide one-click link (advanced view) the result page offers only the short link and the key, to send separately.
  • Mail scanners: some mail filters open every link to check it. Yopass shows a "Reveal" button before it downloads the secret, so a scanner that only loads the page does not use up a one-time link. If the recipient still gets "secret does not exist", treat the password as exposed and change it.
  • One-time only: set it to true to stop anyone from creating secrets that can be opened more than once.

Public instances

If the server is reachable from the internet, anyone can create secrets, as on the upstream demo. The template limits size (10 KB text, 512 KB files), Memcached memory (64 MB) and lifetime (one week at most). Add rate limiting at your reverse proxy if you want more. Imprint URL and Privacy notice URL (advanced view) add footer links, which some countries require for public sites.

External Redis or Memcached

Advanced view: set Database to redis and a Redis URL, or set Memcached address to another host:port. The built-in Memcached then does not start. Note that Redis may write its data to disk.

Related apps

Details

Repository
ghcr.io/hoody424/yopass:latest
Last Updated2026-10-12
First Seen2026-10-12

Runtime arguments

Web UI
http://[IP]:[PORT:1337]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUI portPorttcp

Web UI and API, plain HTTP. Point your reverse proxy with HTTPS at this port.

Target
1337
Default
1337
Value
1337
Default expiryVariable

Expiry pre-selected in the form: 1 hour, 1 day or 1 week.

Target
DEFAULT_EXPIRY
Default
1h|1d|1w
Value
1h
One-time onlyVariable

true = every secret can be opened only once (users cannot untick One-time download).

Target
FORCE_ONETIME_SECRETS
Default
false|true
Value
false
Disable file uploadsVariable

true = text secrets only.

Target
DISABLE_UPLOAD
Default
false|true
Value
false
Hide one-click linkVariable

true = the result page offers only the short link and the key, to send through two different channels (for example mail and phone).

Target
DISABLE_ONE_CLICK_LINK
Default
false|true
Value
false
Imprint URLVariable

Optional link to your imprint / legal notice, shown in the footer.

Target
IMPRINT_URL
Privacy notice URLVariable

Optional link to your privacy notice, shown in the footer.

Target
PRIVACY_NOTICE_URL
Max file sizeVariable

Largest upload, for example 512KB or 1MB. 1MB is the maximum without a Yopass license.

Target
MAX_FILE_SIZE
Default
512KB
Value
512KB
Max secret sizeVariable

Largest encrypted text secret in bytes.

Target
MAX_LENGTH
Default
10000
Value
10000
Argon2Variable

true = derive keys with Argon2id (stronger against guessing custom passwords). If your reverse proxy sets its own Content-Security-Policy, it must allow 'wasm-unsafe-eval'.

Target
ARGON2
Default
false|true
Value
false
Hide features sectionVariable

true = hide the feature list below the form.

Target
DISABLE_FEATURES
Default
false|true
Value
false
Trusted proxiesVariable

Comma-separated IPs or CIDRs of your reverse proxy, so the logs show the real client address from X-Forwarded-For.

Target
TRUSTED_PROXIES
Memcached memory (MB)Variable

RAM for the built-in Memcached that holds the secrets. At least 16.

Target
MEMCACHED_MEMORY
Default
64
Value
64
DatabaseVariable

memcached = the built-in one (default) or an external one set below. redis = an external Redis, set the Redis URL.

Target
DATABASE
Default
memcached|redis
Value
memcached
Memcached addressVariable

127.0.0.1:11211 = the built-in Memcached. Any other host:port uses an external Memcached instead.

Target
MEMCACHED
Default
127.0.0.1:11211
Value
127.0.0.1:11211
Redis URLVariable

Only with Database = redis, for example redis://192.168.1.10:6379/0.

Target
REDIS
License keyVariable

Optional Yopass business license (OIDC login, branding, read receipts, larger files).

Target
LICENSE_KEY