--- # Gokapi logs in through Pocket ID. config.json is written only on a fresh # install (Gokapi rewrites it on upgrades), so changing the template later # means deleting /opt/stacks/gokapi/config/config.json first. - name: make gokapi directories ansible.builtin.file: path: "{{ item }}" state: directory mode: '0700' loop: - /opt/stacks/gokapi - /opt/stacks/gokapi/config - /opt/stacks/gokapi/data - name: Template out the compose file ansible.builtin.template: src: gokapi-compose.yml.j2 dest: /opt/stacks/gokapi/compose.yml owner: root mode: '0644' - name: Template out the gokapi config (fresh installs only) ansible.builtin.template: src: gokapi-config.json.j2 dest: /opt/stacks/gokapi/config/config.json owner: root mode: '0600' force: false no_log: true - name: Check for an existing gokapi database ansible.builtin.stat: path: /opt/stacks/gokapi/data/gokapi.sqlite register: gokapi_db # A new database has no users and Gokapi refuses to start, so run it once with # --deployment-password to create the super admin (the Pocket ID email above). # Gokapi exits after setting the password. - name: Create the gokapi super admin on a fresh install ansible.builtin.command: cmd: >- docker compose run --rm --no-deps gokapi /app/run.sh --deployment-password {{ vault_gokapi.deployment_password }} chdir: /opt/stacks/gokapi when: not gokapi_db.stat.exists no_log: true - name: deploy gokapi stack community.docker.docker_compose_v2: project_src: /opt/stacks/gokapi files: - compose.yml