nanobot: 2026-09-11 15:55:26
This commit is contained in:
@@ -84,8 +84,8 @@
|
|||||||
"originMetadata": {}
|
"originMetadata": {}
|
||||||
},
|
},
|
||||||
"state": {
|
"state": {
|
||||||
"nextRunAtMs": 1789133781832,
|
"nextRunAtMs": 1789140981844,
|
||||||
"lastRunAtMs": 1789126581821,
|
"lastRunAtMs": 1789133781834,
|
||||||
"lastStatus": "ok",
|
"lastStatus": "ok",
|
||||||
"lastError": null,
|
"lastError": null,
|
||||||
"runHistory": [
|
"runHistory": [
|
||||||
@@ -166,11 +166,17 @@
|
|||||||
"status": "ok",
|
"status": "ok",
|
||||||
"durationMs": 11,
|
"durationMs": 11,
|
||||||
"error": null
|
"error": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"runAtMs": 1789133781834,
|
||||||
|
"status": "ok",
|
||||||
|
"durationMs": 10,
|
||||||
|
"error": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"createdAtMs": 1789032980434,
|
"createdAtMs": 1789032980434,
|
||||||
"updatedAtMs": 1789126581832,
|
"updatedAtMs": 1789133781844,
|
||||||
"deleteAfterRun": false
|
"deleteAfterRun": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -197,17 +203,11 @@
|
|||||||
"originMetadata": {}
|
"originMetadata": {}
|
||||||
},
|
},
|
||||||
"state": {
|
"state": {
|
||||||
"nextRunAtMs": 1789133782309,
|
"nextRunAtMs": 1789135582310,
|
||||||
"lastRunAtMs": 1789131982309,
|
"lastRunAtMs": 1789133782310,
|
||||||
"lastStatus": "ok",
|
"lastStatus": "ok",
|
||||||
"lastError": null,
|
"lastError": null,
|
||||||
"runHistory": [
|
"runHistory": [
|
||||||
{
|
|
||||||
"runAtMs": 1789097781494,
|
|
||||||
"status": "ok",
|
|
||||||
"durationMs": 1,
|
|
||||||
"error": null
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"runAtMs": 1789099581496,
|
"runAtMs": 1789099581496,
|
||||||
"status": "ok",
|
"status": "ok",
|
||||||
@@ -321,11 +321,17 @@
|
|||||||
"status": "ok",
|
"status": "ok",
|
||||||
"durationMs": 0,
|
"durationMs": 0,
|
||||||
"error": null
|
"error": null
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"runAtMs": 1789133782310,
|
||||||
|
"status": "ok",
|
||||||
|
"durationMs": 0,
|
||||||
|
"error": null
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"createdAtMs": 1789032980437,
|
"createdAtMs": 1789032980437,
|
||||||
"updatedAtMs": 1789131982309,
|
"updatedAtMs": 1789133782310,
|
||||||
"deleteAfterRun": false
|
"deleteAfterRun": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
74
projects/devops/artifacts/podman-systemd-summary.md
Normal file
74
projects/devops/artifacts/podman-systemd-summary.md
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
# Podman + systemd — souhrn diskuse (11.9.2026)
|
||||||
|
|
||||||
|
Poznámka: toto je přehled informací a hledisek, **ne hotová rozhodnutí** —
|
||||||
|
rozhodnutí o přístupu dělá uživatel po nastudování.
|
||||||
|
|
||||||
|
## Historie: `podman generate systemd` (starý model)
|
||||||
|
|
||||||
|
- Spustíš `podman run --detach`, pak `podman generate systemd --name X`
|
||||||
|
vygeneruje `.service` unit s napevno zadrátovaným `podman start X` / `podman stop X`.
|
||||||
|
- Problémy:
|
||||||
|
- Unit je snapshot příkazové řádky — změna parametrů = ručně přepsat
|
||||||
|
unit nebo regenerovat; drift mezi realitou a unitem.
|
||||||
|
- systemd neví, co se děje — unit sleduje jen "podman start vrátil 0".
|
||||||
|
Kontejner spadne vnitřně → systemd spí, watchdog nefunguje.
|
||||||
|
- Deprecated od Podman 4.4, od 5.0 jen bugfixy. LibreChat podman blog
|
||||||
|
(8/2023) ho ještě používá — historický.
|
||||||
|
|
||||||
|
## Současný model: Quadlet (od 4.4, komfortně 5.x)
|
||||||
|
|
||||||
|
Quadlet je systemd generator:
|
||||||
|
- čte deklarativní unity z `~/.config/containers/systemd/user/` (rootless)
|
||||||
|
nebo `/etc/containers/systemd/` (rootful)
|
||||||
|
- přípony: `.container`, `.volume`, `.network`, `.pod`, `.kube`
|
||||||
|
- při `systemctl daemon-reload` generuje skutečné `.service` unity
|
||||||
|
do `/run/systemd/generator/`
|
||||||
|
|
||||||
|
Praktické rozdíly:
|
||||||
|
- Deklarativní, idempotentní — unit je zdroj pravdy; změna `Image=`/`Volume=`
|
||||||
|
→ `daemon-reload` + `restart` a podman kontejner rekne podle unitu.
|
||||||
|
- Životní cyklus v systemd — generovaný service spouští `podman run`
|
||||||
|
na popředí, ne detached; kontejner umře → systemd to vidí → `Restart=on-failure`
|
||||||
|
funguje opravdu, `journalctl -u`, `systemctl status`, závislosti
|
||||||
|
(`Requires=`/`After=`).
|
||||||
|
- Volumes a sítě jsou taky unity (`.network`, `.volume`) — v unitu se
|
||||||
|
odkazuješ `Network=librechat.network`, žádné ruční `podman network create`.
|
||||||
|
- Auto-update: quadlet defaultně labeluje `io.containers.autoupdate=registry`;
|
||||||
|
`podman auto-update` (typicky timer) porovná digest, pulzne a restartne.
|
||||||
|
|
||||||
|
## Třetí cesta: `podman compose` v systemd oneshotu
|
||||||
|
|
||||||
|
- `Type=oneshot` + `ExecStart=podman compose up -d` funguje, ale systemd
|
||||||
|
vidí jen wrapper proces — restart-per-container, závislosti a logy
|
||||||
|
per-service zmizí, celý stack = jedna monolitní jednotka.
|
||||||
|
|
||||||
|
## Hlediska pro LibreChat (ne rozhodnutí)
|
||||||
|
|
||||||
|
- Rootless vyžaduje `loginctl enable-linger` (běh bez loginu); port > 1024
|
||||||
|
bez proxy OK (3080).
|
||||||
|
- DNS jména mezi kontejnery = `ContainerName=` z quadlet unitů, ne názvy
|
||||||
|
compose služeb → `MONGO_URI` by mířila na `librechat-mongodb`.
|
||||||
|
- Verze podmana v distro repu: Debian/Ubuntu mají staré (4.3.x), quadlet
|
||||||
|
user unity od 4.4 — zkontrolovat `podman --version` před nasazením.
|
||||||
|
|
||||||
|
## Zdroje k prostudování
|
||||||
|
|
||||||
|
- https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html — kompletní reference quadlet direktiv
|
||||||
|
- https://docs.podman.io/en/latest/markdown/podman-quadlet.1.html — přehled generatoru, search paths
|
||||||
|
- https://www.redhat.com/en/blog/quadlet-podman — motivace, srovnání s generate systemd
|
||||||
|
- https://podman.io/docs/podman-installation — verze v distro repozitářích
|
||||||
|
- https://docs.podman.io/en/latest/markdown/podman-auto-update.1.html — auto-update přes registry labely
|
||||||
|
- https://www.librechat.ai/blog/2023-08-18_podman — historický (generate systemd), užitečný co kontejnery potřebují
|
||||||
|
|
||||||
|
## LibreChat zdroje
|
||||||
|
|
||||||
|
- https://www.librechat.ai/docs/local/docker — základní compose instalace
|
||||||
|
- https://www.librechat.ai/docs/remote/docker_linux — remote Linux detaily, secrets (CREDS_KEY/CREDS_IV/JWT)
|
||||||
|
- https://www.librechat.ai/docs/configuration/dotenv — reference .env proměnných
|
||||||
|
- https://www.librechat.ai/docs/configuration/librechat_yaml — custom endpointy (Ollama/litellm přes baseURL)
|
||||||
|
|
||||||
|
Připravený návrh unity (před nastudováním, ke zvážení):
|
||||||
|
`artifacts/librechat-podman/` v tomto projektu — README + librechat.network
|
||||||
|
+ librechat.container + librechat-mongodb.container + librechat-meilisearch.container.
|
||||||
|
Minimal stack api+mongo (RAG/vectordb/admin-panel vynechány kvůli RAM —
|
||||||
|
důvod zrušení OpenWebUI); meilisearch volitelný pro fulltext.
|
||||||
2
projects/devops/memory.md
Normal file
2
projects/devops/memory.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- 2026-09-11: Projekt založen. Uživatel ho chce jako úložiště pro admin/root poznámky — infrastruktura, servery, provoz, podobně. Záměrně volné zaměření, strukturu a upřesnění odkládá na později. prompt.md naplněn základním homelab kontextem (Proxmox cluster, wood/pivo/nvidia/devlin.hell, Zabbix, zálohy), state.md obsahuje výchozí „kde to je / co dál".
|
||||||
|
- 2026-09-11: Presun LibreChat podman topicu z projektu ai do devops (tematicky patri sem). Artefakt librechat-podman presunut z projects/ai/artifacts/ do projects/devops/artifacts/ (README + quadlet unity). Kontext: OpenWebUI zakazano (RAM problemy), jako nahraada LibreChat; uzivatel si tema nejdřív nacte sam a rozhodne o pristupu — agent dodava info, nereshi rozhodnuti. Soucasti presunu i souhrn diskuse o podman+systemd (generate systemd deprecated od 4.4, quadlet jako hlediska, ne hotova volba).
|
||||||
14
projects/devops/prompt.md
Normal file
14
projects/devops/prompt.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# DevOps / infrastruktura
|
||||||
|
|
||||||
|
## Účel
|
||||||
|
Ad-hoc admin/root poznámky: infrastruktura, servery, provoz, věci k vyřešení.
|
||||||
|
|
||||||
|
## Kontext
|
||||||
|
- Homelab: Proxmox cluster, GPU host nvidia.hell (Ollama), servery wood.hell, pivo.hell, devlin.hell, LXC kontejnery
|
||||||
|
- Samostatný Linux server s Dockerem (vedle Proxmox clusteru)
|
||||||
|
- Monitoring přes Zabbix
|
||||||
|
- Zálohování: wood.hell → pivo.hell (recursive)
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
- Uživatel bude strukturu a zaměření projektu postupně upřesňovat — projekt je teď nový a záměrně volný.
|
||||||
|
- Zapisovat sem poznámky o infrastruktuře, provozu a admin úkolech.
|
||||||
12
projects/devops/state.md
Normal file
12
projects/devops/state.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
timestamp: draft
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project devops
|
||||||
|
|
||||||
|
## Kde to je
|
||||||
|
- Projekt založen jako volný prostor pro admin/root poznámky o infrastruktuře a provozu.
|
||||||
|
- Struktura a zaměření se upřesní postupně — žádný konkrétní úkol ještě není v běhu.
|
||||||
|
|
||||||
|
## Co dál
|
||||||
|
- Uživatel bude psát poznámky; podle obsahu doladit strukturu projektu.
|
||||||
Reference in New Issue
Block a user