6.0 KiB
title: Appwrite created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, baas, backend, firebase] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/appwrite/appwrite]
💻 Appwrite
Backend-as-a-Service open source concurrent de Firebase et Supabase — auth, base de données, stockage, fonctions et WebSocket, le tout 100 % MIT.
📋 Informations Générales
| Attribut | Valeur |
|---|---|
| Nom | Appwrite |
| Slug | appwrite |
| Description | Plateforme BaaS open source auto-hébergeable (auth, DB, storage, functions) |
| Site officiel | https://appwrite.io |
| Repository | https://github.com/appwrite/appwrite |
| Stars | 56 223 ⭐ |
| Licence | BSD-3-Clause (MIT-compat) — 100 % open source, pas de module Enterprise |
| Langage principal | PHP (backend) + Flutter/React/Native (console) |
| Catégorie | Development |
| Tags | [catalogue, development, baas, backend, firebase] |
📝 Description
Appwrite est une plateforme BaaS (Backend-as-a-Service) 100 % open source sous licence BSD-3-Clause, sans module Enterprise payant. À l'inverse de Supabase, toutes les fonctionnalités sont accessibles en self-host (SSO, audit logs, fonctions). Le projet est structuré autour d'un monolithe Docker contenant tous les services (API, console, workers) et d'un set de micro-services optionnels pour les fonctions, les notifications SMTP/Push et le runtime.
L'API expose REST + WebSocket + GraphQL (expérimental) et fournit des SDK officiels pour 15+ langages (Flutter, React, Vue, Svelte, Swift, Kotlin, Dart, Node, Python, Go, .NET, Ruby, PHP, Deno, Bun). Côté données, Appwrite utilise MariaDB (par défaut) ou PostgreSQL (depuis 1.5) comme base principale, et stocke fichiers, fonctions et certificats sur disque ou dans un volume Docker.
Positionnement : plus simple à déployer que Supabase (un seul container, pas de 15 services interconnectés), plus riche côté SDK que Firebase, plus rapide à mettre en œuvre qu'un backend maison. Le modèle freemium existe uniquement sur cloud.appwrite.io (plan Pro payant) ; le self-host est gratuit.
🚀 Installation
Via Docker (recommandé)
# docker-compose.yml officiel Appwrite 1.6+
version: "3.8"
services:
appwrite:
image: appwrite/appwrite:1.6
container_name: appwrite
restart: unless-stopped
ports:
- "80:80"
environment:
_APP_ENV: production
_APP_OPENSSL_KEY: votre-cle-secrete
_APP_DOMAIN: appwrite.example.com
_APP_DOMAIN_TARGET: appwrite
_APP_CONSOLE_WHITELIST_ROOT: enabled
_APP_CONSOLE_WHITELIST_EMAILS: admin@example.com
_APP_DB_HOST: mariadb
_APP_DB_PORT: 3306
_APP_DB_USER: appwrite
_APP_DB_PASS: ***changeme***
_APP_DB_SCHEMA: appwrite
_APP_SMTP_HOST: smtp.example.com
_APP_SMTP_PORT: 587
_APP_SMTP_USER: ***
_APP_SMTP_PASS: ***
volumes:
- ./uploads:/storage/uploads
- ./certificates:/storage/certificates
- ./functions:/storage/functions
- ./snapshots:/storage/snapshots
depends_on: [mariadb, redis]
mariadb:
image: mariadb:11
restart: unless-stopped
environment:
MARIADB_ROOT_PASSWORD: ***rootpass***
MARIADB_DATABASE: appwrite
volumes:
- ./mariadb:/var/lib/mysql
redis:
image: redis:7-alpine
restart: unless-stopped
Installation manuelle
# Installation unifiée (Linux)
docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/install \
appwrite/installer:1.6.0
L'installer génère un docker-compose.yml optimisé et configure automatiquement MariaDB, Redis et Traefik interne.
⚙️ Configuration
_APP_OPENSSL_KEY: clé de chiffrement des données sensibles (tokens, clés API). Changer à la première installation et la sauvegarder hors-ligne : si elle est perdue, les données chiffrées sont irrécupérables._APP_CONSOLE_WHITELIST_ROOT: àenabledau bootstrap, puis àdisabledune fois le premier admin créé._APP_SMTP_*: obligatoire pour l'auth (vérif email, magic links, recovery).- Volumes :
./uploads,./certificates,./functionsdoivent être sauvegardés — c'est l'état utilisateur hors base. _APP_DOMAIN/_APP_DOMAIN_TARGET: déclarer le FQDN final pour les liens d'auth.
🔗 Alternatives
- Supabase — Concurrent direct, basé sur PostgreSQL + PostgREST, plus modulaire mais avec modules Enterprise.
- Firebase — BaaS propriétaire Google, cloud uniquement, source d'inspiration d'Appwrite.
- Nhost — BaaS GraphQL centré sur Hasura, plus simple pour des besoins GraphQL natifs.
🔒 Sécurité
- HTTPS obligatoire : placer Traefik/Caddy devant l'instance, le port 80 seul n'est jamais acceptable en production.
- Clé OpenSSL : comme indiqué, c'est la clé d'accès aux données chiffrées — sauvegarder hors-ligne.
- Whitelist emails :
_APP_CONSOLE_WHITELIST_EMAILSlimite qui peut créer un compte sur la console d'admin. - Rate-limiting : Appwrite intègre un rate-limit natif par utilisateur/clé, vérifier qu'il n'est pas désactivé.
- Backups :
mariadb-dumpquotidien + archivage du volume./uploads(Storage) — les deux sont nécessaires, l'un sans l'autre rend l'instance inutilisable.
📚 Ressources
🔗 Pages Liées
- cat-development — Catégorie Development
- app-supabase — BaaS open source concurrent (PostgreSQL)
- app-traefik — Reverse-proxy HTTPS devant Appwrite
- securisation-home-lab — Bonnes pratiques de sécurité
- recettes-docker-compose — Templates Docker Compose