old-school - Bootstrapping

2025-04-09

old-school zugreifbar machen đź”—

Syncthing einrichten đź”—

old-school wird via Syncthing zwischen Geräten, auf denen es editiert werden können soll 'verteilt' - verändert ein Teilnehmer eine Datei innerhalb eines Blog-Ordners, werden diese Änderungen untereinander synchronisiert und auf dem om-office.de-Server verfügbar gemacht.

Damit man mitmachen kann, braucht man ersteinmal Syncthing

Installation unter Android đź”—

Installation unter NixOS đź”—

Syncthing installieren, entweder durch hinzufĂĽgen in /etc/nixos/configuration.nix:

  environment.systemPackages = with pkgs; [
    vim
    ..
    ..
    syncthing
  ];

Änderungen anwenden

sudo nixos-rebuild switch

oder

nix profile install nixpkgs#syncthing

Das hat bei mir funktioniert, aber erst nachdem ich in /etc/nixos/configuration.nix folgende Zeile eingefĂĽgt hatte (in den groĂźen {}-Block):

  nix.settings.experimental-features = [ "nix-command" "flakes" ];

AnschlieĂźend muss noch der syncthing-Service eingerichtet und gestartet werden:

# aktivieren (-> beim Booten automatisch starten)  
[me@nixos:~]$ systemctl --user enable syncthing.service
Created symlink '/home/me/.config/systemd/user/default.target.wants/syncthing.service' → '/home/me/.nix-profile/share/systemd/user/syncthing.service'.

# starten (weil wir jetzt nicht extra booten wollen)
[me@nixos:~]$ systemctl --user start syncthing.service

# check: sollte 'active (running)' sein
[me@nixos:~]$ systemctl --user status syncthing.service
â—Ź syncthing.service - Syncthing - Open Source Continuous File Synchronization
     Loaded: loaded (/home/me/.nix-profile/share/systemd/user/syncthing.service; enabled; preset: ignored)
     Active: active (running) since Wed 2025-04-09 12:23:58 CEST; 5s ago
 Invocation: 78e2904cf7da451680ac7defd3bcf51b
       Docs: man:syncthing(1)
   Main PID: 32134 (syncthing)
      Tasks: 21 (limit: 38135)
     Memory: 24.9M (peak: 25.5M)
        CPU: 588ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/syncthing.service
             ├─32134 /nix/store/pia7hvxmpnszf59b5l1gfmzmyclpvazm-syncthing-1.29.3/bin/syncthing serve --no-browser --no-restart --logflags=0
             └─32144 /nix/store/pia7hvxmpnszf59b5l1gfmzmyclpvazm-syncthing-1.29.3/bin/syncthing serve --no-browser --no-restart --logflags=0

Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Using discovery mechanism: IPv6 local multicast discovery on address [ff12::8384]:21027
Apr 09 12:23:58 nixos syncthing[32134]: 2025/04/09 12:23:58 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details.
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: TCP listener ([::]:22000) starting
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: QUIC listener ([::]:22000) starting
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: GUI and API listening on 127.0.0.1:8384
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: My name is "nixos"
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Ready to synchronize "Default Folder" (default) (sendreceive)
Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)

Hat das funktioniert, ist lokal nun die Syncthing-GUI verfĂĽgbar: http://localhost:8384/

Syncthing konfigurieren đź”—

Device-IDs bekanntmachen đź”—

Alle Geräte, die untereinander Ordner teilen sollen müssen sich 'kennen'. In Syncthing bedeutet das, dass die device-IDs untereinander bekannt gemacht werden.

Ordner-Struktur đź”—

[me@nixos:~/_SHARED]$ tree
.
└── old_frans
    ├── halde.md
    └── old-school
        ├── setup.md                    # diese Datei
        ├── nixos.md                    # ein paar NixOS-Mitschriften
        ├── old-school.json             # blog-setup
        ├── old-school_template.html    # das html-template für jede Seite
        ├── index.html                  # Generator für den toplevel-Index
        └── fix-style.css               # Style-Sheet

Normalerweise reicht es, Bloginhalte in den .md-Dateien anzupassen und die Dateien zu speichern. Sie werden dann automatisch synchronisiert und der Blog angepasst.

Soll hingegen etwas am Aussehen oder der Blog-Struktur verändert werden, können auch old-school.json, old-school_template.html, index.html, und fix-style.css verändert werden.

Den Blog lokal laufen lassen đź”—

Um Auswirkungen auf Änderungen schneller sehen zu können, und um auf Fehlermeldungen reagieren zu können, kann es helfen, die Blog-Software lokal in einem Terminal auszuführen.

Wenn ich mal Lust dazu habe, erkläre ich das hier.

