使用Docker搭建Umami网站统计服务
创建一个自己的统计服务
以下是搭建过程
2023.05.11 更新 Umami v2.2.0流程
以下为过程
查看Dockers状态
sudo systemctl status docker
设置Docker开机自启
sudo systemctl enable docker
安装Dockers-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
更改权限
chmod +x /usr/local/bin/docker-compose
创建链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
检查状态及版本
docker-compose --version
创建程序目录
mkdir umami
进入umami目录并创建sql目录
cd umami
mkdir sql
获取sql初始化文件(注意区分mysql和postgresql版本)
wget https://github.com/umami-software/umami/blob/master/db/postgresql/migrations/01_init/migration.sql
更改文件名
mv migration.sql schema.postgresql.sql
在umami目录下创建docker-compose.yml 配置文件
wget https://github.com/umami-software/umami/blob/master/docker-compose.yml
可自行更改APP_SECRET:
POSTGRES_DB:
POSTGRES_USER:
POSTGRES_PASSWORD
启动服务
docker-compose up -d
提示端口占用怎么办?
可以修改左侧3000端口为其它未使用的端口即可 右侧的3000不要改动
端口映射关系 服务器端口:Docker容器内端口
宝塔添加域名
umami.199188.xyz
设置SSL
修改网站配置文件 注释及添加以下内容# location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
# {
# expires 30d;
# error_log off;
# access_log /dev/null;
# }
# location ~ .*\.(js|css)?$
# {
# expires 12h;
# error_log off;
# access_log /dev/null;
# }
location / {
proxy_pass http://127.0.0.1:3000/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
上面如果修改了端口 也将这里的端口修改一致
搭建完毕
访问 https://umami.199188.xyz/ 即可看到登录界面
默认用户名admin 默认密码 umami
然后自行添加网站统计代码 搞定
参考
https://github.com/umami-software/umami
https://umami.is/docs/environment-variables
https://umami.is/docs/install
https://davquar.it/post/self-hosting/umami-docker/
https://www.xiaoz.me/archives/17369
https://docs.docker.com/compose/compose-file/compose-file-v3/#network_mode
https://stackoverflow.com/questions/68903752/docker-error-host-network-mode-is-incompatible-with-port-bindings