Self-host Appwrite
Batteries-included backend-as-a-service with auth, databases, storage, functions, messaging, and realtime — a self-hosted, Docker-based alternative to Firebase.
Key facts
Choose Appwrite when you want a batteries-included BaaS — auth, databases, storage, functions, and messaging — installed through a guided wizard rather than assembled by hand. It's PHP under the hood, on MongoDB by default in the 1.9 installer (MariaDB optional; Appwrite 2.0 switched the default to PostgreSQL) — but behind Appwrite's own collections API rather than a database you query directly, so weigh that against Supabase or Nhost if a Postgres-native data layer matters to your stack.
Follow the Appwrite deploy guide →What you need
- Any VPS with at least 4096 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- About an afternoon — budget time for troubleshooting
Paid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Appwrite — official Docker installer wizard
docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:1.9.5
# follow the wizard, then open http://SERVER_IP:20080What you take on
Appwrite's installer does the assembly for you, but running the result long-term is still your job:
An alternative to
Head-to-head
A REST/GraphQL data layer over your own SQL database vs. an all-in-one BaaS with auth, functions, and messaging built in.
A single Go binary vs. an all-in-one Docker platform.
SQL-native and ecosystem-rich vs. all-in-one and easier to stand up.