Mo Bhlag // Cartlann Dhigiteach

Smaointe, tionscadail agus nótaí teicniúla

Taispeáin iontrálacha leis an gclib: #nixos Taispeáin gach ceann ×

Tá cúltaca mo fhreastalaí baile NixOS athraithe agam anois, agus in ionad script shimplí laethúil, tá sé socraithe agam gach uair an chloig anois. Níl sé chomh galánta leis an gcás Mastodon a bhainistíonn mo chara – ansin bíonn léargas (snapshot) ZFS againn gach 20 nóiméad – ach tá mé sásta leis an réiteach seo freisin. Agus caithfidh mé a rá go dtaitníonn NixOS liom níos mó agus níos mó. Gan intleacht shaorga (IS), bheadh sé i bhfad ró-chasta dom é a thuiscint, ach faoin am seo is féidir liom na comhaid Nix réidh a léamh ar a laghad. Bhí mé ag smaoineamh ar an bhfreastalaí a athrú go Linux rialta, ach fad is a oibríonn sé chomh maith seo...

  1. /etc/nixos: An chumraíocht NixOS iomlán (gach comhad .nix).

  2. /opt/minecraft: Gach domhan agus sonraí de chuid an fhreastalaí Minecraft.

  3. /opt/satisfactory: Cluichí sábháilte agus cumraíocht an fhreastalaí Satisfactory.

  4. /opt/Blog: Cód foinseach agus ábhar an bhlag.

  5. /opt/ui: Comhaid UI Mastodon.

  6. /opt/audiobookshelf: Na closleabhair agus an bunachar sonraí gaolmhar.

Téann sé seo go léir chuig stóras S3 atá feistithe trí RClone.

An chumraíocht NixOS


{ config, pkgs, ... }:

{
  # Cumraíocht BorgBackup
  services.borgbackup.jobs.hourly = {
    # Conair chuig an stór sa ghléasadh S3
    repo = "/opt/S3/Backup/NixOSHomeServer_Borg";

    # Níl pasfhocal de dhíth
    encryption.mode = "none";

    # Comhbhrú chun níos mó spáis a shábháil
    compression = "auto,zstd";

    # Na conairí le cúltaca a dhéanamh orthu
    paths = [
      "/etc/nixos"
      "/opt/minecraft"
      "/opt/satisfactory"
      "/opt/Blog"
      "/opt/ui"
      "/opt/audiobookshelf"
    ];

    # Rith gach uair an chloig
    startAt = "hourly";

    # An stór a thúsú go huathoibríoch má tá sé in easnamh
    doInit = true;

    # Rialacha coinneála (Pruning)
    prune.keep = {
      within = "1d"; # Gach léargas ó na 24 uair an chloig dheireanacha
      daily = 7;
      weekly = 4;
      monthly = 12;
    };
  };

  # Cinntiú go bhfuil an gléasadh S3 réidh sula dtosaíonn Borg
  systemd.services.borgbackup-job-hourly = {
    requires = [ "rclone-s3-mount.service" ];
    after = [ "rclone-s3-mount.service" ];
  };
}

D'instáil mé mo bhlag féin — go príomha chun aithne níos fearr a chur ar #NixOS. Is ionadh é chomh simplí is a bhí sé ar fad.

Tá WriteFreely an-oiriúnach chuige seo: íosmhéid, socrú tapa, agus gan aon bhallasta gan ghá. Tá sé foirfe chun tosú go héasca agus rud éigin a fhoghlaim ag an am céanna. Tá an chumraíocht thar a bheith soiléir. Cúpla rogha socraithe, eolaire ullmhaithe, seachfhreastalaí droim ar ais os a chomhair — sin é.

Seo mar a bhreathnaíonn mo chumraíocht NixOS reatha dó:

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

  # Socrú do ghiniúint eochracha ActivityPub: teastaíonn openssl don chónaidhm
  systemd.services.writefreely.path = [ pkgs.openssl ];

  # Cruthú uathoibríoch an eolaire sonraí leis na ceadanna cearta
  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}
    }
  '';
}

Sin é go bunúsach. Déanann NixOS an-éasca é seirbhísí mar seo a chumrú go néata agus iad a choinneáil in-atáirgthe.