轻博客Plume的搭建

在这里插入图片描述

什么是 Plume ?

Plume 是一个基于 ActivityPub 的联合博客引擎。它是用 Rust 编写的,带有 Rocket 框架,以及 Diesel 与数据库交互。前端使用 Ructe模板、WASMSCSS

反向代理

假设我们实际访问地址为: https://plume.laosu.ml:444

域名 局域网地址 备注
plume.laosu.ml http://192.168.0.197:7879 plume 的访问地址

npm 中的设置

在这里插入图片描述

SSL 都勾选了

在这里插入图片描述

命令行安装

.env.txt 文件

将下面的内容保存为 .env.txt 文件

基于官方 https://docs.joinplu.me/docker.sample.env 修改

BASE_URL=plume.laosu.ml:444
USE_HTTPS=1

# generate one with openssl rand -base64 32
ROCKET_SECRET_KEY=9gpVFbpgyvkzq/Miz1euBAze8CeRzxzmYoYD5XBA2k8=
ROCKET_ADDRESS=0.0.0.0
ROCKET_PORT=7878

# Mail settings
MAIL_SERVER=smtp.88.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=<第三方邮件客户端专用密码>
MAIL_HELO_NAME=laosu
[email protected]

# DATABASE SETUP
POSTGRES_PASSWORD=passw0rd
POSTGRES_USER=plume
POSTGRES_DB=plume

# you can safely leave those defaults
DATABASE_URL=postgres://plume:passw0rd@postgres:5432/plume
MIGRATION_DIRECTORY=migrations/postgres
  • BASE_URL:如果用 npm 反代,这里填局域网 IP +
    端口也可以,例如:192.168.0.197:7879,但是访问不能用 IP,否则登录会报错;
  • USE_HTTPS:如果上一步使用局域网 IP,这里改为 0
# 使用 IP 的示例 
BASE_URL=192.168.0.197:7879
USE_HTTPS=0
  • ROCKET_SECRET_KEY:执行 penssl rand -base64 32 可以生成;
  • MAIL_ 部分请根据自己的情况填写,有两种情况下会用到发邮件;
    • 忘记密码:网页上需要重置密码时发送邮件;
    • 注册策略:设为 email 时,表示注册时,Plume 需要邮件确认;

如果邮件设置没问题,忘记密码可以通过邮件进行重置

在这里插入图片描述

  • POSTGRES_PASSWORD:可以改复杂一些;
  • DATABASE_URL:如果 POSTGRES_PASSWORD 修改了,这里也要跟着变化;

其他的保持默认就可以,想了解更多的变量,请阅读官方文档:https://docs.joinplu.me/environment/

docker-compose.yml 文件

将下面的内容保存为 docker-compose.yml 文件

基于官方 https://docs.joinplu.me/docker-compose.sample.yml 修改

version: '3'

services:
  postgres:
    image: postgres:14
    container_name: plume-db
    env_file: .env.txt
    restart: unless-stopped
    volumes:
      - "./data:/var/lib/postgresql/data"

  plume:
    image: plumeorg/plume:0.7.2
    container_name: plume-web
    env_file: .env.txt
    restart: unless-stopped
    volumes:
      - "./media:/app/static/media"
      - "./.env.txt:/app/.env"
      - "./search_index:/app/search_index"
    ports:
      - "7879:7878"
    depends_on:
      - postgres

以上工作都完成之后,可以依次执行下面的命令

# 新建文件夹 plume 和 子目录
mkdir -p /volume2/docker/plume/{
    
    data,media,search_index}

# 进入 plume 目录
cd /volume2/docker/plume

# 运行数据库容器
docker-compose up -d postgres

# 等待 postgres 初始化完成(用 docker-compose logs 看 postgres 的日志输出)
# 数据库设置,第一次迁移运行
docker-compose run --rm plume plm migration run

在这里插入图片描述

接下来进行实例设置,并创建管理员账号

# 重建搜索引擎
docker-compose run --rm plume plm search init

# 创建你的实例
docker-compose run --rm plume plm instance new -d 'plume.laosu.ml:444' -n 'laosu test blog' -l 'default licence'

【重要】:-d 后面一定要填写完整的域名和端口,否则你上传的图片不能被正确的打开

# 创建管理员账号
docker-compose run --rm plume plm users new -n 'admin' -N 'laosu' -b 'laosu' -e '[email protected]' -p '123456' --admin

这些设置,有些可以在 管理 中再修改,但是有些是不能的

在这里插入图片描述

现在可以一键启动了

# 一键启动
docker-compose up -d

在这里插入图片描述

运行

在浏览器中输入 https://plume.laosu.ml:444 就可以看到主界面了

界面默认显示的是繁体中文,老苏并没找到设置语言的地方;

在这里插入图片描述

不管你 BASE_URL 设置了域名还是 IP,只要用 IP 访问,登录账号或者创建账号都会显示下面的错误

在这里插入图片描述

登录后,进入 Dashboard 就可以创建博客了

在这里插入图片描述

起个标题

似乎不能使用中文,会报 Invalid name 错误

在这里插入图片描述

现在可以开始写博客了

在这里插入图片描述

新增文章

在这里插入图片描述

发布

在这里插入图片描述

填写标签等,因为尚未上传照片,封面先选无

在这里插入图片描述

上传图片

在这里插入图片描述

上传成功后,能在图片集中看到

在这里插入图片描述

编辑文章,选择封面

在这里插入图片描述

回到首页看看效果,感觉图片的比例可能不符合要求,显示不全

在这里插入图片描述

小结

  1. 环境变量文件中,BASE_URL 用域名还是 IP 都是可以的,但是访问时一定要用域名,否则登录和注册会报错;既然如此,老苏建议还是用域名吧;
  2. 用命令行创建实例时,域名一定要正确,否则上传的图片会打不开;

参考文档

Plume-org/Plume: Federated blogging application, thanks to ActivityPub (now on https://git.joinplu.me/ — this is just a mirror)
地址:https://github.com/Plume-org/Plume

Installing with Docker ⋅ Plume documentation
地址:https://docs.joinplu.me/installation/with/docker/

Plume: a federated blogging application
地址:https://joinplu.me/

猜你喜欢

转载自blog.csdn.net/wbsu2004/article/details/130634568