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

139 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).