Postalgic is a self-hosted static CMS for creating and publishing blogs. Write from the web interface, generate static HTML, and publish to your own hosting (S3, SFTP, Git).
Build anywhere. Publish anywhere.
- Create, manage, and update blogs from the self-hosted web interface
- Generate static HTML/CSS websites automatically
- Templating system using Mustache
- Publish to a variety of static hosting services
- AWS S3 with CloudFront
- Any SFTP Server
- Any Git Repository
Run Postalgic on your own server with Docker:
curl -O https://raw.githubusercontent.com/amiantos/postalgic/main/docker-compose.yml
docker compose up -dAccess the app at http://localhost:8010
Postalgic protects the admin UI with a passkey. The first time you visit the app you'll be guided through a one-time setup wizard to register a passkey with your password manager (1Password, Apple Keychain, Bitwarden, etc.).
WebAuthn requires HTTPS — most browsers won't allow passkey ceremonies on
plain HTTP from a non-localhost address. If you're serving Postalgic over
plain HTTP from another machine, uncomment BASIC_AUTH_USERNAME /
BASIC_AUTH_PASSWORD in docker-compose.yml to fall back to HTTP basic auth.
Lost your passkey? With Postalgic stopped, delete the row from
auth_credentials in data/postalgic.db:
sqlite3 data/postalgic.db "DELETE FROM auth_credentials;"Restarting will return you to the setup wizard.
npm run install:all
npm run devThis installs dependencies for both the server and Vue client, then starts both in development mode with hot reloading.
Looking for the iOS app? It has moved to its own repository: postalgic-ios
The iOS app is also available on the App Store.
- https://dev.postalgic.app
- https://ihavebeenfloated.org
- https://staires.org
- https://jozef.postalgic.app
- https://bigbountycards.com
- Postalgic is created and maintained by Brad Root
- The app and backend code are licensed under the terms of the Mozilla Public License 2.0
- Postalgic name and branding is © 2026 Brad Root
