Initial vault setup
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user