Files
ansible/roles/docker/tasks/productivity/gokapi.yml
T
PhilandClaude Opus 5.5 7a68fdf96f Wait for Gokapi's healthcheck on first run
The 'Gokapi started' log line is not always flushed to log.txt, so the
first-run wait timed out even though the super admin had been created.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:09:14 -06:00

68 lines
2.1 KiB
YAML

---
# 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).
- name: Create the gokapi super admin on a fresh install
when: not gokapi_db.stat.exists
block:
- name: Start a one-off gokapi with a deployment password
ansible.builtin.command:
cmd: >-
docker compose run -d --rm --no-deps --name gokapi-init gokapi
/app/run.sh --deployment-password {{ vault_gokapi.deployment_password }}
chdir: /opt/stacks/gokapi
no_log: true
- name: Wait for the one-off gokapi to finish starting
ansible.builtin.command: docker inspect -f '{{ "{{" }}.State.Health.Status{{ "}}" }}' gokapi-init
register: gokapi_init_health
until: gokapi_init_health.stdout == "healthy"
retries: 30
delay: 3
changed_when: false
always:
- name: Stop the one-off gokapi
ansible.builtin.command: docker rm -f gokapi-init
when: not gokapi_db.stat.exists
changed_when: true
failed_when: false
- name: deploy gokapi stack
community.docker.docker_compose_v2:
project_src: /opt/stacks/gokapi
files:
- compose.yml