Self-host Appwrite on custom domain with Cloudflare and Nginx

Self-host Appwrite on custom domain with Cloudflare and Nginx

A clean walkthrough for setting up Appwrite on your own Linux server, using Docker, Cloudflare DNS, and Nginx Proxy Manager (NPM) for secure access and SSL.

πŸͺœ 1. Prerequisites

A Linux server (Ubuntu 22.04+ recommended) Docker & Docker Compose installed A domain managed in Cloudflare (e.g. crismuscalu.com) Nginx Proxy Manager already running (on ports 80, 81, 443)

Screenshot 2025-10-04 at 15.04.08.png-img

πŸͺœ 2. Install Appwrite via Docker

Create a folder for Appwrite and Run the official installer:

During installation: HTTP port β†’ 8888 HTTPS port β†’ 8443 Appwrite hostname β†’ appwrite.crismuscalu.com DNS record hostname (CNAME) β†’ appwrite.crismuscalu.com Email for SSL β†’ your real email (for Let’s Encrypt) After installation completes, Appwrite will run on those ports via Traefik.

Screenshot 2025-10-04 at 15.08.06.png-img

πŸͺœ 3. Configure Cloudflare DNS

In your Cloudflare dashboard:

Type Name Target / Value Proxy Status CNAME appwrite cmuscalu.go.ro DNS only (grey cloud)

Screenshot 2025-10-04 at 15.09.26.png-img

πŸͺœ 4. Set up Proxy in Nginx Proxy Manager

Open http://your-server-ip:81 β†’ Add Proxy Host:

Details tab Domain: appwrite.crismuscalu.com Forward Hostname/IP: 192.168.1.101 Forward Port: 8443 Scheme: https Websockets Support βœ… Block Common Exploits βœ…

SSL tab Request a new SSL Certificate (Let’s Encrypt) Force SSL βœ… HTTP/2 Support βœ… Save the proxy host.

Screenshot 2025-10-04 at 15.11.12.png-img

πŸͺœ 5. Access Appwrite

https://appwrite.crismuscalu.com

You should see the Appwrite console login screen. πŸŽ‰ Create your admin account and start configuring your project.

Screenshot 2025-10-04 at 15.12.44.png-img