From 92f4289d7d4554895f86e08dfd567c8f1fae6799 Mon Sep 17 00:00:00 2001 From: Mike Wilson Date: Wed, 22 Feb 2023 11:40:42 -0500 Subject: [PATCH] Added gitea --- ansible/main.yml | 2 + ansible/roles/gitea/tasks/main.yml | 38 +++++++++++++++ .../roles/gitea/templates/docker-compose.yml | 46 +++++++++++++++++++ ansible/roles/tautulli/tasks/main.yml | 29 ++++++++++++ .../tautulli/templates/docker-compose.yml | 23 ++++++++++ 5 files changed, 138 insertions(+) create mode 100644 ansible/roles/gitea/tasks/main.yml create mode 100644 ansible/roles/gitea/templates/docker-compose.yml create mode 100644 ansible/roles/tautulli/tasks/main.yml create mode 100644 ansible/roles/tautulli/templates/docker-compose.yml diff --git a/ansible/main.yml b/ansible/main.yml index 48bc62b..de8e400 100644 --- a/ansible/main.yml +++ b/ansible/main.yml @@ -16,3 +16,5 @@ - overseerr - ntfy - nextcloud + - tautulli + - gitea diff --git a/ansible/roles/gitea/tasks/main.yml b/ansible/roles/gitea/tasks/main.yml new file mode 100644 index 0000000..86f1d3b --- /dev/null +++ b/ansible/roles/gitea/tasks/main.yml @@ -0,0 +1,38 @@ +- name: Create service user + user: + name: "{{ role_name }}" + system: true + register: service_user + become: true + +- name: Create install directory + file: + path: "{{ install_directory }}/{{ role_name }}" + state: directory + owner: "{{ docker_user }}" + mode: "{{ docker_compose_directory_mask }}" + become: true + +- name: Create config directory + file: + path: "{{ data_dir }}/{{ role_name }}" + state: directory + owner: "{{ service_user.uid }}" + group: "{{ service_user.uid }}" + mode: "{{ docker_compose_directory_mask }}" + become: true + +- name: Copy docker-compose file to destination + 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: + project_src: "{{ install_directory }}/{{ role_name }}" + pull: true + remove_orphans: yes diff --git a/ansible/roles/gitea/templates/docker-compose.yml b/ansible/roles/gitea/templates/docker-compose.yml new file mode 100644 index 0000000..77faad3 --- /dev/null +++ b/ansible/roles/gitea/templates/docker-compose.yml @@ -0,0 +1,46 @@ +version: "{{ docker_compose_version }}" + +networks: + traefik: + external: true + default: + external: false + +services: + gitea: + container_name: gitea + image: gitea/gitea:latest + restart: unless-stopped + depends_on: + - db + networks: + - traefik + - default + environment: + - "USER_UID={{ service_user.uid }}" + - "USER_GID={{ service_user.uid }}" + - GITEA_database__DB_TYPE=postgres + - GITEA_database__HOST=db:5432 + - GITEA_database__NAME=gitea + - GITEA_database__USER=gitea + - GITEA_database__PASSWD=gitea + volumes: + - "{{ data_dir }}/gitea:/data" + - /etc/localtime:/etc/localtime:ro + - /etc/timezone:/etc/timezone:ro + labels: + traefik.enable: true + traefik.http.routers.gitea.rule: "Host(`git.{{ personal_domain }}`)" + traefik.http.services.gitea.loadbalancer.server.port: 3000 + + db: + image: postgres:14-alpine + restart: unless-stopped + networks: + - default + environment: + - POSTGRES_USER=gitea + - POSTGRES_PASSWORD=gitea + - POSTGRES_DB=gitea + volumes: + - "{{ data_dir }}/postgres/gitea:/var/lib/postgresql/data" diff --git a/ansible/roles/tautulli/tasks/main.yml b/ansible/roles/tautulli/tasks/main.yml new file mode 100644 index 0000000..5c0fdfc --- /dev/null +++ b/ansible/roles/tautulli/tasks/main.yml @@ -0,0 +1,29 @@ +- name: Create service user + user: + name: "{{ role_name }}" + system: true + register: service_user + become: true + +- name: Create install directory + 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 + 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: + project_src: "{{ install_directory }}/{{ role_name }}" + pull: true + remove_orphans: yes diff --git a/ansible/roles/tautulli/templates/docker-compose.yml b/ansible/roles/tautulli/templates/docker-compose.yml new file mode 100644 index 0000000..fc8fc30 --- /dev/null +++ b/ansible/roles/tautulli/templates/docker-compose.yml @@ -0,0 +1,23 @@ +version: "{{ docker_compose_version }}" + +networks: + traefik: + external: true + +services: + tautulli: + container_name: "tautulli" + image: lscr.io/linuxserver/tautulli:latest + restart: unless-stopped + networks: + - traefik + environment: + - "PUID={{ service_user.uid }}" + - "PGID={{ service_user.uid }}" + - "TZ={{ timezone }}" + volumes: + - "{{ data_dir }}/{{ role_name }}:/config" + labels: + traefik.enable: true + traefik.http.routers.tautulli.rule: "Host(`tautulli.local.{{ personal_domain }}`)" + traefik.http.routers.tautulli.middlewares: ip-whitelist@file