使用Docker一键安装服务端神器Appwrite

作者 胡萝虎 日期 2022-03-18
使用Docker一键安装服务端神器Appwrite

Appwrite是一个基于Docker的开源的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面极简了从零编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。

简单来说,如果你只会前端开发,不懂后端技术,那么这个神器就可以帮你轻松完成后端服务搭建,包括账户、用户、团队、数据库、存储、云函数等等,目前支持各类前端平台,包括Flutter、Vue、Angular、React、iOS和Android等。

appwrite

安装

Appwrite支持在Linux、Unix、Windows等平台上安装,只要你的系统支持Docker即可,只需要一行指令就可以运行。当然也可以在任何其他容器化工具(如 Kubernetes、Docker Swarm 或 Rancher)上运行 Appwrite。

  • Linux/Unix安装

    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:0.13.3
  • Windows CMD安装

    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:0.13.3
  • Windows PowerShell安装

    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:0.13.3

因为安装过程中会自动下载并启动多个镜像,会比较慢。启动之后,在浏览器中访问localhost即可打开Appwrite控制台。

如果你不想使用80端口启动Appwrite,可以在安装时修改端口:

docker run -it -p 8801:80 --rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
--entrypoint="install" \
appwrite/appwrite:0.13.3

使用

  1. 打开控制台后,需要你先创建一个账号并登录:

Appwrite控制台

  1. 然后点击+号,创建一个项目

    创建Appwrite项目

  2. 然后就可以根据你的前端平台不同,导入appwrite的前端SDK,并设置SDK的域名和项目ID继续开发

    以Web项目为例:

    • 安装appwrite的SDK

      # 使用NPM安装
      npm install appwrite

      # 使用Webpack方式
      import { Appwrite } from 'appwrite';

      # 使用CDN引入
      <script src="https://cdn.jsdelivr.net/npm/appwrite@7.0.0"></script>
    • 初始化SDK

      // Init your Web SDK
      const appwrite = new Appwrite();

      appwrite
      .setEndpoint('http://localhost/v1') // 你的域名地址
      .setProject('455x34dfkj') // 你的项目ID
      ;

    • 发送请求

      // 注册用户
      appwrite
      .account.create('unique()', 'myemail@example.com', 'password', 'huluohu')
      .then(response => {
      console.log(response);
      }, error => {
      console.log(error);
      });
    • 接收消息事件

      // 订阅文件变更消息
      appwrite.subscribe('files', response => {
      if(response.event === 'storage.files.create') {
      // 打印日志
      console.log(response.payload);
      }
      });
  3. 其他更多平台开发指南可以参考Github或官网

    Github地址:

    https://github.com/appwrite/appwrite/blob/master/README-CN.md

    官网教材:

    https://appwrite.io/docs/installation
“扫一扫接着看”