- remove k3s.nix (1.3GB overhead unjustified for single-node) - add docker.nix (docker + arion CLI, mikl in docker group) - add caddy.nix (edge proxy, TLS via ACME staging, host-based routing) - add syncthing.nix (sync daemon + strelaysrv via systemd, /srv/syncthing) - add arion-compose.nix (forgejo first, others stubbed as TODO) - add arion flake input + nixos module - default.nix: wire up arion project as systemd service (serviceName=heather) Architecture: Caddy (host) terminates TLS, routes to host services (syncthing) and docker containers (arion, 127.0.0.1:PORT). Named volumes everywhere except silverbullet (bind /srv/syncthing/herbarium).
29 lines
1.2 KiB
Nix
29 lines
1.2 KiB
Nix
# heather — docker + arion (nix-native docker-compose)
|
|
#
|
|
# Заменило k3s (2026-07-12): k3s сжирал 1.3 GB (16% от 8 GB) на single-node
|
|
# без реальной выгоды. docker+arion даёт ~100 MB overhead и знакомую модель.
|
|
# Caddy на хосте терминирует TLS (см. ./caddy.nix), Traefik/ServiceLB не нужны.
|
|
#
|
|
# Arion: читает arion-compose.nix (nix-выражение), генерирует docker-compose,
|
|
# запускает как systemd-сервис через virtualisation.arion.projects.
|
|
# Контейнеры описаны в ./arion-compose.nix.
|
|
|
|
{ pkgs, ... }:
|
|
{
|
|
virtualisation.docker = {
|
|
enable = true;
|
|
# Хост-docker (не rootless): mikl в группе docker для `docker` CLI без sudo.
|
|
# arion-проект запускается от root через systemd (см. ниже).
|
|
};
|
|
|
|
# Arion: nix-native docker-compose. backend задаётся в default.nix
|
|
# (virtualisation.arion.backend = "docker"), проект — там же.
|
|
|
|
# mikl может управлять docker без sudo (docker group).
|
|
users.users.mikl.extraGroups = [ "docker" ];
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
docker-compose
|
|
arion
|
|
];
|
|
}
|