Files
homelab-docs/homelab/gitea/README.md
2026-02-23 16:47:17 +03:00

4.6 KiB
Raw Blame History

Gitea + Gitea Actions на CT 103

LXC 103: 192.168.1.103, 1 core, 2 GB RAM, 15 GB диск (local-lvm).
Доступ: только LAN, без домена.

1. Создание LXC 103 на Proxmox

Выполнять на хосте 192.168.1.150 (ssh root@192.168.1.150).

1.1. Шаблон (если ещё нет)

Проверить доступные шаблоны и при необходимости скачать Debian 12:

pveam available | grep debian-12
pveam download local debian-12-standard_12.7-1_amd64.tar.zst
# или актуальный из списка pveam available
pveam list local

Имя шаблона для pct create — как в pveam list local, например: local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst.

1.2. Создать контейнер

Важно: шлюз gw=192.168.1.1 — поправь, если у тебя другой (например роутер на .1).

pct create 103 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \
  --hostname gitea \
  --cores 1 \
  --memory 2048 \
  --swap 512 \
  --rootfs local-lvm:15 \
  --net0 name=eth0,bridge=vmbr0,ip=192.168.1.103/24,gw=192.168.1.1 \
  --features nesting=1 \
  --onboot 1 \
  --start 1

nesting=1 нужен для Docker внутри LXC.

1.3. Проверить хранилище

Если твоё хранилище называется иначе (не local-lvm):

pvesm status

Если корневой диск на другом storage — замени в команде --rootfs local-lvm:15 на свой, например --rootfs SSD:15.


2. В контейнере 103: Docker и Gitea

2.1. Войти в контейнер

pct enter 103

2.2. Установить Docker

apt update && apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list
apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

2.3. Развернуть Gitea

Файлы из репозитория (homelab/gitea/) нужно положить в контейнер в /opt/gitea/. С хоста Proxmox, если репо уже есть на хосте:

pct exec 103 -- mkdir -p /opt/gitea
pct push 103 /path/на/хосте/к/homelab/gitea/docker-compose-103.yml /opt/gitea/docker-compose.yml
pct push 103 /path/на/хосте/к/homelab/gitea/.env.example /opt/gitea/.env.example

В контейнере:

mkdir -p /opt/gitea
cd /opt/gitea
# положить docker-compose-103.yml как docker-compose.yml и .env.example как .env
cp .env.example .env
# пока токен пустой — раннер не зарегистрируется, это нормально
docker compose up -d

2.4. Первый запуск Gitea

  1. В браузере: http://192.168.1.103:3000
  2. Пройти установку (админ, пароль, остальное по желанию).
  3. После входа: АдминистрированиеActionsRunners → скопировать Registration token.
  4. В контейнере в /opt/gitea/.env прописать:
    GITEA_RUNNER_REGISTRATION_TOKEN=вставь_токен_сюда
    
  5. Перезапустить раннер:
    cd /opt/gitea && docker compose up -d runner
    

Раннер должен появиться в Actions → Runners со статусом «Online».


3. Полезные команды (с хоста 192.168.1.150)

pct enter 103
pct exec 103 -- bash -c 'cd /opt/gitea && docker compose ps'
pct exec 103 -- bash -c 'cd /opt/gitea && docker compose logs -f server'

4. Homepage (контейнер 100)

Добавить в /opt/docker/homepage/config/services.yaml запись для Gitea (в нужную группу), например:

- Gitea:
    icon: gitea.png
    href: http://192.168.1.103:3000
    description: Git-сервер (LAN)
    widget:
      type: iframe
      url: http://192.168.1.103:3000

Иконку gitea.png при необходимости положить в каталог иконок Homepage.

Готовый фрагмент для вставки: homepage-services-snippet.yaml.