Shynet轻量化的访客监控系统

Shynet轻量化的访客监控系统

_

📋 核心部署要求速览

根据官方及社区信息,部署 Shynet 的环境要求如下:

  • 服务器环境:建议 Linux 服务器(如 Ubuntu 22.04+)。

  • 必备软件:需提前安装 Docker 和 Docker Compose。

  • 最低配置:内存 ≥ 512MB,硬盘空间 ≥ 2GB。

  • 网络:建议准备好一个域名,用于设置 HTTPS 并确保追踪代码加载安全。

🚀 两种主要的 Docker 部署方式

部署 Shynet 主要有两种方式,其中 Docker Compose 是官方推荐的主流方案。

  • 使用 docker run 命令:适合快速体验,只需一个命令就能启动。但这种方式通常使用内置的 SQLite 数据库,配置也相对简单。

  • 使用 docker-compose.yml 文件:这是更推荐的生产级部署方式。它通过一个 YAML 文件定义并启动应用(Shynet)和数据库(PostgreSQL)等多个容器,便于管理、配置和扩展,也是各类教程普遍采用的方法。

📝 推荐部署步骤:使用 Docker Compose

为了长期稳定地运行,建议采用以下步骤进行部署。

1. 准备部署目录

在GitHub上拉取Shynet仓库

wget https://github.com/milesmcc/shynet/archive/refs/tags/v0.14.0.zip

解压v0.14.0.zip

unzip v0.14.0.zip

然后mv~/shynet目录。

2. 创建 docker-compose.yml 文件

~/shynet 目录下创建 docker-compose.yml 文件,并写入以下内容。这是一个完整的配置模板,定义了 shynetdb(PostgreSQL)两个服务。

version: '3'

services:
  shynet:
    image: milesmcc/shynet:latest  # 官方最新镜像
    container_name: shynet
    depends_on:
      db:
        condition: service_healthy  # 等待数据库健康检查通过后再启动
    ports:
      - "8080:8080"  # 将服务器的8080端口映射到容器的8080端口
    environment:
      # 数据库连接信息,${} 表示变量会从 .env 文件中读取
      DB_NAME: ${DB_NAME}
      DB_USER: ${DB_USER}
      DB_PASSWORD: ${DB_PASSWORD}
      DB_HOST: db  # 容器内通过服务名 'db' 连接数据库
      DB_PORT: "5432"
      # Django 核心设置,请务必修改为强密码
      DJANGO_SECRET_KEY: ${DJANGO_SECRET_KEY}
      # 你的 Shynet 访问域名(无 http(s):// 前缀),用于安全设置
      ALLOWED_HOSTS: ${SHYNET_HOST:-*}
      CSRF_TRUSTED_ORIGINS: ${CSRF_ORIGINS:-http://localhost:8080}
      # 应用设置
      PORT: "8080"
      PERFORM_CHECKS_AND_SETUP: "True"
      SCRIPT_USE_HTTPS: "True"  # 如果使用HTTPS,设为True
      ACCOUNT_SIGNUPS_ENABLED: "False"  # 建议关闭公开注册,管理员手动添加账号
      TIME_ZONE: "Asia/Shanghai"
    restart: unless-stopped
    networks:
      - shynet-net

  db:
    image: postgres:16-alpine  # 使用轻量的 Alpine 版本
    container_name: shynet-db
    environment:
      POSTGRES_DB: ${DB_NAME}
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - shynet_db:/var/lib/postgresql/data  # 数据持久化
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"]
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped
    networks:
      - shynet-net

volumes:
  shynet_db:  # 定义数据卷

networks:
  shynet-net:
    driver: bridge

3. 创建环境变量文件 (.env)

在同一个目录下创建 .env 文件,用于存放敏感信息和配置。请务必将 DB_PASSWORDDJANGO_SECRET_KEY 修改为强密码。

# 数据库配置
DB_NAME=shynet
DB_USER=shynet
DB_PASSWORD=请修改为你的强密码

# Django 密钥,请务必修改为随机长字符串
DJANGO_SECRET_KEY=请修改为你的强密码

# 你的 Shynet 访问地址
SHYNET_HOST=analytics.yourdomain.com
CSRF_ORIGINS=https://analytics.yourdomain.com

4. 启动服务

docker compose up -d

5. 初始化管理员账户

容器启动后,通过以下命令创建一个管理员用户,按照提示设置密码。

docker exec -it shynet ./manage.py registeradmin your-email@example.com

6. 完成后续配置

  • 设置实例名称(可选):docker exec -it shynet ./manage.py whitelabel "我的分析站"

  • 登录后台:在浏览器访问 http://your-server-ip:8080 或你配置的域名,使用上一步创建的邮箱和密码登录。

  • 配置反向代理与HTTPS:这是生产环境的关键步骤。在 Nginx 或 Caddy 等反向代理软件中配置域名,并申请 SSL 证书,确保数据加密传输。

🔧 登录后的关键操作指南

1. 创建你的第一个服务(Service)

  • 在 Shynet 中,一个“服务(Service)”就代表一个你要追踪的网站。

  • 点击侧边栏的 「Services」 → 右上角 「Create Service」

  • 填写你的网站名称和域名(例如 meytao.top),其他选项可以先保持默认。

2. 获取并嵌入追踪代码

创建成功后,点击进入该服务,你会看到一个唯一的追踪代码片段,类似这样:

<noscript><img src="https://你的shynet域名:8093/ingress/.../pixel.gif"></noscript>
<script src="https://你的shynet域名:8093/ingress/.../script.js"></script>
  • 将这段代码完整地复制,并粘贴到你的博客,每个页面的 </body> 标签之前。

3. 验证追踪是否生效

  • 在浏览器中用隐私/无痕模式访问一次你的博客。

  • 回到 Shynet 后台该服务的页面,稍等几秒刷新,应该就能看到 “Hits”(页面浏览量)数据增加了。

在Ubuntu上用npm安装Claude Code CLI:从零开始的完整指南 2026-04-13

评论区