Before you start
You need Docker with Compose v2 and two HTTPS domains: one for Posted and one for its API. A reverse proxy routes those domains to the containers.1. Download the installation files
Create a directory and download the files from the latest GitHub release:2. Set your domains and secrets
Open.env and change these four values:
Run this command twice to generate a separate value for each secret:
.env private and back up POSTED_SECRET with your database; you will need the same secret when restoring an installation.
3. Start Posted
posted-postgres Docker volume.
4. Route your domains
Configure your reverse proxy on the Docker host:
Enable HTTPS for both domains. The worker and database stay on the private Docker network.
5. Create your team
Find the setup secret in the API startup log:Use an existing database
Use PostgreSQL 17 and setDATABASE_URL in .env to a connection URI reachable from the containers. localhost inside a container refers to that container, not the Docker host.
Start without the bundled PostgreSQL overlay:
Build from source
The Dockerfile installs its own Node.js and pnpm dependencies. You only need Docker on the build host. In a source checkout, prepare.env as described above, then build and start the containers:
-f docker-compose.postgres.yml from both commands if you use an existing database.