ActivityPub対応blogシステムのWriteFreelyを試す

軽量な micro blog を探しています，今回 ActivityPub にも対応している WriteFreely を少し試してみました．
今回は ActivityPub による Federation は未検証です．

WriteFreely

先ずは https://github.com/writefreely/writefreely/releases/latest から自分の環境にあったバイナリを入手します．今回試した v0.15.0 では Linux amd64, Linux arm6, Linux arm7, Linux arm64, macOS amd64, Windows amd64 がありました．
ここでは Raspberry Pi OS bookworm armhf へ Linux arm7 を導入しました．

ダウンロードと展開

$ wget https://github.com/writefreely/writefreely/releases/download/v0.15.0/writefreely_0.15.0_linux_arm7.tar.gz (1)
$ tar tvf ./writefreely_0.15.0_linux_arm7.tar.gz (2)
$ cd ./writefreely
$ ./writefreely --help (3)
NAME:
WriteFreely - A beautifully pared-down blogging platform

USAGE:
WriteFreely [global options] command [command options]

VERSION:
WriteFreely 0.15.0

COMMANDS:
user user management tools
db db management tools
config config management tools
keys key management tools
serve, web Run web application
help, h Shows a list of commands or help for one command

GLOBAL OPTIONS:
-c FILE Load configuration from FILE (default: "config.ini")
--debug Enables debug logging (default: false)
--help, -h show help
--version, -v print the version

ダウンロード

展開

help

初期設定と起動

WriteFreely の初期設定を行います．以下のページを参考に．

Getting Started with WriteFreely

$ ./writefreely config start (1)
No config.ini configuration yet. Creating new.

✍ WriteFreely Configuration ✍

This quick configuration process will generate the application's config
file, config.ini.

It validates your input along the way, so you can be sure any future
errors aren't caused by a bad configuration. If you'd rather configure your
server manually, instead run: writefreely --create-config and edit that
file.

Server setup
Use the arrow keys to navigate: ↓ ↑ → ←
? Environment:
Development
▸ Production, standalone (2)
Production, behind reverse proxy

Use the arrow keys to navigate: ↓ ↑ → ←
? Web server mode:
▸ Insecure (port 80) (3)
Secure (port 443), manual certificate
Secure (port 443), auto certificate

Database setup
Use the arrow keys to navigate: ↓ ↑ → ←
? Database driver:
MySQL
▸ SQLite (4)

SQLite
✔ Filename: █ritefreely.db (5)

App setup[server][se[server][server][server][server][server]rver]
Use the arrow keys to navigate: ↓ ↑ → ←
? Site type:
▸ Single user blog (6)
Multi-user instance

✔ Admin username: █ADMINISTRATOR (7)
✔ Admin password: █STRONGPASSWORD (8)
✔ Blog name: █est blogo (9)
✔ Public URL: █ttp://localhost:80 (10)

Use the arrow keys to navigate: ↓ ↑ → ←
? Federation:
Enabled
▸ Disabled (11)

config start で問い合わせに答えていくことで設定

スタンドアローン環境を選択

Web server を port 80 で起動(後で変更した)

データベースに SQLite を利用

データベースファイル名設定

シングルユーザで利用

ユーザー名

パスワード

blog名

URL 指定

Federation を無効

鍵を生成します．

$ ./writefreely keys generate

既定値では特権ポートの 80 で起動しようとするので， config.ini を編集してポートを変更します．
[server] セクションの port を 8080 に変更します．

起動

$ ./writefreely

利用

今回の設定では http://localhost:8080/ で利用できます．

先ずは短文を投げてみます．title, body が書けますが，body のみだと日付がtitle になる感じですね．

画像投稿をしたいのですが，どうもがぞ添付は不可のようです．リモート画像の埋め込みはok，data-uri は不可．

Markdown で装飾できます．iframe や動画の埋め込みもOK．

てことで少し試してみましたが画像添付機能が欲しいので今回は見送りかな．

環境

$ ./writefreely --version
WriteFreely 0.15.0
$ dpkg-query -W sqlite3
sqlite3 3.45.1-1
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux trixie/sid
Release: n/a
Codename: trixie
$ arch
x86_64