DragonRster`s Void
Banner Image
目录
Wiki.js 搭建说明

Docker Compose 一键部署,带 Git 同步


Wiki.js 是一个轻量级、界面现代的开源 Wiki 系统,支持 Markdown 编辑、Git 同步备份、多种数据库后端。下面记录一下用 Docker Compose 部署的完整流程。

docker-compose.yml


version: "3.9"

networks:
  wikinet:
    driver: bridge

volumes:
  pgdata:

services:
  db:
    image: postgres:17
    container_name: db
    hostname: db
    restart: unless-stopped
    networks:
      - wikinet
    environment:
      POSTGRES_DB: wiki
      POSTGRES_USER: wiki
      POSTGRES_PASSWORD_FILE: /etc/wiki/.db-secret
    volumes:
      - /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro
      - /etc/wiki/pgdata:/var/lib/postgresql/data

  wiki:
    image: ghcr.io/requarks/wiki:2
    container_name: wiki
    hostname: wiki
    restart: unless-stopped
    networks:
      - wikinet
    depends_on:
      - db
    ports:
      - "80:3000"
      - "443:3443"
    environment:
      DB_TYPE: postgres
      DB_HOST: db
      DB_PORT: 5432
      DB_USER: wiki
      DB_NAME: wiki
      DB_PASS_FILE: /etc/wiki/.db-secret
      UPGRADE_COMPANION: "1"
    volumes:
      - /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro
      - /etc/wiki/keys:/etc/wiki/keys:ro
      - /etc/wiki/ssh/known_hosts:/etc/ssh/ssh_known_hosts:ro

  wiki-update-companion:
    image: ghcr.io/requarks/wiki-update-companion:latest
    container_name: wiki-update-companion
    hostname: wiki-update-companion
    restart: unless-stopped
    networks:
      - wikinet
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
            
1. 创建目录


sudo mkdir -p /etc/wiki
sudo mkdir -p /etc/wiki/keys
            
2. 生成数据库密码

使用 openssl 生成随机密码并写入密钥文件:


openssl rand -base64 32 | sudo tee /etc/wiki/.db-secret > /dev/null
sudo chmod 644 /etc/wiki/.db-secret
            

注意:.db-secret 文件权限设为 644 即可,容器内以 root 运行 PostgreSQL 可以读取。

3. 启动


docker compose up -d
            

启动后访问 http://你的服务器IP 完成初始化设置(创建管理员账号等)。

4. 配置 Git 同步

Wiki.js 支持将内容自动同步到 Git 仓库,实现备份和版本控制。


4.1 生成专用 SSH Key

为 Wiki.js 生成一个无密码的 ed25519 密钥:


sudo ssh-keygen -t ed25519 -N "" -f /etc/wiki/keys/wikijs_git
sudo chmod 600 /etc/wiki/keys/wikijs_git
            

4.2 将公钥添加到 Git 仓库

查看公钥内容:


sudo cat /etc/wiki/keys/wikijs_git.pub
            

以 GitHub 为例:
Repo → SettingsDeploy keysAdd deploy key
粘贴公钥内容,并勾选 Allow write access(Wiki.js 需要写入权限来推送变更)。


4.3 生成 known_hosts

预先生成 GitHub 的 host key,避免首次连接时出现 Host key verification failed 错误:


sudo mkdir -p /etc/wiki/ssh
sudo ssh-keyscan -H github.com | sudo tee /etc/wiki/ssh/known_hosts > /dev/null
sudo chmod 644 /etc/wiki/ssh/known_hosts
            

4.4 在 Wiki.js 后台配置

进入 Wiki.js 管理面板:
Git 同步AuthenticationSSH Private Key Path
填入:/etc/wiki/keys/wikijs_git

一些注意事项

  • 三个容器通过 wikinet 网络互通,数据库不暴露端口到宿主机,安全性较好。
  • 密码通过 Docker Secret 风格的文件挂载传入,避免在 docker-compose.yml 中明文写密码。
  • wiki-update-companion 容器用于自动升级 Wiki.js 版本,建议保留。
  • 如果需要反向代理,可以将 ports 改为只监听本地,然后由 Nginx/Caddy 反代。

  • « Myrient 存档情况 返回主页 FnOS 漏洞链复现 + 提权 »
    English

    搜索

    最新文章

    » 脚本详解:build.ps1
    » 脚本详解:gener...
    » 脚本详解:gener...
    » 脚本详解:rebui...
    » 脚本详解:gener...

    » 文章归档


    本文标签

    Wiki Docker 教程 网站建设


    功能

    » RSS 订阅
    » GitHub 源码
    » 返回顶部
    » 文章归档


    DRAGONRSTER
    CC BY-NC-SA
    © 2004-2026 DragonRster • Made with HTML • 本站支持IE5.5+
    最佳浏览分辨率:1024x768 • 最后更新于 2026年04月28日 01:33:40