最近在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_countMongoDB login: mongodb | 
| DB_UPSERT | [Insert new document] trueorfalse, default=false(Update only existing documents) | 
| DELAY_SEC | [Delayed writing to database] set scope 1-180sec ,default=60 | 
| VIEW_LEN | [Moe-Counter display length] set scope 5-18, default=7 | 
填完完毕后,直接部署。或者在项目的 Settings->Environment Variables 中修改,然后 Deployments 中选择最新的一条记录 Redeploy 即可。
部署完毕即可访问配置页面,设置名称和主题后会得到一个图片的链接,放在你需要的地方即可。
