DeltaChat / Install
Get started
A quick-start path for serious operators deploying DeltaChat on a Linux host.
Important startup requirement
Do not start the DeltaChat application layer until Nginx Proxy Manager is already running and the wildcard certificate already exists in NPM. The current staged deployment model depends on that order.
Operator-first deployment
DeltaChat is currently aimed at serious operators running a first deployment on a Linux host.
It assumes Docker Compose, domains, DNS, reverse proxies, certificates, and basic troubleshooting are already familiar territory.
Quick steps
DeltaChat uses a staged startup model. Infrastructure comes first, application services come second.
Confirm prerequisites
Have a Linux host, Docker Engine, the Docker Compose plugin, a domain you control, DNS access, and a plan for HTTPS certificates in Nginx Proxy Manager.
Get the deployment pack
Clone the repository, enter the working directory, and make the helper scripts executable before running anything else.
Run the installer
Use install.sh to generate .env, create required secrets, collect runtime configuration, validate Compose, and optionally start infrastructure.
Follow the staged startup order
Bring up infrastructure first, complete Nginx Proxy Manager setup, create the wildcard certificate, then start the DeltaChat application layer.
Get the deployment pack
Start by cloning the repository, entering the project directory, and making the helper scripts executable.
git clone https://github.com/TheDeltaCore/deltachat
cd deltachat
chmod +x install.sh stack.sh tools.shRun the installer
The normal first-time path is to run the installer, which creates.env, generates required secrets, prompts for runtime configuration, validates Docker Compose, and may optionally start infrastructure for you.
./install.shStart or verify infrastructure
Infrastructure must be running before the application layer is started. At this stage, you want PostgreSQL and Nginx Proxy Manager up, but not the app layer yet.
./stack.sh status
./stack.sh up infraStart the app layer
Only after Nginx Proxy Manager is running and the wildcard certificate already exists should you start the DeltaChat application services.
./stack.sh up appVerify startup
Check current stack state and follow the application logs to confirm the deployment came up cleanly.
./stack.sh status
./stack.sh logs appWhat the installer will ask for
The installer creates your working environment file and prompts for the key public hostnames, Nginx Proxy Manager credentials, certificate name, and database secrets used by the deployment.
Public app hostname
The public hostname users open in their browser, for examplechat.your-domain.com
Public API hostname
The public hostname browsers use to reach the API, for exampleapi.your-domain.com
Ingress certificate name
This must match the wildcard certificate already present in Nginx Proxy Manager, for example*.your-domain.com
NPM identity and secret
Use real operator credentials accepted by your NPM instance. These are later used by the DeltaChat API to authenticate against the NPM API.
NEXTAUTH_URL=https://chat.your-domain.com
NEXT_PUBLIC_API_URL=https://api.your-domain.com
NPM_BASEURL=http://npm:81
NPM_IDENTITY=admin@your-domain.com
NPM_SECRET=change-me
INGRESS_CERTIFICATE_NAME=*.your-domain.comComplete Nginx Proxy Manager setup first
Before starting the DeltaChat application layer, open Nginx Proxy Manager, complete the initial admin flow if needed, and create the wildcard certificate that matches your configured ingress certificate name.
This is a hard requirement of the current staged deployment model. Without the wildcard certificate already present in NPM, platform ingress bootstrap cannot complete successfully.
http://<your-server>:81Typical public URLs
Once infrastructure, DNS, certificates, and the app layer are all in place, verify the expected public entrypoints for your environment.
https://chat.your-domain.com
https://api.your-domain.com
http://your-server:81Need the full operator guide?
This page is the quick start path. Advanced installation details, configuration, operations, upgrades, troubleshooting, and optional tools are better kept in deeper operator documentation.
