I’m self-hosting WriteFreely in Docker. He is behind the reverse-proxy Traefik. I’m using my own custom Docker image.
When I try to follow my WriteFreely account (@anhgelus@blog.anhgelus.world
) with my Mastodon account, I get a message saying something like “a follow request was sent”.
After a few searches, I understand the issue comes from my own installation.
So I looked in the log of Traefik and I found this (in the access logs):
X.X.X.X - - [31/Oct/2023:12:57:00 +0000] "POST /api/collections/anhgelus/inbox HTTP/1.1" 404 19 "-" "-" 5 "-" "-" 0ms
Basically, it’s an error 404 for /api/collections/anhgelus/inbox
.
I’m currently using the latest stable version of WriteFreely (v0.14.0
).
My config.ini
:
[server]
hidden_host =
port = 80
bind = 0.0.0.0
tls_cert_path =
tls_key_path =
autocert = false
templates_parent_dir =
static_parent_dir =
pages_parent_dir =
keys_parent_dir =
hash_seed =
gopher_port = 0
[database]
type = sqlite3
filename = writefreely.db
username =
password =
database = writefreely
host = localhost
port = 3306
tls = false
[app]
site_name = Anhgelus Blog
site_description =
host = https://blog.anhgelus.world
theme = write
editor =
disable_js = false
webfonts = true
landing =
simple_nav = false
wf_modesty = false
chorus = false
forest = false
disable_drafts = false
single_user = true
open_registration = false
open_deletion = false
min_username_len = 3
max_blogs = 1
federation = true
public_stats = true
monetization = false
notes_only = false
private = false
local_timeline = false
user_invites =
default_visibility = unlisted
update_checks = false
disable_password_auth = false
[oauth.slack]
client_id =
client_secret =
team_id =
callback_proxy =
callback_proxy_api =
[oauth.writeas]
client_id =
client_secret =
auth_location =
token_location =
inspect_location =
callback_proxy =
callback_proxy_api =
[oauth.gitlab]
client_id =
client_secret =
host =
display_name =
callback_proxy =
callback_proxy_api =
[oauth.gitea]
client_id =
client_secret =
host =
display_name =
callback_proxy =
callback_proxy_api =
[oauth.generic]
client_id =
client_secret =
host =
display_name =
callback_proxy =
callback_proxy_api =
token_endpoint =
inspect_endpoint =
auth_endpoint =
scope =
allow_disconnect = false
map_user_id =
map_username =
map_display_name =
map_email =
My Traefik’s config:
providers:
docker:
exposedByDefault: false
network: http_proxy
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
api:
dashboard: false
certificatesResolvers:
anhgelus-codes_certs:
acme:
email: "john.doe@foo.bar"
caServer: "https://acme-v02.api.letsencrypt.org/directory"
storage: "/certs/acme.json"
keyType: "EC384"
httpChallenge:
entryPoint: "web"
accessLog:
filePath: "/logs/access.log"
log:
filePath: "/logs/traefik.log"
level: DEBUG
My docker-compose.yml
file for WriteFreely:
version: '3'
services:
writefreely:
image: anhgelus/writefreely
restart: always
networks:
- http_proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.blog.rule=Host(`blog.anhgelus.world`)"
- "traefik.http.routers.blog.entrypoints=websecure,web"
- "traefik.http.routers.blog.tls.certResolver=anhgelus-codes_certs"
volumes:
- "./writefreely:/app/writefreely"
networks:
http_proxy:
name: http_proxy
external: true