Loading... # UbuntuServer22.04部署Wiki.js做Wiki页面 本文仅仅是对官方文档进行一些翻译和添加一些过程中的小问题 ![](http://pic-up.yelvlab.cn/20231017224021.png) ## 为什么选择Wiki.js - 支持多种语言:富文本、Markdown、Asciidoc - 界面美观 ## 安装 ### 更新机器 ```bash # Fetch latest updates sudo apt -qqy update # Install all updates automatically sudo DEBIAN_FRONTEND=noninteractive apt-get -qqy -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' dist-upgrade ``` ### 安装 Docker ```bash # Install dependencies to install Docker sudo apt -qqy -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' install ca-certificates curl gnupg lsb-release # Register Docker package registry sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Refresh package udpates and install Docker sudo apt -qqy update sudo apt -qqy -o Dpkg::Options::='--force-confdef' -o Dpkg::Options::='--force-confold' install docker-ce docker-ce-cli containerd.io docker-compose-plugin ``` ### 解决Docker权限问题 ```bash # 添加docker用户组 groupadd docker # 把当前用户加入docker用户组 gpasswd -a ${USER} docker # 查看是否添加成功: cat /etc/group | grep ^docker # 重启docker systemctl restart docker # 更新用户组 newgrp docker # 测试docker命令是否可以使用sudo正常使用 docker ps ``` ### 设置容器 ```bash # Create installation directory for Wiki.js mkdir -p /etc/wiki # Generate DB secret openssl rand -base64 32 > /etc/wiki/.db-secret # 上面的命令为官方的手册,但是我的机器会提示权限问题,可以尝试下面的步骤 openssl rand -base64 32 # 复制上面的结果,并手动保存到/etc/wiki/.db-secret vi /etc/wiki/.db-secret # 下面进入到docker的设置步骤,如果遇到普通用户权限问题,可以尝试后面的步骤 # Create internal docker network docker network create wikinet # Create data volume for PostgreSQL docker volume create pgdata # Create the containers docker create --name=db -e POSTGRES_DB=wiki -e POSTGRES_USER=wiki -e POSTGRES_PASSWORD_FILE=/etc/wiki/.db-secret -v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro -v pgdata:/var/lib/postgresql/data --restart=unless-stopped -h db --network=wikinet postgres:15 docker create --name=wiki -e DB_TYPE=postgres -e DB_HOST=db -e DB_PORT=5432 -e DB_PASS_FILE=/etc/wiki/.db-secret -v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro -e DB_USER=wiki -e DB_NAME=wiki -e UPGRADE_COMPANION=1 --restart=unless-stopped -h wiki --network=wikinet -p 80:3000 -p 443:3443 ghcr.io/requarks/wiki:2 docker create --name=wiki-update-companion -v /var/run/docker.sock:/var/run/docker.sock:ro --restart=unless-stopped -h wiki-update-companion --network=wikinet ghcr.io/requarks/wiki-update-companion:latest ``` ### 设置防火墙 ```bash sudo ufw allow ssh sudo ufw allow http sudo ufw allow https sudo ufw --force enable ``` ### 启动容器 ```bash docker start db docker start wiki docker start wiki-update-companion ``` ### 确认运行状态 在浏览器上,导航到您的服务器 IP/域名(例如[http://your-server-ip/](http://your-server-ip/))。 ## 通过Let's Encrypt实现HTTPS(可选) 1. 在您的域名注册商上创建一条 **A 记录** ,将域名/子域名(例如[wiki.example.com](http://wiki.example.com/))指向您的服务器 **公共 IP** 。 2. 确保您能够使用 HTTP 上的该域名/子域名加载 wiki(例如[http://wiki.example.com](http://wiki.example.com/))。 3. **通过SSH**连接到您的服务器。 4. 通过运行以下命令**停止**并**删除**现有的 wiki 容器(不会丢失数据): ```bash docker stop wiki docker rm wiki ``` 5. 运行以下命令,将`wiki.example.com`和`admin@example.com`值替换为**您自己的域名/子域名**以及您的 wiki 管理员的**电子邮件地址:** ```bash docker create --name=wiki -e LETSENCRYPT_DOMAIN=wiki.example.com -e LETSENCRYPT_EMAIL=admin@example.com -e SSL_ACTIVE=1 -e DB_TYPE=postgres -e DB_HOST=db -e DB_PORT=5432 -e DB_PASS_FILE=/etc/wiki/.db-secret -v /etc/wiki/.db-secret:/etc/wiki/.db-secret:ro -e DB_USER=wiki -e DB_NAME=wiki -e UPGRADE_COMPANION=1 --restart=unless-stopped -h wiki --network=wikinet -p 80:3000 -p 443:3443 ghcr.io/requarks/wiki:2 ``` 6. 通过运行以下命令启动容器: ```bash docker start wiki ``` 7. **等待**容器启动并且 Let's Encrypt 配置过程完成。您可以选择通过运行以下命令来查看容器日志: ```bash docker logs wiki ``` > 当您在日志中看到以下行时,该过程将完成: > > `(LETSENCRYPT) New certifiate received successfully: [ COMPLETED ]` > `HTTPS Server on port: [ 3443 ]` > `HTTPS Server: [ RUNNING ]` 8. 使用 HTTPS 在网络浏览器中加载您的 wiki(例如[https://wiki.example.com](https://wiki.example.com/))。您的 wiki 现在使用免费的 Let's Encrypt 证书接受 HTTPS 请求! ## 自动 HTTP 到 HTTPS 重定向 默认情况下,对 HTTP 端口发出的请求不会重定向到 HTTPS。您可以使用以下说明启用此选项: 1. 单击页面右上角的头像导航至**管理区域。** 2. 从左侧导航菜单中,单击 **SSL** 。 3. 在该部分旁边`Redirect HTTP requests to HTTPS`,单击 **“打开”** 以启用 HTTP 到 HTTPS 重定向。 4. 现在,对 HTTP 端口发出的任何请求都会自动重定向到 HTTPS! ## 更新证书 您可以随时从 **管理区域** > **SSL**续订证书。 如果您的证书已过期并且无法加载 wiki UI 来更新它,只需重新启动容器即可: ```bash docker restart wiki ``` 更新过程将在初始化期间自动运行。 ## 升级 在安装指南中,您安装了 Wiki.js Update Companion。当有新版本可用时,此功能会自动执行升级过程。 当有新版本可用时,您将在**管理区域**中收到通知。要执行升级,请按照以下简单说明操作: 1. 转到 **“系统信息”** 部分,然后单击 **“执行升级”** 按钮。 2. 等待该过程完成。 3. 您现在应该使用最新版本。就这么简单! # 参考连接: [Docker 普通用户无权限问题](https://blog.csdn.net/jeikerxiao/article/details/109244923) [Install on Ubuntu 18.04 / 20.04 / 22.04 LTS](https://docs.requarks.io/install/ubuntu) [Wikijs简介-强大&可扩展的开源维基软件](https://www.cnblogs.com/east4ming/p/17291821.html) Last modification:October 17, 2023 © Allow specification reprint Like 0 If you think my article is useful to you, please feel free to appreciate