Docker(推荐)

Docker(推荐)(Docker (recommended))

目录

Docker 是一个在隔离的容器中运行应用的工具。你不必在服务器上直接安装 Wavelog 和数据库,Docker 会为你统一管理这两者——打包封装、便于迁移、易于更新。这是我们推荐的安装方式,因为它能减少维护工作量,并让后续更新变得简单。

本指南会搭建两个容器:

  • wavelog-db —— 用于存储你全部 QSO 和设置的 MariaDB 数据库
  • wavelog-main —— Wavelog Web 应用本身

两个容器都定义在同一个 docker-compose.yml 文件中,只需一条命令即可启动。你的数据存储在 Docker 数据卷中,因此容器重启和更新后数据仍然保留。

前提条件

开始之前,请确认你的机器上已安装 Docker。可用以下命令验证:

docker --version
docker compose version

如果任一命令提示未找到,请先安装:

  • Docker Engine(Linux)或 Docker Desktop(Windows/macOS)
  • Docker Compose 已包含在 Docker Desktop 中,在 Linux 上则以插件形式提供

第 1 步 —— 创建 compose 文件

为 Wavelog 新建一个文件夹,并在其中把以下内容保存为 docker-compose.yml:

mkdir ~/wavelog && cd ~/wavelog
services:
  wavelog-db:
    image: mariadb:11.8
    container_name: wavelog-db
    environment:
      MARIADB_RANDOM_ROOT_PASSWORD: yes
      MARIADB_DATABASE: wavelog
      MARIADB_USER: wavelog
      MARIADB_PASSWORD: wavelog # <- Insert a strong password here
    volumes:
      - wavelog-dbdata:/var/lib/mysql
    restart: unless-stopped

  wavelog-main:
    container_name: wavelog-main
    image: ghcr.io/wavelog/wavelog:latest
    depends_on:
      - wavelog-db
    environment:
      CI_ENV: docker
    volumes:
      - wavelog-config:/var/www/html/application/config/docker
      - wavelog-uploads:/var/www/html/uploads
      - wavelog-userdata:/var/www/html/userdata
    ports:
      - "8086:80"
    restart: unless-stopped

volumes:
  wavelog-dbdata:
  wavelog-uploads:
  wavelog-userdata:
  wavelog-config:

危险:修改密码

在启动服务栈之前,请把 MARIADB_PASSWORD 中的 wavelog 替换为一个强密码。安装过程中你会用到它。MariaDB 会在首次启动时用该密码完成自身配置,因此必须在启动容器之前设置好。

第 2 步 —— 启动服务栈

在 docker-compose.yml 所在的文件夹中运行以下命令:

docker compose up -d

-d 参数会让容器在后台运行。首次运行时 Docker 会下载镜像,可能需要一分钟。完成后,请检查两个容器是否都在运行:

docker ps -a

你应当看到 wavelog-db 和 wavelog-main 的状态为 Up。

第 3 步 —— 运行安装程序

打开浏览器并访问以下 URL:

注意(已启用反向代理?)

如果你已经部署了反向代理,建议直接访问最终 URL,因为 Wavelog 会根据你访问安装程序时所用的 URL 来配置自身。虽然之后仍可修改,但直接使用最终 URL 可以省去额外的工作。

http://[your-server-ip]:8086/install

按照安装向导逐步操作,所有重要内容都在其中有说明。请务必仔细阅读并理解。

信息

数据库主机名是 wavelog-db,也就是服务栈中数据库容器的名称,而不是 localhost。

在安装向导的最后一步点击「安装」。Wavelog 将创建其数据库表,并把你重定向到登录页面。在较慢的系统上,这个过程可能需要几分钟!

反向代理

默认情况下,Wavelog 可通过端口 8086 访问。如果你想让它在正式域名(例如 wavelog.example.com)上提供服务,就需要一个反向代理。以下是一个最简 nginx 配置:

server {
    listen 80;
    server_name wavelog.example.com;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:8086;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

提示

强烈建议通过 HTTPS 提供 Wavelog 服务。包含 SSL 的完整示例请参见 Web 服务器配置。

后续步骤

调整 config.php

查看配置指南,了解如何根据自身需求调整 config.php。 在 Docker 部署中,配置文件会在安装之后出现在 wavelog-config 数据卷中,你可以在那里编辑它。无需重启 wavelog-main 容器,修改会立即生效。

在安装之前,该文件必须不存在,否则安装程序不会运行。安装过程中,它会被复制到正确的位置,随后即可在那里编辑。如果你想重置安装,请参阅此指南:重置安装。

调试

如果某些功能无法正常工作,请先检查容器日志:

# Stream live logs from the Wavelog container
docker logs --follow wavelog-main

如需更详细的信息,可调高 config.php 中的 log_threshold 值(见上文)。之后应用日志会写入容器内的 /var/www/html/application/logs。

计划任务(cron)

Docker 镜像默认启用 Cron Manager。可在 Web 界面中的 管理 → Cron Manager 下管理任务——无需手动配置 crontab。如果你完全不想让容器运行 cron,请设置环境变量 DISABLE_CRON=true(参见可选配置)。

可选配置(自 v2.5.1 起)

如果你确实需要修改某些经过精心挑选的默认设置,可以在 docker-compose.yml 中为 wavelog-main 服务添加环境变量来实现。可用的选项如下:

变量名 说明 默认值
PHP_MEMORY_LIMIT 覆盖默认的 PHP 内存上限。 256M
PHP_MAX_EXECUTION_TIME 覆盖默认的 PHP 最大执行时间。 600
PHP_UPLOAD_MAX_FILESIZE 覆盖默认的 PHP 上传文件大小上限。 64M
PHP_POST_MAX_SIZE 覆盖默认的 PHP POST 最大尺寸。 64M
PUID 设置容器内文件的属主。 999
PGID 设置容器内文件的属组。如果只设置了 PUID 或 PGID 中的一个,另一个将默认为 www-data,其值为 33。 33
DISABLE_CRON 设为 true 以不在容器内启动 cron 守护进程,例如当你在外部或单独的容器中运行计划任务时。 false
Wavelog 手册(中文版) / Docker(推荐) 0 字 0 行 bg8lng
2026-10-21T12:42:35.059082397Z 2026-10-21T12:42:55.053022611Z