Page source # `old-school` zugreifbar machen ## Syncthing einrichten `old-school` wird via Syncthing zwischen Geräten, auf denen es editiert werden können soll 'verteilt' - verändert ein Teilnehmer eine Datei innerhalb eines Blog-Ordners, werden diese Änderungen untereinander synchronisiert und auf dem `om-office.de`-Server verfügbar gemacht. Damit man mitmachen kann, braucht man ersteinmal Syncthing ### Installation unter Android * [ ] `syncthing-fork` auf dem Smartphone einrichten - Download/Install via F-Droid - Geräte via IDs registrieren - Folder teilen * [ ] `markor` (praktischer Editor) installieren - Download/Install via F-Droid ### Installation unter NixOS Syncthing installieren, entweder durch hinzufügen in `/etc/nixos/configuration.nix`: ``` environment.systemPackages = with pkgs; [ vim .. .. syncthing ]; ``` Änderungen anwenden ```sh sudo nixos-rebuild switch ``` oder ```sh nix profile install nixpkgs#syncthing ``` Das hat bei mir funktioniert, aber erst nachdem ich in `/etc/nixos/configuration.nix` folgende Zeile eingefügt hatte (in den großen {}-Block): ```sh nix.settings.experimental-features = [ "nix-command" "flakes" ]; ``` Anschließend muss noch der `syncthing`-Service eingerichtet und gestartet werden: ```sh # aktivieren (-> beim Booten automatisch starten) [me@nixos:~]$ systemctl --user enable syncthing.service Created symlink '/home/me/.config/systemd/user/default.target.wants/syncthing.service' → '/home/me/.nix-profile/share/systemd/user/syncthing.service'. # starten (weil wir jetzt nicht extra booten wollen) [me@nixos:~]$ systemctl --user start syncthing.service # check: sollte 'active (running)' sein [me@nixos:~]$ systemctl --user status syncthing.service ● syncthing.service - Syncthing - Open Source Continuous File Synchronization Loaded: loaded (/home/me/.nix-profile/share/systemd/user/syncthing.service; enabled; preset: ignored) Active: active (running) since Wed 2025-04-09 12:23:58 CEST; 5s ago Invocation: 78e2904cf7da451680ac7defd3bcf51b Docs: man:syncthing(1) Main PID: 32134 (syncthing) Tasks: 21 (limit: 38135) Memory: 24.9M (peak: 25.5M) CPU: 588ms CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/syncthing.service ├─32134 /nix/store/pia7hvxmpnszf59b5l1gfmzmyclpvazm-syncthing-1.29.3/bin/syncthing serve --no-browser --no-restart --logflags=0 └─32144 /nix/store/pia7hvxmpnszf59b5l1gfmzmyclpvazm-syncthing-1.29.3/bin/syncthing serve --no-browser --no-restart --logflags=0 Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Using discovery mechanism: IPv6 local multicast discovery on address [ff12::8384]:21027 Apr 09 12:23:58 nixos syncthing[32134]: 2025/04/09 12:23:58 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 7168 kiB, got: 416 kiB). See https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes for details. Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: TCP listener ([::]:22000) starting Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: QUIC listener ([::]:22000) starting Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: GUI and API listening on 127.0.0.1:8384 Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Access the GUI via the following URL: http://127.0.0.1:8384/ Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: My name is "nixos" Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Ready to synchronize "Default Folder" (default) (sendreceive) Apr 09 12:23:58 nixos syncthing[32134]: [S42FQ] INFO: Completed initial scan of sendreceive folder "Default Folder" (default) ``` Hat das funktioniert, ist lokal nun die Syncthing-GUI verfügbar: http://localhost:8384/ ## Syncthing konfigurieren - remove default folder - optional set password - optional passphrase kopieren - default folder - copy device ID ## Device-IDs bekanntmachen Alle Geräte, die untereinander Ordner teilen sollen müssen sich 'kennen'. In Syncthing bedeutet das, dass die device-IDs untereinander bekannt gemacht werden. ## Ordner-Struktur ``` [me@nixos:~/_SHARED]$ tree . └── old_frans ├── halde.md └── old-school ├── setup.md # diese Datei ├── nixos.md # ein paar NixOS-Mitschriften ├── old-school.json # blog-setup ├── old-school_template.html # das html-template für jede Seite ├── index.html # Generator für den toplevel-Index └── fix-style.css # Style-Sheet ``` Normalerweise reicht es, Bloginhalte in den `.md`-Dateien anzupassen und die Dateien zu speichern. Sie werden dann automatisch synchronisiert und der Blog angepasst. Soll hingegen etwas am Aussehen oder der Blog-Struktur verändert werden, können auch `old-school.json`, `old-school_template.html`, `index.html`, und `fix-style.css` verändert werden. ## Den Blog lokal laufen lassen Um Auswirkungen auf Änderungen schneller sehen zu können, und um auf Fehlermeldungen reagieren zu können, kann es helfen, die Blog-Software lokal in einem Terminal auszuführen. Wenn ich mal Lust dazu habe, erkläre ich das hier.