Dokploy is an open-source, self-hosted deployment platform. It manages applications, databases, and Docker Compose services from a web dashboard, routes traffic through Traefik, and offers one-click templates for common services.
How does the integration work?
Appwrite is available as a template in Dokploy's template catalog. The template deploys the complete Appwrite stack, including the database, workers, and the function executor, generates secure random secrets, and pre-fills the recommended settings. You manage Appwrite's environment variables and domains from the Dokploy dashboard.
Prerequisites
- A server that meets Appwrite's system requirements: at least 2 CPU cores, 4 GB of RAM, and 2 GB of swap memory.
- A domain whose DNS you control, for the Appwrite Console and for site and function URLs.
How to implement
To self-host Appwrite with Dokploy, there are several steps you must complete:
Step 1: Install Dokploy
Install Dokploy on your server:
curl -sSL https://dokploy.com/install.sh | shWhen the installation completes, open the Dokploy dashboard at http://<SERVER_IP>:3000 and sign up for an account.
Step 2: Deploy the Appwrite template
- Click Create Project to start a new project.
- Inside the project, click Create Service and select Template.
- Search for and select Appwrite from the template catalog.
- Click Create, then open the new service and click Deploy.
When the deployment finishes, the Containers tab lists every Appwrite service running on your server. Open the main domain from the Domains tab and go to /console to reach the Appwrite Console.
Step 3: Use your own domain
The template configures three domains: the main domain for the API and Console, a sites. subdomain, and a functions. subdomain. To use your own domain:
- Point DNS
Arecords for your domain and itssites.andfunctions.subdomains at your server. - Add wildcard
Arecords for*.sites.<your-domain>and*.functions.<your-domain>, which Appwrite uses for site previews and function URLs. - Update the hosts in the service's Domains tab, and set
_APP_DOMAIN,_APP_CONSOLE_DOMAIN,_APP_DOMAIN_SITES, and_APP_DOMAIN_FUNCTIONSin the Environment tab to match. - Enable HTTPS with the Let's Encrypt certificate provider for the main domain entries, then redeploy.
Dokploy's Let's Encrypt integration uses the HTTP-01 challenge, which can't issue wildcard certificates. For HTTPS on every generated site and function subdomain, issue a wildcard certificate with a DNS-01 client, add it under the Dokploy certificate settings, and set the certificate provider of the two wildcard domains to None. The Dokploy deployment guide walks through both this and a per-domain alternative.
Step 4: Configure additional features
Edit the service's Environment tab and redeploy to enable more features, such as email with the _APP_SMTP_* variables, SMS for phone authentication, and Git deployments from GitHub with the _APP_VCS_GITHUB_* variables.
Run only one Appwrite service per Dokploy server. The template runs its function executor and runtime containers on the shared Docker network, so a second Appwrite deployment on the same server can conflict with the first.
Read more about Dokploy and Appwrite
If you would like to learn more about Dokploy and Appwrite, we have some resources that you should visit:
