mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-24 11:06:24 +02:00
- Remove stray spaces after include_role: across many roles to ensure clean YAML and consistent linting/formatting. - Listmonk: - Introduce LISTMONK_CONFIG_HOST = [ docker_compose.directories.config, 'config.toml' ] | path_join - Use that var in the template task (dest) and the docker-compose volume mount - Matrix: - Build MATRIX_SYNAPSE_CONFIG_PATH_HOST, MATRIX_SYNAPSE_LOG_PATH_HOST, and MATRIX_ELEMENT_CONFIG_PATH_HOST via path_join - Mobilizon: - Build mobilizon_host_conf_exs_file via path_join - Keep get_app_conf strictness unchanged (defaults to True in our filter), so behavior remains strict even though the explicit third arg was dropped - Simpleicons: - Build server.js and package.json host paths via path_join - Numerous web-app roles (Confluence, Discourse, EspoCRM, Friendica, Funkwhale, Gitea, GitLab, Jenkins, Joomla, Listmonk, Mailu, Mastodon, Matomo, Matrix, MediaWiki, Mobilizon, Moodle, Nextcloud, OpenProject, Peertube, Pixelfed, Pretix, Roulette Wheel, Snipe-IT, Syncope, Taiga, WordPress, XWiki, Yourls) and web-svc roles (coturn, libretranslate, simpleicons) updated for consistent include_role formatting Why: - path_join avoids double slashes and missing separators across different config roots - Consistent include_role: formatting improves readability and prevents linter noise Ref: - Conversation: https://chatgpt.com/share/68d14711-727c-800f-b454-7dc4c3c1f4cb
69 lines
2.2 KiB
YAML
69 lines
2.2 KiB
YAML
---
|
|
- name: "load docker, db and proxy for {{ application_id }}"
|
|
include_role:
|
|
name: sys-stk-full-stateful
|
|
|
|
- name: Wait for Gitea HTTP endpoint
|
|
wait_for:
|
|
host: "127.0.0.1"
|
|
port: "{{ ports.localhost.http[application_id] }}"
|
|
delay: 5
|
|
timeout: 300
|
|
|
|
- name: Patch Gitea database settings in app.ini
|
|
include_tasks: 01_database.yml
|
|
|
|
- name: "Run DB migrations inside Gitea container"
|
|
shell: |
|
|
docker exec -i --user {{ GITEA_USER }} {{ GITEA_CONTAINER }} \
|
|
/app/gitea/gitea migrate
|
|
args:
|
|
chdir: "{{ docker_compose.directories.instance }}"
|
|
register: migrate
|
|
changed_when: "'migrations completed' in migrate.stdout"
|
|
|
|
- name: "Create initial admin user"
|
|
shell: |
|
|
docker exec -i --user {{ GITEA_USER }} {{ GITEA_CONTAINER }} \
|
|
/app/gitea/gitea admin user create \
|
|
--admin \
|
|
--username "{{ users.administrator.username }}" \
|
|
--password "{{ users.administrator.password }}" \
|
|
--email "{{ users.administrator.email }}" \
|
|
-c {{ GITEA_CONFIG }}
|
|
args:
|
|
chdir: "{{ docker_compose.directories.instance }}"
|
|
register: create_admin
|
|
changed_when: "'has been successfully created' in create_admin.stdout"
|
|
failed_when: create_admin.rc != 0 and 'user already exists' not in create_admin.stderr
|
|
|
|
- name: "Wait until Gitea setup and migrations are ready"
|
|
uri:
|
|
url: "http://127.0.0.1:{{ ports.localhost.http[application_id] }}/api/v1/version"
|
|
method: GET
|
|
status_code: 200
|
|
return_content: no
|
|
register: gitea_ready
|
|
until: gitea_ready.status == 200
|
|
retries: 20
|
|
delay: 5
|
|
when: applications | get_app_conf(application_id, 'features.oidc', False) or applications | get_app_conf(application_id, 'features.ldap', False)
|
|
|
|
- name: Execute Setup Routines
|
|
include_tasks: 02_setup.yml
|
|
|
|
- name: Execute Cleanup Routines
|
|
include_tasks: 03_cleanup.yml
|
|
when: MODE_CLEANUP
|
|
|
|
- name: Include DNS role to register Gitea domain(s)
|
|
include_role:
|
|
name: sys-dns-cloudflare-records
|
|
vars:
|
|
cloudflare_records:
|
|
- zone: "{{ domains | get_domain(application_id) | to_zone }}"
|
|
type: A
|
|
name: "{{ domains | get_domain(application_id) }}"
|
|
content: "{{ networks.internet.ip4 }}"
|
|
proxied: false # Necessary for SSH port
|
|
when: DNS_PROVIDER == 'cloudflare' |