139 lines
4.6 KiB
Markdown
139 lines
4.6 KiB
Markdown
# 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).
|