Įsidiegiau savo asmeninį tinklaraštį – pirmiausia tam, kad geriau susipažinčiau su #NixOS. Keista, bet viskas vyko gana paprastai.

„WriteFreely“ tam puikiai tinka: minimalistiška, greitai sukonfigūruojama ir be jokio nereikalingo balasto. Puikus pasirinkimas norint tiesiog pradėti ir kartu ko nors išmokti. Konfigūracija maloniai aiški. Nustatote kelias parinktis, paruošiate katalogą, pridedate atvirkštinį įgaliotąjį serverį (reverse proxy) – ir viskas.

Štai kaip atrodo mano dabartinė „NixOS“ konfigūracija:

{ 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";
  };

  # ActivityPub raktų generavimo pataisymas: federacijai reikalingas openssl
  systemd.services.writefreely.path = [ pkgs.openssl ];

  # Automatinis duomenų katalogo sukūrimas su teisingais leidimais
  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}
    }
  '';
}

Iš esmės tai ir viskas. „NixOS“ leidžia tikrai paprastai ir švariai konfigūruoti tokias paslaugas bei užtikrinti jų atkuriamumą.