gitea migration

This commit is contained in:
bee
2026-05-31 15:19:59 +02:00
parent 11b13cd326
commit c0ae209a9d
7 changed files with 191 additions and 24 deletions
+10
View File
@@ -140,6 +140,16 @@
"panel": "dedicated" "panel": "dedicated"
} }
}, },
{
"label": "Deploy: openvpn",
"type": "shell",
"command": "make deploy-openvpn",
"group": "build",
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{ {
"label": "Deploy: immich", "label": "Deploy: immich",
"type": "shell", "type": "shell",
+46
View File
@@ -0,0 +1,46 @@
- name: Gitea
hosts: beepi
become: true
vars:
gitea_db_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
63336533393735346165633965383866393736336365646330346236356239363737353234383637
6261383166323062663033346136633066303462343263320a333932646162336232373530373834
65386637336562646135613563356137313239336365653161386434313835633437613233343332
3736353865313938300a383266353538666135353866653263663133663232646430323966353134
3939
tasks:
- name: Install podman
ansible.builtin.apt:
name: podman
state: present
- name: Install podman-compose
ansible.builtin.apt:
name: podman-compose
state: present
- name: Create gitea directory
ansible.builtin.file:
path: /opt/beeserver/gitea
state: directory
mode: '0755'
- name: Compose down
changed_when: true
failed_when: false
ansible.builtin.command:
cmd: podman-compose down
chdir: /opt/beeserver/gitea
- name: Copy compose
ansible.builtin.template:
src: docker-compose.yml.j2
dest: /opt/beeserver/gitea/docker-compose.yml
mode: '0644'
- name: Compose up
changed_when: true
ansible.builtin.command:
cmd: podman-compose up -d
chdir: /opt/beeserver/gitea
+1 -1
View File
@@ -4,7 +4,7 @@ set -euo pipefail
now=$(date +"%Y%m%d%H%M") now=$(date +"%Y%m%d%H%M")
declare -a arr=("gitea" "mail" "matrix" "monitoring") declare -a arr=("mail" "matrix" "monitoring")
declare -a monitoring=("monitoring_prometheus-data" "monitoring_grafana-storage" "monitoring_loki-data" "monitoring_alloy-data") declare -a monitoring=("monitoring_prometheus-data" "monitoring_grafana-storage" "monitoring_loki-data" "monitoring_alloy-data")
declare -a matrix=("matrix_db") declare -a matrix=("matrix_db")
+17
View File
@@ -0,0 +1,17 @@
[Unit]
Description=Gitea Postgres
[Container]
ContainerName=gitea-db
Image=docker.io/library/postgres:14
Network=gitea.network
Volume=/home/gitea/data/postgres:/var/lib/postgresql/data
Environment=POSTGRES_USER=gitea
Environment=POSTGRES_PASSWORD={{ gitea_db_password }}
Environment=POSTGRES_DB=gitea
[Service]
Restart=on-failure
[Install]
WantedBy=default.target
+30
View File
@@ -0,0 +1,30 @@
[Unit]
Description=Gitea Server
Requires=gitea-db.service
After=gitea-db.service
[Container]
ContainerName=gitea-server
Image=docker.gitea.com/gitea:1.26.0
Network=gitea.network
PublishPort=3000:3000
PublishPort=2222:2222
Volume=/home/gitea/data/gitea:/data
Volume=/etc/timezone:/etc/timezone:ro
Volume=/etc/localtime:/etc/localtime:ro
Environment=USER_UID=1000
Environment=USER_GID=1000
Environment=GITEA__database__DB_TYPE=postgres
Environment=GITEA__database__HOST=gitea-db:5432
Environment=GITEA__database__NAME=gitea
Environment=GITEA__database__USER=gitea
Environment=GITEA__database__PASSWD={{ gitea_db_password }}
Environment=GITEA__server__SSH_LISTEN_PORT=2222
Environment=GITEA__server__SSH_PORT=2222
Environment=SSH_LISTEN_PORT=2222
[Service]
Restart=on-failure
[Install]
WantedBy=default.target
+87 -23
View File
@@ -2,6 +2,8 @@
hosts: beepi hosts: beepi
become: true become: true
vars: vars:
user: gitea
user_home: /home/gitea
gitea_db_password: !vault | gitea_db_password: !vault |
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
63336533393735346165633965383866393736336365646330346236356239363737353234383637 63336533393735346165633965383866393736336365646330346236356239363737353234383637
@@ -10,37 +12,99 @@
3736353865313938300a383266353538666135353866653263663133663232646430323966353134 3736353865313938300a383266353538666135353866653263663133663232646430323966353134
3939 3939
tasks: tasks:
- name: Install podman - name: Install dependencies
ansible.builtin.apt: ansible.builtin.apt:
name: podman name: "{{ item }}"
state: present state: present
loop:
- podman
- systemd-container
- passt
- name: Install podman-compose - name: Create user
ansible.builtin.apt: ansible.builtin.user:
name: podman-compose name: "{{ user }}"
state: present home: "{{ user_home }}"
shell: /usr/sbin/nologin
create_home: true
register: user_info
- name: Create gitea directory - name: Enable linger
ansible.builtin.command:
cmd: "loginctl enable-linger {{ user }}"
creates: "/var/lib/systemd/linger/{{ user }}"
- name: Create quadlet directory
ansible.builtin.file: ansible.builtin.file:
path: /opt/beeserver/gitea path: "{{ user_home }}/.config/containers/systemd"
state: directory state: directory
owner: "{{ user }}"
group: "{{ user }}"
mode: '0755' mode: '0755'
- name: Compose down - name: Create data directory
changed_when: true ansible.builtin.file:
failed_when: false path: "{{ user_home }}/data"
ansible.builtin.command: state: directory
cmd: podman-compose down owner: "{{ user }}"
chdir: /opt/beeserver/gitea group: "{{ user }}"
mode: '0755'
- name: Copy compose - name: Copy network
ansible.builtin.template: ansible.builtin.copy:
src: docker-compose.yml.j2 dest: "{{ user_home }}/.config/containers/systemd/gitea.network"
dest: /opt/beeserver/gitea/docker-compose.yml content: "[Network]\n"
owner: "{{ user }}"
group: "{{ user }}"
mode: '0644' mode: '0644'
- name: Compose up - name: Deploy db quadlet
changed_when: true ansible.builtin.template:
ansible.builtin.command: src: gitea-db.container.j2
cmd: podman-compose up -d dest: "{{ user_home }}/.config/containers/systemd/gitea-db.container"
chdir: /opt/beeserver/gitea owner: "{{ user }}"
group: "{{ user }}"
mode: '0600'
- name: Deploy server quadlet
ansible.builtin.template:
src: gitea-server.container.j2
dest: "{{ user_home }}/.config/containers/systemd/gitea-server.container"
owner: "{{ user }}"
group: "{{ user }}"
mode: '0600'
- name: Reload user systemd
become: true
become_user: "{{ user }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user_info.uid }}"
DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ user_info.uid }}/bus"
ansible.builtin.systemd:
daemon_reload: true
scope: user
- name: Start user manager
ansible.builtin.systemd:
name: "user@{{ user_info.uid }}.service"
state: started
- name: Start gitea-server
become: true
become_user: "{{ user }}"
environment:
XDG_RUNTIME_DIR: "/run/user/{{ user_info.uid }}"
DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ user_info.uid }}/bus"
ansible.builtin.systemd:
name: gitea-server.service
state: started
scope: user
- name: Debug
ansible.builtin.debug:
msg:
- "Service status: systemctl --user --machine {{ user_info.name }}@.host status gitea-server"
- "Read logs: sudo journalctl _UID={{ user_info.uid }} -n 200 --no-pager"
- "Shell: machinectl shell {{ user_info.name }}@.host /bin/bash"
tags:
- always