add plattform services

This commit is contained in:
Marcel Arndt
2026-01-05 16:01:40 +01:00
parent e25d8dd5d9
commit 193319fa52
65 changed files with 4240 additions and 39 deletions
+14
View File
@@ -0,0 +1,14 @@
postgres_version: 16-alpine
gitea_version: "1.21"
gitea_domain: "{{ subdomain }}.{{ main_domain }}"
gitea_http_port: 3000
gitea_ssh_port: 2222
data_dir: "{{ ceph_volume }}/gitea"
subdomain: git
gitea_db_type: "postgres"
gitea_db_host: db:5432
gitea_db_name: "gitea"
gitea_db_user: "gitea"
gitea_db_password: ""
+38
View File
@@ -0,0 +1,38 @@
- name: GITEA | Ensure data directories
ansible.builtin.file:
path: '{{ data_dir }}/data'
state: directory
owner: 1000
group: 1000
mode: '0750'
recurse: yes
delegate_to: "{{ groups['managers'][0] }}"
- name: GITEA | Ensure DB data directories
ansible.builtin.file:
path: "{{ data_dir }}/data/db"
state: directory
# Postgres Alpine nutzt UID 70 (postgres).
# Bei Debian-Images wäre es 999.
owner: 70
group: 70
mode: '0700'
recurse: yes
delegate_to: "{{ groups['managers'][0] }}"
- name: GITEA | Generate Compose file
ansible.builtin.template:
src: docker-compose.yml.j2
dest: '{{ data_dir }}/gitea.yml'
mode: 0644
run_once: true
delegate_to: "{{ groups['managers'][0] }}"
- name: GITEA | Deploy stack
community.docker.docker_stack:
state: present
name: gitea
compose:
- '{{ data_dir }}/gitea.yml'
delegate_to: "{{ groups['managers'][0] }}"
run_once: true
@@ -0,0 +1,62 @@
networks:
{{ traefik_public_net }}:
external: true
internal:
services:
server:
image: gitea/gitea:{{ gitea_version }}
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE={{ gitea_db_type }}
- GITEA__database__HOST={{ gitea_db_host }}
- GITEA__database__NAME={{ gitea_db_name }}
- GITEA__database__USER={{ gitea_db_user }}
- GITEA__database__PASSWD={{ gitea_db_password }}
- GITEA__server__DOMAIN={{ gitea_domain }}
- GITEA__server__SSH_DOMAIN={{ gitea_domain }}
- GITEA__server__SSH_PORT={{ gitea_ssh_port }}
- GITEA__server__ROOT_URL=https://{{ gitea_domain }}/
volumes:
- {{ data_dir }}/data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- internal
- {{ traefik_public_net }}
ports:
- "{{ gitea_ssh_port }}:22"
deploy:
mode: replicated
replicas: 1
labels:
- "traefik.enable=true"
- "traefik.docker.network={{ traefik_public_net }}"
- "traefik.http.routers.gitea.rule=Host(`{{ gitea_domain }}`)"
- "traefik.http.routers.gitea.entrypoints=https"
- "traefik.http.routers.gitea.tls.certresolver=main"
- "traefik.http.services.gitea.loadbalancer.server.port=3000"
db:
image: postgres:{{ postgres_version }}
restart: always
environment:
- POSTGRES_USER={{ gitea_db_user }}
- POSTGRES_PASSWORD={{ gitea_db_password }}
- POSTGRES_DB={{ gitea_db_name }}
networks:
- internal
volumes:
- {{ data_dir }}/data/db:/var/lib/postgresql/data
command:
- "postgres"
- "-c"
- "fsync=on"
- "-c"
- "full_page_writes=on"
- "-c"
- "synchronous_commit=on"
deploy:
mode: replicated
replicas: 1