switch to plain HTML

This commit is contained in:
Tim Schubert 2023-11-13 21:51:00 +01:00
parent 0793a08c12
commit eeac83e132
Signed by: dadada
SSH key fingerprint: SHA256:bFAjFH3hR8zRBaJjzQDjc3o4jqoq5EZ87l+KXEjxIz0
29 changed files with 445 additions and 518 deletions

View file

@ -0,0 +1,123 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<title>dadada</title>
<link rel="alternate" type="application/atom+xml" href="https://dadada.li/feed.xml" title="dadada">
</head>
<body style="min-width:30em; max-width:60em; margin-left:auto; margin-right:auto">
<header>
<nav>
<a href="https://dadada.li/">dadada</a>
</nav>
</header>
<main>
<h1 id="gitlab-als-archivar">📚 Gitlab als Archivar 📔</h1>
<p>Eine kleine Spielerei zur Datensicherung.</p>
<p>🦣 <span class="citation" data-cites="dadada">@dadada</span><span
class="citation" data-cites="chaos.social">@chaos.social</span></p>
<hr />
<h2 id="ausgangslage">Ausgangslage</h2>
<p>Hochschulpolitik produziert viele Pads - Notizen - Protokolle -
Todolisten</p>
<p>Pads verschwinden unerwartet - Server tot - Niemand erinnert sich
mehr an den Link - Etherpad kann Löschfristen 🙈</p>
<p>Konsequenz:</p>
<hr />
<pre><code>🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥DATEN WEG🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥</code></pre>
<hr />
<h2 id="lösung-1-copy-paste">Lösung 1: Copy-Paste</h2>
<ul>
<li>$Person kopiert ab und zu das Pad irgendwo hin</li>
<li>$Person braucht muss dran denken, ist aber etwas verplant</li>
</ul>
<pre><code>Pad Wiki
+-------+ +-------+
|- Info | |- Info |
| ... | | ... |
|- Hüte |----&gt;|- Hüte |
| ... | | ... |
|- Ideen| |- Ideen|
| ... | | ... |
+-------+ +-------+</code></pre>
<hr />
<h2 id="lösung-2-git-und-update-script">Lösung 2: Git und
Update-Script</h2>
<ul>
<li>Pad-URLs in Datei</li>
<li>Pads als Plaintext exportieren</li>
<li>In Git einchecken</li>
</ul>
<pre><code>+------------------------+ +------+
|- http://pad.url/p/pad | | git |
|- http://pad.url/p/pad1 |----&gt;| \pad |
| ... | | \pad1|
| ... |</code></pre>
<p><a
href="https://git.fginfo.tu-bs.de/fginfo/pad-archiver/-/blob/eac632d0cc68c7a9383a334088beadf00b930284/update">Update-Script</a></p>
<hr />
<h2 id="lösung-3-ci">Lösung 3: CI</h2>
<ul>
<li>Scheduled Task führt Update-Script aus</li>
<li>Gitlab committet Änderungen automatisch</li>
</ul>
<pre><code>+--------------+ +-----------+
| pad-archiver |-----CI----&gt;| Container |
+--------------+ +-----------+
| |
|`include: lib/gitlab-ci.yml |`image: ...
v v
+-----------+ +---------------+
| pads-repo |--Scheduled-&gt;| Docker-Runner |
| |&lt;--Commits---| |
+-----------+ +---------------+</code></pre>
<p><a
href="https://git.fginfo.tu-bs.de/fginfo/pad-archiver/-/tree/eac632d0cc68c7a9383a334088beadf00b930284">CI-Config</a>
<!-- Frage: andere unkonventionelle Spielereien mit Gitlab --></p>
<hr />
<h2 id="lösung-4-rewrite-in-go">Lösung 4: Rewrite in Go</h2>
<ul>
<li>Empfehlung: go-git - Git nativ in Go
<ul>
<li>versucht kompatibel zu Gits Plumbing und Porcelain zu sein</li>
<li>wird unter Anderem von Keybase und Gitea benutzt</li>
</ul></li>
<li>LOC ist jetzt ein bisschen sehr viel mehr …</li>
</ul>
<pre><code> ,_---~~~~~----._ +--------------+
_,,_,*^____ _____``*g*\&quot;*, | THIS IS FINE |
/ __/ /&#39; ^. / \ ^@q f +--------------+
[ @f | @)) | | @)) l 0 _/ //
\`/ \~____ / __ \_____/ \ //
| _l__l_ I `
} [______] I
] | | | |
] ~ ~ |
| |
| | </code></pre>
<p><a
href="https://git.fginfo.tu-bs.de/fginfo/pad-archiver">Rewritten</a></p>
</main>
<footer>Released: 2022-12-03</footer>
</body>
</html>

View file

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<title>systemd.generator(7)</title>
<link rel="alternate" type="application/atom+xml" href="https://dadada.li/feed.xml" title="dadada">
</head>
<body style="min-width:30em; max-width:60em; margin-left:auto; margin-right:auto">
<header>
<nav>
<a href="https://dadada.li/">dadada</a>
</nav>
</header>
<main>
<h1 id="systemd.generator7">systemd.generator(7)</h1>
<p><a
href="https://www.youtube.com/watch?v=X88zHJjodFw">Recording</a></p>
<h1 id="dynamische-systeme-sind-schwierig">Dynamische Systeme sind
schwierig</h1>
<ul>
<li>➤ Devices, Mountpoints, Services, Timer möglichst als Unit</li>
<li>Transitionstechnologie für <code>/etc/fstab</code> und SysV
init-Skripte</li>
<li>Hooks für den Bootprozess (System-Update, Resume, Debug …)</li>
<li>Umgebungsvariablen setzen</li>
<li>➤ Generatoren generieren beim Boot dynamisch Units</li>
</ul>
<h1 id="calling-convention">Calling convention</h1>
<p><code># /path/to/generator normal-dir early-dir late-dir</code></p>
<ul>
<li>Generatoren sind in
<ul>
<li><code>/run/systemd/{system,user}-generators/*</code></li>
<li><code>/etc/systemd/{system,user}-generators/*</code></li>
<li><code>/usr/lib/systemd/{system,user}-generators/*</code></li>
<li><code>/usr/local/lib/systemd/{system,user}-generators/*</code></li>
</ul></li>
</ul>
<h1 id="generierte-units">Generierte Units</h1>
<ul>
<li>neu generieren mit <code>systemctl daemon-reload</code></li>
<li>generierte Units landen in
<ul>
<li><code>normal-dir</code><code>/run/systemd/generator</code></li>
<li><code>early-dir</code>
<code>/run/systemd/generator.early</code></li>
<li><code>late-dir</code>
<code>/run/systemd/generator.late</code></li>
</ul></li>
</ul>
<h1 id="templating">Templating</h1>
<ul>
<li>generierte Units dürfen auch sein
<ul>
<li>Templates</li>
<li>Instanzen von Templates (<code>getty@tty1.service</code>)</li>
</ul></li>
<li>Generatoren können auch Symlinks in <code>.wants/</code>,
<code>.target</code> und <code>.requires/</code> erstellen</li>
</ul>
<h1 id="abhängigkeiten-vermeiden">Abhängigkeiten vermeiden</h1>
<ul>
<li>kein syslog oder journal benutzen</li>
<li>keine Units starten</li>
<li>keine nicht essentiellen Dateisysteme verwenden (aber /proc, /usr,
/sys und /dev)</li>
<li>Generatoren werden parallel ausgeführt</li>
</ul>
<h1 id="performance">Performance</h1>
<p>kann Boot verlangsamen ➤ Nicht mit bash implementieren, lieber C</p>
<h1 id="debugging">Debugging</h1>
<pre><code>dir=$(mktemp -d)
SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/system-generators/systemd-fstab-generator &quot;$dir&quot; &quot;$dir&quot; &quot;$dir&quot;
find $dir</code></pre>
<ul>
<li>syslog(3) ist nicht vefügbar</li>
<li>keine Magie versuchen</li>
</ul>
<h1 id="nicht-geeignet-für">Nicht geeignet für</h1>
<ul>
<li>Ersatz von init-Skripten ➤ systemd-sysv-generator(8)</li>
<li>dynamische Konfigurationsdateien ➤ <code>ExecStartPre=</code> oder
Service mit <code>Before=</code></li>
</ul>
<h1 id="beispiele">Beispiele</h1>
<ul>
<li><p>systemd-fstab-generator(8)</p></li>
<li><p>systemd-debug-generator(8)</p></li>
<li><p>systemd-getty-generator(8)</p></li>
<li><p>systemd-sysv-generator(8)</p></li>
<li><p>systemd.environment-generator(7)</p></li>
</ul>
<h1 id="source">Source</h1>
<ul>
<li><code>man 7 systemd.generator</code></li>
</ul>
</main>
<footer>Released: 2019-03-14</footer>
</body>
</html>