Skip to content
Back to catalog

Self-host Appwrite with Dokploy

Deploy self-hosted Appwrite on your own server from Dokploy's template catalog

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:

Bash
curl -sSL https://dokploy.com/install.sh | sh

When the installation completes, open the Dokploy dashboard at http://<SERVER_IP>:3000 and sign up for an account.

Step 2: Deploy the Appwrite template

  1. Click Create Project to start a new project.
  2. Inside the project, click Create Service and select Template.
  3. Search for and select Appwrite from the template catalog.
  4. 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:

  1. Point DNS A records for your domain and its sites. and functions. subdomains at your server.
  2. Add wildcard A records for *.sites.<your-domain> and *.functions.<your-domain>, which Appwrite uses for site previews and function URLs.
  3. Update the hosts in the service's Domains tab, and set _APP_DOMAIN, _APP_CONSOLE_DOMAIN, _APP_DOMAIN_SITES, and _APP_DOMAIN_FUNCTIONS in the Environment tab to match.
  4. 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:

Technology Partner Program

Building on Appwrite?

Teams and developers who ship integrations, tools, or services on Appwrite can join our partner program for verified catalog placement, co-marketing, training, and engineering support.