
Appwrite 开源 BaaS 平台自托管指南
Firebase 的开源替代品,支持多平台 SDK、云函数和实时数据库。Docker 一键部署,数据完全自主。
原文来源:Appwrite — 开源后端即服务平台,支持 Web、移动端和 Flutter,提供数据库、认证、存储、云函数和实时订阅。
Appwrite 是另一个 Firebase 的开源替代方案,和 Supabase 相比更强调多平台支持。它原生支持 Web、iOS、Android、Flutter 和 React Native,适合需要跨平台一致体验的团队。
Appwrite 是什么
Appwrite 提供了一整套后端服务:
数据库 — 基于 MariaDB 的文档数据库,支持复杂查询和关系。
认证 — 邮箱、OAuth、Magic Link、匿名登录、手机号验证。
存储 — 文件上传下载,带缩略图生成和权限控制。
云函数 — 支持多种运行时(Node.js、Python、PHP、Ruby、Dart),响应事件或定时触发。
实时订阅 — 数据库和存储变化实时推送到客户端。
多平台 SDK — Web、Flutter、iOS、Android、React Native 都有官方 SDK。
Docker 部署
docker run -it --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:latest或者用 Docker Compose:
version: '3'
services:
appwrite:
image: appwrite/appwrite:latest
ports:
- 80:80
- 443:443
volumes:
- appwrite:/usr/src/code/appwrite
- /var/run/docker.sock:/var/run/docker.sock
environment:
- _APP_ENV=production
- _APP_OPENSSL_KEY_V1=your-secret-key访问 http://localhost 进入控制台。
数据库操作
创建集合和文档
import { Client, Databases } from 'appwrite'
const client = new Client()
.setEndpoint('http://localhost/v1')
.setProject('your-project-id')
const databases = new Databases(client)
// 创建文档
await databases.createDocument(
'database-id',
'collection-id',
'unique-id',
{ title: 'Hello', content: 'World' }
)
// 查询
const docs = await databases.listDocuments(
'database-id',
'collection-id',
[Query.equal('title', 'Hello')]
)认证
import { Account } from 'appwrite'
const account = new Account(client)
// 注册
await account.create('unique-id', 'user@example.com', 'password', 'User Name')
// 登录
await account.createEmailPasswordSession('user@example.com', 'password')
// OAuth
await account.createOAuth2Session('github', 'http://localhost/success', 'http://localhost/failure')云函数
创建函数
// Node.js 云函数示例
module.exports = async function (req, res) {
const payload = JSON.parse(req.payload)
// 你的业务逻辑
const result = await processData(payload)
res.json({ success: true, data: result })
}部署到 Appwrite 后,可以通过 HTTP 触发、定时触发或事件触发。
与 Supabase 对比
| 维度 | Appwrite | Supabase |
|---|---|---|
| 数据库 | MariaDB(文档型) | PostgreSQL(关系型) |
| 多平台 SDK | 更丰富 | 较少 |
| 云函数 | 多运行时 | Edge Functions(Deno) |
| 实时能力 | 有 | 有 |
| 自托管难度 | 中等 | 中等 |
| 控制台体验 | 功能丰富 | 简洁 |
Appwrite 更适合跨平台移动应用,Supabase 更适合需要关系型数据库的 Web 应用。
总结
Appwrite 是多平台开发团队的实用选择。它的 Flutter 和 React Native SDK 尤其成熟,如果你正在用这些框架开发移动应用,Appwrite 的后端服务可以显著减少开发时间。自托管模式也让数据主权完全掌握在自己手中。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/tutorials/appwrite-open-source-baas