# 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: ```bash 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). ```bash 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`): ```bash pvesm status ``` Если корневой диск на другом storage — замени в команде `--rootfs local-lvm:15` на свой, например `--rootfs SSD:15`. --- ## 2. В контейнере 103: Docker и Gitea ### 2.1. Войти в контейнер ```bash pct enter 103 ``` ### 2.2. Установить Docker ```bash 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, если репо уже есть на хосте: ```bash 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 ``` В контейнере: ```bash 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. После входа: **Администрирование** → **Actions** → **Runners** → скопировать **Registration token**. 4. В контейнере в `/opt/gitea/.env` прописать: ```bash GITEA_RUNNER_REGISTRATION_TOKEN=вставь_токен_сюда ``` 5. Перезапустить раннер: ```bash cd /opt/gitea && docker compose up -d runner ``` Раннер должен появиться в **Actions → Runners** со статусом «Online». --- ## 3. Полезные команды (с хоста 192.168.1.150) ```bash 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 (в нужную группу), например: ```yaml - 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](homepage-services-snippet.yaml).