跳转至

Flarum

安装Docker

参考之前文档

配置 docker-compose

mkdir -p /data/docker_data/flarum

cd /data/docker_data/flarum

nano docker-compose.yml

内容参考:

version: "3"

services:
  flarum:
    image: mondedie/flarum:latest
    container_name: flarum
    env_file:
      - /data/flarum/flarum/flarum.env   # 创建一个flarum.env
    volumes:   # 数据映射到本地,数据不会因为Docker停止而丢失
      - /data/flarum/flarum/assets:/flarum/app/public/assets
      - /data/flarum/flarum/extensions:/flarum/app/extensions
      - /data/flarum/flarum/storage/logs:/flarum/app/storage/logs
      - /data/flarum/flarum/nginx:/etc/nginx/flarum
    ports:
      - 8899:8888   # 左边的8080可以自己调整端口号,右边的8888不要改
    restart: unless-stopped
    depends_on:
      - mariadb

  mariadb:
    image: mariadb:10.10.2
    container_name: mariadb
    ports:
      - 8898:3306
    environment:
      - MYSQL_ROOT_PASSWORD=Q35hflarumXXXX
      - MYSQL_DATABASE=flarum
      - MYSQL_USER=flarum
      - MYSQL_PASSWORD=Q35hflarumXXXX
    volumes:
      - /data/flarum/docker/mysql/db:/var/lib/mysql  # 数据映射到本地,数据不会因为Docker停止而丢失
    restart: unless-stopped

配置flarum.env

mkdir -p /data/flarum/flarum
cd /data/flarum/flarum/
nano /data/flarum/flarum/flarum.env

内容参考:

DEBUG=false
FORUM_URL=https://flarum.lyricn.com     # 可以自行修改,这个是论坛的网站  注意域名地址没有的话 要填IP+port 要不然会报错

# Database configuration
DB_HOST=mariadb
DB_NAME=flarum
DB_USER=flarum
DB_PASS=Q35hflarumXXXX    # 可以自行修改,但是要与docker-compose上面的一致
DB_PREF=flarum_
DB_PORT=3306

# User admin flarum (environment variable for first installation)
# /!\ admin password must contain at least 8 characters /!\
FLARUM_ADMIN_USER=admin          # 可以自行修改,但是要与docker-compose上面的一致
FLARUM_ADMIN_PASS=Q35hflarumXXXX  # 可以自行修改,但是要与docker-compose上面的一致
FLARUM_ADMIN_MAIL=xxxx@xxx.com  # 可以自行修改,修改成自己的邮箱
FLARUM_TITLE=lyricn的flarum  # 可以自行修改,这个是论坛的标题

运行

docker-compose up -d 

Nginx配置

upstream forum {
    server 127.0.0.1:8899;
    keepalive 8;
}
server {
    listen 443;
    ssl on;
    ssl_certificate 1_forum.lyricn.com.crt;
    ssl_certificate_key 2_forum.lyricn.com.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
    ssl_prefer_server_ciphers on;
    server_name forum.lovejade.cn;
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://forum;
   }
}

扩展

# 汉化
docker exec -ti flarum extension require flarum-lang/chinese-simplified
# 文件上传
docker exec -ti flarum extension require fof/upload
# FoF 导航栏链接
docker exec -ti flarum extension require fof/links
# 邀请码
docker exec -ti flarum extension require fof/doorman
# 列出所有安装的扩展
docker exec -ti flarum extension list
#移除
docker exec -ti flarum extension remove some/extension
使用管理员账户登录后台>左边导航栏里最下边会多出来一个汉化包>点击启用即可,在常规设置里,可以修改默认的语言。

升级

cp -r /data/flarum/ /root/data/docker_data/flarum.archive  # 万事先备份,以防万一

cd /data/flarum/  # 进入docker-compose所在的文件夹

docker-compose pull    # 拉取最新的镜像

docker-compose up -d   # 重新更新当前镜像

卸载

cd /data/flarum/  # 进入docker-compose所在的文件夹

docker-compose down    # 停止容器,此时不会删除映射到本地的数据

rm -rf /data/flarum  # 完全删除映射到本地的数据

Flarum Search By Sonic

目的使得Flarum支持中文的搜索

1.创建sonic目录 mkdir sonic

2.创建config.cfg配置文件 vim /data/flarum/sonic/config.cfg

config.cfg 内容:

# Sonic
# Fast, lightweight and schema-less search backend
# Configuration file
# Example: https://github.com/valeriansaliou/sonic/blob/master/config.cfg


[server]

log_level = "debug"


[channel]

inet = "0.0.0.0:1491"
tcp_timeout = 300

auth_password = "SecretPassword"

[channel.search]

query_limit_default = 10
query_limit_maximum = 100
query_alternates_try = 4

suggest_limit_default = 5
suggest_limit_maximum = 20

list_limit_default = 100
list_limit_maximum = 500


[store]

[store.kv]

path = "./data/store/kv/"

retain_word_objects = 1000

[store.kv.pool]

inactive_after = 1800

[store.kv.database]

flush_after = 900

compress = true
parallelism = 2
max_files = 100
max_compactions = 1
max_flushes = 1
write_buffer = 16384
write_ahead_log = true

[store.fst]

path = "./data/store/fst/"

[store.fst.pool]

inactive_after = 300

[store.fst.graph]

consolidate_after = 180

max_size = 2048
max_words = 250000

3.启动并配置插件

# 启动容器
docker run --restart=always -d -p 1491:1491 -v /data/flarum/sonic/config.cfg:/etc/sonic.cfg -v /data/flarum/sonic/store/:/var/lib/sonic/store/ valeriansaliou/sonic:v1.4.8

# 安装sonic插件
docker exec -ti flarum extension require ganuonglachanh/sonic

# 进入Flarum后台,启用sonic插件后再创建索引
# 创建索引
docker exec -ti flarum php flarum sonic:addtoindex