ubuntu 18.04 bbs-go全新安装使用教程

系统平台

Distributor ID: Ubuntu
Description:    Ubuntu 18.04.4 LTS
Release:        18.04
Codename:       bionic

---
Linux instance-20200730-1510 5.3.0-1024-oracle #26~18.04.1-Ubuntu SMP Sat Jun 6 00:41:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

golang安装

下载golang二进制,由于我们系统为64位系统,因此下载:

wget https://golang.org/dl/go1.14.6.linux-amd64.tar.gz

解压并移动到/usr/local目录:

tar -zxvf go1.14.6.linux-amd64.tar.gz
mv go /usr/local/

设置go环境

vi /etc/profile
---
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

生效

source /etc/profile

验证安装

go version
---
go version go1.14.6 linux/amd64

golang 安装完成!

nodejs安装

bbs-go的前端需要nodejs环境

Node.js的所有版本都可以从官方的APT存储库中派生。需要手动添加到您的系统中。

apt -y install curl dirmngr apt-transport-https lsb-release ca-certificates
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

开始安装

apt install -y nodejs

另外需要安装在本地构建插件的开发工具

apt install -y gcc g++ make

验证安装

node -v
---
v12.18.3

npm -v
---
6.14.6

mysql安装

安装

apt install -y mysql-server

配置
对于全新安装,将需要运行随附的安全脚本。这会更改一些不太安全的默认选项,例如远程root登录和样本用户。

mysql_secure_installation

bbs-go安装

项目地址:https://github.com/mlogclub/bbs-go

下载bbs-go源码

git clone https://github.com/mlogclub/mlog.git

bbs-go采用前后端分离技术,网站和后台均通过api进行数据通信。
bbs-go包含:

  • server
  • site

模块划分

server模块

server基于golang开发,为整个项目提供数据接口支撑。site模块的数据均从该模块获取。

site模块

site模块使用nuxt.js框架搭建,是bbs-go的用户前端页面。

配置说明

server配置

server模块的示例配置文件为server/bbs-go.example.yaml:

Env: prod # 环境,线上环境:prod、测试环境:dev
BaseUrl: https://mlog.club # 网站域名
Port: '8082' # 端口
LogFile: /data/logs/bbs-go.log # 日志文件
ShowSql: false # 是否打印sql
StaticPath: /data/www  # 根路径下的静态文件目录,可配置绝对路径

# 数据库连接
MySqlUrl: username:password@tcp(localhost:3306)/bbsgo_db?charset=utf8mb4&parseTime=True&loc=Local

# github登录配置
Github:
  ClientID:
  ClientSecret:

# qq登录配置
QQConnect:
  AppId:
  AppKey:

# 阿里云oss配置
AliyunOss:
  Host: 请配置成你自己的
  Bucket: 请配置成你自己的
  Endpoint: 请配置成你自己的
  AccessId: 请配置成你自己的
  AccessSecret: 请配置成你自己的

# 邮件服务器配置,用于邮件通知
Smtp:
  Addr: smtp.qq.com
  Port: '25'
  Username: 请配置成你自己的
  Password: 请配置成你自己的

# 百度ai配置,用于自动分析文章摘要、标签
BaiduAi:
  ApiKey:
  SecretKey:

需要将该文件复制为server/bbs-go.yaml文件,然后根据具体内容修改为自己的。

site配置

site模块基于nuxt.js开发,配置文件位于site/nuxt.config.js。在site目录下提供了nuxt.config.example.js配置示例。
复制为nuxt.config.js,然后修改其中

  • port:site模块启动端口,默认为3000
  • proxy:server模块的连接地址,通过该地址可以请求server模块数据

安装启动

初始化数据库

在启动server之前,需要初始化数据库。
新建数据库bbsgo_db,名称可以自定。
虽然bbs-go启动时会自动建表,但有的配置:管理员用户、基本配置等,需要提前初始化。

