Skip to main content
This is the most advanced deployment method. Updates require downloading a new version, replacing files, and rebuilding the image manually — which takes significantly more time and technical knowledge than the Vercel or Docker image paths. Use this method only if you have a specific reason not to use the other two.
This method builds the Docker image locally from the source files you received with your purchase. You do not need a GitHub invite or a GitHub account.

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

Transfer the source files to your server

Extract the ZIP file you received with your purchase. Transfer the extracted folder to your server via SFTP (FileZilla, Cyberduck) or any method you prefer.Place the files in a directory like /opt/domainer or /home/youruser/domainer.
If you choose to store the source files in a GitHub repository, keep that repository private. A public repository exposes the platform source code and violates the license agreement.
2

Create your .env file

From the project directory, copy the example environment file:
Open .env and fill in the values:
DATABASE_URL is pre-configured in docker-compose.yml and points to the PostgreSQL container. Do not change it unless you are using an external database.
3

Start the containers

On first start, Docker builds the Next.js application from source — this takes 3–5 minutes. Subsequent starts reuse the cached build and are fast.The startup sequence:
  1. PostgreSQL 16 starts and waits until healthy
  2. Database migrations run
  3. Next.js builds (first time only)
  4. The app starts on port 3000
Check that both containers are running:
You should see app and db with status Up.
4

Set up a reverse proxy with HTTPS

The app runs on port 3000. Set up Nginx as a reverse proxy with a Let’s Encrypt certificate:
See the Certbot documentation for certificate setup instructions.
5

Set up scheduled jobs

Add cron entries on your server for the background jobs (edit with crontab -e):
These are optional — see the Docker deployment guide for what each job does.
6

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 walkthrough.

Updating

Updates with this method require the most manual steps. See the Updating guide for the full ZIP update process.

Useful Docker commands