如何部署wiki.js

Wiki.js 是一款基于 Node.js 的现代化开源 Wiki 系统,它界面美观、功能强大,支持 Markdown 编辑和权限管理。下面为你详细介绍几种主流的部署方式。

🧠 快速掌握核心部署流程

部署 Wiki.js 主要有两种路径,其核心流程和决策点可以通过下图一目了然:

上图展示了两种部署路径的关键步骤。对于大多数用户,尤其是希望快速上手的初学者,推荐使用 Docker 部署,这是最简洁高效的方式。如果你需要更精细的控制或学习原理,传统部署方式则更为合适。

下面是每种部署方式的详细说明。

🐳 使用 Docker 部署(推荐)

这种方法通过容器技术将 Wiki.js 及其依赖(如数据库)打包在一起,极大地简化了安装和配置过程。

  1. 安装 Docker

    • 首先,确保你的服务器上已经安装了 Docker 和 Docker Compose。

    • 对于境内服务器,建议使用国内镜像源以加速下载:

      复制代码
      curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  2. 创建 Docker Compose 文件

    • 创建一个专属目录(例如 /opt/docker/wikijs),并在该目录下创建名为 docker-compose.yml的文件。

    • 文件内容如下所示,它一次性定义了 Wiki.js 和其依赖的 PostgreSQL 数据库服务:

      version: "3"
      services:
      db:
      image: postgres:11-alpine
      environment:
      POSTGRES_DB: wiki
      POSTGRES_USER: wikiuser
      POSTGRES_PASSWORD: your_secure_password_here
      volumes:
      - postgres_data:/var/lib/postgresql/data
      restart: unless-stopped

      复制代码
      wiki:
        image: ghcr.io/requarks/wiki:2
        depends_on:
          - db
        environment:
          DB_TYPE: postgres
          DB_HOST: db
          DB_PORT: 5432
          DB_USER: wikiuser
          DB_PASS: your_secure_password_here
          DB_NAME: wiki
        restart: unless-stopped
        ports:
          - "3000:3000" # 将左边的 3000 改为你希望的主机端口

      volumes:
      postgres_data:

    • 请务必将 your_secure_password_here修改为强密码。

  3. 启动服务

    • docker-compose.yml文件所在目录下,执行命令即可后台启动所有服务:

      复制代码
      docker compose up -d

⚙️ 传统方式部署

如果你倾向于不适用 Docker,或者希望更深入地了解各个组件的配置,可以选择此方式。

  1. 安装 Node.js

    • Wiki.js 需要 Node.js 16.0.0 或更高版本。

    • 你可以从官网下载二进制文件并解压到指定目录,然后创建软链接到 /usr/local/bin/以便在终端中直接使用 nodenpm命令。

  2. 安装并配置数据库

    • Wiki.js 支持 PostgreSQL、MySQL、MariaDB 和 SQLite,推荐使用 PostgreSQL

    • 以 PostgreSQL 为例,安装后需要启动服务,并为 Wiki.js 创建专用的数据库和用户,并授予相应权限。

  3. 下载并配置 Wiki.js

    • 从 GitHub 发布页下载最新的 wiki-js.tar.gz压缩包。

    • 解压后,将配置文件样本重命名并编辑 config.yml,主要配置数据库连接信息和访问端口:

      复制代码
      port: 3000
      db:
        type: postgres
        host: localhost
        port: 5432
        user: wikiuser
        pass: your_secure_password_here
        db: wiki
  4. 启动 Wiki.js

    • 在 Wiki.js 目录下,直接运行启动命令:

      复制代码
      node server
    • 为了更稳定地运行,建议将其配置为系统服务(如 systemd service),以便在服务器重启后能自动运行。

🚀 完成安装与基本设置

无论通过哪种方式部署,当服务成功启动后,都需要进行以下操作:

  1. 访问管理界面 :打开浏览器,访问 http://你的服务器IP:3000(如果你在 Docker 配置中修改了端口,请使用修改后的端口)。

  2. 初始化设置:首次访问会进入安装向导,你需要创建管理员账户并设置站点信息。

  3. 配置反向代理(可选但推荐) :如果你希望通过域名(如 wiki.yourcompany.com)访问 Wiki.js,并且启用 HTTPS 安全连接,你需要设置反向代理。可以使用 Nginx Proxy Manager (NPM) 或直接配置 Nginx。

💎 总结与选择建议

特性 Docker 部署 传统方式部署
简易度 ,一条命令完成 ,需手动配置依赖
隔离性 ,容器隔离 ,依赖系统环境
管理难度 ,统一通过 Docker 管理 ,需分别管理服务
学习价值 了解容器化概念 深入理解服务配置

总的来说,对于大多数场景,Docker 部署是毫无疑问的首选,它能让你快速且无依赖冲突地搭建起一个功能完整的 Wiki.js 站点。如果你在部署过程中遇到具体问题,例如反向代理的配置细节,可以提出来,我会提供更详细的指导。

相关推荐
要加油哦~1 天前
AI | 实践教程 - ScreenCoder | 多agents前端代码生成
前端·javascript·人工智能
玄同7651 天前
从 0 到 1:用 Python 开发 MCP 工具,让 AI 智能体拥有 “超能力”
开发语言·人工智能·python·agent·ai编程·mcp·trae
czy87874751 天前
深入了解 C++ 中的 `std::bind` 函数
开发语言·c++
消失的旧时光-19431 天前
从 Kotlin 到 Dart:为什么 sealed 是处理「多种返回结果」的最佳方式?
android·开发语言·flutter·架构·kotlin·sealed
yq1982043011561 天前
静思书屋:基于Java Web技术栈构建高性能图书信息平台实践
java·开发语言·前端
一个public的class1 天前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
Jinkxs1 天前
Gradle - 与Groovy/Kotlin DSL对比 构建脚本语言选择指南
android·开发语言·kotlin
&有梦想的咸鱼&1 天前
Kotlin委托机制的底层实现深度解析(74)
android·开发语言·kotlin
青茶3601 天前
php怎么实现订单接口状态轮询请求
前端·javascript·php
BD_Marathon1 天前
设计模式——依赖倒转原则
java·开发语言·设计模式