SOPS_KEY ?= .sops/age-key.txt
export SOPS_AGE_KEY_FILE=$(SOPS_KEY)

.PHONY: help secrets edit-secrets decrypt-secrets bootstrap swarm dokploy supporting backup dry-run lint

help:
	@echo "Available targets:"
	@echo "  init          - Install Ansible collections"
	@echo "  edit-secrets  - Edit encrypted secrets"
	@echo "  decrypt-secrets - View encrypted secrets"
	@echo "  dry-run       - Syntax-check all playbooks"
	@echo "  bootstrap     - Bootstrap all nodes (Docker, sysctl, NFS)"
	@echo "  swarm         - Initialize/join Swarm and apply labels"
	@echo "  dokploy       - Deploy Dokploy control plane"
	@echo "  supporting    - Deploy registry, gitea, DNS"
	@echo "  backup        - Backup Dokploy state and volumes"
	@echo "  all           - Run bootstrap + swarm + dokploy + supporting"

init:
	ansible-galaxy collection install -r requirements.yml

edit-secrets:
	sops inventory/group_vars/all/secrets.sops.yml

decrypt-secrets:
	sops --decrypt inventory/group_vars/all/secrets.sops.yml

dry-run:
	ansible-playbook -i inventory/production.yml --syntax-check playbooks/*.yml

export:
	ansible-playbook -i inventory/production.yml playbooks/91_export_dokploy.yml

bootstrap:
	ansible-playbook -i inventory/production.yml playbooks/00_bootstrap_nodes.yml

swarm:
	ansible-playbook -i inventory/production.yml playbooks/10_swarm_init.yml

dokploy:
	ansible-playbook -i inventory/production.yml playbooks/20_dokploy.yml

supporting:
	ansible-playbook -i inventory/production.yml playbooks/30_supporting.yml

backup:
	ansible-playbook -i inventory/production.yml playbooks/90_backup.yml

all: bootstrap swarm dokploy supporting
