
已经安装过好多个 Appwrite 实例了,这个后端项目在解决一些轻量级的问题下相当爽
之前使用过另外一个类似的项目,叫做 supabase. 但是由于自己部署的版本只能创建单个项目,且认证方式确实很寒酸,结果一直没深入去用他…
我没有重量级的项目,所以没办法说这个项目是否适合大型项目,但是根据官网描述,应该还算是挺稳的~
这里通过 docker 来进行安装
通过 Docker 安装
首先确保服务器符合项目运行条件
准备工作
根据官网描述,服务器配置至少需要 2 CPU 核心 和 4GB 内存, 启用至少 2GB 的 swap,
另外,你使用的操作系统至少需要支持 Docker
安装 Docker
安装 Docker 这一步只需要跟着官方文档来,基本不会有什么大问题
这里使用 Ubuntu,先配置 APT
# 导入 Docker 的密钥
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# 给 APT 源增加 Docker 镜像
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
随后直接开装
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
一般到这里就OK了。你要是想可以跟着官方文档后面拉一个hello-world到本地,不过没啥用
安装 Appwrite
Appwrite 的安装不太能通过各种面板(宝塔,Portainer或1panel之类的)来进行安装,因为在安装过程中会有命令行的交互式问题,面板一般是直接通过你给的参数启动了
所以还是继续在终端中操作,在主目录下运行以下指令
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:1.6.0
然后开始回答他的问题

一般来说,应用程序是需要反向代理出去的,所以这里的端口号不使用默认的80和443,随便选择一个高位端口号,这里我用 25802/25803

设置好端口号,回答完了后面的问题后,开始进行反向代理
使用 Caddy 反向代理
直接使用以下指令开启代理
caddy reverse-proxy --to 127.0.0.1:25802
输入服务器的公网IP或解析的域名即可打开

直接点击 Sign Up, 系统默认允许注册一个用户,也就是管理员用户。直接填入信息注册登录即可~如果想要注册其他用户进行协同,需要进行邮箱配置后邀请加入项目或者开放用户注册数量
至此安装完毕~
配置 Github App
创建 App
为了能引入自己的云函数,补全这个项目没有的功能,我们需要配置 Github App, 否则就只能用 CLI 加上一大堆参数来使用

打开 Github 的个人设置页面,找到 Developers

创建一个新的 Github App

在下方 CallbackUrl 中填入两个回调 URL
https://[HOSTNAME_OR_IP]/v1/vcs/github/callback
https://[HOSTNAME_OR_IP]/v1/account/sessions/oauth2/callback/github/console
(将 [HOSTNAME_OR_IP] 替换成自己实例的公网地址)
另外,勾选下方 Request user authorization (OAuth) during installation

下面继续操作,重定向打勾,Webhook填写:
https://[HOSTNAME_OR_IP]/v1/vcs/github/events

然后在下方权限选择中勾选以下权限
权限 | 访问 |
Administration | Read and write |
Checks | Read and write |
Commit Statuses | Read and write |
Contents | Read and write |
Issues | Read and write |
Metadata | Read-only |
Pull requests | Read and write |
Webhooks | Read and write |
权限 | 访问 |
Email address | Read-only |
订阅以下 Events:
Events |
Pull request |
Push |

需要勾选上面的权限后这里的两个 Event 才会显示在这里
最后把权限改为所有帐号即可

点击创建,然后生成密钥

点击生成后,浏览器会自动下载密钥文件,用文本编辑器打开,将 \n
都替换为 \\n
然后复制备用
配置 Appwrite 文件
SSH 连接回到安装服务器

在刚刚执行安装指令的目录下,会出现 appwrite 文件夹。进入文件夹可以看见配置文件
在配置文件中找到以下项目,并更改为 Github App 对应的值
变量名 | 备注 |
_APP_DOMAIN | 反代后的域名 |
_APP_DOMAIN_TARGET | 反代后的域名,可以和上面那个一样 |
_APP_DOMAIN_FUNCTIONS | 云函数域名。如果设置为 github.com 这里就会是 云函数ID.github.com (比如64d4d22db370ae41a32e.github.com) |
_APP_VCS_GITHUB_APP_NAME | 刚刚创建 App 命的名 |
_APP_VCS_GITHUB_PRIVATE_KEY | 刚刚复制的密钥,粘贴替换文本后的一行 |
_APP_VCS_GITHUB_APP_ID | 如下图1 |
_APP_VCS_GITHUB_CLIENT_ID | 如下图1 |
_APP_VCS_GITHUB_CLIENT_SECRET | 如下图2 创建一个 Client Secret,复制过来 |
_APP_VCS_GITHUB_WEBHOOK_SECRET | 如下图3 配置 Webhook Secret |



检查编辑完毕的配置文件,保存退出

使用 docker compose up -d
来重载配置
看见配置完成啦~云函数这里可以选择 GH 了!
