Skip to main content
This guide uses the pre-built Docker image published to GitHub Container Registry (GHCR). You don’t build anything from source — Docker pulls the ready-to-run image directly. Updates are a single command or one click in your hosting panel.
You need a GitHub organization invite to access the repository and pull the Docker image. If you haven’t received one, or it has expired, contact me. After accepting, the repository will be available at github.com/domainer-platform/domainer-platform-releases.

Prerequisites

  • A server or VPS with Docker and Docker Compose installed — see docs.docker.com/get-docker
  • A domain name pointed at your server’s IP address
1

Generate a GitHub Personal Access Token (PAT)

Docker needs your GitHub credentials to pull the private image from GHCR.
  1. Go to github.com/settings/tokens (GitHub → SettingsDeveloper settingsPersonal access tokensTokens (classic))
  2. Click Generate new token (classic)
  3. Give it a name (e.g. domainer-docker)
  4. Under Select scopes, check read:packages — this is the only permission needed
  5. Click Generate token and copy the value immediately — GitHub shows it only once
Store the token somewhere safe. If you lose it, you’ll need to generate a new one.
2

Log in to GitHub Container Registry

On your server, authenticate Docker with GHCR using your GitHub username and the token you just generated:
Replace YOUR_PAT with the token and YOUR_GITHUB_USERNAME with your GitHub username. You should see Login Succeeded.You only need to do this once — Docker stores the credentials on the server.
3

Download the Compose file

Go to github.com/domainer-platform/domainer-platform-releases, find docker-compose.hub.yml, and place it on your server. This file tells Docker which image to pull and how to configure the services.You can do this via SFTP, or copy the file contents directly from GitHub and create it manually on the server.
4

Create your .env file

In the same directory as docker-compose.hub.yml, create a .env file with the following variables:
DATABASE_URL is already configured inside docker-compose.hub.yml and points to the PostgreSQL container. Do not add it to .env.
5

Start the containers

Docker will pull the platform image from GHCR, start a PostgreSQL 16 container, run database migrations, and start the app on port 3000. The first pull takes a minute depending on your server’s connection speed — subsequent starts are instant.Verify both containers are running:
You should see app and db with status Up.
6

Set up a reverse proxy with HTTPS

The app runs on port 3000. You need a reverse proxy to serve it on port 443 with HTTPS. A minimal Nginx + Certbot setup:
See the Certbot documentation for how to issue a free Let’s Encrypt certificate for your server and distribution.
7

Open the Setup Wizard

Visit your domain — you’ll be redirected to the Setup Wizard at /admin/install. Complete the wizard to seed your database, configure AI, and set up notifications.See Setup Wizard for a full step-by-step walkthrough.

Scheduled jobs (optional)

The platform works fully without scheduled jobs. However, three background tasks handle important notifications and will not run unless you set them up: Each request must include the x-cron-secret header matching your CRON_SECRET value. Example crontab entries (edit with crontab -e):

Updating

Pull the latest image and restart:
Migrations run automatically on startup. No manual steps needed. See Updating for the full update guide.

Example: Hostinger VPS with Docker Manager

Hostinger’s VPS plans include a visual Docker Manager that makes deployment and updates possible without any terminal commands.
1

Add your GitHub credentials in Hostinger

In the Hostinger control panel, open Docker ManagerCredentials+ Credential.
  • Registry: GitHub Container Registry
  • Username: your GitHub username
  • Token: your GitHub PAT (the token from Step 1)
Save. Hostinger will use these credentials to pull the private image.
2

Create a new Docker project

Click Docker ManagerProjectsCompose → choose Compose manually → name your project → in .yaml editor paste the contents of docker-compose.hub.yml and in Environment add your .env values → click Deploy.Hostinger pulls the image, starts the containers, and shows you the running status.
You will also need to carry out some additional configuration, which will depend on your VPS settings. Please follow the general instructions above.
3

Update with one click

When a new version is available, open your project in Docker Manager → click Update.Hostinger pulls the new image and restarts the container automatically. The whole process takes under a minute.