diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/files/app.ini b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/files/app.ini new file mode 100644 index 0000000..8f5cfe6 --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/files/app.ini @@ -0,0 +1,12 @@ +APP_NAME = ; Forgejo: Beyond coding. We Forge. +[database] +DB_TYPE = sqlite3 + +[badges] +ENABLED = true + +[repository] +ROOT = /data +DEFAULT_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki,repo.projects,repo.packages,repo.actions +DEFAULT_FORK_REPO_UNITS = repo.code,repo.pulls +DEFAULT_MIRROR_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.wiki,repo.projects,repo.packages diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/files/docker-compose.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/files/docker-compose.yaml new file mode 100644 index 0000000..0f3d6b0 --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/files/docker-compose.yaml @@ -0,0 +1,39 @@ +--- +services: + server: + image: codeberg.org/forgejo/forgejo:${DOPLARR_TAG:-latest} + container_name: forgejo + environment: + - USER_UID=1000 + - USER_GID=1000 + restart: always + networks: + - forgejo + - traefik + volumes: + - /mnt/storage/docker/forgejo/data:/data + - /mnt/storage/docker/forgejo/config:/var/lib/gitea + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3001:3000" + - "2222:22" + depends_on: + db: + condition: service_healthy + restart: true + required: true + labels: + traefik.enable: "true" + traefik.http.routers.forgejo.rule: Host(`forgejo.local.merr.is`) + traefik.http.routers.forgejo.entryPoints: websecure + traefik.http.routers.forgejo.tls.certResolver: letsEncrypt + traefik.http.routers.forgejo.observability.metrics: "true" + traefik.http.services.forgejo.loadBalancer.server.port: 3000 + +networks: + forgejo: + external: false + traefik: + name: traefik + external: true diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/tasks/main.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/tasks/main.yaml new file mode 100644 index 0000000..4844a53 --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/tasks/main.yaml @@ -0,0 +1,49 @@ +--- +- name: Load distro-specific variables + ansible.builtin.include_vars: "{{ item }}" + tags: always + with_first_found: + - files: + - "{{ ansible_facts['distribution'] }}.yaml" + skip: true + +- name: Ensure forgejo is installed on hosts + block: + - name: Ensure presense of folders for processes on the server + tags: packages,docker,forgejo + ansible.builtin.file: + path: "/opt/forgejo/{{ item }}" + state: directory + owner: 1001 + group: 1001 + recurse: true + loop: + - config + - workspace + - name: Ensure compose file is available on the server + tags: packages,docker,forgejo + ansible.builtin.copy: + src: docker-compose.yaml + dest: "/opt/forgejo/docker-compose.yaml" + owner: 1001 + group: 1001 + mode: u=rw,g=r,o=r + - name: Ensure environment variables file is available on the server + tags: packages,docker,forgejo + ansible.builtin.template: + src: env.j2 + dest: /opt/forgejo/.env + owner: 1001 + group: 1001 + mode: u=rw,g-rwx,o-rwx + - name: Ensure docker containers are pulled and running + tags: docker,forgejo + community.docker.docker_compose_v2: + project_src: "/opt/forgejo" + pull: policy + + rescue: + - name: Set that this task failed # noqa: var-naming[no-role-prefix] + ansible.builtin.set_fact: + task_failed: true +# code: language=ansible diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/templates/forgejo.env b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/templates/forgejo.env new file mode 100644 index 0000000..a01e54b --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/templates/forgejo.env @@ -0,0 +1 @@ +SABNZBD_TAG={{ arr_sabnzbd_tag }}/ \ No newline at end of file diff --git a/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/vars/main.yaml b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/vars/main.yaml new file mode 100644 index 0000000..0bf11aa --- /dev/null +++ b/collections/ansible_collections/adhdgirl/minilab/roles/forgejo/vars/main.yaml @@ -0,0 +1 @@ +forgejo_forgejo_tag: 15.0.2-rootless