gitea migration
This commit is contained in:
Vendored
+10
@@ -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",
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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")
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user