Skip to main content
This is the fastest way to see PostQueen working. Everything runs on your own machine, nothing is exposed to the internet, and one command removes all of it when you are finished.
This is not a production install. It runs over plain HTTP with the placeholder signing key that ships in the file. It is perfect for looking around, and it is not something to put on a public address. When you are ready for that, follow Deploy to a server.
Before you start. You need Docker, and about 4 GB of free memory. Docker Desktop covers macOS and Windows, and on Linux you want Docker Engine with the Compose plugin.

Install and run

1

Install Docker

Download Docker Desktop for macOS or Windows and start it. On Linux, follow Docker Engine’s install page for your distribution.Check it is running:
Both commands should print a version number. If docker compose version fails but docker --version works, you have Docker without the Compose plugin, and the install page above has the extra step for it.
2

Get the Compose file

Do not skip the cd. Every command from here on runs inside that folder, because that is where docker-compose.yaml lives. Cloning also gives you the dynamicconfig folder, which Temporal reads on startup, so copying just the YAML out of this page would leave her without it.
3

Start her

docker compose up: the PostQueen stack starts and is ready on localhost 4007
The first run downloads several images and takes a few minutes. You will see a lot of output, ending with each container reported as Healthy or Started:
Eight containers start in total: PostQueen, her database and Redis, and the four that make up Temporal plus its dashboard.The -d means she keeps running in the background after you close the terminal.
4

Wait for her to be ready

She needs a minute or two on first boot to set up her database. Watch for it:
You are waiting for a line like:
Press Ctrl+C to stop following the logs. That does not stop her, it only stops printing.You can also just ask whether everything is healthy:
Every container reads Up, and the log line above has appeared. She is running.
5

Open her

Go to http://localhost:4007 in your browser.Create the first account. It becomes the owner of this install, so use an address you will remember. There is no email server configured here, so no confirmation mail is sent and the account is active straight away.
You are in. The calendar loads, empty, with no channels in the sidebar. That is a healthy fresh install, not a broken one.
To watch the scheduler do its work, the Temporal dashboard is at http://localhost:8080. It is optional and you can happily ignore it.

Common first-run problems

Give her another minute. On a first boot she creates the database schema before the web interface answers. docker compose logs -f postqueen tells you where she is. If the log keeps repeating and restarting, jump to Troubleshooting.
Something else on your machine is using 4007, 8080 or 7233. Either stop that program, or change the left-hand number in the ports: line of the service in docker-compose.yaml. For example "4017:5000" would put her on http://localhost:4017 instead.
That is almost always memory. The full stack, including Temporal and its Elasticsearch, wants roughly 4 GB. In Docker Desktop, raise the memory limit under Settings → Resources.
Some networks fetch your media from a public URL rather than accepting the file from her. On a laptop install there is no public URL, so those posts will fail. This is expected here and it goes away on a real domain. Uploads and Storage explains which networks behave this way.

Stopping, starting and removing

Your posts, accounts and uploads live in Docker volumes, so down followed by up -d picks up exactly where you left off. When you are finished experimenting:
The -v deletes the volumes, which means the database and every uploaded file. There is no undo. Leave -v off if you might want your test data back.

Next steps

You have a working PostQueen, connected to nothing.

Put her on a server

Your own domain, HTTPS, and an install other people can use

Connect a channel

Bring your own app keys and try a real post

Write your first post

The editor, per-channel settings, and what happens when you schedule

Self-host troubleshooting

The failures that come up most often, and what fixes them