Self-host Appwrite
Backend & BaaSdeployed & timed by usprices checked · Jul 2026
Batteries-included backend-as-a-service with auth, databases, storage, functions, messaging, and realtime — a self-hosted, Docker-based alternative to Firebase.
Firebase / yr$300
Self-hosted / yr~$55
You keep$245/yr
Key facts
CategoryBackend & BaaS
LicenseBSD-3-Clause
StackPHP, MariaDB
Min RAM4096 MB
Dockeryes
Difficulty
Our recommendation
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 and MariaDB under the hood rather than Postgres, so weigh that against Supabase or Nhost if a Postgres-native data layer matters to your stack.
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
Install with Docker Compose
Save this as compose.yml and run docker compose up -d:
# 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:
non-negotiableThe installer wants Docker socket access. The official install runs a container that manages other containers via /var/run/docker.sock — convenient, but understand what that access grants before you run it on a shared box.
non-negotiableMariaDB is the source of truth. Back it up like the production database it is — Appwrite's own docs point to your own backup strategy, not a built-in one.
non-negotiable4 GB is the real floor. Auth, database, storage, functions, and messaging each run as their own services — comfortable on a small VPS, not on the smallest one.
An alternative to
Head-to-head
More in Backend & BaaS
Backend & BaaSDirectus
Node.jsTypeScript
easyRead guide →
Backend & BaaSNhost
PostgreSQLHasura
hardRead guide →
Backend & BaaSPocketBase
GoSQLite
easyRead guide →
Backend & BaaSSupabase
PostgreSQLTypeScript
hardRead guide →