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