-- 初始化用户表
CREATE TABLE IF NOT EXISTS `t_user` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `username` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
  `nickname` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
  `avatar` text COLLATE utf8_unicode_ci,
  `password` varchar(512) COLLATE utf8_unicode_ci DEFAULT NULL,
  `status` int(11) NOT NULL,
  `roles` text COLLATE utf8_unicode_ci,
  `type` int(11) NOT NULL,
  `description` text COLLATE utf8_unicode_ci,
  `create_time` bigint(20) DEFAULT NULL,
  `update_time` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `username` (`username`),
  UNIQUE KEY `email` (`email`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- 初始化用户数据(用户名:admin、密码:123456)
INSERT INTO `t_user`(`id`, `username`, `nickname`, `avatar`, `email`, `password`, `status`, `create_time`, `update_time`, `roles`, `type`, `description`) VALUES (1, 'admin', '管理员', '', '', '$2a$10$ofA39bAFMpYpIX/Xiz7jtOMH9JnPvYfPRlzHXqAtLPFpbE/cLdjmS', 0, 1555419028975, 1555419028975, 'owner', 0, '轻轻地我走了,正如我轻轻的来。');

-- 初始化系统配置表
CREATE TABLE IF NOT EXISTS `t_sys_config` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `key` varchar(128) COLLATE utf8_unicode_ci NOT NULL,
  `value` text COLLATE utf8_unicode_ci,
  `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  `description` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL,
  `create_time` bigint(20) NOT NULL,
  `update_time` bigint(20) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `key` (`key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- 初始化系统配置数据
insert into t_sys_config(`key`, `value`, `name`, `description`, `create_time`, `update_time`) values
    ('siteTitle', 'bbs-go', '站点标题', '站点标题', 1555419028975, 1555419028975),
    ('siteDescription', 'bbs-go,基于Go语言的开源社区系统', '站点描述', '站点描述', 1555419028975, 1555419028975),
    ('siteKeywords', 'bbs-go', '站点关键字', '站点关键字', 1555419028975, 1555419028975),
    ('siteNavs', '[{\"title\":\"首页\",\"url\":\"/\"},{\"title\":\"话题\",\"url\":\"/topics\"},{\"title\":\"文章\",\"url\":\"/articles\"}]', '站点导航', '站点导航', 1555419028975, 1555419028975);

同样需要分模块说明。
在源码根目录提供了build.sh脚本,我们可以通过该脚本来构建server以及site
构建成功之后,可以在server目录下看到可执行二进制文件bbs-go

另外可以通过实行运行的方式。

server模块

go run main.go

site模块

npm install
npm run dev

site模块可以通过pm2来进行管理。

npm install pm2 -g

启动

pm2 start npm --name "mlog-web-site" -- run dev

使用教程

本节记录在使用过程中的部分教程。

文件上传

包括图片、文件等,目前提供了两种:

  • aliyun oss
  • local
# 上传配置
Uploader:
  # 启用上传方式
  Enable: Oss
  # 阿里云oss配置
  AliyunOss:
    Host: 请配置成你自己的
    Bucket: 请配置成你自己的
    Endpoint: 请配置成你自己的
    AccessId: 请配置成你自己的
    AccessSecret: 请配置成你自己的
    StyleSplitter: 阿里云oss图片样式分隔符
    StyleAvatar: 头像图片样式名称
    StylePreview: 预览图片样式名称
    StyleDetail: 详情图片样式名称
  # 本地文件上传
  Local:
    Host: http://example.com/ # 上传文件域名
    Path: /wwwroot/example.com # 上传目录

阿里云OSS方式由于我没使用,因此只说明Local方式:

Enable: Local //这里修改为Local

Host: http://example.com/ # 上传文件域名
Path: /wwwroot/example.com # 上传目录

然后配置nginx

server {
    listen  80;

    # 设置访问域名
    server_name example.com;

    # 设置最大上传
    client_max_body_size 20M;

    location / {
        root /wwwroot/example.com;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
    }
}

至此教程完结。
demo站点:http://bbs.tkmiss.com/

© 版权声明
THE END
喜欢就支持以下吧
点赞0
评论 抢沙发
Elvnik的头像-爱看否

昵称

取消
昵称表情代码图片