前言

搭建一个自己的论坛是多么美好的一件事情,鉴于此,我们就开始用nodebb来搭建一个属于自己的论坛


设计

我们使用两个镜像,mongo和nodebb/docker.


步骤

安装docker

如果不知道怎么安装docker的,看我这篇文章{% post_link linux安装docker %}

拉取镜像

docker pull mongo && docker pull nodebb/docker

拉去成功后: 20200405134016

创建docker network

docker network create mongo-net

解释:该mongo-net是为了让nodebb和mongo数据库进行连接

初始化mongo容器,并连接上mongo-net网络

docker run -d --name db --restart always --network mongo-net -p 127.0.0.1:27017:27017 -v /root/mongo/db:/data/db mongo

解释: --restart always表示不管任何情况退出都自动重启 --network mongo-net表示把该容器连接上mongo-net网络 -p 127.0.0.1:27017:27017表示把容器27017端口映射到宿主机的27017端口,并且只能本地访问 -v /root/mongo/db:/data/db表示把容器中的数据放到宿主机的/root/mongo/db目录,这个目录没有会自动创建.

初始化nodebb容器,并连接上mongo-net网络

docker run -d --name forum --restart always --network mongo-net -p 4567:4567 nodebb/docker

查看是否连接到网络

docker network inspect mongo-net

20200405135448

打开nodebb初始页面进行配置http://qiud.zsyac.club:4567

20200405165135

注意:

  1. 写你自己的服务器地址和端口号
  2. 这个比较吃内存,最好1G,有时候出错就是内存不够
  3. 刚开始加载比较慢,耐心等等

成功后进入这个页面: 20200405165544 大功告成,剩下的就是自己来玩论坛了,可以参考官网


优化

虽然经过上面的步骤已经能正常玩论坛了,但是为了数据不丢失,我们可以定期把数据备份到git仓库,你甚至可以备份到多个仓库,从而确保数据不丢失,我这里以github做演示.

  1. 把本地数据文件夹初始化为一个git仓库,默认你已经安装了git,不知道怎么安装的看我这篇文章{% post_link linux安装git %}

    cd /root/mongo git init #空文件夹不能提交,所以要写个文件 touch readme.md && echo 'mongodb_data'>> readme.md git add -A git commit -m date +%Y%m%d%H%M%S

  2. 初始化你的个人信息,并配置公匙与密匙

    #配置个人信息 git config --global user.email "172601543@qq.com" git config --global user.name "qiudong" #生成公匙密匙 ssh-keygen -t 'rsa'

  3. 找到公匙文件,配置到github上面,公匙,密匙默认位置是/root/.ssh下面 20200405180904 20200405181050

  4. 创建一个远程仓库并和远程仓库关联,去github怎么创建我就不讲了,我直接从关联开始,我的github仓库是git@github.com:qiudong19901008/MongodbData.git

    #添加远程仓库位置 git remote add mongo git@github.com:qiudong19901008/MongodbData.git #推送到远程仓库 git push -uf mongo master

注意: 推送的时候要加上-uf,表示定位并且强制推送,覆盖掉远程仓库的文件,否则会推送失败

  1. 写一个脚本并测试能不能推送

我脚本位置在/root/syncData.sh,我的记录日志在/root/syncData.log

touch /root/syncData.sh
touch /root/syncData.log

脚本内容为:

#!/bin/bash
echo `date '+%Y-%m-%d %H:%M:%S'` >> /root/syncData.log
cd /root/mongo 
echo `git add -A` &>> /root/syncData.log
echo `git commit -m 'insignificance'` &>> /root/syncData.log
echo `git push` &>> /root/syncData.log

我解释下脚本内容:第一句话是把当前时间写道日志文件中.第二句话是进入我们本地仓库中.后面的语句是把数据推送到远程仓库,并且把推送的信息记录到日志文件中

赋予权限并测试

chmod +x syncData.sh
/root/syncData.sh

20200405183545

可以发现脚本能正常执行

  1. 把脚本放入crontab定时执行任务中 crontab是linux自带的定时任务程序,可以点我了解下

    #编辑任务,和使用vi编辑文件一样 crontab -e #设置半小时同步一次 1,30 * * * * /root/syncData.sh

结束语

到此为止,我们就不用再害怕数据丢失了,可以非常放心的玩我们的论坛了,可喜可贺!

THE END
开启精彩搜索

历史搜索

用户名或邮箱
密码
用户名
密码
重复密码
邮箱
注册
找回密码
注册 登录
邮箱
邮箱验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

新增

新增