Published on

使用 umami + supabase 部署自己的网站统计平台

Authors

前言

  今天就讲一下如何在 docker 中部署 umami,以及遇到的坑。umami 的数据库直接使用supabase提供的免费资源。

准备工作

supabase 中创建一个项目

  免费用户一个组织只能建两个项目,我已经满了。所以......截图没有了哈哈哈哈哈哈。

  创建完项目以后,在connect中就能看到数据库的连接信息。

alt

注意

切记选择 Transaction pooler 这个 URI 啊,否则就连不上数据库了!

准备 docker compose 文件

version: '3'
services:
  umami:
    image: umamisoftware/umami:postgresql-latest
    ports:
      - '9099:9099'
    environment:
      DATABASE_URL: postgresql://postgres.[project-id]:[password]@aws-0-ap-southeast-1.pooler.supabase.com:5432/[database] # 这里的连接信息,password就是在supabae组织内新建项目时设置的
      DATABASE_TYPE: postgresql
      APP_SECRET: '设置自己的随机值就okay了'
      PORT: 9099
    restart: always
volumes:
  umami-db-data:

小贴士

国内服务器无法访问docker镜像,可以修docker compose文件: image: docker.umami.is/umami-software/umami:postgresql-latest

原神启动(不是😅)

   docker-compose.yml下执行命令

docker-compose up -d

   这就完事了... 然后还要使用nginx做反向代理,讲域名指向docker的ip地址,端口就是docker-compose.yml中的映射地址之9099

   由于我使用了nginx proxy manager来管理nginx,所以直接在nginx proxy manager中添加一个代理,然后就ok了。所以...这里也没有nginx的配置了😅

nginx proxy manager配置

测试

   完成域名配置以后,就可以看到你的网站统计了。打开后就是登录页面了。然后就登录自己慢慢玩吧🤭。

默认账号密码
账号: admin
密码: umami
umami

遇到的坑

   一个巨坑!!!

   由于我的 nginx proxy manager 也是 docker 部署的,nginx 实在 docker 中,所以 umami 的 docker 服务 ip 需要和 nginx 的 docker 服务 ip 在一个网段,一个网段,一个网段。。。

   就是说,nginx proxy manager 在 172.17.0.* ip 段下的话,umami 的 docker 服务就只能在172.17.0.* ip 段下。 否则报504网关超时啊朋友们!😭

总结

   总结就是,umami 的 docker 服务和 nginx proxy manager 在同一个网段下,否则就无法访问。

   docker镜像国内服务器访问不了,很多三方镜像都挂了,有兴趣可以用cloudflare pages和CF-Workers-docker自行搭建

   也可以使用vercels快速搭建,只需fork一下umami的仓库,然后再vercels上建一个项目,使用fork的仓库,配置docker-compose.yml中environment变量即可(PORT不需要)。