heather: fix arion volumes declaration + syncthing configDir perms

- arion-compose: project.name (required) + docker-compose.volumes (correct
  option, was docker-compose.raw.volumes which didn't exist)
- syncthing: tmpfiles for /var/lib/syncthing (configDir) owned by mikl,
  fixes 'mkdir /var/lib/syncthing: permission denied' when running as non-default user
This commit is contained in:
mikl 2026-07-12 12:39:26 +03:00
parent 220d1f651c
commit ebf74814bf
2 changed files with 19 additions and 3 deletions

View file

@ -20,10 +20,23 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
# Named volumes объявляются автоматически docker-compose при упоминании в # Обязательное имя проекта (COMPOSE_PROJECT_NAME). Объекты префиксуются им:
# services.<name>.service.volumes. Имена префиксуются проектом (heather_forgejo-data) # heather_forgejo-data и т.д.
# — видно в `docker volume ls`. Никаких анонимных хэшей. project.name = "heather";
# --- Named volumes (декларируем явно, никаких анонимных хэшей) ---
# docker volume create <name> при первом up. Видно в `docker volume ls`.
docker-compose.volumes = {
forgejo-data = {};
tuwunel-data = {};
tuwunel-media-cache = {};
teable-data = {};
teable-db = {};
teable-redis = {};
# jitsi-стек (когда добавим):
# jitsi-prosody-config = {};
# jitsi-jvb-config = {};
};
services = { services = {
# === Forgejo (git.iscg.dev) === # === Forgejo (git.iscg.dev) ===
# Первый сервис, proof-of-concept для цепочки arion→docker→Caddy. # Первый сервис, proof-of-concept для цепочки arion→docker→Caddy.

View file

@ -63,7 +63,10 @@
}; };
# /srv/syncthing создаём, права mikl:users (syncthing работает от mikl). # /srv/syncthing создаём, права mikl:users (syncthing работает от mikl).
# /var/lib/syncthing (configDir) — тоже под mikl, иначе syncthing не может
# mkdir (StateDirectory модуля срабатывает не всегда при не-default user).
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d /srv/syncthing 0755 mikl users -" "d /srv/syncthing 0755 mikl users -"
"d /var/lib/syncthing 0755 mikl users -"
]; ];
} }