From c96aeafb3ff7dfb15fd632ce98ce30f32b61042a Mon Sep 17 00:00:00 2001 From: Bastian de Byl Date: Thu, 15 Jan 2026 22:27:02 -0500 Subject: [PATCH] feat: add git.skudak.com Gitea instance and skudak domain migrations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Gitea Skudak (git.skudak.com): - New Gitea instance with PostgreSQL in podman pod under git user - SSH access via Gitea's built-in SSH server on port 2222 - Registration restricted to @skudak.com emails with email confirmation - SMTP configured for email delivery Domain migrations: - wiki.skudakrennsport.com → wiki.skudak.com (302 redirect) - cloud.skudakrennsport.com + cloud.skudak.com (dual-domain serving) - BookStack APP_URL updated to wiki.skudak.com - Nextcloud trusted_domains updated for cloud.skudak.com Infrastructure: - SELinux context for git user container storage (container_file_t) - Firewall rule for port 2222/tcp (Gitea Skudak SSH) - Caddy reverse proxy for git.skudak.com Co-Authored-By: Claude Opus 4.5 --- ansible/roles/git/defaults/main.yml | 4 + ansible/roles/git/tasks/gitea-skudak.yml | 114 ++++++++++++++++++ ansible/roles/git/tasks/main.yml | 1 + ansible/roles/git/tasks/podman.yml | 21 +++- ansible/roles/podman/defaults/main.yml | 6 + .../podman/tasks/containers/skudak/cloud.yml | 11 ++ .../podman/tasks/containers/skudak/wiki.yml | 2 +- ansible/roles/podman/tasks/firewall.yml | 2 + .../roles/podman/templates/caddy/Caddyfile.j2 | 35 ++++-- ansible/vars/vault.yml | Bin 16641 -> 18780 bytes 10 files changed, 184 insertions(+), 12 deletions(-) create mode 100644 ansible/roles/git/tasks/gitea-skudak.yml diff --git a/ansible/roles/git/defaults/main.yml b/ansible/roles/git/defaults/main.yml index 5bebc4c..56f2bd1 100644 --- a/ansible/roles/git/defaults/main.yml +++ b/ansible/roles/git/defaults/main.yml @@ -6,3 +6,7 @@ git_home: "/srv/{{ git_user }}" gitea_debyl_server_name: git.debyl.io gitea_image: docker.gitea.com/gitea:1.25.2 gitea_db_image: docker.io/library/postgres:14-alpine + +# Skudak Gitea configuration +gitea_skudak_server_name: git.skudak.com +gitea_skudak_ssh_port: 2222 diff --git a/ansible/roles/git/tasks/gitea-skudak.yml b/ansible/roles/git/tasks/gitea-skudak.yml new file mode 100644 index 0000000..4285cbc --- /dev/null +++ b/ansible/roles/git/tasks/gitea-skudak.yml @@ -0,0 +1,114 @@ +--- +# Deploy Gitea Skudak containers using Podman pod +# NOTE: Directories are created in podman.yml (psql dir created by postgres container) + +# Ensure SELinux contexts are applied before pod creation +- name: flush handlers before gitea-skudak pod creation + ansible.builtin.meta: flush_handlers + tags: gitea, gitea-skudak + +# Create pod for Skudak Gitea services +- name: create gitea-skudak pod + become: true + become_user: "{{ git_user }}" + containers.podman.podman_pod: + name: gitea-skudak-pod + state: started + ports: + - "3101:3000" + - "{{ gitea_skudak_ssh_port }}:2222" + tags: gitea, gitea-skudak + +# PostgreSQL container in pod +- name: create gitea-skudak-postgres container + become: true + become_user: "{{ git_user }}" + containers.podman.podman_container: + name: gitea-skudak-postgres + image: "{{ gitea_db_image }}" + pod: gitea-skudak-pod + restart_policy: on-failure:3 + log_driver: journald + env: + POSTGRES_DB: gitea + POSTGRES_USER: gitea + POSTGRES_PASSWORD: "{{ gitea_skudak_db_pass }}" + volumes: + - "{{ git_home }}/volumes/gitea-skudak/psql:/var/lib/postgresql/data" + tags: gitea, gitea-skudak + +# Gitea container in pod +- name: create gitea-skudak container + become: true + become_user: "{{ git_user }}" + containers.podman.podman_container: + name: gitea-skudak + image: "{{ gitea_image }}" + pod: gitea-skudak-pod + restart_policy: on-failure:3 + log_driver: journald + env: + USER_UID: "1000" + USER_GID: "1000" + GITEA__database__DB_TYPE: postgres + GITEA__database__HOST: "127.0.0.1:5432" + GITEA__database__NAME: gitea + GITEA__database__USER: gitea + GITEA__database__PASSWD: "{{ gitea_skudak_db_pass }}" + GITEA__server__DOMAIN: "{{ gitea_skudak_server_name }}" + GITEA__server__ROOT_URL: "https://{{ gitea_skudak_server_name }}/" + GITEA__server__SSH_DOMAIN: "{{ gitea_skudak_server_name }}" + # Use Gitea's built-in SSH server (non-privileged port inside container) + GITEA__server__START_SSH_SERVER: "true" + GITEA__server__DISABLE_SSH: "false" + GITEA__server__SSH_PORT: "{{ gitea_skudak_ssh_port }}" + GITEA__server__SSH_LISTEN_PORT: "2222" + GITEA__security__SECRET_KEY: "{{ gitea_skudak_secret_key }}" + GITEA__security__INTERNAL_TOKEN: "{{ gitea_skudak_internal_token }}" + GITEA__security__INSTALL_LOCK: "true" + # Allow registration only for @skudak.com emails + GITEA__service__DISABLE_REGISTRATION: "false" + GITEA__service__EMAIL_DOMAIN_ALLOWLIST: "skudak.com" + GITEA__service__REGISTER_EMAIL_CONFIRM: "true" + GITEA__service__REQUIRE_SIGNIN_VIEW: "false" + # Mailer configuration for email confirmation + GITEA__mailer__ENABLED: "true" + GITEA__mailer__PROTOCOL: "smtps" + GITEA__mailer__SMTP_ADDR: "{{ gitea_skudak_smtp_host }}" + GITEA__mailer__SMTP_PORT: "{{ gitea_skudak_smtp_port }}" + GITEA__mailer__USER: "{{ gitea_skudak_smtp_user }}" + GITEA__mailer__PASSWD: "{{ gitea_skudak_smtp_pass }}" + GITEA__mailer__FROM: "{{ gitea_skudak_smtp_from }}" + # Logging configuration - output to journald for fluent-bit capture + GITEA__log__MODE: console + GITEA__log__LEVEL: Info + GITEA__log__ENABLE_ACCESS_LOG: "true" + volumes: + - "{{ git_home }}/volumes/gitea-skudak/data:/data" + - /etc/localtime:/etc/localtime:ro + tags: gitea, gitea-skudak + +# Generate systemd service for the pod +- name: create systemd job for gitea-skudak-pod + become: true + become_user: "{{ git_user }}" + ansible.builtin.shell: | + podman generate systemd --name gitea-skudak-pod --files --new + mv pod-gitea-skudak-pod.service {{ git_home }}/.config/systemd/user/ + mv container-gitea-skudak-postgres.service {{ git_home }}/.config/systemd/user/ + mv container-gitea-skudak.service {{ git_home }}/.config/systemd/user/ + args: + chdir: "{{ git_home }}" + changed_when: false + tags: gitea, gitea-skudak + +- name: enable gitea-skudak-pod service + become: true + become_user: "{{ git_user }}" + ansible.builtin.systemd: + name: pod-gitea-skudak-pod.service + daemon_reload: true + enabled: true + state: started + scope: user + tags: gitea, gitea-skudak diff --git a/ansible/roles/git/tasks/main.yml b/ansible/roles/git/tasks/main.yml index 54ccca8..867af33 100644 --- a/ansible/roles/git/tasks/main.yml +++ b/ansible/roles/git/tasks/main.yml @@ -6,6 +6,7 @@ - import_tasks: selinux.yml - import_tasks: selinux-podman.yml - import_tasks: gitea.yml +- import_tasks: gitea-skudak.yml # git-daemon no longer needed - commented out # - import_tasks: systemd.yml diff --git a/ansible/roles/git/tasks/podman.yml b/ansible/roles/git/tasks/podman.yml index 598e0ba..a01d0cf 100644 --- a/ansible/roles/git/tasks/podman.yml +++ b/ansible/roles/git/tasks/podman.yml @@ -45,9 +45,14 @@ - "{{ git_home }}/volumes" - "{{ git_home }}/volumes/gitea" - "{{ git_home }}/volumes/gitea/data" - # NOTE: psql directory is created by PostgreSQL container with container user ownership + - "{{ git_home }}/volumes/gitea/psql" + - "{{ git_home }}/volumes/gitea-skudak" + - "{{ git_home }}/volumes/gitea-skudak/data" + - "{{ git_home }}/volumes/gitea-skudak/psql" + # NOTE: psql directories may already exist with postgres ownership - ignore errors + failed_when: false notify: restorecon git - tags: git, gitea + tags: git, gitea, gitea-skudak # SELinux context for container volumes - name: selinux context for git container volumes @@ -57,7 +62,17 @@ setype: container_file_t state: present notify: restorecon git - tags: git, gitea, selinux + tags: git, gitea, gitea-skudak, selinux + +# SELinux context for container storage (images, overlays, etc.) +- name: selinux context for git container storage + become: true + community.general.sefcontext: + target: "{{ git_home }}/.local/share/containers(/.*)?" + setype: container_file_t + state: present + notify: restorecon git + tags: git, gitea, gitea-skudak, selinux # Enable podman socket for SSH key lookup via AuthorizedKeysCommand - name: enable podman socket for git user diff --git a/ansible/roles/podman/defaults/main.yml b/ansible/roles/podman/defaults/main.yml index 260839b..9a26865 100644 --- a/ansible/roles/podman/defaults/main.yml +++ b/ansible/roles/podman/defaults/main.yml @@ -89,6 +89,11 @@ parts_server_name_io: parts.debyl.io photos_server_name_io: photos.debyl.io gitea_debyl_server_name: git.debyl.io +# skudak.com domains (migration from skudakrennsport.com) +bookstack_server_name_new: wiki.skudak.com +cloud_skudak_server_name_new: cloud.skudak.com +gitea_skudak_server_name: git.skudak.com + # Legacy nginx/ModSecurity configuration removed - Caddy provides built-in security # Web server configuration (Caddy is the default) @@ -144,6 +149,7 @@ caddy_log_names: - cloud - cloud-skudak - gitea-debyl + - gitea-skudak - fulfillr # GeoIP configuration for Graylog diff --git a/ansible/roles/podman/tasks/containers/skudak/cloud.yml b/ansible/roles/podman/tasks/containers/skudak/cloud.yml index b11edc4..159d37d 100644 --- a/ansible/roles/podman/tasks/containers/skudak/cloud.yml +++ b/ansible/roles/podman/tasks/containers/skudak/cloud.yml @@ -119,3 +119,14 @@ insertbefore: '^\);' create: false failed_when: false + +# Add cloud.skudak.com to Nextcloud trusted_domains +- name: add cloud.skudak.com to nextcloud trusted_domains + become: true + become_user: "{{ podman_user }}" + ansible.builtin.command: > + podman exec -u www-data skudak-cloud + php occ config:system:set trusted_domains 1 --value="cloud.skudak.com" + register: trusted_domain_result + changed_when: "'System config value trusted_domains' in trusted_domain_result.stdout" + failed_when: false diff --git a/ansible/roles/podman/tasks/containers/skudak/wiki.yml b/ansible/roles/podman/tasks/containers/skudak/wiki.yml index c7ef08d..c318da4 100644 --- a/ansible/roles/podman/tasks/containers/skudak/wiki.yml +++ b/ansible/roles/podman/tasks/containers/skudak/wiki.yml @@ -68,7 +68,7 @@ network: - shared env: - APP_URL: "https://wiki.skudakrennsport.com" + APP_URL: "https://wiki.skudak.com" APP_KEY: "{{ bookstack_app_key }}" DB_HOST: "bookstack-db" DB_USERNAME: "bookstack" diff --git a/ansible/roles/podman/tasks/firewall.yml b/ansible/roles/podman/tasks/firewall.yml index 973e670..d6f8225 100644 --- a/ansible/roles/podman/tasks/firewall.yml +++ b/ansible/roles/podman/tasks/firewall.yml @@ -13,6 +13,8 @@ # web server (Caddy) - 80/tcp - 443/tcp + # Gitea Skudak SSH + - 2222/tcp # pihole (unused?) - 53/tcp - 53/udp diff --git a/ansible/roles/podman/templates/caddy/Caddyfile.j2 b/ansible/roles/podman/templates/caddy/Caddyfile.j2 index b71d83a..3625cb5 100644 --- a/ansible/roles/podman/templates/caddy/Caddyfile.j2 +++ b/ansible/roles/podman/templates/caddy/Caddyfile.j2 @@ -79,11 +79,16 @@ } -# Wiki/BookStack - {{ bookstack_server_name }} +# Wiki/BookStack - {{ bookstack_server_name }} redirect to new domain {{ bookstack_server_name }} { + redir https://{{ bookstack_server_name_new }}{uri} 302 +} + +# Wiki/BookStack - {{ bookstack_server_name_new }} (new primary domain) +{{ bookstack_server_name_new }} { import common_headers reverse_proxy localhost:6875 - + log { output file /var/log/caddy/wiki.log format json @@ -258,28 +263,28 @@ } } -# Skudak Nextcloud - {{ cloud_skudak_server_name }} -{{ cloud_skudak_server_name }} { +# Skudak Nextcloud - serve both domains (migration period) +{{ cloud_skudak_server_name }}, {{ cloud_skudak_server_name_new }} { request_body { max_size {{ caddy_max_request_body_mb }}MB } - + reverse_proxy localhost:8090 { header_up Host {host} header_up X-Real-IP {remote} } - + header { Strict-Transport-Security "max-age=31536000; includeSubDomains" X-Content-Type-Options "nosniff" Referrer-Policy "same-origin" -X-Powered-By } - + # Nextcloud specific redirects redir /.well-known/carddav /remote.php/dav 301 redir /.well-known/caldav /remote.php/dav 301 - + log { output file /var/log/caddy/cloud-skudak.log format json @@ -300,6 +305,20 @@ } } +# Gitea Skudak - {{ gitea_skudak_server_name }} +{{ gitea_skudak_server_name }} { + import common_headers + + reverse_proxy localhost:3101 { + flush_interval -1 + } + + log { + output file /var/log/caddy/gitea-skudak.log + format json + } +} + # Fulfillr - {{ fulfillr_server_name }} (Static + API with IP restrictions) {{ fulfillr_server_name }} { {{ ip_restricted_site() }} diff --git a/ansible/vars/vault.yml b/ansible/vars/vault.yml index d99bc71b76dd29cce258f766c3531bd7e70c79b9..e411d2fb316cb2a6705c4031afa4971e0bc0e781 100644 GIT binary patch literal 18780 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 X(S7@*)d57*TuIM8Dqu@uz$KA1bggWV literal 16641 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