diff --git a/ansible/roles/dispatcharr/tasks/main.yml b/ansible/roles/dispatcharr/tasks/main.yml new file mode 100644 index 0000000..b783064 --- /dev/null +++ b/ansible/roles/dispatcharr/tasks/main.yml @@ -0,0 +1,22 @@ +- name: Create install directory + ansible.builtin.file: + path: "{{ install_directory }}/{{ role_name }}" + state: directory + owner: "{{ docker_user }}" + mode: "{{ docker_compose_directory_mask }}" + become: true + +- name: Copy docker-compose file to destination + ansible.builtin.template: + src: docker-compose.yml + dest: "{{ install_directory }}/{{ role_name }}/docker-compose.yml" + owner: "{{ docker_user }}" + mode: "{{ docker_compose_file_mask }}" + validate: docker compose -f %s config + become: true + +- name: Start docker container + community.docker.docker_compose_v2: + project_src: "{{ install_directory }}/{{ role_name }}" + pull: always + remove_orphans: yes diff --git a/ansible/roles/dispatcharr/templates/docker-compose.yml b/ansible/roles/dispatcharr/templates/docker-compose.yml new file mode 100644 index 0000000..6d17772 --- /dev/null +++ b/ansible/roles/dispatcharr/templates/docker-compose.yml @@ -0,0 +1,24 @@ +networks: + traefik: + external: true + +services: + dispatcharr: + container_name: "{{ role_name }}" + image: ghcr.io/dispatcharr/dispatcharr:latest + restart: unless-stopped + network_mode: "container:gluetun" + environment: + - DISPATCHARR_ENV=aio + - REDIS_HOST=localhost + - CELERY_BROKER_URL=redis://localhost:6379/0 + - DISPATCHARR_LOG_LEVEL=info + volumes: + - "{{ data_dir }}/{{ role_name }}:/data" + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + labels: + traefik.enable: true + traefik.http.routers.dispatcharr.rule: "Host(`dispatcharr.local.{{ personal_domain }}`)" + traefik.http.routers.dispatcharr.middlewares: lan-whitelist@file + traefik.http.services.dispatcharr.loadbalancer.server.port: 9191