wiki.js 部署小笔记

了解到了wiki.js,试了各种部署方式,最后还是打算尝试Docker

安装笔记

1、首先看Requirements(重要)

安装PostgreSQL,从官网下载安装

安装的时候会设置密码和端口号,密码自己记住,端口号一般不用改

然后将PostgreSQL目录下的bin添加到PATH,以下命令检测

psql -V

然后连接到数据库

psql -U postgres

需要输入安装时设置的密码。

创建账号

create user wikijs with password '******';
CREATE DATABASE wiki OWNER wikijs;
GRANT ALL PRIVILEGES ON DATABASE wiki TO wikijs;

第一句创建账号(密码处理了)

第二句创建数据库

第三句赋权

使用Ctrl+C或者\q退出

测试数据库是否已经建立

psql -d wiki -U wikijs

如果成功,输入密码之后就能进入。

安装Node.js

因为之前已经安装过了,就不写了

安装Docker,需要启用Win10的Hyper-V,并且更新WSL2。

小笔记:Docker的阿里镜像

{
  "registry-mirrors": ["https://daxjixr1.mirror.aliyuncs.com"]
}

拉取wiki.js的镜像

docker pull requarks/wiki:2

可以检测镜像是否已经安装上

docker images

小彩蛋

Docker官方的Demo:

第一步:用git bash

git clone https://github.com/docker/doodle.git

第二步开始,用PowerShell

cd doodle\cheers2019 ; docker build -t yorksu/cheers2019 .
docker run -it --rm yorksu/cheers2019
docker login ; docker push yorksu/cheers2019

上面的方法放弃了。

重新在虚拟机里面跑个CentOS来部署

首先是用SSH连接到CentOS

更换yum源(在阿里云非必须)

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
sudo wget -O /etc/yum.repos.d/base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

安装PostgreSQL

sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install postgresql12
sudo yum install postgresql12-server
sudo yum install postgresql12-contrib

PSQL初始化

sudo mkdir -p /data0/pgsql
sudo chown -R postgres:postgres /data0/pgsql
sudo -u postgres /usr/pgsql-12/bin/initdb -D /data0/pgsql

创建日志目录

sudo mkdir -p /var/log/pgsql
sudo chown -R postgres:postgres /var/log/pgsql

启动/查看/停止

# 启动
sudo -u postgres /usr/pgsql-12/bin/pg_ctl -D /data0/pgsql -l /var/log/pgsql/server.log start

# 查看
sudo -u postgres /usr/pgsql-12/bin/pg_ctl -D /data0/pgsql status

# 停止
sudo -u postgres /usr/pgsql-12/bin/pg_ctl -D /data0/pgsql -m smart stop

创建用户/数据库/授权

sudo -u postgres psql

# 创建用户
CREATE USER wikijs WITH PASSWORD 'wikijsrocks';

# 创建数据库
CREATE DATABASE wiki OWNER wikijs;

# 授权
GRANT ALL PRIVILEGES ON DATABASE wiki TO wikijs;

# 退出
\q

Node.js安装

# 安装nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# 用nvm装node.js
nvm list-remote
nvm install v12.16.1

# 检查版本
node -v

wiki.js安装

cd /tmp
wget https://github.com/Requarks/wiki/releases/download/2.4.107/wiki-js.tar.gz

# 解压
mkdir wiki
tar xzf wiki-js.tar.gz -C ./wiki

# 移动
sudo mv wiki /usr/local/

# 删除
rm -rf wiki-js.tar.gz

wiki.js配置

cd /usr/local/wiki

# 重命名配置文件
mv config.sample.yml config.yml

# vim编辑config.yml
vim config.yml
vim /usr/local/wiki/config.yml

wiki.js启动

node server

至此,服务成功运行

以下是虚拟机遇到的问题,物理机无法访问web应用

在虚拟网络编辑器里面增加一个映射,3000端口到3000端口,输入虚拟机的ip


CentOS安装Syncthing

cd /tmp
wget https://github.com/syncthing/syncthing/releases/download/v1.7.1/syncthing-linux-amd64-v1.7.1.tar.gz
tar -zxvf syncthing-linux-amd64-v1.7.1.tar.gz
mv syncthing-linux-amd64-v1.7.1 ./syncthing
sudo mv syncthing /usr/local/
cd /usr/local/syncthing
sudo cp syncthing /usr/local/bin/

运行syncthing

syncthing

配置syncthing

sudo vim ~/.config/syncthing/config.xml

# 修改以下行
68 <address>0.0.0.0:8384</address>

# 重新运行
# 在外部访问ip:8384进行下一步配置

创建共享html文件夹

浏览器页面操作
添加共享文件夹
路径选择/home/york/www

此为废案!!!

安装Apache

sudo yum install httpd
sudo systemctl start httpd
sudo systemctl enable httpd

配置Apache

sudo vim /etc/httpd/conf/httpd.conf

# 修改以下地方
119 DocumentRoot "/home/york/www"
124 <Directory "/home/york/www">
131 <Directory "/home/york/www">

# 赋权
chmod 755 /home/york

# 验证配置成功

sudo vim /home/york/www/index.html
<html><body>New Web</body></html>
:wq!
sudo systemctl restart httpd

使用Nginx

# 修改wiki.js配置
vim /usr/local/wiki/config.yml
99 bindIP: 127.0.0.1

# 修改syncthing配置
sudo vim ~/.config/syncthing/config.xml
68 <address>127.0.0.1:8384</address>

# 安装
sudo yum install nginx

# 修改配置
sudo vim /etc/nginx/nginx.conf

# 添加以下内容
server {
        listen 80;
        server_name domain.domain;
        root /home/york/www;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html{
        }
}

server {
        listen 80;
        server_name wiki.domain.domain;

        location / {
            proxy_pass http://127.0.0.1:3000;
            root html;
            index index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html{
        }
}

server {
        listen 80;
        server_name sync.domain.domain;

        location / {
            proxy_pass http://127.0.0.1:8384;
            root html;
            index index.html index.htm;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html{
        }
}

# 重启服务
sudo systemctl reload nginx.service

SSL部分

考虑使用Let’s Encrypt

wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
./certbot-auto

# 生成证书
certbot-auto --nginx -d yorksu.cn -d www.yorksu.cn -d wiki.yorksu.cn

# 添加一条TXT记录,使用过程中给出的一串字符
# 添加完再回车
dig -t txt _acme-challenge.yorksu.cn

证书路径/etc/letsencrypt/archive/


linux 后台运行

sudo yum install screen*

# 创建会话
screen -S SESSION
nohup COMMAND &

# 输入Ctrl+A+D(按顺序)暂时离开
# 查看现有的会话列表
screen -ls
# 恢复
screen -r SESSION

# 关闭会话
exit

# 快捷键,都是按住Ctrl+A加以下的键
# C 创建窗口
# W 窗口列表
# N 下一个窗口
# P 上一个窗口
# 0-9 在第0个窗口和第9个窗口切换

# 杀掉其他终端
pkill -kill -t pts/1

CentOS 获取权限

su root
visudo
# 找到root  ALL=(ALL) ALL,下方添加
york    ALL=(ALL)   ALL

安装SSH

rpm -qa | grep ssh
sudo yum install openssh-server
sudo systemctl start sshd
sudo systemctl enable sshd
# 重启
sudo systemctl restart sshd

小笔记,yum被占用,解锁

rm -f /var/run/yum.pid

You may also like...

发表回复

您的电子邮箱地址不会被公开。