This is a not a recommended installation option.
- For Users: Docker Compose is recommended.
- For Developers: Developer Environment is recommended.
The instructions on this page are provided for more advanced or custom installations. Please only use these if the standard options don't fit your needs.
Installation Prerequisites
This section will ask you to install & configure several services exaplained below.
Network Requirements
HTTPS is required (or localhost)
Postiz marks it's login cookies as Secure, which means you must run it either on localhost, or behind HTTPS - this is called a "secure context" in modern web browsers.
If you are not running either HTTPS or on localhost, then you will not be able to login, as your browser will refuse to send the login cookie.
Postiz will not generate your HTTPS certificates for you, and it's servers cannot yet be configured to use a HTTPS certificate. This means you must use a reverse proxy to handle HTTPS. Documentation on popular reverse proxies can be found in the reverse proxies section, and if you've never used a reverse proxy with docker compose before, then caddy is recommended.
Network Ports
- 5000/tcp: for a single single entry point for postiz when running in a container. This is the one port your reverse proxy should talk to.
- 4200/tcp: for the Frontend service (the web interface). Most users do not need to expose this port publicly.
- 3000/tcp: for the Backend service (the API). Most users do not need to expose this port publicly.
- 5432/tcp: for the Postgres container. Most users do not need to expose this port publicly.
- 6379/tcp: for the Redis container. Most users do not need to expose this port publicly.
If you are using docker images, we recommend just exposing port 5000 to your external proxy. This will reduce the likelihood of misconfiguration, and make it easier to manage your network.
Set environment variables
Postiz configuration is entirely via environment variables for now. You might be used to setting environment variables when starting containers, however postiz needs a LOT of environment variables, so setting these on command line or in a docker-compose is probably not practical for long term maintainability.
It is recommended to use a .env
file, which the Postiz containers look for in /config. Docker will automatically create this file for you on a
docker volume the first time you start up Postiz.
The default .env file can be found here; example .env file (opens in a new tab)
Create the container
This example below shows how to create the Postiz container on the command line.
Note that you will need to replace the ./config
with the path to your config directory. You will also need Postgres and Redis running.
docker create --name postiz -v ./config:/config -p 4200:4200 -p 3000:3000 ghcr.io/gitroomhq/postiz-app:latest
Controlling container services
When the environment variable POSTIZ_APPS
is not set, or is set to an empty string, all
services will be started in a single container. This is normally fine for small, personal deployments.
However, you can only start specific services within the docker container by changing this environement variable.
If you need to scale, you can experiement with having multiple containers defined like;
- Frontend only:
POSTIZ_APPS="frontend"
- Backend only:
POSTIZ_APPS="backend"
- Worker and Cron only:
POSTIZ_APPS="worker cron"