左边为之前的logo,右边为新logo
Appwrite是一个基于Docker的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。
Appwrite 可以提供给开发者:用户验证,外部授权,用户数据读写检索,文件储存,图像处理,云函数,消息(邮件,SMS,移动端原生消息),实时事件(类似多人协作场景)等多种服务.
产品的口号是:独立开发也可以像一个团队那样高效,用很少的代码可以构建一个安全可扩展的应用。
Your backend, minus the hassle Build secure and scalable applications with less code. Add authentication, databases, storage, and more using Appwrite's development platform.
Appwrite 的容器化服务器只需要一行指令就可以运行。您可以使用 docker-compose 在本地主机上运行 Appwrite,也可以在任何其他容器化工具(如 Kubernetes、Docker Swarm 或 Rancher)上运行 Appwrite。
启动 Appwrite 服务器的最简单方法是运行我们的 docker-compose 文件。在运行安装命令之前,请确保您的机器上安装了 Docker:
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:latest
docker run -it --rm ^
--volume //var/run/docker.sock:/var/run/docker.sock ^
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
--entrypoint="install" ^
appwrite/appwrite:latest
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:latest
运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。
需要自定义容器构架,可以查看 Docker 环境变量https://appwrite.io/docs/environment-variables
文档。还可以参考我们的 docker-compose.ymlhttps://appwrite.io/install/compose
和 .envhttps://appwrite.io/install/env
文件手动设置环境。
集成使用多种登录方式(如电子邮件/密码、短信、OAuth、匿名、魔法链接等)对用户进行身份验证。
const result = account.create(
ID.unique(),
'walterobrian@example.com',
'password',
"Walter O'Brian"
);
注册登录
存储、查询和管理数据,可扩展且可靠的数据库
const result = databases.createDocument( 'Your-tasks', tasks, ID.unique(), {
'description': 'Research user needs',
'tags': ['UX', 'design'],
}
);
上传和管理文件,安全地存储文件,具有高级压缩、加密和图像转换功能。
const result = storage.createFile(
'my-bucket',
ID.unique(),
document.getElementById("uploader").files[0]
);
文件上传
使用Function可以自定义和扩展你的后端,部署和扩展在安全、隔离的运行时中运行的无服务器函数。
node
php-8.0
ruby-3.0
python-3.9
dart-2.17
const userId = req.headers['user-id'];
if (req.path === '/subscribe') {
const session = await stripe.checkout(userId);
return res.redirect(session.url, 303);
}
if (req.path === '/webhook') {
await appwrite.addSubscriberLabel(userId);
}
return res.json({ success: true });
实时事件适用于所有服务,订阅并使用实时API对任何Appwrite事件做出反应。
多人协作场景
系统架构图
从架构图上可以看出Appwrite 使用高拓展性的微服务架构。Appwrite 目前支持多种 API(REST、WebSocket 和 GraphQL),您可以根据开发习惯灵活选择。
Appwrite API 界面层利用后台缓存和任务委派来提供极速的响应时间。后台的 Worker 代理还允许使用消息队列来处理负载,并精确控制硬件合理分配和成本。