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