TERRAFORM_ENV=production # .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 \ $(wildcard all-apps/lb/*) \ $(wildcard all-apps/nextcloud/*) \ $(wildcard all-apps/wg-easy/*) \ $(wildcard all-apps/dozzle/*) rm -Rf app/ cp -a all-apps app && touch $@ # Caddy / lb all-apps/lb/Caddyfile: apps.config make-caddyfile.sh ./make-caddyfile.sh > all-apps/lb/Caddyfile # Nextcloud all-apps/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 bash -c 'source ./apps.config; printf "%s\n" "$$NEXTCLOUD_ADMIN_PASSWORD" > $@' all-apps/nextcloud/postgres_db: apps.config bash -c 'source ./apps.config; printf "%s\n" "$$NEXTCLOUD_POSTGRES_DB" > $@' all-apps/nextcloud/postgres_user: apps.config bash -c 'source ./apps.config; printf "%s\n" "$$NEXTCLOUD_POSTGRES_USER" > $@' all-apps/nextcloud/postgres_password: apps.config bash -c 'source ./apps.config; printf "%s\n" "$$NEXTCLOUD_POSTGRES_PASSWORD" > $@' all-apps/nextcloud/redis_password: apps.config bash -c 'source ./apps.config; printf "%s\n" "$$NEXTCLOUD_REDIS_PASSWORD" > $@' all-apps/nextcloud/nextcloud.env: apps.config make-nextcloud-env.sh ./make-nextcloud-env.sh ignition.json: cl.yaml app/.dirstamp \ all-apps/lb/Caddyfile \ 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 cat cl.yaml | docker run --rm --volume /home/tjhintz/.ssh/id_rsa.pub:/pwd/ssh-keys --volume ${PWD}:/pwd --workdir /pwd -i quay.io/coreos/butane:latest -d /pwd > ignition.json generated.tfvars: apps.config make-generated.sh ./make-generated.sh > generated.tfvars plan: ignition.json $(TERRAFORM_ENV).tfvars generated.tfvars bash -c "terraform plan -var-file=<(cat $(TERRAFORM_ENV).tfvars generated.tfvars)" apply: ignition.json $(TERRAFORM_ENV).tfvars generated.tfvars bash -c "terraform apply -var-file=<(cat $(TERRAFORM_ENV).tfvars generated.tfvars)" destroy: ignition.json $(TERRAFORM_ENV).tfvars generated.tfvars bash -c "terraform destroy -var-file=<(cat $(TERRAFORM_ENV).tfvars generated.tfvars)" ## to help me remember the command to run to test the config locally testlocalhost: curl -k --resolve localhost:443:146.190.12.129 https://localhost flatcarbuild: ignition.json cp --reflink=auto flatcar/flatcar_production_qemu_image.img.fresh flatcar/flatcar_production_qemu_image.img flatcarrun: ./flatcar/flatcar_production_qemu.sh -i ignition.json