在DigitalOcean的Nginx-Django环境中安装配置Plausible Analytics
在DigitalOcean上为Django应用安装Plausible Analytics并配置子路径访问
一、安装Plausible Analytics(Docker部署)
1. 安装Docker和Docker Compose
如果服务器还没安装Docker环境,执行以下命令:
# 更新系统包 sudo apt update && sudo apt upgrade -y # 安装依赖工具 sudo apt install apt-transport-https ca-certificates curl software-properties-common -y # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 配置Docker软件源 echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker及Compose sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y # 验证安装成功 docker --version docker compose version
2. 创建Plausible配置文件
创建专属目录存放Plausible的配置和数据:
mkdir -p ~/plausible && cd ~/plausible
创建docker-compose.yml文件:
nano docker-compose.yml
粘贴以下内容:
version: "3.3" services: plausible_db: image: postgres:14-alpine volumes: - db-data:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD=postgres restart: always plausible_events_db: image: clickhouse/clickhouse-server:23.3-alpine volumes: - event-data:/var/lib/clickhouse ulimits: nofile: soft: 262144 hard: 262144 restart: always plausible: image: plausible/analytics:latest command: sh -c "sleep 10 && /entrypoint.sh db init && /entrypoint.sh run" depends_on: - plausible_db - plausible_events_db ports: - 127.0.0.1:8000:8000 volumes: - plausible-config:/app/config environment: - DATABASE_URL=postgres://postgres:postgres@plausible_db:5432/plausible_db - CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db - BASE_URL=${BASE_URL} - SECRET_KEY=${SECRET_KEY} - ADMIN_USER_EMAIL=${ADMIN_USER_EMAIL} - ADMIN_USER_NAME=${ADMIN_USER_NAME} - ADMIN_USER_PWD=${ADMIN_USER_PWD} restart: always volumes: db-data: event-data: plausible-config:
创建环境变量配置文件.env:
nano .env
修改以下参数为你的实际信息:
# 必须设置为你的域名+子路径 BASE_URL=https://mydomain.com/plausible # 管理员账号信息 ADMIN_USER_EMAIL=your-admin-email@example.com ADMIN_USER_NAME=your-admin-username ADMIN_USER_PWD=your-strong-admin-password # 生成随机密钥:执行 openssl rand -base64 64 获取 SECRET_KEY=your-random-secret-key-generated-by-openssl
保存并退出编辑器(按Ctrl+O确认,回车,再按Ctrl+X)。
3. 初始化并启动Plausible
先初始化数据库:
docker compose run --rm plausible db init
启动所有服务:
docker compose up -d
检查服务运行状态:
docker compose ps
当plausible、plausible_db、plausible_events_db的状态都显示up时,说明服务启动成功。
二、修改Nginx配置实现子路径访问
找到你的Django应用对应的Nginx配置文件(通常位于/etc/nginx/sites-available/或/etc/nginx/conf.d/目录下,比如mydomain.conf),编辑该文件:
sudo nano /etc/nginx/sites-available/mydomain.conf
1. 添加Plausible反向代理配置
在server块中,放在Django应用的location /配置之后,添加以下内容:
# Plausible Analytics 子路径反向代理 location /plausible { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 代理静态资源 location /plausible/static { proxy_pass http://localhost:8000/static; proxy_cache_bypass $http_upgrade; } # 代理API接口 location /plausible/api { proxy_pass http://localhost:8000/api; proxy_cache_bypass $http_upgrade; } # 代理事件上报接口(支持POST请求) location /plausible/event { proxy_pass http://localhost:8000/event; proxy_cache_bypass $http_upgrade; } }
2. 验证配置并重启Nginx
检查Nginx配置是否存在语法错误:
sudo nginx -t
如果输出nginx: configuration file /etc/nginx/nginx.conf test is successful,说明配置没问题,重启Nginx生效:
sudo systemctl restart nginx
三、验证访问与集成统计代码
- 访问
https://mydomain.com/plausible,使用之前设置的管理员账号登录,即可进入Plausible仪表盘。 - 在Django应用中添加统计代码:打开你的Django基础模板(比如
base.html),在<head>标签内添加:
<script defer data-domain="mydomain.com" src="/plausible/js/plausible.js"></script>
如果需要跟踪子域名或自定义事件,可调整data-domain参数或添加额外配置。
内容的提问来源于stack exchange,提问作者FabianxS
相关产品推荐
相关产品推荐

