最近在Vercel上搞的两个小服务
最近鼓捣了两个小服务,都可以在 Vercel 托管!
Umami
网站访问统计
开源地址:https://github.com/umami-software/umami
可以在服务器上用 docker 托管,docker-compose.yml 如下所示:
值得注意的是修改下 pg 的密码和数据库文件映射目录。
services:
umami:
container_name: umami
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:123456@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: 123456
depends_on:
db:
condition: service_healthy
restart: always
healthcheck:
test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
interval: 5s
timeout: 5s
retries: 5
db:
container_name: umami-db
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: 123456
volumes:
- /opt/myapp/umami/umami-db-data:/var/lib/postgresql/data
restart: always
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}",
]
interval: 5s
timeout: 5s
retries: 5
这个服务可以在 Vercel 托管,很方面。
首先登录 Vercel,选择Storage
创建一个pg
数据库,你会得到一个链接的字符串。像下面这样 👇🏻
postgres://xxx:xxx@ep-red-dawn-a15qwnab.ap-southeast-1.aws.neon.tech:5432/verceldb?sslmode=require
登录GitHub
fork 仓库https://github.com/umami-software/umami
再回到 Vercel,新建项目选择我们 fork 的仓库,系统会默认识别出框架,我们只需要再添加一个环境变量:
DATABASE_URL
:postgres://xxx:xxx@ep-red-dawn-a15qwnab.ap-southeast-1.aws.neon.tech:5432/verceldb?sslmode=require
然后直接部署即可。
有个简单的方式:或者点击我开启一键部署 前提也是要新建个数据库哦。
Moe-Counter
开源地址:https://github.com/journey-ad/Moe-Counter
这是一个网站访问统计结果展示的项目,大概这个样子:
在线的服务 https://moe-counter.glitch.me/ 没有梯子访问不了,你可以在服务器上自托管,或者在 Vercel 上。
该项目不能直接部署在 Vercel 上,这位同学 https://github.com/grbnb/moe-counter-vercel 把项目修改了一下,使它可以部署在 Vercel 上。你可以 fork 项目,然后在 Vercel 新建项目或者一键部署到 Vercel。
它需要数据库支持,如果部署在 Vercel 只能使用 MongoDB,所以需要注册MongoDB 得到一个免费存储空间。可以参考:Twikoo-MongoDB Atlas。
部署的时候依然需要如下环境变量:
Key | Description |
---|---|
DB_URL | mongodb+srv://account:passwd@***.***.***.mongodb.net/db_count MongoDB login: mongodb |
DB_UPSERT | [Insert new document]true orfalse , default=false (Update only existing documents) |
DELAY_SEC | [Delayed writing to database] set scope 1-180 sec ,default=60 |
VIEW_LEN | [Moe-Counter display length] set scope 5-18 , default=7 |
填完完毕后,直接部署。或者在项目的 Settings->Environment Variables 中修改,然后 Deployments 中选择最新的一条记录 Redeploy 即可。
部署完毕即可访问配置页面,设置名称和主题后会得到一个图片的链接,放在你需要的地方即可。