मैंने अपना खुद का ब्लॉग इंस्टॉल किया है — मुख्य रूप से #NixOS को बेहतर ढंग से समझने के लिए। आश्चर्यजनक रूप से, यह सब काफी सरल था।

WriteFreely इसके लिए वास्तव में अच्छा है: न्यूनतम, सेटअप करने में तेज़ और बिना किसी फालतू तामझाम के। बस शुरुआत करने और साथ-साथ कुछ सीखने के लिए यह एकदम सही है। इसका कॉन्फ़िगरेशन काफी स्पष्ट है। कुछ विकल्प सेट किए, डायरेक्टरी तैयार की, रिवर्स प्रॉक्सी लगाया — और बस हो गया।

इसके लिए मेरा वर्तमान NixOS कॉन्फ़िगरेशन कुछ इस तरह दिखता है:

{ 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 की जनरेशन के लिए फिक्स: फेडरेशन के लिए openssl की आवश्यकता है
  systemd.services.writefreely.path = [ pkgs.openssl ];

  # सही अनुमतियों (permissions) के साथ डेटा डायरेक्टरी का स्वचालित निर्माण
  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}
    }
  '';
}

बस इतना ही था। NixOS ऐसी सेवाओं को सफाई से कॉन्फ़िगर करना और उन्हें प्रतिलिपि योग्य (reproducible) बनाए रखना वास्तव में आसान बनाता है।