Pastebin with API, client-side encryption, user accounts, syntax highlighting, markdown rendering, and more.
License: BSD-3-Clause. Built with: HTML, Go, JavaScript, Dockerfile, Shell. Source: https://github.com/rhee876527/chiyogami.
docker run -d \ -v "$(pwd)/pastes:/pastes" \ -p 127.0.0.1:8000:8000 \ --restart unless-stopped \ ghcr.io/rhee876527/chiyogami:latest ``` ### Environment variables | Env | Default value | Note | |----------|-----|--------------| | SECRET_KEY | None | Session key. Keep secure and unique. Recommended example: openssl rand -base64 32. | | PASTE_DEFAULT_EXPIRATION | 24h | Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h” or `"Never"` | | MAX_CHAR_CONTENT | 50000 | Maximum characters allowed in content body. Larger limits may offer reduced performance | | DISABLE_RATE_LIMIT | None | Use `1` to disable rate limit | | CREATE_PER_MIN | 10 | No of paste creation, register, login, delete account & delete paste requests allowed per minute | | DATABASE_PATH | None | For local development use. Conflicts with docker volume paths. | | DELETE_RETENTION | 90 | Number of days to keep soft-deleted pastes. Valid values: `1-99` | | COMPLEX_PASSWORD | None | Use `1` to activate. Requires complex password on user registration. Valid password: `Minimum 8 characters, including at least 1 lowercase, 1 uppercase, 1 number and 1 symbol.` | | ADMIN_CONTACT | None | Accepts email values. May be useful for moderation purposes. | #### Note about exposing /health to public Since v1.4.3 this `healthcheck` endpoint was created to actively monitor state of application's database. It has potential for abuse WHEN exposed publicly. Caution is hereby given to protect endpoint (http://localhost:8000/health) from external access as necessary. If using `Traefik` as reverse proxy this can be done in the `docker-compose` file by adding the following middleware: ``` ... services: chiyogami: labels: - "traefik.http.routers.chiyogami.middlewares=localonly-health" - "traefik.http.middlewares.localonly-health.replacepathregex.regex=^/health
quot; - "traefik.http.middlewares.localonly-health.replacepathregex.replacement=/nonexistent-path" ...Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.
Most self-hosted apps run comfortably on modest hardware — a Raspberry Pi 4, a mini PC, a NAS with Docker support, or a small VPS is usually enough for personal or family use. CPU and RAM requirements scale with how many simultaneous users or how much data you push through Chiyogami. Storage requirements depend on the kind of data you keep; check the README for guidance on data retention.
Last verified: 2026-04-28