Как подключить woodpecker-ci: Docker, forgejo?
Ссылка скопирована
Сейчас ситуация такая: при попытке войти после того как прошел аутентификацию выдает ошибку
#version: '3.9' networks: forgejo-ci: external: false volumes: forgejo-data: forgejo-db-data: woodpecker-server-data: woodpecker-agent-config: crow-server: crow-agent: services: forgejo: image: codeberg.org/forgejo/forgejo:13 container_name: forgejo restart: always networks: - forgejo-ci environment: - USER_UID=1000 - USER_GID=1000 - FORGEJO_MAILER_ADDR=${GMAIL_SMTP_USER} # --- DATABASE --- - FORGEJO__database__DB_TYPE=postgres - FORGEJO__database__HOST=db:5432 - FORGEJO__database__NAME=${POSTGRES_DB} - FORGEJO__database__USER=${POSTGRES_USER} - FORGEJO__database__PASSWD=${POSTGRES_PASSWORD} # --- MAIL (Gmail SMTP) --- - FORGEJO__mailer__ENABLED=true - FORGEJO__mailer__FROM=${GMAIL_SMTP_FROM} - FORGEJO__mailer__PROTOCOL=smtps - FORGEJO__mailer__SMTP_ADDR=smtp.gmail.com - FORGEJO__mailer__SMTP_PORT=465 - FORGEJO__mailer__USER=${GMAIL_SMTP_USER} - FORGEJO__mailer__PASSWD=${GMAIL_SMTP_PASSWORD} - FORGEJO__mailer__TLS_ENABLED=true - FORGEJO__actions__ENABLED=true volumes: - forgejo-data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" - "222:22" depends_on: - db db: image: postgres:15 container_name: forgejo-db restart: always networks: - forgejo-ci environment: POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB} volumes: - forgejo-db-data:/var/lib/postgresql/data crow-server: image: codeberg.org/crowci/crow-server:v4.5 ports: - 8000:8000 # networks: # - forgejo-ci volumes: - crow-server:/var/lib/crow/ env_file: - .env environment: CROW_OPEN: "true" CROW_FORGEJO: "true" CROW_FORGEJO_URL: "http://localhost:3000" CROW_FORGEJO_CLIENT: "${FORGEJO_CLIENT_ID}" CROW_FORGEJO_SECRET: "${FORGEJO_CLIENT_SECRET}" CROW_ADMIN: "master" CROW_HOST: "${CROW_HOST}"
# --- PostgreSQL --- POSTGRES_USER=forgejo POSTGRES_PASSWORD=forgejo_password POSTGRES_DB=forgejo # --- SMTP Gmail --- GMAIL_SMTP_PASSWORD=smtp GMAIL_SMTP_FROM=GIT.LAN <user+git.lan@gmail.com> GMAIL_SMTP_USER=user@gmail.com WOODPECKER_HOST=http://localhost:8000 # Провайдер Forgejo #http://localhost:8000/authorize #http://localhost:8000/login FORGEJO_URL=http://localhost:3000 FORGEJO_CLIENT_ID= FORGEJO_CLIENT_SECRET= # сгенерируй секрет AGENT_SECRET= # Legacy/alternative names used by some images (avoid "variable not set" warnings) CROW_HOST=http://localhost:8000 CROW_AGENT_SECRET=
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
Аккумуляторные батареи
Почему при зарядке автостарта слышен писк, где искать причину?
1 ответ

Woodpecker CI с Forgejo удобнее всего подключать через Docker Compose: отдельно поднимается server, agent и PostgreSQL, а в Forgejo создаётся OAuth application. Главная идея такая: Forgejo отвечает за репозитории и авторизацию, Woodpecker получает webhook-события и запускает pipeline на агенте.
Минимальный порядок действий:
.woodpecker.yml.Пример фрагмента compose:
services: woodpecker-server: image: woodpeckerci/woodpecker-server:latest environment: WOODPECKER_OPEN: "true" WOODPECKER_HOST: "https://ci.example.ru" WOODPECKER_FORGEJO: "true" WOODPECKER_FORGEJO_URL: "https://git.example.ru" WOODPECKER_FORGEJO_CLIENT: "client_id" WOODPECKER_FORGEJO_SECRET: "client_secret" WOODPECKER_AGENT_SECRET: "long-random-secret" ports: - "8000:8000" woodpecker-agent: image: woodpeckerci/woodpecker-agent:latest command: agent environment: WOODPECKER_SERVER: "woodpecker-server:9000" WOODPECKER_AGENT_SECRET: "long-random-secret" volumes: - /var/run/docker.sock:/var/run/docker.sock
Проверьте URL callback в Forgejo: он должен вести на Woodpecker, обычно что-то вроде
https://ci.example.ru/authorize. Если после авторизации ошибка, почти всегда не совпал host, callback или client secret.Для первого pipeline:
steps: test: image: node:20 commands: - npm ci - npm test
Итог: сначала поднимите server/agent, затем проверьте OAuth и webhook. Не начинайте с сложных pipeline, пока простой job не запускается. На проде не забывайте закрыть CI за HTTPS, сделать backup БД Woodpecker и не давать агенту лишних прав, если Docker socket не нужен.