This commit is contained in:
2025-08-25 07:41:03 +05:00
parent 3ca998f1cf
commit b6111740e8
11 changed files with 649 additions and 214 deletions

View File

@ -1,153 +1,83 @@
# Установка Woodpecker CI на Ubuntu с Gitea
---
## 🛠️ Системные требования
- Ubuntu 20.04+ (работает и на 22.04)
- Docker и Docker Compose
- Установленный Gitea (можно локально или через Docker)
---
## 📦 Шаг 1: Установка Docker и Docker Compose
```bash
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable docker
sudo usermod -aG docker $USER
```sh
ssh igor@192.168.200.87 -p 22
```
> ⚠️ После добавления пользователя в группу `docker` нужно **перелогиниться**, чтобы изменения вступили в силу.
---
## 🧱 Шаг 2: Установка Gitea через Docker Compose
Создайте директорию `gitea`, и в ней файл `docker-compose.yml`:
```yaml
version: "3"
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: always
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "2222:22"
Install
```sh
sudo apt update &&
sudo apt upgrade -y &&
sudo apt-get install python3-venv python3-pip &&
sudo apt install docker.io -y &&
sudo apt install -y docker-compose &&
sudo systemctl enable docker &&
sudo systemctl start docker &&
sudo usermod -aG docker $USER &&
docker-compose --version
```
```bash
mkdir gitea && cd gitea
docker-compose up -d
Create folder for Woodpecker
```sh
sudo mkdir -p /opt/woodpecker &&
cd /opt/woodpecker
```
Теперь Gitea будет доступна по адресу: [http://localhost:3000](http://localhost:3000)
---
## 🔐 Шаг 3: Настройка Gitea
1. Перейдите в браузере на `http://localhost:3000`
2. Пройдите установку:
- База данных: SQLite или PostgreSQL (по желанию)
- URL: `http://gitea:3000/`
- Включите регистрацию, если нужно
3. Создайте пользователя (например, `ci-user`)
4. Сгенерируйте **токен доступа** (access token), он будет нужен для Woodpecker
---
## 🚀 Шаг 4: Установка Woodpecker CI
Создайте директорию `woodpecker`, и в ней файл `docker-compose.yml`:
```yaml
version: "3"
```sh
cd /opt/woodpecker
sudo tee docker-compose.yml <<'EOF'
services:
woodpecker-server:
image: woodpeckerci/woodpecker-server:latest
container_name: woodpecker-server
restart: always
environment:
- WOODPECKER_OPEN=true
- WOODPECKER_HOST=http://localhost:8000
- WOODPECKER_GITEA=true
- WOODPECKER_GITEA_URL=http://gitea:3000
- WOODPECKER_GITEA_CLIENT=your_client_id
- WOODPECKER_GITEA_SECRET=your_client_secret
- WOODPECKER_SECRET=supersecret
ports:
- "8000:8000"
- "8000:8000" # Web UI
- "8081:9000" # RPC
environment:
WOODPECKER_OPEN: "true" # Открытый доступ, можно отключить позже
WOODPECKER_HOST: "http://192.168.200.87:8000"
WOODPECKER_GITEA: "true"
WOODPECKER_GITEA_URL: "https://git.mesh.kz"
WOODPECKER_GITEA_CLIENT: "e38fdb9c-2878-4e12-9f9a-f75cc7e7e7e3"
WOODPECKER_GITEA_SECRET: "gto_gapgutecxrghq4sgbv5lrhoht3h5vfgo6ewidf7uxawkn7fhpuma"
WOODPECKER_ADMIN: "your-admin-username"
volumes:
- ./data:/var/lib/woodpecker/
depends_on:
- gitea
- woodpecker-data:/var/lib/woodpecker
woodpecker-agent:
image: woodpeckerci/woodpecker-agent:latest
container_name: woodpecker-agent
restart: always
depends_on:
- woodpecker-server
environment:
- WOODPECKER_SERVER=woodpecker-server:9000
- WOODPECKER_SECRET=supersecret
WOODPECKER_SERVER: "woodpecker-server:9000"
WOODPECKER_SECRET: "supersecret"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
volumes:
woodpecker-data:
EOF
```
---
## ⚙️ Шаг 5: Создание OAuth App в Gitea
1. Перейдите в Gitea → `Settings``Applications`
2. Создайте новое приложение (OAuth2)
- Redirect URI: `http://localhost:8000/login`
3. Получите `Client ID` и `Client Secret`
4. Вставьте их в `WOODPECKER_GITEA_CLIENT` и `WOODPECKER_GITEA_SECRET`
---
## ▶️ Шаг 6: Запуск Woodpecker
```bash
docker-compose up -d
```sh
cd /opt/woodpecker &&
sudo docker-compose up -d
```
После запуска Woodpecker будет доступен по адресу: [http://localhost:8000](http://localhost:8000)
---
## 📁 Пример `.woodpecker.yml` файла
```yaml
pipeline:
build:
image: node:alpine
commands:
- npm install
- npm test
```sh
cd /opt/woodpecker &&
sudo docker-compose down
```
---
Open URL in browser
```sh
start http://192.168.200.87:8000
```
## ✅ Готово!
Create OAuth2 Application in:
```conf
https://git.mesh.kz/user/settings/applications
https://git.mesh.kz/org/ccalm.org/settings/applications
http://192.168.200.87:8000/authorize
```
Теперь вы можете подключать репозитории из Gitea и запускать CI-пайплайны в Woodpecker.
---
## 🔗 Полезные ссылки
- Woodpecker CI: https://woodpecker-ci.org/
- Gitea: https://gitea.io/
- Документация Woodpecker: https://woodpecker-ci.org/docs/