diff --git a/containers/gitea/tasks.yml b/containers/gitea/tasks.yml index d3ef707..a86fe94 100644 --- a/containers/gitea/tasks.yml +++ b/containers/gitea/tasks.yml @@ -155,6 +155,7 @@ GITEA__service__SIGNIN_VIEW: false GITEA__service__REGISTER_EMAIL_CONFIRM: true GITEA__service__ENABLE_CAPTCHA: true + GITEA__service__ENABLE_NOTIFY_MAIL: true GITEA__service__DEFAULT_KEEP_EMAIL_PRIVATE: false GITEA__ui__THEMES: "auto,gitea,arc-green,gitea-modern" generate_systemd: diff --git a/containers/vikunja/tasks.yml b/containers/vikunja/tasks.yml new file mode 100644 index 0000000..734987c --- /dev/null +++ b/containers/vikunja/tasks.yml @@ -0,0 +1,154 @@ +--- +- name: Online project management tool + hosts: all + tasks: + - name: Stop running containers + become_user: containers + become: true + ansible.builtin.systemd: + scope: user + name: container-{{ item }}.service + state: stopped + loop: + - vikunja + - db_vikunja + failed_when: false + + - name: Pull container images + become_user: containers + become: true + containers.podman.podman_image: + name: docker.io/{{ item }} + loop: + - vikunja/vikunja:latest + - mariadb:latest + + - name: Create podman volumes + containers.podman.podman_volume: + state: present + name: "{{ item }}" + become_user: containers + become: true + loop: + - vikunja-data + - vikunja-db + + - name: Create podman networks + containers.podman.podman_network: + name: "{{ item }}" + recreate: false + state: present + become_user: containers + become: true + loop: + - traefik-vikunja + - mariadb-vikunja + + - name: Create mariadb instance + become_user: containers + become: true + containers.podman.podman_container: + name: db_vikunja + image: docker.io/mariadb:latest + state: present + volume: + - vikunja-db:/var/lib/mysql:Z + network: + - mariadb-vikunja + command: + - --character-set-server=utf8mb4 + - --collation-server=utf8mb4_unicode_ci + - --max-connections=1000 + env: + MARIADB_ROOT_PASSWORD: "{{ vault_vikunja_mariadb_root_password }}" + MARIADB_DATABASE: "{{ vault_vikunja_mariadb_database }}" + MARIADB_USER: "{{ vault_vikunja_mariadb_user }}" + MARIADB_PASSWORD: "{{ vault_vikunja_mariadb_password }}" + MARIADB_AUTO_UPGRADE: "true" + healthcheck: "mysqladmin ping --silent" + healthcheck_interval: 2s + generate_systemd: + path: /home/containers/.config/systemd/user/ + restart_policy: on-failure + names: true + new: true + + - name: Create vikunja instance + become_user: containers + become: true + containers.podman.podman_container: + name: vikunja + image: docker.io/vikunja/vikunja:latest + state: present + volume: + - vikunja-data:/app/vikunja/files:Z + network: + - traefik-vikunja + - mariadb-vikunja + env: + VIKUNJA_DATABASE_HOST: db_vikunja + VIKUNJA_DATABASE_PASSWORD: "{{ vault_vikunja_mariadb_password }}" + VIKUNJA_DATABASE_TYPE: mysql + VIKUNJA_DATABASE_USER: "{{ vault_vikunja_mariadb_user }}" + VIKUNJA_DATABASE_DATABASE: "{{ vault_vikunja_mariadb_database }}" + VIKUNJA_SERVICE_JWTSECRET: "{{ vault_vikunja_jwt_secret }}" + VIKUNJA_SERVICE_PUBLICURL: https://{{ vault_domain }}/vikunja/ + VIKUNJA_FRONTEND_BASE: /vikunja/ + label: + io.containers.autoupdate: registry + traefik.enable: "true" + traefik.http.routers.vikunja.entrypoints: https + traefik.http.routers.vikunja.rule: Host(`{{ vault_domain }}`) && (PathPrefix(`/vikunja/`) || Path(`/vikunja`)) + traefik.http.routers.vikunja.tls: "true" + traefik.http.routers.vikunja.tls.certresolver: wildcard + traefik.http.routers.vikunja.service: vikunja + traefik.http.services.vikunja.loadbalancer.server.port: "3456" + traefik.docker.network: traefik-vikunja + generate_systemd: + path: /home/containers/.config/systemd/user/ + restart_policy: on-failure + names: true + new: true + + - name: Change start and stop timeout limits + become_user: containers + become: true + community.general.ini_file: + path: /home/containers/.config/systemd/user/container-vikunja.service + section: Service + option: "{{ item }}" + value: 3600 + mode: "0664" + state: "present" + no_extra_spaces: true + loop: + - TimeoutStartSec + - TimeoutStopSec + + - name: Change start and stop timeout limits + become_user: containers + become: true + community.general.ini_file: + path: /home/containers/.config/systemd/user/container-db_vikunja.service + section: Service + option: "{{ item }}" + value: 3600 + mode: "0664" + state: "present" + no_extra_spaces: true + loop: + - TimeoutStartSec + - TimeoutStopSec + + - name: Start containers at boot + become_user: containers + become: true + ansible.builtin.systemd: + scope: user + name: container-{{ item }}.service + enabled: true + state: started + daemon_reload: true + loop: + - db_vikunja + - vikunja