First stage refactor for dynamic app specs (napps.scm).
This commit is contained in:
126
Makefile
126
Makefile
@@ -3,93 +3,81 @@ TERRAFORM_ENV := production
|
||||
config_dir := ./config/
|
||||
apps_config := $(config_dir)apps.config
|
||||
|
||||
ALL_APPS_FILES = $(shell find all-apps/ -type f -name '*')
|
||||
|
||||
# .dirstamp plus && $@ is like make magic to get this rule
|
||||
# to only run if the contents of all-apps changes
|
||||
app/.dirstamp: all-apps/app.service all-apps/docker-compose.yaml all-apps/.env \
|
||||
all-apps/restic-snapshot.service \
|
||||
all-apps/instance-control/webhook_secret \
|
||||
all-apps/instance-control/hooks/hooks.json \
|
||||
all-apps/lb/Caddyfile \
|
||||
$(wildcard all-apps/lb/*) \
|
||||
$(wildcard all-apps/instance-control/*) \
|
||||
$(wildcard all-apps/nextcloud/*) \
|
||||
$(wildcard all-apps/wg-easy/*) \
|
||||
$(wildcard all-apps/ghost/*) \
|
||||
$(wildcard all-apps/nassella/*) \
|
||||
all-apps/nassella/authelia-config/configuration.yml \
|
||||
all-apps/nassella/lldap-config/lldap_config.toml \
|
||||
$(wildcard all-apps/dozzle/*)
|
||||
app/.dirstamp: copy-apps.sh $(apps_config) $(ALL_APPS_FILES)
|
||||
|
||||
rm -Rf app/
|
||||
mkdir app/
|
||||
cp all-apps/app.service app/
|
||||
cp all-apps/restic-snapshot.service app/
|
||||
cp all-apps/docker-compose.yaml app/
|
||||
cp all-apps/.env app/
|
||||
./copy-apps.sh $(apps_config) && touch $@
|
||||
|
||||
# compose .env files
|
||||
# (compose only supports one .env file at the root by default)
|
||||
all-apps/.env: all-apps/ghost/.compose-env
|
||||
find all-apps/ -name ".compose-env" -exec cat > all-apps/.env {} +
|
||||
# # compose .env files
|
||||
# # (compose only supports one .env file at the root by default)
|
||||
app/.env: app/ghost/.compose-env
|
||||
find app/ -name ".compose-env" -exec cat > app/.env {} +
|
||||
|
||||
# Caddy / lb
|
||||
all-apps/lb/Caddyfile: $(apps_config) make-caddyfile.sh
|
||||
mkdir -p all-apps/lb
|
||||
./make-caddyfile.sh $(apps_config) > all-apps/lb/Caddyfile
|
||||
app/lb/Caddyfile: $(apps_config) make-caddyfile.sh
|
||||
mkdir -p app/lb
|
||||
./make-caddyfile.sh $(apps_config) > app/lb/Caddyfile
|
||||
|
||||
# Instance Control
|
||||
all-apps/instance-control/webhook_secret: $(apps_config)
|
||||
app/instance-control/webhook_secret: $(apps_config)
|
||||
bash -c 'source $(apps_config); printf "%s\n" "$$INSTANCE_CONTROL_WEBHOOKS_SECRET" > $@'
|
||||
all-apps/instance-control/hooks/hooks.json: $(apps_config) make-instance-control-config.sh
|
||||
app/instance-control/hooks/hooks.json: $(apps_config) make-instance-control-config.sh
|
||||
./make-instance-control-config.sh $(apps_config)
|
||||
|
||||
# Nextcloud
|
||||
all-apps/nextcloud/nextcloud_admin_user: $(apps_config)
|
||||
app/nextcloud/nextcloud_admin_user: $(apps_config)
|
||||
bash -c 'source $(apps_config); printf "%s\n" "$$NEXTCLOUD_ADMIN_USER" > $@'
|
||||
all-apps/nextcloud/nextcloud_admin_password: $(apps_config)
|
||||
app/nextcloud/nextcloud_admin_password: $(apps_config)
|
||||
bash -c 'source $(apps_config); printf "%s\n" "$$NEXTCLOUD_ADMIN_PASSWORD" > $@'
|
||||
all-apps/nextcloud/postgres_db: $(apps_config)
|
||||
app/nextcloud/postgres_db: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NEXTCLOUD_POSTGRES_DB" > $@'
|
||||
all-apps/nextcloud/postgres_user: $(apps_config)
|
||||
app/nextcloud/postgres_user: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NEXTCLOUD_POSTGRES_USER" > $@'
|
||||
all-apps/nextcloud/postgres_password: $(apps_config)
|
||||
app/nextcloud/postgres_password: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NEXTCLOUD_POSTGRES_PASSWORD" > $@'
|
||||
all-apps/nextcloud/redis_password: $(apps_config)
|
||||
app/nextcloud/redis_password: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NEXTCLOUD_REDIS_PASSWORD" > $@'
|
||||
all-apps/nextcloud/nextcloud.env: $(apps_config) all-apps/nextcloud/nextcloud.env.tmpl make-nextcloud-env.sh
|
||||
app/nextcloud/nextcloud.env: $(apps_config) app/nextcloud/nextcloud.env.tmpl make-nextcloud-env.sh
|
||||
./make-nextcloud-env.sh $(apps_config)
|
||||
|
||||
# Nassella
|
||||
all-apps/nassella/postgres_db: $(apps_config)
|
||||
app/nassella/postgres_db: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_POSTGRES_DB" > $@'
|
||||
all-apps/nassella/postgres_user: $(apps_config)
|
||||
app/nassella/postgres_user: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_POSTGRES_USER" > $@'
|
||||
all-apps/nassella/postgres_password: $(apps_config)
|
||||
app/nassella/postgres_password: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_POSTGRES_PASSWORD" > $@'
|
||||
all-apps/nassella/authelia_postgres_db: $(apps_config)
|
||||
app/nassella/authelia_postgres_db: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_AUTHELIA_POSTGRES_DB" > $@'
|
||||
all-apps/nassella/authelia_postgres_user: $(apps_config)
|
||||
app/nassella/authelia_postgres_user: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_AUTHELIA_POSTGRES_USER" > $@'
|
||||
all-apps/nassella/authelia_postgres_password: $(apps_config)
|
||||
app/nassella/authelia_postgres_password: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_AUTHELIA_POSTGRES_PASSWORD" > $@'
|
||||
all-apps/nassella/lldap_postgres_db: $(apps_config)
|
||||
app/nassella/lldap_postgres_db: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_LLDAP_POSTGRES_DB" > $@'
|
||||
all-apps/nassella/lldap_postgres_user: $(apps_config)
|
||||
app/nassella/lldap_postgres_user: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_LLDAP_POSTGRES_USER" > $@'
|
||||
all-apps/nassella/lldap_postgres_password: $(apps_config)
|
||||
app/nassella/lldap_postgres_password: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_LLDAP_POSTGRES_PASSWORD" > $@'
|
||||
all-apps/nassella/lldap_admin_password: $(apps_config)
|
||||
app/nassella/lldap_admin_password: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_LLDAP_ADMIN_PASSWORD" > $@'
|
||||
all-apps/nassella/stripe_api_key: $(apps_config)
|
||||
app/nassella/stripe_api_key: $(apps_config)
|
||||
bash -c 'source ./$(apps_config); printf "%s\n" "$$NASSELLA_STRIPE_API_KEY" > $@'
|
||||
all-apps/nassella/authelia-config/configuration.yml: $(apps_config) all-apps/nassella/authelia-config/configuration.yml.tmpl make-nassella-authelia-config.sh
|
||||
app/nassella/authelia-config/configuration.yml: $(apps_config) app/nassella/authelia-config/configuration.yml.tmpl make-nassella-authelia-config.sh
|
||||
./make-nassella-authelia-config.sh $(apps_config)
|
||||
all-apps/nassella/lldap-config/lldap_config.toml: $(apps_config) all-apps/nassella/lldap-config/lldap_config.toml.tmpl make-nassella-lldap-config.sh
|
||||
app/nassella/lldap-config/lldap_config.toml: $(apps_config) app/nassella/lldap-config/lldap_config.toml.tmpl make-nassella-lldap-config.sh
|
||||
./make-nassella-lldap-config.sh $(apps_config)
|
||||
|
||||
# Ghost
|
||||
all-apps/ghost/.compose-env: $(apps_config) all-apps/ghost/.compose.env.tmpl make-ghost-env.sh
|
||||
app/ghost/.compose-env: $(apps_config) app/ghost/.compose.env.tmpl make-ghost-env.sh
|
||||
./make-ghost-env.sh $(apps_config)
|
||||
|
||||
# Backups / Restic / Backblaze
|
||||
@@ -99,34 +87,34 @@ restic-password: $(apps_config) make-restic-password.sh
|
||||
./make-restic-password.sh $(apps_config) > restic-password
|
||||
|
||||
ignition.json: cl.yaml app/.dirstamp \
|
||||
all-apps/lb/Caddyfile \
|
||||
all-apps/instance-control/webhook_secret \
|
||||
all-apps/instance-control/hooks/hooks.json \
|
||||
all-apps/nextcloud/nextcloud_admin_user \
|
||||
all-apps/nextcloud/nextcloud_admin_password \
|
||||
all-apps/nextcloud/postgres_db \
|
||||
all-apps/nextcloud/postgres_user \
|
||||
all-apps/nextcloud/postgres_password \
|
||||
all-apps/nextcloud/redis_password \
|
||||
all-apps/nextcloud/nextcloud.env \
|
||||
all-apps/nassella/postgres_db \
|
||||
all-apps/nassella/postgres_user \
|
||||
all-apps/nassella/postgres_password \
|
||||
all-apps/nassella/lldap_postgres_db \
|
||||
all-apps/nassella/lldap_postgres_user \
|
||||
all-apps/nassella/lldap_postgres_password \
|
||||
all-apps/nassella/authelia_postgres_db \
|
||||
all-apps/nassella/authelia_postgres_user \
|
||||
all-apps/nassella/authelia_postgres_password \
|
||||
all-apps/nassella/nassella.env \
|
||||
all-apps/nassella/authelia-config/configuration.yml \
|
||||
all-apps/nassella/lldap-config/lldap_config.toml \
|
||||
all-apps/ghost/.compose-env \
|
||||
app/lb/Caddyfile \
|
||||
app/instance-control/webhook_secret \
|
||||
app/instance-control/hooks/hooks.json \
|
||||
app/nextcloud/nextcloud_admin_user \
|
||||
app/nextcloud/nextcloud_admin_password \
|
||||
app/nextcloud/postgres_db \
|
||||
app/nextcloud/postgres_user \
|
||||
app/nextcloud/postgres_password \
|
||||
app/nextcloud/redis_password \
|
||||
app/nextcloud/nextcloud.env \
|
||||
app/nassella/postgres_db \
|
||||
app/nassella/postgres_user \
|
||||
app/nassella/postgres_password \
|
||||
app/nassella/lldap_postgres_db \
|
||||
app/nassella/lldap_postgres_user \
|
||||
app/nassella/lldap_postgres_password \
|
||||
app/nassella/authelia_postgres_db \
|
||||
app/nassella/authelia_postgres_user \
|
||||
app/nassella/authelia_postgres_password \
|
||||
app/nassella/nassella.env \
|
||||
app/nassella/authelia-config/configuration.yml \
|
||||
app/nassella/lldap-config/lldap_config.toml \
|
||||
app/ghost/.compose-env \
|
||||
restic-env \
|
||||
restic-password \
|
||||
restic-restore.sh \
|
||||
restic-snapshot.sh \
|
||||
all-apps/.env \
|
||||
app/.env \
|
||||
$(config_dir)ssh-keys
|
||||
cat cl.yaml | docker run --rm --volume $(config_dir)/ssh-keys:/pwd/ssh-keys --volume ${PWD}:/pwd --workdir /pwd -i quay.io/coreos/butane:latest -d /pwd > ignition.json
|
||||
|
||||
|
||||
Reference in New Issue
Block a user