From ae524d8850a45d2bc586ee3e35afa0e46fd0a4b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Mass=C3=A9?= Date: Wed, 25 Mar 2026 16:15:09 +0000 Subject: [PATCH] reorganization --- README.md | 36 +++++++-------- butane.blocklist | 12 ----- Makefile => cookbooks/Makefile | 0 {base => cookbooks/base}/Makefile | 5 ++- {base => cookbooks/base}/README.md | 0 .../base}/config/examples/fastfetch.env | 0 .../base}/config/fastfetch.jsonc | 0 .../base}/config/install-fastfetch.sh | 0 .../base}/install-fastfetch.service | 0 {base => cookbooks/base}/overlay.bu | 0 .../base}/profile.d/fastfetch.sh | 0 ...pm-ostree-install-qemu-guest-agent.service | 0 {base => cookbooks/base}/tmpfiles.d/base.conf | 0 .../base}/var-lib-virtiofs-data.mount | 0 {gitea => cookbooks/gitea}/Makefile | 4 +- {gitea => cookbooks/gitea}/README.md | 0 .../gitea}/config/examples/app.ini | 0 .../gitea}/config/examples/config.env | 0 {gitea => cookbooks/gitea}/gitea.container | 0 {gitea => cookbooks/gitea}/gitea.target | 0 .../gitea}/other/postgresql/gitea.sql | 0 .../gitea}/other/traefik/gitea.yaml | 0 {gitea => cookbooks/gitea}/overlay.bu | 0 .../gitea}/tmpfiles.d/gitea.conf | 0 {keycloak => cookbooks/keycloak}/Makefile | 5 +-- {keycloak => cookbooks/keycloak}/README.md | 0 .../keycloak}/config/container/Containerfile | 0 .../keycloak}/config/examples/config.env | 0 .../keycloak}/keycloak-build.timer | 0 .../keycloak}/keycloak.build | 0 .../keycloak}/keycloak.container | 0 .../keycloak}/keycloak.target | 0 .../keycloak}/other/postgresql/keycloak.sql | 0 .../keycloak}/other/traefik/keycloak.yaml | 0 {keycloak => cookbooks/keycloak}/overlay.bu | 0 {lego => cookbooks/lego}/Makefile | 4 +- {lego => cookbooks/lego}/README.md | 0 .../lego}/config/examples/config.env | 0 .../lego}/config/hooks/flag-as-renewed.sh | 0 {lego => cookbooks/lego}/lego-renew.container | 0 {lego => cookbooks/lego}/lego-renew.timer | 0 {lego => cookbooks/lego}/lego-run.container | 0 {lego => cookbooks/lego}/lego.target | 0 {lego => cookbooks/lego}/overlay.bu | 0 {miniflux => cookbooks/miniflux}/Makefile | 5 +-- {miniflux => cookbooks/miniflux}/README.md | 0 .../miniflux}/config/examples/miniflux.conf | 0 .../miniflux}/miniflux.container | 0 .../miniflux}/miniflux.target | 0 .../miniflux}/other/postgresql/miniflux.sql | 0 .../miniflux}/other/traefik/miniflux.yaml | 0 {miniflux => cookbooks/miniflux}/overlay.bu | 0 {nextcloud => cookbooks/nextcloud}/Makefile | 4 +- {nextcloud => cookbooks/nextcloud}/README.md | 0 .../nextcloud}/config/custom-noinit.sh | 0 .../nextcloud}/config/custom-post.sh | 0 .../nextcloud}/config/custom-pre.sh | 0 .../nextcloud}/config/examples/collabora.env | 0 .../nextcloud}/config/examples/config.env | 0 .../nextcloud}/config/nginx.conf | 0 .../nextcloud}/config/redis.conf | 0 .../nextcloud}/config/www.conf | 0 .../nextcloud}/nextcloud-app.container | 0 .../nextcloud}/nextcloud-collabora.container | 0 .../nextcloud}/nextcloud-cron.container | 0 .../nextcloud}/nextcloud-cron.timer | 0 .../nextcloud}/nextcloud-init.container | 0 .../nextcloud}/nextcloud-nginx.container | 0 .../nextcloud}/nextcloud-redis.container | 0 .../nextcloud}/nextcloud-upgrade.container | 0 .../nextcloud}/nextcloud.target | 0 .../nextcloud}/other/postgresql/nextcloud.sql | 0 .../nextcloud}/other/traefik/collabora.yaml | 0 .../nextcloud}/other/traefik/nextcloud.yaml | 0 {nextcloud => cookbooks/nextcloud}/overlay.bu | 0 .../sysctl.d/examples/nextcloud.conf | 0 .../nextcloud}/tests/witness.txt | 0 .../nextcloud}/tmpfiles.d/nextcloud.conf | 0 {nginx => cookbooks/nginx}/Makefile | 4 +- {nginx => cookbooks/nginx}/README.md | 0 .../nginx}/config/examples/config.env | 0 .../nginx}/nginx-init.container | 0 .../nginx}/nginx-server.container | 0 .../nginx}/nginx-update.container | 0 {nginx => cookbooks/nginx}/nginx-update.timer | 0 {nginx => cookbooks/nginx}/nginx.target | 0 {nginx => cookbooks/nginx}/website/index.html | 0 {postgresql => cookbooks/postgresql}/Makefile | 3 +- .../postgresql}/README.md | 0 .../postgresql}/config/backup.sh | 0 .../postgresql}/config/examples/config.env | 0 .../postgresql}/config/init.sh | 0 .../postgresql}/config/upgrade.sh | 0 {postgresql => cookbooks/postgresql}/hooks.mk | 0 .../postgresql}/overlay.bu | 0 .../postgresql}/postgresql-backup.container | 0 .../postgresql}/postgresql-backup.timer | 0 .../postgresql}/postgresql-init.container | 0 .../postgresql-pgautoupgrade.image | 0 .../postgresql}/postgresql-server.container | 0 .../postgresql}/postgresql-set-major.service | 0 .../postgresql}/postgresql-upgrade.container | 0 .../postgresql}/postgresql.image | 0 .../postgresql}/postgresql.target | 0 .../sysctl.d/examples/postgresql.conf | 0 .../postgresql}/tests/__init__.py | 0 .../postgresql}/tests/conftest.py | 0 .../postgresql}/tests/helpers.py | 0 .../postgresql}/tests/test_backup.py | 0 .../postgresql}/tests/test_install.py | 0 .../postgresql}/tests/test_recovery.py | 0 .../postgresql}/tests/test_upgrade.py | 0 .../postgresql}/tmpfiles.d/postgresql.conf | 0 cookbooks/qemu-user-static/Makefile | 2 + .../qemu-user-static}/README.md | 0 .../config/container/Containerfile | 0 .../config/container/container-entrypoint | 0 .../qemu-user-static-build.timer | 0 .../qemu-user-static}/qemu-user-static.build | 0 .../qemu-user-static.container | 0 .../qemu-user-static}/qemu-user-static.target | 0 .../restic-server}/Makefile | 4 +- .../restic-server}/README.md | 0 .../restic-server}/other/traefik/restic.yaml | 0 .../restic-server}/overlay.bu | 0 .../restic-server}/restic-server.container | 0 .../tmpfiles.d/restic-server.conf | 0 {samba => cookbooks/samba}/Makefile | 4 +- {samba => cookbooks/samba}/README.md | 0 .../samba}/config/container/Containerfile | 0 .../config/container/container-entrypoint | 0 .../config/examples/smb.conf.d/10-shares.conf | 0 .../samba}/config/smb.conf.d/00-global.conf | 0 {samba => cookbooks/samba}/hooks.mk | 0 {samba => cookbooks/samba}/samba-build.timer | 0 {samba => cookbooks/samba}/samba.build | 0 {samba => cookbooks/samba}/samba.container | 0 {samba => cookbooks/samba}/samba.target | 0 .../samba}/tmpfiles.d/samba.conf | 0 {seedbox => cookbooks/seedbox}/Makefile | 5 +-- {seedbox => cookbooks/seedbox}/README.md | 0 .../seedbox}/flaresolverr.container | 0 .../seedbox}/jellyfin.container | 0 .../seedbox}/lidarr.container | 0 .../seedbox}/other/samba/10-shares.conf | 0 .../seedbox}/other/traefik/jellyfin.yaml | 0 .../seedbox}/other/traefik/lidarr.yaml | 0 .../seedbox}/other/traefik/prowlarr.yaml | 0 .../seedbox}/other/traefik/qbittorrent.yaml | 0 .../seedbox}/other/traefik/radarr.yaml | 0 .../seedbox}/other/traefik/sonarr.yaml | 0 {seedbox => cookbooks/seedbox}/overlay.bu | 0 .../seedbox}/prowlarr.container | 0 .../seedbox}/qbittorrent.container | 0 .../seedbox}/radarr.container | 0 {seedbox => cookbooks/seedbox}/seedbox.target | 0 .../seedbox}/sonarr.container | 0 .../seedbox}/sysctl.d/seedbox.conf | 0 .../seedbox}/tmpfiles.d/seedbox.conf | 0 {traefik => cookbooks/traefik}/Makefile | 5 +-- {traefik => cookbooks/traefik}/README.md | 0 .../examples/conf.d/itix-middlewares.yaml | 0 .../traefik}/config/examples/conf.d/ping.yaml | 0 .../traefik}/config/examples/itix-admins.txt | 0 .../traefik}/config/examples/itix-users.txt | 0 .../traefik}/config/traefik.yaml | 0 {traefik => cookbooks/traefik}/hooks.mk | 0 {traefik => cookbooks/traefik}/overlay.bu | 0 .../traefik}/traefik.container | 0 {traefik => cookbooks/traefik}/traefik.target | 0 {unifi => cookbooks/unifi}/Makefile | 4 +- {unifi => cookbooks/unifi}/README.md | 0 .../unifi}/config/examples/config.env | 0 .../unifi}/config/examples/init-mongo.js | 0 {unifi => cookbooks/unifi}/overlay.bu | 0 .../unifi}/tmpfiles.d/unifi.conf | 0 .../unifi}/unifi-app.container | 0 .../unifi}/unifi-mongo.container | 0 {unifi => cookbooks/unifi}/unifi.target | 0 .../vaultwarden}/Makefile | 5 +-- .../vaultwarden}/README.md | 0 .../vaultwarden}/config/examples/config.env | 0 .../other/postgresql/vaultwarden.sql | 0 .../other/traefik/vaultwarden.yaml | 0 .../vaultwarden}/overlay.bu | 0 .../vaultwarden}/tmpfiles.d/vaultwarden.conf | 0 .../vaultwarden}/vaultwarden.container | 0 .../vaultwarden}/vaultwarden.target | 0 {vmagent => cookbooks/vmagent}/Makefile | 3 +- {vmagent => cookbooks/vmagent}/README.md | 0 .../config/examples/conf.d/remotewrite.token | 0 .../config/examples/vmagent.local.env | 0 .../vmagent}/config/vmagent.global.env | 0 {vmagent => cookbooks/vmagent}/overlay.bu | 0 .../vmagent}/vmagent.container | 0 {vsftpd => cookbooks/vsftpd}/Makefile | 5 +-- {vsftpd => cookbooks/vsftpd}/README.md | 0 .../vsftpd}/config/container/Containerfile | 0 .../config/container/container-entrypoint | 0 .../vsftpd}/config/container/vsftpd-virtual | 0 .../examples/vsftpd.conf.d/local-users.conf | 0 .../config/examples/vsftpd.conf.d/tls.conf | 0 .../examples/vsftpd.conf.d/virtual-users.conf | 0 .../vsftpd}/config/vsftpd.conf.d/global.conf | 0 {vsftpd => cookbooks/vsftpd}/overlay.bu | 0 .../vsftpd}/tmpfiles.d/vsftpd.conf | 0 .../vsftpd}/vsftpd-build.timer | 0 .../vsftpd-load-renewed-certificate.service | 0 {vsftpd => cookbooks/vsftpd}/vsftpd.build | 0 {vsftpd => cookbooks/vsftpd}/vsftpd.container | 0 {vsftpd => cookbooks/vsftpd}/vsftpd.target | 0 TESTS.md => docs/TESTS.md | 0 pyproject.toml | 2 +- qemu-user-static/Makefile | 2 - .../cloud-init.dev.yaml | 0 common.mk => scripts/common.mk | 45 ++++++++++--------- create-dev-vm.sh => scripts/create-dev-vm.sh | 0 .../default-butane-spec.sh | 0 .../generate-butane-spec.sh | 0 219 files changed, 73 insertions(+), 95 deletions(-) delete mode 100644 butane.blocklist rename Makefile => cookbooks/Makefile (100%) rename {base => cookbooks/base}/Makefile (86%) rename {base => cookbooks/base}/README.md (100%) rename {base => cookbooks/base}/config/examples/fastfetch.env (100%) rename {base => cookbooks/base}/config/fastfetch.jsonc (100%) rename {base => cookbooks/base}/config/install-fastfetch.sh (100%) rename {base => cookbooks/base}/install-fastfetch.service (100%) rename {base => cookbooks/base}/overlay.bu (100%) rename {base => cookbooks/base}/profile.d/fastfetch.sh (100%) rename {base => cookbooks/base}/rpm-ostree-install-qemu-guest-agent.service (100%) rename {base => cookbooks/base}/tmpfiles.d/base.conf (100%) rename {base => cookbooks/base}/var-lib-virtiofs-data.mount (100%) rename {gitea => cookbooks/gitea}/Makefile (76%) rename {gitea => cookbooks/gitea}/README.md (100%) rename {gitea => cookbooks/gitea}/config/examples/app.ini (100%) rename {gitea => cookbooks/gitea}/config/examples/config.env (100%) rename {gitea => cookbooks/gitea}/gitea.container (100%) rename {gitea => cookbooks/gitea}/gitea.target (100%) rename {gitea => cookbooks/gitea}/other/postgresql/gitea.sql (100%) rename {gitea => cookbooks/gitea}/other/traefik/gitea.yaml (100%) rename {gitea => cookbooks/gitea}/overlay.bu (100%) rename {gitea => cookbooks/gitea}/tmpfiles.d/gitea.conf (100%) rename {keycloak => cookbooks/keycloak}/Makefile (77%) rename {keycloak => cookbooks/keycloak}/README.md (100%) rename {keycloak => cookbooks/keycloak}/config/container/Containerfile (100%) rename {keycloak => cookbooks/keycloak}/config/examples/config.env (100%) rename {keycloak => cookbooks/keycloak}/keycloak-build.timer (100%) rename {keycloak => cookbooks/keycloak}/keycloak.build (100%) rename {keycloak => cookbooks/keycloak}/keycloak.container (100%) rename {keycloak => cookbooks/keycloak}/keycloak.target (100%) rename {keycloak => cookbooks/keycloak}/other/postgresql/keycloak.sql (100%) rename {keycloak => cookbooks/keycloak}/other/traefik/keycloak.yaml (100%) rename {keycloak => cookbooks/keycloak}/overlay.bu (100%) rename {lego => cookbooks/lego}/Makefile (76%) rename {lego => cookbooks/lego}/README.md (100%) rename {lego => cookbooks/lego}/config/examples/config.env (100%) rename {lego => cookbooks/lego}/config/hooks/flag-as-renewed.sh (100%) rename {lego => cookbooks/lego}/lego-renew.container (100%) rename {lego => cookbooks/lego}/lego-renew.timer (100%) rename {lego => cookbooks/lego}/lego-run.container (100%) rename {lego => cookbooks/lego}/lego.target (100%) rename {lego => cookbooks/lego}/overlay.bu (100%) rename {miniflux => cookbooks/miniflux}/Makefile (77%) rename {miniflux => cookbooks/miniflux}/README.md (100%) rename {miniflux => cookbooks/miniflux}/config/examples/miniflux.conf (100%) rename {miniflux => cookbooks/miniflux}/miniflux.container (100%) rename {miniflux => cookbooks/miniflux}/miniflux.target (100%) rename {miniflux => cookbooks/miniflux}/other/postgresql/miniflux.sql (100%) rename {miniflux => cookbooks/miniflux}/other/traefik/miniflux.yaml (100%) rename {miniflux => cookbooks/miniflux}/overlay.bu (100%) rename {nextcloud => cookbooks/nextcloud}/Makefile (98%) rename {nextcloud => cookbooks/nextcloud}/README.md (100%) rename {nextcloud => cookbooks/nextcloud}/config/custom-noinit.sh (100%) rename {nextcloud => cookbooks/nextcloud}/config/custom-post.sh (100%) rename {nextcloud => cookbooks/nextcloud}/config/custom-pre.sh (100%) rename {nextcloud => cookbooks/nextcloud}/config/examples/collabora.env (100%) rename {nextcloud => cookbooks/nextcloud}/config/examples/config.env (100%) rename {nextcloud => cookbooks/nextcloud}/config/nginx.conf (100%) rename {nextcloud => cookbooks/nextcloud}/config/redis.conf (100%) rename {nextcloud => cookbooks/nextcloud}/config/www.conf (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-app.container (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-collabora.container (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-cron.container (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-cron.timer (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-init.container (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-nginx.container (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-redis.container (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud-upgrade.container (100%) rename {nextcloud => cookbooks/nextcloud}/nextcloud.target (100%) rename {nextcloud => cookbooks/nextcloud}/other/postgresql/nextcloud.sql (100%) rename {nextcloud => cookbooks/nextcloud}/other/traefik/collabora.yaml (100%) rename {nextcloud => cookbooks/nextcloud}/other/traefik/nextcloud.yaml (100%) rename {nextcloud => cookbooks/nextcloud}/overlay.bu (100%) rename {nextcloud => cookbooks/nextcloud}/sysctl.d/examples/nextcloud.conf (100%) rename {nextcloud => cookbooks/nextcloud}/tests/witness.txt (100%) rename {nextcloud => cookbooks/nextcloud}/tmpfiles.d/nextcloud.conf (100%) rename {nginx => cookbooks/nginx}/Makefile (65%) rename {nginx => cookbooks/nginx}/README.md (100%) rename {nginx => cookbooks/nginx}/config/examples/config.env (100%) rename {nginx => cookbooks/nginx}/nginx-init.container (100%) rename {nginx => cookbooks/nginx}/nginx-server.container (100%) rename {nginx => cookbooks/nginx}/nginx-update.container (100%) rename {nginx => cookbooks/nginx}/nginx-update.timer (100%) rename {nginx => cookbooks/nginx}/nginx.target (100%) rename {nginx => cookbooks/nginx}/website/index.html (100%) rename {postgresql => cookbooks/postgresql}/Makefile (97%) rename {postgresql => cookbooks/postgresql}/README.md (100%) rename {postgresql => cookbooks/postgresql}/config/backup.sh (100%) rename {postgresql => cookbooks/postgresql}/config/examples/config.env (100%) rename {postgresql => cookbooks/postgresql}/config/init.sh (100%) rename {postgresql => cookbooks/postgresql}/config/upgrade.sh (100%) rename {postgresql => cookbooks/postgresql}/hooks.mk (100%) rename {postgresql => cookbooks/postgresql}/overlay.bu (100%) rename {postgresql => cookbooks/postgresql}/postgresql-backup.container (100%) rename {postgresql => cookbooks/postgresql}/postgresql-backup.timer (100%) rename {postgresql => cookbooks/postgresql}/postgresql-init.container (100%) rename {postgresql => cookbooks/postgresql}/postgresql-pgautoupgrade.image (100%) rename {postgresql => cookbooks/postgresql}/postgresql-server.container (100%) rename {postgresql => cookbooks/postgresql}/postgresql-set-major.service (100%) rename {postgresql => cookbooks/postgresql}/postgresql-upgrade.container (100%) rename {postgresql => cookbooks/postgresql}/postgresql.image (100%) rename {postgresql => cookbooks/postgresql}/postgresql.target (100%) rename {postgresql => cookbooks/postgresql}/sysctl.d/examples/postgresql.conf (100%) rename {postgresql => cookbooks/postgresql}/tests/__init__.py (100%) rename {postgresql => cookbooks/postgresql}/tests/conftest.py (100%) rename {postgresql => cookbooks/postgresql}/tests/helpers.py (100%) rename {postgresql => cookbooks/postgresql}/tests/test_backup.py (100%) rename {postgresql => cookbooks/postgresql}/tests/test_install.py (100%) rename {postgresql => cookbooks/postgresql}/tests/test_recovery.py (100%) rename {postgresql => cookbooks/postgresql}/tests/test_upgrade.py (100%) rename {postgresql => cookbooks/postgresql}/tmpfiles.d/postgresql.conf (100%) create mode 100644 cookbooks/qemu-user-static/Makefile rename {qemu-user-static => cookbooks/qemu-user-static}/README.md (100%) rename {qemu-user-static => cookbooks/qemu-user-static}/config/container/Containerfile (100%) rename {qemu-user-static => cookbooks/qemu-user-static}/config/container/container-entrypoint (100%) rename {qemu-user-static => cookbooks/qemu-user-static}/qemu-user-static-build.timer (100%) rename {qemu-user-static => cookbooks/qemu-user-static}/qemu-user-static.build (100%) rename {qemu-user-static => cookbooks/qemu-user-static}/qemu-user-static.container (100%) rename {qemu-user-static => cookbooks/qemu-user-static}/qemu-user-static.target (100%) rename {restic-server => cookbooks/restic-server}/Makefile (81%) rename {restic-server => cookbooks/restic-server}/README.md (100%) rename {restic-server => cookbooks/restic-server}/other/traefik/restic.yaml (100%) rename {restic-server => cookbooks/restic-server}/overlay.bu (100%) rename {restic-server => cookbooks/restic-server}/restic-server.container (100%) rename {restic-server => cookbooks/restic-server}/tmpfiles.d/restic-server.conf (100%) rename {samba => cookbooks/samba}/Makefile (66%) rename {samba => cookbooks/samba}/README.md (100%) rename {samba => cookbooks/samba}/config/container/Containerfile (100%) rename {samba => cookbooks/samba}/config/container/container-entrypoint (100%) rename {samba => cookbooks/samba}/config/examples/smb.conf.d/10-shares.conf (100%) rename {samba => cookbooks/samba}/config/smb.conf.d/00-global.conf (100%) rename {samba => cookbooks/samba}/hooks.mk (100%) rename {samba => cookbooks/samba}/samba-build.timer (100%) rename {samba => cookbooks/samba}/samba.build (100%) rename {samba => cookbooks/samba}/samba.container (100%) rename {samba => cookbooks/samba}/samba.target (100%) rename {samba => cookbooks/samba}/tmpfiles.d/samba.conf (100%) rename {seedbox => cookbooks/seedbox}/Makefile (76%) rename {seedbox => cookbooks/seedbox}/README.md (100%) rename {seedbox => cookbooks/seedbox}/flaresolverr.container (100%) rename {seedbox => cookbooks/seedbox}/jellyfin.container (100%) rename {seedbox => cookbooks/seedbox}/lidarr.container (100%) rename {seedbox => cookbooks/seedbox}/other/samba/10-shares.conf (100%) rename {seedbox => cookbooks/seedbox}/other/traefik/jellyfin.yaml (100%) rename {seedbox => cookbooks/seedbox}/other/traefik/lidarr.yaml (100%) rename {seedbox => cookbooks/seedbox}/other/traefik/prowlarr.yaml (100%) rename {seedbox => cookbooks/seedbox}/other/traefik/qbittorrent.yaml (100%) rename {seedbox => cookbooks/seedbox}/other/traefik/radarr.yaml (100%) rename {seedbox => cookbooks/seedbox}/other/traefik/sonarr.yaml (100%) rename {seedbox => cookbooks/seedbox}/overlay.bu (100%) rename {seedbox => cookbooks/seedbox}/prowlarr.container (100%) rename {seedbox => cookbooks/seedbox}/qbittorrent.container (100%) rename {seedbox => cookbooks/seedbox}/radarr.container (100%) rename {seedbox => cookbooks/seedbox}/seedbox.target (100%) rename {seedbox => cookbooks/seedbox}/sonarr.container (100%) rename {seedbox => cookbooks/seedbox}/sysctl.d/seedbox.conf (100%) rename {seedbox => cookbooks/seedbox}/tmpfiles.d/seedbox.conf (100%) rename {traefik => cookbooks/traefik}/Makefile (73%) rename {traefik => cookbooks/traefik}/README.md (100%) rename {traefik => cookbooks/traefik}/config/examples/conf.d/itix-middlewares.yaml (100%) rename {traefik => cookbooks/traefik}/config/examples/conf.d/ping.yaml (100%) rename {traefik => cookbooks/traefik}/config/examples/itix-admins.txt (100%) rename {traefik => cookbooks/traefik}/config/examples/itix-users.txt (100%) rename {traefik => cookbooks/traefik}/config/traefik.yaml (100%) rename {traefik => cookbooks/traefik}/hooks.mk (100%) rename {traefik => cookbooks/traefik}/overlay.bu (100%) rename {traefik => cookbooks/traefik}/traefik.container (100%) rename {traefik => cookbooks/traefik}/traefik.target (100%) rename {unifi => cookbooks/unifi}/Makefile (75%) rename {unifi => cookbooks/unifi}/README.md (100%) rename {unifi => cookbooks/unifi}/config/examples/config.env (100%) rename {unifi => cookbooks/unifi}/config/examples/init-mongo.js (100%) rename {unifi => cookbooks/unifi}/overlay.bu (100%) rename {unifi => cookbooks/unifi}/tmpfiles.d/unifi.conf (100%) rename {unifi => cookbooks/unifi}/unifi-app.container (100%) rename {unifi => cookbooks/unifi}/unifi-mongo.container (100%) rename {unifi => cookbooks/unifi}/unifi.target (100%) rename {vaultwarden => cookbooks/vaultwarden}/Makefile (78%) rename {vaultwarden => cookbooks/vaultwarden}/README.md (100%) rename {vaultwarden => cookbooks/vaultwarden}/config/examples/config.env (100%) rename {vaultwarden => cookbooks/vaultwarden}/other/postgresql/vaultwarden.sql (100%) rename {vaultwarden => cookbooks/vaultwarden}/other/traefik/vaultwarden.yaml (100%) rename {vaultwarden => cookbooks/vaultwarden}/overlay.bu (100%) rename {vaultwarden => cookbooks/vaultwarden}/tmpfiles.d/vaultwarden.conf (100%) rename {vaultwarden => cookbooks/vaultwarden}/vaultwarden.container (100%) rename {vaultwarden => cookbooks/vaultwarden}/vaultwarden.target (100%) rename {vmagent => cookbooks/vmagent}/Makefile (87%) rename {vmagent => cookbooks/vmagent}/README.md (100%) rename {vmagent => cookbooks/vmagent}/config/examples/conf.d/remotewrite.token (100%) rename {vmagent => cookbooks/vmagent}/config/examples/vmagent.local.env (100%) rename {vmagent => cookbooks/vmagent}/config/vmagent.global.env (100%) rename {vmagent => cookbooks/vmagent}/overlay.bu (100%) rename {vmagent => cookbooks/vmagent}/vmagent.container (100%) rename {vsftpd => cookbooks/vsftpd}/Makefile (78%) rename {vsftpd => cookbooks/vsftpd}/README.md (100%) rename {vsftpd => cookbooks/vsftpd}/config/container/Containerfile (100%) rename {vsftpd => cookbooks/vsftpd}/config/container/container-entrypoint (100%) rename {vsftpd => cookbooks/vsftpd}/config/container/vsftpd-virtual (100%) rename {vsftpd => cookbooks/vsftpd}/config/examples/vsftpd.conf.d/local-users.conf (100%) rename {vsftpd => cookbooks/vsftpd}/config/examples/vsftpd.conf.d/tls.conf (100%) rename {vsftpd => cookbooks/vsftpd}/config/examples/vsftpd.conf.d/virtual-users.conf (100%) rename {vsftpd => cookbooks/vsftpd}/config/vsftpd.conf.d/global.conf (100%) rename {vsftpd => cookbooks/vsftpd}/overlay.bu (100%) rename {vsftpd => cookbooks/vsftpd}/tmpfiles.d/vsftpd.conf (100%) rename {vsftpd => cookbooks/vsftpd}/vsftpd-build.timer (100%) rename {vsftpd => cookbooks/vsftpd}/vsftpd-load-renewed-certificate.service (100%) rename {vsftpd => cookbooks/vsftpd}/vsftpd.build (100%) rename {vsftpd => cookbooks/vsftpd}/vsftpd.container (100%) rename {vsftpd => cookbooks/vsftpd}/vsftpd.target (100%) rename TESTS.md => docs/TESTS.md (100%) delete mode 100644 qemu-user-static/Makefile rename cloud-init.dev.yaml => scripts/cloud-init.dev.yaml (100%) rename common.mk => scripts/common.mk (92%) rename create-dev-vm.sh => scripts/create-dev-vm.sh (100%) rename default-butane-spec.sh => scripts/default-butane-spec.sh (100%) rename generate-butane-spec.sh => scripts/generate-butane-spec.sh (100%) diff --git a/README.md b/README.md index 44ab0dd..50253cf 100644 --- a/README.md +++ b/README.md @@ -14,22 +14,22 @@ This repository gathers all the recipes (hence the name "Cookbook") to deploy Op ## Available Cookbooks -- [base](base/): base configuration for Fedora CoreOS with fastfetch, tmpfiles setup, and QEMU guest agent. -- [gitea](gitea/): self-hosted Git service, a lightweight GitHub/GitLab alternative. -- [keycloak](keycloak/): open source identity and access management server with PostgreSQL backend. -- [lego](lego/): Let's Encrypt/ACME client for automatic SSL/TLS certificate management and renewal. -- [miniflux](miniflux/): minimalist RSS/Atom feed reader with PostgreSQL backend. -- [nextcloud](nextcloud/): self-hosted file sync and share platform with all its dependencies, handles automated upgrades. -- [nginx](nginx/): Nginx web server with content initialized and updated from a GIT repository. -- [postgresql](postgresql/): PostgreSQL database server with automated major upgrades, periodic backup and restore capabilities. -- [qemu-user-static](qemu-user-static/): multi-architecture container support using QEMU user-mode emulation. -- [restic-server](restic-server/): REST server backend for restic backups with append-only mode and Prometheus metrics. -- [samba](samba/): SMB/CIFS file sharing server for network storage access. -- [seedbox](seedbox/): complete media server stack with Radarr, Sonarr, Lidarr, Prowlarr, qBittorrent, Jellyfin, and FlareSolverr. -- [traefik](traefik/): modern HTTP reverse proxy and load balancer with automatic service discovery. -- [vaultwarden](vaultwarden/): Bitwarden-compatible password manager server with PostgreSQL backend. -- [vmagent](vmagent/): Victoria Metrics agent for collecting and forwarding metrics. -- [vsftpd](vsftpd/): secure FTP server with TLS support and Let's Encrypt certificate integration. +- [base](cookbooks/base/): base configuration for Fedora CoreOS with fastfetch, tmpfiles setup, and QEMU guest agent. +- [gitea](cookbooks/gitea/): self-hosted Git service, a lightweight GitHub/GitLab alternative. +- [keycloak](cookbooks/keycloak/): open source identity and access management server with PostgreSQL backend. +- [lego](cookbooks/lego/): Let's Encrypt/ACME client for automatic SSL/TLS certificate management and renewal. +- [miniflux](cookbooks/miniflux/): minimalist RSS/Atom feed reader with PostgreSQL backend. +- [nextcloud](cookbooks/nextcloud/): self-hosted file sync and share platform with all its dependencies, handles automated upgrades. +- [nginx](cookbooks/nginx/): Nginx web server with content initialized and updated from a GIT repository. +- [postgresql](cookbooks/postgresql/): PostgreSQL database server with automated major upgrades, periodic backup and restore capabilities. +- [qemu-user-static](cookbooks/qemu-user-static/): multi-architecture container support using QEMU user-mode emulation. +- [restic-server](cookbooks/restic-server/): REST server backend for restic backups with append-only mode and Prometheus metrics. +- [samba](cookbooks/samba/): SMB/CIFS file sharing server for network storage access. +- [seedbox](cookbooks/seedbox/): complete media server stack with Radarr, Sonarr, Lidarr, Prowlarr, qBittorrent, Jellyfin, and FlareSolverr. +- [traefik](cookbooks/traefik/): modern HTTP reverse proxy and load balancer with automatic service discovery. +- [vaultwarden](cookbooks/vaultwarden/): Bitwarden-compatible password manager server with PostgreSQL backend. +- [vmagent](cookbooks/vmagent/): Victoria Metrics agent for collecting and forwarding metrics. +- [vsftpd](cookbooks/vsftpd/): secure FTP server with TLS support and Let's Encrypt certificate integration. ## Cookbook layout @@ -57,7 +57,7 @@ This repository gathers all the recipes (hence the name "Cookbook") to deploy Op ``` pip install -e . -pytest postgresql/tests/ +pytest cookbooks/postgresql/tests/ ``` ## Development @@ -67,7 +67,7 @@ To develop Podman Quadlets, it is advised to create a Fedora Virtual Machine ded You can create a Fedora Virtual Machine with the following command: ```sh -sudo ./create-dev-vm.sh +sudo ./scripts/create-dev-vm.sh ``` Then, retrieve the IP address of your VM with the following command: diff --git a/butane.blocklist b/butane.blocklist deleted file mode 100644 index 5680439..0000000 --- a/butane.blocklist +++ /dev/null @@ -1,12 +0,0 @@ -/var -/var/lib -/var/lib/quadlets -/etc -/etc/quadlets -/etc/systemd -/etc/systemd/system -/etc/containers -/etc/containers/systemd -/etc/tmpfiles.d -/etc/sysctl.d -/etc/profile.d diff --git a/Makefile b/cookbooks/Makefile similarity index 100% rename from Makefile rename to cookbooks/Makefile diff --git a/base/Makefile b/cookbooks/base/Makefile similarity index 86% rename from base/Makefile rename to cookbooks/base/Makefile index 28d9f8f..d0638b2 100644 --- a/base/Makefile +++ b/cookbooks/base/Makefile @@ -1,5 +1,6 @@ -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +# Include common Makefile +include ../../scripts/common.mk + SYSTEMD_MAIN_UNIT_NAMES += var-lib-virtiofs-data.mount SYSTEMD_MAIN_UNIT_NAMES += rpm-ostree-install-qemu-guest-agent.service SYSTEMD_MAIN_UNIT_NAMES += install-fastfetch.service diff --git a/base/README.md b/cookbooks/base/README.md similarity index 100% rename from base/README.md rename to cookbooks/base/README.md diff --git a/base/config/examples/fastfetch.env b/cookbooks/base/config/examples/fastfetch.env similarity index 100% rename from base/config/examples/fastfetch.env rename to cookbooks/base/config/examples/fastfetch.env diff --git a/base/config/fastfetch.jsonc b/cookbooks/base/config/fastfetch.jsonc similarity index 100% rename from base/config/fastfetch.jsonc rename to cookbooks/base/config/fastfetch.jsonc diff --git a/base/config/install-fastfetch.sh b/cookbooks/base/config/install-fastfetch.sh similarity index 100% rename from base/config/install-fastfetch.sh rename to cookbooks/base/config/install-fastfetch.sh diff --git a/base/install-fastfetch.service b/cookbooks/base/install-fastfetch.service similarity index 100% rename from base/install-fastfetch.service rename to cookbooks/base/install-fastfetch.service diff --git a/base/overlay.bu b/cookbooks/base/overlay.bu similarity index 100% rename from base/overlay.bu rename to cookbooks/base/overlay.bu diff --git a/base/profile.d/fastfetch.sh b/cookbooks/base/profile.d/fastfetch.sh similarity index 100% rename from base/profile.d/fastfetch.sh rename to cookbooks/base/profile.d/fastfetch.sh diff --git a/base/rpm-ostree-install-qemu-guest-agent.service b/cookbooks/base/rpm-ostree-install-qemu-guest-agent.service similarity index 100% rename from base/rpm-ostree-install-qemu-guest-agent.service rename to cookbooks/base/rpm-ostree-install-qemu-guest-agent.service diff --git a/base/tmpfiles.d/base.conf b/cookbooks/base/tmpfiles.d/base.conf similarity index 100% rename from base/tmpfiles.d/base.conf rename to cookbooks/base/tmpfiles.d/base.conf diff --git a/base/var-lib-virtiofs-data.mount b/cookbooks/base/var-lib-virtiofs-data.mount similarity index 100% rename from base/var-lib-virtiofs-data.mount rename to cookbooks/base/var-lib-virtiofs-data.mount diff --git a/gitea/Makefile b/cookbooks/gitea/Makefile similarity index 76% rename from gitea/Makefile rename to cookbooks/gitea/Makefile index 9b3ae55..61f84a2 100644 --- a/gitea/Makefile +++ b/cookbooks/gitea/Makefile @@ -8,5 +8,5 @@ DEPENDENCIES = postgresql traefik PROJECT_UID = 10009 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +# Include common Makefile +include ../../scripts/common.mk diff --git a/gitea/README.md b/cookbooks/gitea/README.md similarity index 100% rename from gitea/README.md rename to cookbooks/gitea/README.md diff --git a/gitea/config/examples/app.ini b/cookbooks/gitea/config/examples/app.ini similarity index 100% rename from gitea/config/examples/app.ini rename to cookbooks/gitea/config/examples/app.ini diff --git a/gitea/config/examples/config.env b/cookbooks/gitea/config/examples/config.env similarity index 100% rename from gitea/config/examples/config.env rename to cookbooks/gitea/config/examples/config.env diff --git a/gitea/gitea.container b/cookbooks/gitea/gitea.container similarity index 100% rename from gitea/gitea.container rename to cookbooks/gitea/gitea.container diff --git a/gitea/gitea.target b/cookbooks/gitea/gitea.target similarity index 100% rename from gitea/gitea.target rename to cookbooks/gitea/gitea.target diff --git a/gitea/other/postgresql/gitea.sql b/cookbooks/gitea/other/postgresql/gitea.sql similarity index 100% rename from gitea/other/postgresql/gitea.sql rename to cookbooks/gitea/other/postgresql/gitea.sql diff --git a/gitea/other/traefik/gitea.yaml b/cookbooks/gitea/other/traefik/gitea.yaml similarity index 100% rename from gitea/other/traefik/gitea.yaml rename to cookbooks/gitea/other/traefik/gitea.yaml diff --git a/gitea/overlay.bu b/cookbooks/gitea/overlay.bu similarity index 100% rename from gitea/overlay.bu rename to cookbooks/gitea/overlay.bu diff --git a/gitea/tmpfiles.d/gitea.conf b/cookbooks/gitea/tmpfiles.d/gitea.conf similarity index 100% rename from gitea/tmpfiles.d/gitea.conf rename to cookbooks/gitea/tmpfiles.d/gitea.conf diff --git a/keycloak/Makefile b/cookbooks/keycloak/Makefile similarity index 77% rename from keycloak/Makefile rename to cookbooks/keycloak/Makefile index d6b08c1..d59f4b0 100644 --- a/keycloak/Makefile +++ b/cookbooks/keycloak/Makefile @@ -8,6 +8,5 @@ DEPENDENCIES = postgresql traefik PROJECT_UID = 10007 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk - +# Include common Makefile +include ../../scripts/common.mk diff --git a/keycloak/README.md b/cookbooks/keycloak/README.md similarity index 100% rename from keycloak/README.md rename to cookbooks/keycloak/README.md diff --git a/keycloak/config/container/Containerfile b/cookbooks/keycloak/config/container/Containerfile similarity index 100% rename from keycloak/config/container/Containerfile rename to cookbooks/keycloak/config/container/Containerfile diff --git a/keycloak/config/examples/config.env b/cookbooks/keycloak/config/examples/config.env similarity index 100% rename from keycloak/config/examples/config.env rename to cookbooks/keycloak/config/examples/config.env diff --git a/keycloak/keycloak-build.timer b/cookbooks/keycloak/keycloak-build.timer similarity index 100% rename from keycloak/keycloak-build.timer rename to cookbooks/keycloak/keycloak-build.timer diff --git a/keycloak/keycloak.build b/cookbooks/keycloak/keycloak.build similarity index 100% rename from keycloak/keycloak.build rename to cookbooks/keycloak/keycloak.build diff --git a/keycloak/keycloak.container b/cookbooks/keycloak/keycloak.container similarity index 100% rename from keycloak/keycloak.container rename to cookbooks/keycloak/keycloak.container diff --git a/keycloak/keycloak.target b/cookbooks/keycloak/keycloak.target similarity index 100% rename from keycloak/keycloak.target rename to cookbooks/keycloak/keycloak.target diff --git a/keycloak/other/postgresql/keycloak.sql b/cookbooks/keycloak/other/postgresql/keycloak.sql similarity index 100% rename from keycloak/other/postgresql/keycloak.sql rename to cookbooks/keycloak/other/postgresql/keycloak.sql diff --git a/keycloak/other/traefik/keycloak.yaml b/cookbooks/keycloak/other/traefik/keycloak.yaml similarity index 100% rename from keycloak/other/traefik/keycloak.yaml rename to cookbooks/keycloak/other/traefik/keycloak.yaml diff --git a/keycloak/overlay.bu b/cookbooks/keycloak/overlay.bu similarity index 100% rename from keycloak/overlay.bu rename to cookbooks/keycloak/overlay.bu diff --git a/lego/Makefile b/cookbooks/lego/Makefile similarity index 76% rename from lego/Makefile rename to cookbooks/lego/Makefile index 544353e..8a4336a 100644 --- a/lego/Makefile +++ b/cookbooks/lego/Makefile @@ -7,7 +7,5 @@ PROJECT_UID = 10023 PROJECT_GID = 10000 # Include common Makefile -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk - +include ../../scripts/common.mk diff --git a/lego/README.md b/cookbooks/lego/README.md similarity index 100% rename from lego/README.md rename to cookbooks/lego/README.md diff --git a/lego/config/examples/config.env b/cookbooks/lego/config/examples/config.env similarity index 100% rename from lego/config/examples/config.env rename to cookbooks/lego/config/examples/config.env diff --git a/lego/config/hooks/flag-as-renewed.sh b/cookbooks/lego/config/hooks/flag-as-renewed.sh similarity index 100% rename from lego/config/hooks/flag-as-renewed.sh rename to cookbooks/lego/config/hooks/flag-as-renewed.sh diff --git a/lego/lego-renew.container b/cookbooks/lego/lego-renew.container similarity index 100% rename from lego/lego-renew.container rename to cookbooks/lego/lego-renew.container diff --git a/lego/lego-renew.timer b/cookbooks/lego/lego-renew.timer similarity index 100% rename from lego/lego-renew.timer rename to cookbooks/lego/lego-renew.timer diff --git a/lego/lego-run.container b/cookbooks/lego/lego-run.container similarity index 100% rename from lego/lego-run.container rename to cookbooks/lego/lego-run.container diff --git a/lego/lego.target b/cookbooks/lego/lego.target similarity index 100% rename from lego/lego.target rename to cookbooks/lego/lego.target diff --git a/lego/overlay.bu b/cookbooks/lego/overlay.bu similarity index 100% rename from lego/overlay.bu rename to cookbooks/lego/overlay.bu diff --git a/miniflux/Makefile b/cookbooks/miniflux/Makefile similarity index 77% rename from miniflux/Makefile rename to cookbooks/miniflux/Makefile index cc43a4a..f07f33f 100644 --- a/miniflux/Makefile +++ b/cookbooks/miniflux/Makefile @@ -8,6 +8,5 @@ DEPENDENCIES = postgresql traefik PROJECT_UID = 10010 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk - +# Include common Makefile +include ../../scripts/common.mk diff --git a/miniflux/README.md b/cookbooks/miniflux/README.md similarity index 100% rename from miniflux/README.md rename to cookbooks/miniflux/README.md diff --git a/miniflux/config/examples/miniflux.conf b/cookbooks/miniflux/config/examples/miniflux.conf similarity index 100% rename from miniflux/config/examples/miniflux.conf rename to cookbooks/miniflux/config/examples/miniflux.conf diff --git a/miniflux/miniflux.container b/cookbooks/miniflux/miniflux.container similarity index 100% rename from miniflux/miniflux.container rename to cookbooks/miniflux/miniflux.container diff --git a/miniflux/miniflux.target b/cookbooks/miniflux/miniflux.target similarity index 100% rename from miniflux/miniflux.target rename to cookbooks/miniflux/miniflux.target diff --git a/miniflux/other/postgresql/miniflux.sql b/cookbooks/miniflux/other/postgresql/miniflux.sql similarity index 100% rename from miniflux/other/postgresql/miniflux.sql rename to cookbooks/miniflux/other/postgresql/miniflux.sql diff --git a/miniflux/other/traefik/miniflux.yaml b/cookbooks/miniflux/other/traefik/miniflux.yaml similarity index 100% rename from miniflux/other/traefik/miniflux.yaml rename to cookbooks/miniflux/other/traefik/miniflux.yaml diff --git a/miniflux/overlay.bu b/cookbooks/miniflux/overlay.bu similarity index 100% rename from miniflux/overlay.bu rename to cookbooks/miniflux/overlay.bu diff --git a/nextcloud/Makefile b/cookbooks/nextcloud/Makefile similarity index 98% rename from nextcloud/Makefile rename to cookbooks/nextcloud/Makefile index d4ae997..0a6cece 100644 --- a/nextcloud/Makefile +++ b/cookbooks/nextcloud/Makefile @@ -8,8 +8,8 @@ DEPENDENCIES = postgresql traefik PROJECT_UID = 10008 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +# Include common Makefile +include ../../scripts/common.mk # Additional Nextcloud directories and files TARGET_FILES += $(TARGET_CHROOT)/etc/quadlets/nextcloud/collabora-seccomp-profile.json diff --git a/nextcloud/README.md b/cookbooks/nextcloud/README.md similarity index 100% rename from nextcloud/README.md rename to cookbooks/nextcloud/README.md diff --git a/nextcloud/config/custom-noinit.sh b/cookbooks/nextcloud/config/custom-noinit.sh similarity index 100% rename from nextcloud/config/custom-noinit.sh rename to cookbooks/nextcloud/config/custom-noinit.sh diff --git a/nextcloud/config/custom-post.sh b/cookbooks/nextcloud/config/custom-post.sh similarity index 100% rename from nextcloud/config/custom-post.sh rename to cookbooks/nextcloud/config/custom-post.sh diff --git a/nextcloud/config/custom-pre.sh b/cookbooks/nextcloud/config/custom-pre.sh similarity index 100% rename from nextcloud/config/custom-pre.sh rename to cookbooks/nextcloud/config/custom-pre.sh diff --git a/nextcloud/config/examples/collabora.env b/cookbooks/nextcloud/config/examples/collabora.env similarity index 100% rename from nextcloud/config/examples/collabora.env rename to cookbooks/nextcloud/config/examples/collabora.env diff --git a/nextcloud/config/examples/config.env b/cookbooks/nextcloud/config/examples/config.env similarity index 100% rename from nextcloud/config/examples/config.env rename to cookbooks/nextcloud/config/examples/config.env diff --git a/nextcloud/config/nginx.conf b/cookbooks/nextcloud/config/nginx.conf similarity index 100% rename from nextcloud/config/nginx.conf rename to cookbooks/nextcloud/config/nginx.conf diff --git a/nextcloud/config/redis.conf b/cookbooks/nextcloud/config/redis.conf similarity index 100% rename from nextcloud/config/redis.conf rename to cookbooks/nextcloud/config/redis.conf diff --git a/nextcloud/config/www.conf b/cookbooks/nextcloud/config/www.conf similarity index 100% rename from nextcloud/config/www.conf rename to cookbooks/nextcloud/config/www.conf diff --git a/nextcloud/nextcloud-app.container b/cookbooks/nextcloud/nextcloud-app.container similarity index 100% rename from nextcloud/nextcloud-app.container rename to cookbooks/nextcloud/nextcloud-app.container diff --git a/nextcloud/nextcloud-collabora.container b/cookbooks/nextcloud/nextcloud-collabora.container similarity index 100% rename from nextcloud/nextcloud-collabora.container rename to cookbooks/nextcloud/nextcloud-collabora.container diff --git a/nextcloud/nextcloud-cron.container b/cookbooks/nextcloud/nextcloud-cron.container similarity index 100% rename from nextcloud/nextcloud-cron.container rename to cookbooks/nextcloud/nextcloud-cron.container diff --git a/nextcloud/nextcloud-cron.timer b/cookbooks/nextcloud/nextcloud-cron.timer similarity index 100% rename from nextcloud/nextcloud-cron.timer rename to cookbooks/nextcloud/nextcloud-cron.timer diff --git a/nextcloud/nextcloud-init.container b/cookbooks/nextcloud/nextcloud-init.container similarity index 100% rename from nextcloud/nextcloud-init.container rename to cookbooks/nextcloud/nextcloud-init.container diff --git a/nextcloud/nextcloud-nginx.container b/cookbooks/nextcloud/nextcloud-nginx.container similarity index 100% rename from nextcloud/nextcloud-nginx.container rename to cookbooks/nextcloud/nextcloud-nginx.container diff --git a/nextcloud/nextcloud-redis.container b/cookbooks/nextcloud/nextcloud-redis.container similarity index 100% rename from nextcloud/nextcloud-redis.container rename to cookbooks/nextcloud/nextcloud-redis.container diff --git a/nextcloud/nextcloud-upgrade.container b/cookbooks/nextcloud/nextcloud-upgrade.container similarity index 100% rename from nextcloud/nextcloud-upgrade.container rename to cookbooks/nextcloud/nextcloud-upgrade.container diff --git a/nextcloud/nextcloud.target b/cookbooks/nextcloud/nextcloud.target similarity index 100% rename from nextcloud/nextcloud.target rename to cookbooks/nextcloud/nextcloud.target diff --git a/nextcloud/other/postgresql/nextcloud.sql b/cookbooks/nextcloud/other/postgresql/nextcloud.sql similarity index 100% rename from nextcloud/other/postgresql/nextcloud.sql rename to cookbooks/nextcloud/other/postgresql/nextcloud.sql diff --git a/nextcloud/other/traefik/collabora.yaml b/cookbooks/nextcloud/other/traefik/collabora.yaml similarity index 100% rename from nextcloud/other/traefik/collabora.yaml rename to cookbooks/nextcloud/other/traefik/collabora.yaml diff --git a/nextcloud/other/traefik/nextcloud.yaml b/cookbooks/nextcloud/other/traefik/nextcloud.yaml similarity index 100% rename from nextcloud/other/traefik/nextcloud.yaml rename to cookbooks/nextcloud/other/traefik/nextcloud.yaml diff --git a/nextcloud/overlay.bu b/cookbooks/nextcloud/overlay.bu similarity index 100% rename from nextcloud/overlay.bu rename to cookbooks/nextcloud/overlay.bu diff --git a/nextcloud/sysctl.d/examples/nextcloud.conf b/cookbooks/nextcloud/sysctl.d/examples/nextcloud.conf similarity index 100% rename from nextcloud/sysctl.d/examples/nextcloud.conf rename to cookbooks/nextcloud/sysctl.d/examples/nextcloud.conf diff --git a/nextcloud/tests/witness.txt b/cookbooks/nextcloud/tests/witness.txt similarity index 100% rename from nextcloud/tests/witness.txt rename to cookbooks/nextcloud/tests/witness.txt diff --git a/nextcloud/tmpfiles.d/nextcloud.conf b/cookbooks/nextcloud/tmpfiles.d/nextcloud.conf similarity index 100% rename from nextcloud/tmpfiles.d/nextcloud.conf rename to cookbooks/nextcloud/tmpfiles.d/nextcloud.conf diff --git a/nginx/Makefile b/cookbooks/nginx/Makefile similarity index 65% rename from nginx/Makefile rename to cookbooks/nginx/Makefile index bf0e666..0f819ec 100644 --- a/nginx/Makefile +++ b/cookbooks/nginx/Makefile @@ -1,5 +1,5 @@ -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +# Include common Makefile +include ../../scripts/common.mk .PHONY: test diff --git a/nginx/README.md b/cookbooks/nginx/README.md similarity index 100% rename from nginx/README.md rename to cookbooks/nginx/README.md diff --git a/nginx/config/examples/config.env b/cookbooks/nginx/config/examples/config.env similarity index 100% rename from nginx/config/examples/config.env rename to cookbooks/nginx/config/examples/config.env diff --git a/nginx/nginx-init.container b/cookbooks/nginx/nginx-init.container similarity index 100% rename from nginx/nginx-init.container rename to cookbooks/nginx/nginx-init.container diff --git a/nginx/nginx-server.container b/cookbooks/nginx/nginx-server.container similarity index 100% rename from nginx/nginx-server.container rename to cookbooks/nginx/nginx-server.container diff --git a/nginx/nginx-update.container b/cookbooks/nginx/nginx-update.container similarity index 100% rename from nginx/nginx-update.container rename to cookbooks/nginx/nginx-update.container diff --git a/nginx/nginx-update.timer b/cookbooks/nginx/nginx-update.timer similarity index 100% rename from nginx/nginx-update.timer rename to cookbooks/nginx/nginx-update.timer diff --git a/nginx/nginx.target b/cookbooks/nginx/nginx.target similarity index 100% rename from nginx/nginx.target rename to cookbooks/nginx/nginx.target diff --git a/nginx/website/index.html b/cookbooks/nginx/website/index.html similarity index 100% rename from nginx/website/index.html rename to cookbooks/nginx/website/index.html diff --git a/postgresql/Makefile b/cookbooks/postgresql/Makefile similarity index 97% rename from postgresql/Makefile rename to cookbooks/postgresql/Makefile index 5aca0bb..dc5e83c 100644 --- a/postgresql/Makefile +++ b/cookbooks/postgresql/Makefile @@ -11,8 +11,7 @@ $(TARGET_CHROOT)/etc/quadlets/postgresql/init.d: install -m 0755 -o $(PROJECT_UID) -g $(PROJECT_GID) -D -d $@ # Include common Makefile -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +include ../../scripts/common.mk .PHONY: test test-set-pgmajor install-config diff --git a/postgresql/README.md b/cookbooks/postgresql/README.md similarity index 100% rename from postgresql/README.md rename to cookbooks/postgresql/README.md diff --git a/postgresql/config/backup.sh b/cookbooks/postgresql/config/backup.sh similarity index 100% rename from postgresql/config/backup.sh rename to cookbooks/postgresql/config/backup.sh diff --git a/postgresql/config/examples/config.env b/cookbooks/postgresql/config/examples/config.env similarity index 100% rename from postgresql/config/examples/config.env rename to cookbooks/postgresql/config/examples/config.env diff --git a/postgresql/config/init.sh b/cookbooks/postgresql/config/init.sh similarity index 100% rename from postgresql/config/init.sh rename to cookbooks/postgresql/config/init.sh diff --git a/postgresql/config/upgrade.sh b/cookbooks/postgresql/config/upgrade.sh similarity index 100% rename from postgresql/config/upgrade.sh rename to cookbooks/postgresql/config/upgrade.sh diff --git a/postgresql/hooks.mk b/cookbooks/postgresql/hooks.mk similarity index 100% rename from postgresql/hooks.mk rename to cookbooks/postgresql/hooks.mk diff --git a/postgresql/overlay.bu b/cookbooks/postgresql/overlay.bu similarity index 100% rename from postgresql/overlay.bu rename to cookbooks/postgresql/overlay.bu diff --git a/postgresql/postgresql-backup.container b/cookbooks/postgresql/postgresql-backup.container similarity index 100% rename from postgresql/postgresql-backup.container rename to cookbooks/postgresql/postgresql-backup.container diff --git a/postgresql/postgresql-backup.timer b/cookbooks/postgresql/postgresql-backup.timer similarity index 100% rename from postgresql/postgresql-backup.timer rename to cookbooks/postgresql/postgresql-backup.timer diff --git a/postgresql/postgresql-init.container b/cookbooks/postgresql/postgresql-init.container similarity index 100% rename from postgresql/postgresql-init.container rename to cookbooks/postgresql/postgresql-init.container diff --git a/postgresql/postgresql-pgautoupgrade.image b/cookbooks/postgresql/postgresql-pgautoupgrade.image similarity index 100% rename from postgresql/postgresql-pgautoupgrade.image rename to cookbooks/postgresql/postgresql-pgautoupgrade.image diff --git a/postgresql/postgresql-server.container b/cookbooks/postgresql/postgresql-server.container similarity index 100% rename from postgresql/postgresql-server.container rename to cookbooks/postgresql/postgresql-server.container diff --git a/postgresql/postgresql-set-major.service b/cookbooks/postgresql/postgresql-set-major.service similarity index 100% rename from postgresql/postgresql-set-major.service rename to cookbooks/postgresql/postgresql-set-major.service diff --git a/postgresql/postgresql-upgrade.container b/cookbooks/postgresql/postgresql-upgrade.container similarity index 100% rename from postgresql/postgresql-upgrade.container rename to cookbooks/postgresql/postgresql-upgrade.container diff --git a/postgresql/postgresql.image b/cookbooks/postgresql/postgresql.image similarity index 100% rename from postgresql/postgresql.image rename to cookbooks/postgresql/postgresql.image diff --git a/postgresql/postgresql.target b/cookbooks/postgresql/postgresql.target similarity index 100% rename from postgresql/postgresql.target rename to cookbooks/postgresql/postgresql.target diff --git a/postgresql/sysctl.d/examples/postgresql.conf b/cookbooks/postgresql/sysctl.d/examples/postgresql.conf similarity index 100% rename from postgresql/sysctl.d/examples/postgresql.conf rename to cookbooks/postgresql/sysctl.d/examples/postgresql.conf diff --git a/postgresql/tests/__init__.py b/cookbooks/postgresql/tests/__init__.py similarity index 100% rename from postgresql/tests/__init__.py rename to cookbooks/postgresql/tests/__init__.py diff --git a/postgresql/tests/conftest.py b/cookbooks/postgresql/tests/conftest.py similarity index 100% rename from postgresql/tests/conftest.py rename to cookbooks/postgresql/tests/conftest.py diff --git a/postgresql/tests/helpers.py b/cookbooks/postgresql/tests/helpers.py similarity index 100% rename from postgresql/tests/helpers.py rename to cookbooks/postgresql/tests/helpers.py diff --git a/postgresql/tests/test_backup.py b/cookbooks/postgresql/tests/test_backup.py similarity index 100% rename from postgresql/tests/test_backup.py rename to cookbooks/postgresql/tests/test_backup.py diff --git a/postgresql/tests/test_install.py b/cookbooks/postgresql/tests/test_install.py similarity index 100% rename from postgresql/tests/test_install.py rename to cookbooks/postgresql/tests/test_install.py diff --git a/postgresql/tests/test_recovery.py b/cookbooks/postgresql/tests/test_recovery.py similarity index 100% rename from postgresql/tests/test_recovery.py rename to cookbooks/postgresql/tests/test_recovery.py diff --git a/postgresql/tests/test_upgrade.py b/cookbooks/postgresql/tests/test_upgrade.py similarity index 100% rename from postgresql/tests/test_upgrade.py rename to cookbooks/postgresql/tests/test_upgrade.py diff --git a/postgresql/tmpfiles.d/postgresql.conf b/cookbooks/postgresql/tmpfiles.d/postgresql.conf similarity index 100% rename from postgresql/tmpfiles.d/postgresql.conf rename to cookbooks/postgresql/tmpfiles.d/postgresql.conf diff --git a/cookbooks/qemu-user-static/Makefile b/cookbooks/qemu-user-static/Makefile new file mode 100644 index 0000000..5ef8185 --- /dev/null +++ b/cookbooks/qemu-user-static/Makefile @@ -0,0 +1,2 @@ +# Include common Makefile +include ../../scripts/common.mk diff --git a/qemu-user-static/README.md b/cookbooks/qemu-user-static/README.md similarity index 100% rename from qemu-user-static/README.md rename to cookbooks/qemu-user-static/README.md diff --git a/qemu-user-static/config/container/Containerfile b/cookbooks/qemu-user-static/config/container/Containerfile similarity index 100% rename from qemu-user-static/config/container/Containerfile rename to cookbooks/qemu-user-static/config/container/Containerfile diff --git a/qemu-user-static/config/container/container-entrypoint b/cookbooks/qemu-user-static/config/container/container-entrypoint similarity index 100% rename from qemu-user-static/config/container/container-entrypoint rename to cookbooks/qemu-user-static/config/container/container-entrypoint diff --git a/qemu-user-static/qemu-user-static-build.timer b/cookbooks/qemu-user-static/qemu-user-static-build.timer similarity index 100% rename from qemu-user-static/qemu-user-static-build.timer rename to cookbooks/qemu-user-static/qemu-user-static-build.timer diff --git a/qemu-user-static/qemu-user-static.build b/cookbooks/qemu-user-static/qemu-user-static.build similarity index 100% rename from qemu-user-static/qemu-user-static.build rename to cookbooks/qemu-user-static/qemu-user-static.build diff --git a/qemu-user-static/qemu-user-static.container b/cookbooks/qemu-user-static/qemu-user-static.container similarity index 100% rename from qemu-user-static/qemu-user-static.container rename to cookbooks/qemu-user-static/qemu-user-static.container diff --git a/qemu-user-static/qemu-user-static.target b/cookbooks/qemu-user-static/qemu-user-static.target similarity index 100% rename from qemu-user-static/qemu-user-static.target rename to cookbooks/qemu-user-static/qemu-user-static.target diff --git a/restic-server/Makefile b/cookbooks/restic-server/Makefile similarity index 81% rename from restic-server/Makefile rename to cookbooks/restic-server/Makefile index 19c6600..b27c67c 100644 --- a/restic-server/Makefile +++ b/cookbooks/restic-server/Makefile @@ -8,7 +8,7 @@ DEPENDENCIES = traefik PROJECT_UID = 10022 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +# Include common Makefile +include ../../scripts/common.mk SYSTEMD_MAIN_UNIT_NAMES += restic-server.service diff --git a/restic-server/README.md b/cookbooks/restic-server/README.md similarity index 100% rename from restic-server/README.md rename to cookbooks/restic-server/README.md diff --git a/restic-server/other/traefik/restic.yaml b/cookbooks/restic-server/other/traefik/restic.yaml similarity index 100% rename from restic-server/other/traefik/restic.yaml rename to cookbooks/restic-server/other/traefik/restic.yaml diff --git a/restic-server/overlay.bu b/cookbooks/restic-server/overlay.bu similarity index 100% rename from restic-server/overlay.bu rename to cookbooks/restic-server/overlay.bu diff --git a/restic-server/restic-server.container b/cookbooks/restic-server/restic-server.container similarity index 100% rename from restic-server/restic-server.container rename to cookbooks/restic-server/restic-server.container diff --git a/restic-server/tmpfiles.d/restic-server.conf b/cookbooks/restic-server/tmpfiles.d/restic-server.conf similarity index 100% rename from restic-server/tmpfiles.d/restic-server.conf rename to cookbooks/restic-server/tmpfiles.d/restic-server.conf diff --git a/samba/Makefile b/cookbooks/samba/Makefile similarity index 66% rename from samba/Makefile rename to cookbooks/samba/Makefile index e937ad9..07acac7 100644 --- a/samba/Makefile +++ b/cookbooks/samba/Makefile @@ -1,5 +1,5 @@ -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +# Include common Makefile +include ../../scripts/common.mk $(TARGET_CHROOT)/etc/quadlets/samba/smb.conf.d: install -d -m 0700 -o $(PROJECT_UID) -g $(PROJECT_GID) -D $< $@ diff --git a/samba/README.md b/cookbooks/samba/README.md similarity index 100% rename from samba/README.md rename to cookbooks/samba/README.md diff --git a/samba/config/container/Containerfile b/cookbooks/samba/config/container/Containerfile similarity index 100% rename from samba/config/container/Containerfile rename to cookbooks/samba/config/container/Containerfile diff --git a/samba/config/container/container-entrypoint b/cookbooks/samba/config/container/container-entrypoint similarity index 100% rename from samba/config/container/container-entrypoint rename to cookbooks/samba/config/container/container-entrypoint diff --git a/samba/config/examples/smb.conf.d/10-shares.conf b/cookbooks/samba/config/examples/smb.conf.d/10-shares.conf similarity index 100% rename from samba/config/examples/smb.conf.d/10-shares.conf rename to cookbooks/samba/config/examples/smb.conf.d/10-shares.conf diff --git a/samba/config/smb.conf.d/00-global.conf b/cookbooks/samba/config/smb.conf.d/00-global.conf similarity index 100% rename from samba/config/smb.conf.d/00-global.conf rename to cookbooks/samba/config/smb.conf.d/00-global.conf diff --git a/samba/hooks.mk b/cookbooks/samba/hooks.mk similarity index 100% rename from samba/hooks.mk rename to cookbooks/samba/hooks.mk diff --git a/samba/samba-build.timer b/cookbooks/samba/samba-build.timer similarity index 100% rename from samba/samba-build.timer rename to cookbooks/samba/samba-build.timer diff --git a/samba/samba.build b/cookbooks/samba/samba.build similarity index 100% rename from samba/samba.build rename to cookbooks/samba/samba.build diff --git a/samba/samba.container b/cookbooks/samba/samba.container similarity index 100% rename from samba/samba.container rename to cookbooks/samba/samba.container diff --git a/samba/samba.target b/cookbooks/samba/samba.target similarity index 100% rename from samba/samba.target rename to cookbooks/samba/samba.target diff --git a/samba/tmpfiles.d/samba.conf b/cookbooks/samba/tmpfiles.d/samba.conf similarity index 100% rename from samba/tmpfiles.d/samba.conf rename to cookbooks/samba/tmpfiles.d/samba.conf diff --git a/seedbox/Makefile b/cookbooks/seedbox/Makefile similarity index 76% rename from seedbox/Makefile rename to cookbooks/seedbox/Makefile index baa46a3..ec031e7 100644 --- a/seedbox/Makefile +++ b/cookbooks/seedbox/Makefile @@ -8,6 +8,5 @@ DEPENDENCIES = traefik samba PROJECT_UID = 10017 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk - +# Include common Makefile +include ../../scripts/common.mk diff --git a/seedbox/README.md b/cookbooks/seedbox/README.md similarity index 100% rename from seedbox/README.md rename to cookbooks/seedbox/README.md diff --git a/seedbox/flaresolverr.container b/cookbooks/seedbox/flaresolverr.container similarity index 100% rename from seedbox/flaresolverr.container rename to cookbooks/seedbox/flaresolverr.container diff --git a/seedbox/jellyfin.container b/cookbooks/seedbox/jellyfin.container similarity index 100% rename from seedbox/jellyfin.container rename to cookbooks/seedbox/jellyfin.container diff --git a/seedbox/lidarr.container b/cookbooks/seedbox/lidarr.container similarity index 100% rename from seedbox/lidarr.container rename to cookbooks/seedbox/lidarr.container diff --git a/seedbox/other/samba/10-shares.conf b/cookbooks/seedbox/other/samba/10-shares.conf similarity index 100% rename from seedbox/other/samba/10-shares.conf rename to cookbooks/seedbox/other/samba/10-shares.conf diff --git a/seedbox/other/traefik/jellyfin.yaml b/cookbooks/seedbox/other/traefik/jellyfin.yaml similarity index 100% rename from seedbox/other/traefik/jellyfin.yaml rename to cookbooks/seedbox/other/traefik/jellyfin.yaml diff --git a/seedbox/other/traefik/lidarr.yaml b/cookbooks/seedbox/other/traefik/lidarr.yaml similarity index 100% rename from seedbox/other/traefik/lidarr.yaml rename to cookbooks/seedbox/other/traefik/lidarr.yaml diff --git a/seedbox/other/traefik/prowlarr.yaml b/cookbooks/seedbox/other/traefik/prowlarr.yaml similarity index 100% rename from seedbox/other/traefik/prowlarr.yaml rename to cookbooks/seedbox/other/traefik/prowlarr.yaml diff --git a/seedbox/other/traefik/qbittorrent.yaml b/cookbooks/seedbox/other/traefik/qbittorrent.yaml similarity index 100% rename from seedbox/other/traefik/qbittorrent.yaml rename to cookbooks/seedbox/other/traefik/qbittorrent.yaml diff --git a/seedbox/other/traefik/radarr.yaml b/cookbooks/seedbox/other/traefik/radarr.yaml similarity index 100% rename from seedbox/other/traefik/radarr.yaml rename to cookbooks/seedbox/other/traefik/radarr.yaml diff --git a/seedbox/other/traefik/sonarr.yaml b/cookbooks/seedbox/other/traefik/sonarr.yaml similarity index 100% rename from seedbox/other/traefik/sonarr.yaml rename to cookbooks/seedbox/other/traefik/sonarr.yaml diff --git a/seedbox/overlay.bu b/cookbooks/seedbox/overlay.bu similarity index 100% rename from seedbox/overlay.bu rename to cookbooks/seedbox/overlay.bu diff --git a/seedbox/prowlarr.container b/cookbooks/seedbox/prowlarr.container similarity index 100% rename from seedbox/prowlarr.container rename to cookbooks/seedbox/prowlarr.container diff --git a/seedbox/qbittorrent.container b/cookbooks/seedbox/qbittorrent.container similarity index 100% rename from seedbox/qbittorrent.container rename to cookbooks/seedbox/qbittorrent.container diff --git a/seedbox/radarr.container b/cookbooks/seedbox/radarr.container similarity index 100% rename from seedbox/radarr.container rename to cookbooks/seedbox/radarr.container diff --git a/seedbox/seedbox.target b/cookbooks/seedbox/seedbox.target similarity index 100% rename from seedbox/seedbox.target rename to cookbooks/seedbox/seedbox.target diff --git a/seedbox/sonarr.container b/cookbooks/seedbox/sonarr.container similarity index 100% rename from seedbox/sonarr.container rename to cookbooks/seedbox/sonarr.container diff --git a/seedbox/sysctl.d/seedbox.conf b/cookbooks/seedbox/sysctl.d/seedbox.conf similarity index 100% rename from seedbox/sysctl.d/seedbox.conf rename to cookbooks/seedbox/sysctl.d/seedbox.conf diff --git a/seedbox/tmpfiles.d/seedbox.conf b/cookbooks/seedbox/tmpfiles.d/seedbox.conf similarity index 100% rename from seedbox/tmpfiles.d/seedbox.conf rename to cookbooks/seedbox/tmpfiles.d/seedbox.conf diff --git a/traefik/Makefile b/cookbooks/traefik/Makefile similarity index 73% rename from traefik/Makefile rename to cookbooks/traefik/Makefile index c471503..a4e0789 100644 --- a/traefik/Makefile +++ b/cookbooks/traefik/Makefile @@ -6,6 +6,5 @@ PROJECT_UID = 10001 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk - +# Include common Makefile +include ../../scripts/common.mk diff --git a/traefik/README.md b/cookbooks/traefik/README.md similarity index 100% rename from traefik/README.md rename to cookbooks/traefik/README.md diff --git a/traefik/config/examples/conf.d/itix-middlewares.yaml b/cookbooks/traefik/config/examples/conf.d/itix-middlewares.yaml similarity index 100% rename from traefik/config/examples/conf.d/itix-middlewares.yaml rename to cookbooks/traefik/config/examples/conf.d/itix-middlewares.yaml diff --git a/traefik/config/examples/conf.d/ping.yaml b/cookbooks/traefik/config/examples/conf.d/ping.yaml similarity index 100% rename from traefik/config/examples/conf.d/ping.yaml rename to cookbooks/traefik/config/examples/conf.d/ping.yaml diff --git a/traefik/config/examples/itix-admins.txt b/cookbooks/traefik/config/examples/itix-admins.txt similarity index 100% rename from traefik/config/examples/itix-admins.txt rename to cookbooks/traefik/config/examples/itix-admins.txt diff --git a/traefik/config/examples/itix-users.txt b/cookbooks/traefik/config/examples/itix-users.txt similarity index 100% rename from traefik/config/examples/itix-users.txt rename to cookbooks/traefik/config/examples/itix-users.txt diff --git a/traefik/config/traefik.yaml b/cookbooks/traefik/config/traefik.yaml similarity index 100% rename from traefik/config/traefik.yaml rename to cookbooks/traefik/config/traefik.yaml diff --git a/traefik/hooks.mk b/cookbooks/traefik/hooks.mk similarity index 100% rename from traefik/hooks.mk rename to cookbooks/traefik/hooks.mk diff --git a/traefik/overlay.bu b/cookbooks/traefik/overlay.bu similarity index 100% rename from traefik/overlay.bu rename to cookbooks/traefik/overlay.bu diff --git a/traefik/traefik.container b/cookbooks/traefik/traefik.container similarity index 100% rename from traefik/traefik.container rename to cookbooks/traefik/traefik.container diff --git a/traefik/traefik.target b/cookbooks/traefik/traefik.target similarity index 100% rename from traefik/traefik.target rename to cookbooks/traefik/traefik.target diff --git a/unifi/Makefile b/cookbooks/unifi/Makefile similarity index 75% rename from unifi/Makefile rename to cookbooks/unifi/Makefile index bd268cc..46c782d 100644 --- a/unifi/Makefile +++ b/cookbooks/unifi/Makefile @@ -6,5 +6,5 @@ PROJECT_UID = 10011 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +# Include common Makefile +include ../../scripts/common.mk diff --git a/unifi/README.md b/cookbooks/unifi/README.md similarity index 100% rename from unifi/README.md rename to cookbooks/unifi/README.md diff --git a/unifi/config/examples/config.env b/cookbooks/unifi/config/examples/config.env similarity index 100% rename from unifi/config/examples/config.env rename to cookbooks/unifi/config/examples/config.env diff --git a/unifi/config/examples/init-mongo.js b/cookbooks/unifi/config/examples/init-mongo.js similarity index 100% rename from unifi/config/examples/init-mongo.js rename to cookbooks/unifi/config/examples/init-mongo.js diff --git a/unifi/overlay.bu b/cookbooks/unifi/overlay.bu similarity index 100% rename from unifi/overlay.bu rename to cookbooks/unifi/overlay.bu diff --git a/unifi/tmpfiles.d/unifi.conf b/cookbooks/unifi/tmpfiles.d/unifi.conf similarity index 100% rename from unifi/tmpfiles.d/unifi.conf rename to cookbooks/unifi/tmpfiles.d/unifi.conf diff --git a/unifi/unifi-app.container b/cookbooks/unifi/unifi-app.container similarity index 100% rename from unifi/unifi-app.container rename to cookbooks/unifi/unifi-app.container diff --git a/unifi/unifi-mongo.container b/cookbooks/unifi/unifi-mongo.container similarity index 100% rename from unifi/unifi-mongo.container rename to cookbooks/unifi/unifi-mongo.container diff --git a/unifi/unifi.target b/cookbooks/unifi/unifi.target similarity index 100% rename from unifi/unifi.target rename to cookbooks/unifi/unifi.target diff --git a/vaultwarden/Makefile b/cookbooks/vaultwarden/Makefile similarity index 78% rename from vaultwarden/Makefile rename to cookbooks/vaultwarden/Makefile index aab7152..12f8e39 100644 --- a/vaultwarden/Makefile +++ b/cookbooks/vaultwarden/Makefile @@ -8,6 +8,5 @@ DEPENDENCIES = postgresql traefik PROJECT_UID = 10020 PROJECT_GID = 10000 -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk - +# Include common Makefile +include ../../scripts/common.mk diff --git a/vaultwarden/README.md b/cookbooks/vaultwarden/README.md similarity index 100% rename from vaultwarden/README.md rename to cookbooks/vaultwarden/README.md diff --git a/vaultwarden/config/examples/config.env b/cookbooks/vaultwarden/config/examples/config.env similarity index 100% rename from vaultwarden/config/examples/config.env rename to cookbooks/vaultwarden/config/examples/config.env diff --git a/vaultwarden/other/postgresql/vaultwarden.sql b/cookbooks/vaultwarden/other/postgresql/vaultwarden.sql similarity index 100% rename from vaultwarden/other/postgresql/vaultwarden.sql rename to cookbooks/vaultwarden/other/postgresql/vaultwarden.sql diff --git a/vaultwarden/other/traefik/vaultwarden.yaml b/cookbooks/vaultwarden/other/traefik/vaultwarden.yaml similarity index 100% rename from vaultwarden/other/traefik/vaultwarden.yaml rename to cookbooks/vaultwarden/other/traefik/vaultwarden.yaml diff --git a/vaultwarden/overlay.bu b/cookbooks/vaultwarden/overlay.bu similarity index 100% rename from vaultwarden/overlay.bu rename to cookbooks/vaultwarden/overlay.bu diff --git a/vaultwarden/tmpfiles.d/vaultwarden.conf b/cookbooks/vaultwarden/tmpfiles.d/vaultwarden.conf similarity index 100% rename from vaultwarden/tmpfiles.d/vaultwarden.conf rename to cookbooks/vaultwarden/tmpfiles.d/vaultwarden.conf diff --git a/vaultwarden/vaultwarden.container b/cookbooks/vaultwarden/vaultwarden.container similarity index 100% rename from vaultwarden/vaultwarden.container rename to cookbooks/vaultwarden/vaultwarden.container diff --git a/vaultwarden/vaultwarden.target b/cookbooks/vaultwarden/vaultwarden.target similarity index 100% rename from vaultwarden/vaultwarden.target rename to cookbooks/vaultwarden/vaultwarden.target diff --git a/vmagent/Makefile b/cookbooks/vmagent/Makefile similarity index 87% rename from vmagent/Makefile rename to cookbooks/vmagent/Makefile index d704f94..d92bedc 100644 --- a/vmagent/Makefile +++ b/cookbooks/vmagent/Makefile @@ -7,8 +7,7 @@ PROJECT_UID = 10025 PROJECT_GID = 10000 # Include common Makefile -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk +include ../../scripts/common.mk SYSTEMD_MAIN_UNIT_NAMES += vmagent.service diff --git a/vmagent/README.md b/cookbooks/vmagent/README.md similarity index 100% rename from vmagent/README.md rename to cookbooks/vmagent/README.md diff --git a/vmagent/config/examples/conf.d/remotewrite.token b/cookbooks/vmagent/config/examples/conf.d/remotewrite.token similarity index 100% rename from vmagent/config/examples/conf.d/remotewrite.token rename to cookbooks/vmagent/config/examples/conf.d/remotewrite.token diff --git a/vmagent/config/examples/vmagent.local.env b/cookbooks/vmagent/config/examples/vmagent.local.env similarity index 100% rename from vmagent/config/examples/vmagent.local.env rename to cookbooks/vmagent/config/examples/vmagent.local.env diff --git a/vmagent/config/vmagent.global.env b/cookbooks/vmagent/config/vmagent.global.env similarity index 100% rename from vmagent/config/vmagent.global.env rename to cookbooks/vmagent/config/vmagent.global.env diff --git a/vmagent/overlay.bu b/cookbooks/vmagent/overlay.bu similarity index 100% rename from vmagent/overlay.bu rename to cookbooks/vmagent/overlay.bu diff --git a/vmagent/vmagent.container b/cookbooks/vmagent/vmagent.container similarity index 100% rename from vmagent/vmagent.container rename to cookbooks/vmagent/vmagent.container diff --git a/vsftpd/Makefile b/cookbooks/vsftpd/Makefile similarity index 78% rename from vsftpd/Makefile rename to cookbooks/vsftpd/Makefile index 4dd348f..04d5f39 100644 --- a/vsftpd/Makefile +++ b/cookbooks/vsftpd/Makefile @@ -9,7 +9,4 @@ PROJECT_UID = 10015 PROJECT_GID = 10000 # Include common Makefile -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk - - +include ../../scripts/common.mk diff --git a/vsftpd/README.md b/cookbooks/vsftpd/README.md similarity index 100% rename from vsftpd/README.md rename to cookbooks/vsftpd/README.md diff --git a/vsftpd/config/container/Containerfile b/cookbooks/vsftpd/config/container/Containerfile similarity index 100% rename from vsftpd/config/container/Containerfile rename to cookbooks/vsftpd/config/container/Containerfile diff --git a/vsftpd/config/container/container-entrypoint b/cookbooks/vsftpd/config/container/container-entrypoint similarity index 100% rename from vsftpd/config/container/container-entrypoint rename to cookbooks/vsftpd/config/container/container-entrypoint diff --git a/vsftpd/config/container/vsftpd-virtual b/cookbooks/vsftpd/config/container/vsftpd-virtual similarity index 100% rename from vsftpd/config/container/vsftpd-virtual rename to cookbooks/vsftpd/config/container/vsftpd-virtual diff --git a/vsftpd/config/examples/vsftpd.conf.d/local-users.conf b/cookbooks/vsftpd/config/examples/vsftpd.conf.d/local-users.conf similarity index 100% rename from vsftpd/config/examples/vsftpd.conf.d/local-users.conf rename to cookbooks/vsftpd/config/examples/vsftpd.conf.d/local-users.conf diff --git a/vsftpd/config/examples/vsftpd.conf.d/tls.conf b/cookbooks/vsftpd/config/examples/vsftpd.conf.d/tls.conf similarity index 100% rename from vsftpd/config/examples/vsftpd.conf.d/tls.conf rename to cookbooks/vsftpd/config/examples/vsftpd.conf.d/tls.conf diff --git a/vsftpd/config/examples/vsftpd.conf.d/virtual-users.conf b/cookbooks/vsftpd/config/examples/vsftpd.conf.d/virtual-users.conf similarity index 100% rename from vsftpd/config/examples/vsftpd.conf.d/virtual-users.conf rename to cookbooks/vsftpd/config/examples/vsftpd.conf.d/virtual-users.conf diff --git a/vsftpd/config/vsftpd.conf.d/global.conf b/cookbooks/vsftpd/config/vsftpd.conf.d/global.conf similarity index 100% rename from vsftpd/config/vsftpd.conf.d/global.conf rename to cookbooks/vsftpd/config/vsftpd.conf.d/global.conf diff --git a/vsftpd/overlay.bu b/cookbooks/vsftpd/overlay.bu similarity index 100% rename from vsftpd/overlay.bu rename to cookbooks/vsftpd/overlay.bu diff --git a/vsftpd/tmpfiles.d/vsftpd.conf b/cookbooks/vsftpd/tmpfiles.d/vsftpd.conf similarity index 100% rename from vsftpd/tmpfiles.d/vsftpd.conf rename to cookbooks/vsftpd/tmpfiles.d/vsftpd.conf diff --git a/vsftpd/vsftpd-build.timer b/cookbooks/vsftpd/vsftpd-build.timer similarity index 100% rename from vsftpd/vsftpd-build.timer rename to cookbooks/vsftpd/vsftpd-build.timer diff --git a/vsftpd/vsftpd-load-renewed-certificate.service b/cookbooks/vsftpd/vsftpd-load-renewed-certificate.service similarity index 100% rename from vsftpd/vsftpd-load-renewed-certificate.service rename to cookbooks/vsftpd/vsftpd-load-renewed-certificate.service diff --git a/vsftpd/vsftpd.build b/cookbooks/vsftpd/vsftpd.build similarity index 100% rename from vsftpd/vsftpd.build rename to cookbooks/vsftpd/vsftpd.build diff --git a/vsftpd/vsftpd.container b/cookbooks/vsftpd/vsftpd.container similarity index 100% rename from vsftpd/vsftpd.container rename to cookbooks/vsftpd/vsftpd.container diff --git a/vsftpd/vsftpd.target b/cookbooks/vsftpd/vsftpd.target similarity index 100% rename from vsftpd/vsftpd.target rename to cookbooks/vsftpd/vsftpd.target diff --git a/TESTS.md b/docs/TESTS.md similarity index 100% rename from TESTS.md rename to docs/TESTS.md diff --git a/pyproject.toml b/pyproject.toml index b7ca693..0f6a2a3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,4 +21,4 @@ addopts = "-v" [tool.setuptools] # This repo is not a Python package — suppress automatic package discovery. -packages = [] +packages = [] diff --git a/qemu-user-static/Makefile b/qemu-user-static/Makefile deleted file mode 100644 index ac5dfde..0000000 --- a/qemu-user-static/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -TOP_LEVEL_DIR := .. -include $(TOP_LEVEL_DIR)/common.mk diff --git a/cloud-init.dev.yaml b/scripts/cloud-init.dev.yaml similarity index 100% rename from cloud-init.dev.yaml rename to scripts/cloud-init.dev.yaml diff --git a/common.mk b/scripts/common.mk similarity index 92% rename from common.mk rename to scripts/common.mk index 4fc6dd9..47980de 100644 --- a/common.mk +++ b/scripts/common.mk @@ -48,7 +48,7 @@ ifeq ($(TARGET_CHROOT),) export TARGET_CHROOT := $(shell mktemp -d /tmp/butane-chroot-XXXXXX) endif ifeq ($(BUTANE_BLOCKLIST),) -export BUTANE_BLOCKLIST := $(shell tmp=$$(mktemp /tmp/butane-blocklist-XXXXXX); cp $(TOP_LEVEL_DIR)/butane.blocklist "$$tmp"; echo "$$tmp") +export BUTANE_BLOCKLIST := $(shell tmp=$$(mktemp /tmp/butane-blocklist-XXXXXX); cp $(SCRIPTS_DIR)/butane.blocklist "$$tmp"; echo "$$tmp") endif ifeq ($(BUTANE_START_TS),) export BUTANE_START_TS := $(shell mktemp /tmp/butane-start-ts-XXXXXX) @@ -59,6 +59,11 @@ endif # This is used to create subdirectories for configuration and state files. PROJECT_NAME := $(shell basename "$${PWD}") +# Absolute paths derived from the location of this Makefile +SCRIPTS_DIR := $(shell realpath $(dir $(lastword $(MAKEFILE_LIST)))) +TOP_LEVEL_DIR := $(shell realpath $(SCRIPTS_DIR)/..) +COOKBOOKS_DIR := $(shell realpath $(TOP_LEVEL_DIR)/cookbooks) + # Quadlets files and their corresponding systemd unit names QUADLETS_FILES = $(wildcard *.container *.volume *.network *.pod *.build *.image) QUADLET_UNIT_NAMES := $(patsubst %.container, %.service, $(wildcard *.container)) \ @@ -113,23 +118,19 @@ I_KNOW_WHAT_I_AM_DOING ?= # List of all ignition files corresponding to the dependencies # Here, we inject the "base" project as a dependency. It can therefore be assumed to always be embeddable in project's butane specs. -DEPENDENCIES_IGNITION_FILES := $(shell for dep in $$(if [ "$(PROJECT_NAME)" != "base" ]; then echo base; fi) $(DEPENDENCIES); do echo $(TOP_LEVEL_DIR)/$$dep/$$dep.ign $(TOP_LEVEL_DIR)/$$dep/$$dep-examples.ign; done) +DEPENDENCIES_IGNITION_FILES := $(shell for dep in $$(if [ "$(PROJECT_NAME)" != "base" ]; then echo base; fi) $(DEPENDENCIES); do echo $(COOKBOOKS_DIR)/$$dep/$$dep.ign $(COOKBOOKS_DIR)/$$dep/$$dep-examples.ign; done) # User and group IDs to own the project files and directories. PROJECT_UID ?= 0 PROJECT_GID ?= 0 # Source Makefiles providing hooks to extend this Makefile. -HOOKS := $(wildcard $(TOP_LEVEL_DIR)/*/hooks.mk) +HOOKS := $(wildcard $(COOKBOOKS_DIR)/*/hooks.mk) include $(HOOKS) -# Ensure that the Makefile is not run from the top-level directory and that it is run as root. +# Ensure that the Makefile is run as root. pre-requisites:: - @if [ -z "$(TOP_LEVEL_DIR)" ]; then \ - echo "Do not run this Makefile from the top-level directory!" >&2; \ - exit 1; \ - fi ; \ - if [ "$$(id -u)" -ne 0 ]; then \ + @if [ "$$(id -u)" -ne 0 ]; then \ echo "This Makefile must be run as root" >&2; \ exit 1; \ fi @@ -219,7 +220,7 @@ install-files-pre:: @run() { echo $$*; "$$@"; }; \ set -Eeuo pipefail; \ for dep in $(DEPENDENCIES); do \ - run $(MAKE) -C $(TOP_LEVEL_DIR)/$$dep install-files; \ + run $(MAKE) -C $(COOKBOOKS_DIR)/$$dep install-files; \ done # Custom commands to be run after copying quadlets and systemd files. @@ -257,7 +258,7 @@ install-actions-pre:: @run() { echo $$*; "$$@"; }; \ set -Eeuo pipefail; \ for dep in $(DEPENDENCIES); do \ - run $(MAKE) -C $(TOP_LEVEL_DIR)/$$dep install-actions; \ + run $(MAKE) -C $(COOKBOOKS_DIR)/$$dep install-actions; \ done # Custom commands to be run after performing post-installation actions. @@ -310,7 +311,7 @@ uninstall-post:: @run() { echo $$*; "$$@"; }; \ set -Eeuo pipefail; \ for dep in $(DEPENDENCIES); do \ - run $(MAKE) -C $(TOP_LEVEL_DIR)/$$dep uninstall; \ + run $(MAKE) -C $(COOKBOOKS_DIR)/$$dep uninstall; \ done # Tail the logs of all units managed by this project. @@ -342,21 +343,21 @@ $(PROJECT_NAME).bu $(PROJECT_NAME)-examples.bu &: # Avoid building the current project as its own dependency. \ continue; \ fi ; \ - if [ $(BUTANE_START_TS) -ot "$(TOP_LEVEL_DIR)/$$dep/$$dep.ign" ] && [ $(BUTANE_START_TS) -ot "$(TOP_LEVEL_DIR)/$$dep/$$dep-examples.ign" ]; then \ + if [ $(BUTANE_START_TS) -ot "$(COOKBOOKS_DIR)/$$dep/$$dep.ign" ] && [ $(BUTANE_START_TS) -ot "$(COOKBOOKS_DIR)/$$dep/$$dep-examples.ign" ]; then \ # Dependency is up-to-date. \ continue; \ fi ; \ - run $(MAKE) -C $(TOP_LEVEL_DIR)/$$dep $$dep.ign $$dep-examples.ign ; \ + run $(MAKE) -C $(COOKBOOKS_DIR)/$$dep $$dep.ign $$dep-examples.ign ; \ done; \ run make install-config; \ YQ_FILES="$$(if [ -f "overlay.bu" ]; then echo "- overlay.bu"; else echo "-"; fi)"; \ echo "generate-butane-spec.sh $(TARGET_CHROOT) > $(PROJECT_NAME).bu"; \ - $(TOP_LEVEL_DIR)/generate-butane-spec.sh $(TARGET_CHROOT) $(BUTANE_BLOCKLIST) $(SYSTEMD_MAIN_UNIT_NAMES) $(SYSTEMD_TIMER_NAMES) | yq eval-all '. as $$item ireduce ({}; . *+ $$item)' $$YQ_FILES > $(PROJECT_NAME).bu; \ - (cat $(TOP_LEVEL_DIR)/butane.blocklist; echo; for file in $$(find "$$TARGET_CHROOT"); do echo "$${file#$$TARGET_CHROOT}"; done) | sort -u | grep -v -E '^$$' > "$(BUTANE_BLOCKLIST)"; \ + $(SCRIPTS_DIR)/generate-butane-spec.sh $(TARGET_CHROOT) $(BUTANE_BLOCKLIST) $(SYSTEMD_MAIN_UNIT_NAMES) $(SYSTEMD_TIMER_NAMES) | yq eval-all '. as $$item ireduce ({}; . *+ $$item)' $$YQ_FILES > $(PROJECT_NAME).bu; \ + (cat $(SCRIPTS_DIR)/butane.blocklist; echo; for file in $$(find "$$TARGET_CHROOT"); do echo "$${file#$$TARGET_CHROOT}"; done) | sort -u | grep -v -E '^$$' > "$(BUTANE_BLOCKLIST)"; \ run make install-examples; \ echo "generate-butane-spec.sh $(TARGET_CHROOT) > $(PROJECT_NAME)-examples.bu"; \ - $(TOP_LEVEL_DIR)/generate-butane-spec.sh $(TARGET_CHROOT) $(BUTANE_BLOCKLIST) > $(PROJECT_NAME)-examples.bu; \ - (cat $(TOP_LEVEL_DIR)/butane.blocklist; echo; for file in $$(find "$$TARGET_CHROOT"); do echo "$${file#$$TARGET_CHROOT}"; done) | sort -u | grep -v -E '^$$' > "$(BUTANE_BLOCKLIST)"; \ + $(SCRIPTS_DIR)/generate-butane-spec.sh $(TARGET_CHROOT) $(BUTANE_BLOCKLIST) > $(PROJECT_NAME)-examples.bu; \ + (cat $(SCRIPTS_DIR)/butane.blocklist; echo; for file in $$(find "$$TARGET_CHROOT"); do echo "$${file#$$TARGET_CHROOT}"; done) | sort -u | grep -v -E '^$$' > "$(BUTANE_BLOCKLIST)"; \ fi .PHONY: $(PROJECT_NAME).bu $(PROJECT_NAME)-examples.bu @@ -373,8 +374,8 @@ $(TOP_LEVEL_DIR)/local.ign: $(TOP_LEVEL_DIR)/local.bu .INTERMEDIATE: fcos.bu fcos.bu: DEPS := $(if $(filter-out base,$(PROJECT_NAME)),base $(DEPENDENCIES),$(DEPENDENCIES)) -fcos.bu: %.bu: Makefile $(TOP_LEVEL_DIR)/default-butane-spec.sh - $(TOP_LEVEL_DIR)/default-butane-spec.sh $(PROJECT_NAME) $(DEPS) > $@ +fcos.bu: %.bu: Makefile $(SCRIPTS_DIR)/default-butane-spec.sh + $(SCRIPTS_DIR)/default-butane-spec.sh $(PROJECT_NAME) $(DEPS) > $@ # Generate the final Fedora CoreOS ignition file by merging the Butane spec with the local and project-specific ignition files, as well as those of the dependencies. fcos.ign: fcos.bu $(TOP_LEVEL_DIR)/local.ign $(PROJECT_NAME).ign $(PROJECT_NAME)-examples.ign $(DEPENDENCIES_IGNITION_FILES) @@ -453,7 +454,7 @@ console: pre-requisites # List all systemd and quadlet unit names provided by the dependencies of this project. units-pre:: @for dep in $(DEPENDENCIES); do \ - $(MAKE) -s -C $(TOP_LEVEL_DIR)/$$dep units 2>/dev/null; \ + $(MAKE) -s -C $(COOKBOOKS_DIR)/$$dep units 2>/dev/null; \ done # List all systemd and quadlet unit names provided by this project and, through "units-pre", also its dependencies. @@ -466,7 +467,7 @@ clean-pre:: @run() { echo $$*; "$$@"; }; \ set -Eeuo pipefail; \ for dep in $(DEPENDENCIES); do \ - run $(MAKE) -C $(TOP_LEVEL_DIR)/$$dep clean; \ + run $(MAKE) -C $(COOKBOOKS_DIR)/$$dep clean; \ done # Custom commands to be run after cleaning persistent data and configuration files. diff --git a/create-dev-vm.sh b/scripts/create-dev-vm.sh similarity index 100% rename from create-dev-vm.sh rename to scripts/create-dev-vm.sh diff --git a/default-butane-spec.sh b/scripts/default-butane-spec.sh similarity index 100% rename from default-butane-spec.sh rename to scripts/default-butane-spec.sh diff --git a/generate-butane-spec.sh b/scripts/generate-butane-spec.sh similarity index 100% rename from generate-butane-spec.sh rename to scripts/generate-butane-spec.sh