# https://taskfile.dev version: '3' vars: USER_ID: sh: 'id -u' GROUP_ID: sh: 'id -g' HOSTS_FILE: 'production.yml' REMOTE_USER: sh: 'yq .ungrouped.hosts.server.ansible_user {{.HOSTS_FILE}}' REMOTE_HOST: sh: 'yq .ungrouped.hosts.server.ansible_host {{.HOSTS_FILE}}' AUTHELIA_DOCKER: 'docker run --rm -v $PWD:/data authelia/authelia:4.39.4 authelia' tasks: install-roles: cmds: - ansible-galaxy role install --role-file requirements.yml --force ssh: cmds: - ssh {{.REMOTE_USER}}@{{.REMOTE_HOST}} btop: cmds: - ssh {{.REMOTE_USER}}@{{.REMOTE_HOST}} -t btop encrypt: cmds: - ansible-vault encrypt {{.CLI_ARGS}} decrypt: cmds: - ansible-vault decrypt {{.CLI_ARGS}} authelia-cli: cmds: - "{{.AUTHELIA_DOCKER}} {{.CLI_ARGS}}" authelia-validate-config: vars: DEST_FILE: "temp/configuration.yml" cmds: - > ansible localhost --module-name template --args "src=files/authelia/configuration.template.yml dest={{.DEST_FILE}}" --extra-vars "@vars/secrets.yml" --extra-vars "@files/authelia/secrets.yml" - defer: rm -f {{.DEST_FILE}} - > {{.AUTHELIA_DOCKER}} validate-config --config /data/{{.DEST_FILE}} authelia-gen-random-string: summary: | Generate random string. Usage example: task authelia-gen-random-string LEN=64 vars: LEN: '{{ .LEN | default 10 }}' cmds: - > {{.AUTHELIA_DOCKER}} crypto rand --length {{.LEN}} --charset alphanumeric authelia-gen-secret-and-hash: vars: LEN: '{{ .LEN | default 72 }}' cmds: - > {{.AUTHELIA_DOCKER}} crypto hash generate pbkdf2 --variant sha512 --random --random.length {{.LEN}} --random.charset rfc3986 format-py-files: cmds: - >- docker run --rm -u {{.USER_ID}}:{{.GROUP_ID}} -v $PWD:/app -w /app pyfound/black:latest_release black .