开源写作平台WriteFreely(基础篇)

什么是 WriteFreely ?

WriteFreely 是一个专为作家打造的干净、极简主义的出版平台。可以用来创建一个博客,在您的组织内分享知识,或者围绕共同的写作行为建立一个社区。

这里值得一提的是, WriteFreely 支持 ActivityPub 协议,这个协议老苏在 FunkwhaleMisskey 中介绍过,这是一个去中心社交网络(decentralized social networking)的交互协议;

文章传送门:

  1. 去中心化开源音乐服务器Funkwhale

  2. 去中心化开源社交平台Misskey

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 writefreely ,选择第三个 algernon/writefreely,版本选择 latest

本文写作时, latest 版本对应为 0.13.2-2

docker 文件夹中,创建一个新文件夹 writefreely,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/writefreely/data /data 存放设置、数据库等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8130 8080

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 writefreely 和 子目录
mkdir -p /volume2/docker/writefreely/data

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

# 运行容器
docker run -d \
--restart unless-stopped \
--name writefreely \
-p 8130:8080 \
-v $(pwd)/data:/data \
algernon/writefreely:0.13.2-2

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: '3'

services:
writefreely:
image: algernon/writefreely:0.13.2-2
container_name: writefreely
restart: unless-stopped
ports:
- 8130:8080
volumes:
- ./data:/data

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 writefreely 和 子目录
mkdir -p /volume2/docker/writefreely/data

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

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8130 就能看到主界面

需要注意的是,默认是关闭了用户注册的

WriteFreely 是通过config.ini文件配置的,这个文件位于 data 目录中

默认的 config.ini 是下面这样的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[server]
hidden_host =
port = 8080
bind = 0.0.0.0
tls_cert_path =
tls_key_path =
templates_parent_dir = /writefreely
static_parent_dir = /writefreely
pages_parent_dir = /writefreely
keys_parent_dir =

[database]
type = sqlite3
filename = writefreely.db
username =
password =
database =
host = localhost
port = 3306

[app]
site_name = A Writefreely blog
site_description =
host = http://0.0.0.0:8080
theme = write
disable_js = false
webfonts = true
landing =
single_user = false
open_registration = false
min_username_len = 3
max_blogs = 1
federation = true
public_stats = false
private = false
local_timeline = false
user_invites =

在编辑 config.ini 文件之前,需要先修改文件的权限,要给 写入 的权限

要想注册用户,需要将 open_registration = false 改为 open_registration = true

另外一处需要修改的是 host = http://0.0.0.0:8080,改为 host = http://192.168.0.197:8130

其中 192.168.0.197 是群晖主机 IP,而 8130 是我们前面设置的 本地端口

修改完成后记得保存,然后重启容器,重启之后才会加载新的 config.ini,再刷新主界面,就能看到注册界面了

输入 UsernamePasswordCreate Blog

就可以创建博客了

将鼠标移动到左上角,会点亮菜单

如果你只是自己用,到这里就可以开始你的写作了

参考文档

writefreely/writefreely: A clean, Markdown-based publishing platform made for writers. Write together and build a community.
地址:https://github.com/writefreely/writefreely

WriteFreely
地址:https://writefreely.org/

Configuring WriteFreely — WriteFreely Documentation
地址:https://writefreely.org/docs/latest/admin/config