--- 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Ă©) ```yaml # 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 ```bash # 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`** : Ă  `enabled` au bootstrap, puis Ă  `disabled` une fois le premier admin créé. - **`_APP_SMTP_*`** : obligatoire pour l'auth (vĂ©rif email, magic links, recovery). - **Volumes** : `./uploads`, `./certificates`, `./functions` doivent ĂȘ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_EMAILS` limite 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-dump` quotidien + archivage du volume `./uploads` (Storage) — les deux sont nĂ©cessaires, l'un sans l'autre rend l'instance inutilisable. ## 📚 Ressources - [Site officiel](https://appwrite.io) - [Documentation self-hosting](https://appwrite.io/docs/advanced/self-hosted) - [Repository GitHub](https://github.com/appwrite/appwrite) - [Selfh.st — Appwrite](https://selfh.st/apps/?tag=Development) - [Awesome Appwrite](https://github.com/appwrite/awesome-appwrite) ## 🔗 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