首页
/ Wakapi项目Docker Compose部署指南:构建开发者活动追踪系统

Wakapi项目Docker Compose部署指南:构建开发者活动追踪系统

2025-07-09 06:56:46作者:宣利权Counsellor

概述

Wakapi是一个开源的开发者活动追踪工具,能够记录和分析开发者的编码活动。本文将详细介绍如何使用Docker Compose文件来部署Wakapi系统,包括服务配置、数据库设置和安全实践。

核心服务架构

Wakapi的Docker Compose配置主要包含两个关键服务:

  1. Wakapi主服务:基于项目代码构建,提供核心功能
  2. PostgreSQL数据库服务:使用PostgreSQL 17版本作为数据存储

这种分离式架构遵循了微服务设计原则,确保了系统的可扩展性和维护性。

详细配置解析

Wakapi主服务配置

wakapi:
  build: .
  init: true
  ports:
    - 3000:3000
  restart: unless-stopped
  • build: .:指示Docker从当前目录构建镜像
  • init: true:使用init进程管理子进程,防止僵尸进程
  • 端口映射:将容器内的3000端口映射到主机的3000端口
  • 重启策略:除非手动停止,否则自动重启

数据库连接配置

environment:
  WAKAPI_DB_TYPE: "postgres"
  WAKAPI_DB_NAME: "wakapi"
  WAKAPI_DB_USER: "wakapi"
  WAKAPI_DB_HOST: "db"
  WAKAPI_DB_PORT: "5432"

这些环境变量配置了Wakapi与PostgreSQL数据库的连接参数,包括数据库类型、名称、用户认证信息和连接地址。

安全最佳实践

敏感信息管理

配置文件中展示了两种处理敏感信息的方式:

  1. 通过Docker Secrets

    WAKAPI_DB_PASSWORD_FILE: "/run/secrets/db_password"
    
  2. 直接环境变量(不推荐用于生产环境):

    WAKAPI_DB_PASSWORD: "your_password"
    

推荐在生产环境中使用Secrets方式,它提供了更好的安全性,因为:

  • 密码不会出现在环境变量中
  • 通过文件系统权限控制访问
  • 支持密钥轮换

Secrets配置细节

secrets:
  - source: db_password
    target: db_password
    uid: '1000'
    gid: '1000'
    mode: '0400'
  • 权限设置:0400表示仅所有者可读
  • 用户/组ID:指定了文件所有者,确保只有特定用户能访问

数据库服务配置

db:
  image: postgres:17
  environment:
    POSTGRES_USER: "wakapi"
    POSTGRES_PASSWORD_FILE: "/run/secrets/db_password"
    POSTGRES_DB: "wakapi"
  volumes:
    - wakapi-db-data:/var/lib/postgresql/data
  • 数据持久化:通过命名卷wakapi-db-data确保数据不会因容器重启而丢失
  • 版本控制:明确指定PostgreSQL 17版本,避免兼容性问题

部署流程建议

  1. 准备环境变量

    export WAKAPI_PASSWORD_SALT=your_salt
    export WAKAPI_MAIL_SMTP_PASS=your_smtp_pass
    export WAKAPI_DB_PASSWORD=your_db_pass
    
  2. 启动服务

    docker compose up -d
    
  3. 验证部署

    • 访问http://localhost:3000
    • 检查容器日志:docker compose logs

性能与可靠性考虑

  • 自动重启restart: unless-stopped确保服务意外终止时自动恢复
  • 资源隔离:数据库与主服务分离,避免资源竞争
  • 数据持久化:数据库使用独立卷,防止数据丢失

扩展建议

  1. 添加反向代理:在生产环境中,建议在Wakapi前配置Nginx或Traefik
  2. 监控集成:可添加Prometheus和Grafana监控服务状态
  3. 备份策略:定期备份数据库卷数据

通过这份Docker Compose配置,您可以快速部署一个安全、可靠的Wakapi开发者活动追踪系统,为团队提供有价值的开发效率分析数据。