Jag har installerat en egen blogg — främst för att lära känna #NixOS bättre. Överraskande nog gick det hela ganska smidigt.
WriteFreely passar riktigt bra för detta: minimalistiskt, snabbt att sätta upp och utan onödigt krångel. Perfekt för att bara komma igång och lära sig något på vägen. Konfigurationen är behagligt överskådlig. Några inställningar, förbereda mappen, en reverse proxy framför — klart.
Så här ser min nuvarande NixOS-konfiguration ut för detta:
{ config, pkgs, ... }:
{
services.writefreely = {
enable = true;
host = "blog.burningboard.org";
settings = {
server = {
port = 8080;
min_log_level = "debug";
};
app = {
host = "https://blog.burningboard.org";
single_user = true;
landing = "/read";
wf_modesty = true;
federation = true;
public_stats = true;
theme = "write";
};
};
stateDir = "/opt/writefreely";
};
# Fix för generering av ActivityPub-nycklar: Federation kräver openssl
systemd.services.writefreely.path = [ pkgs.openssl ];
# Skapa datamappen automatiskt med rätt behörigheter
systemd.tmpfiles.rules = [
"d /opt/writefreely 0700 writefreely writefreely -"
];
services.caddy.virtualHosts."blog.burningboard.org".extraConfig = ''
reverse_proxy 127.0.0.1:8080 {
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
}
'';
}
Det var i stort sett allt. NixOS gör det verkligen enkelt att konfigurera sådana tjänster på ett snyggt sätt och hålla dem reproducerbara.