3 Commits

Author SHA1 Message Date
Christian Galo 3c604ade53 Update Woodpecker server and agent images to v3.5.2-alpine 2025-04-18 15:13:00 +00:00
Christian Galo 3de556d388 Update name of service to server. Update envs and README. 2025-04-12 02:20:22 +00:00
Christian Galo 8f229bc645 Unabra, update image, add forgejo. 2025-04-11 22:44:09 +00:00
10 changed files with 67 additions and 96 deletions
-40
View File
@@ -1,40 +0,0 @@
---
kind: pipeline
name: deploy to swarm-test.autonomic.zone
steps:
- name: deployment
image: git.coopcloud.tech/coop-cloud/stack-ssh-deploy:latest
settings:
host: swarm-test.autonomic.zone
stack: woodpecker
generate_secrets: true
purge: true
deploy_key:
from_secret: drone_ssh_swarm_test
networks:
- proxy
environment:
DOMAIN: woodpecker.swarm-test.autonomic.zone
STACK_NAME: woodpecker
LETS_ENCRYPT_ENV: production
WOODPECKER_ENV_VERSION: v1
SECRET_AGENT_SECRET_VERSION: v1
trigger:
branch:
- main
---
kind: pipeline
name: generate recipe catalogue
steps:
- name: release a new version
image: plugins/downstream
settings:
server: https://build.coopcloud.tech
token:
from_secret: drone_abra-bot_token
fork: true
repositories:
- toolshed/auto-recipes-catalogue-json
trigger:
event: tag
+6 -13
View File
@@ -1,30 +1,23 @@
TYPE=woodpecker
STACK_NAME=woodpecker
DOMAIN=woodpecker.example.com
## Domain aliases
#EXTRA_DOMAINS=', `www.woodpecker.example.com`'
LETS_ENCRYPT_ENV=production
WOODPECKER_OPEN=true
WOODPECKER_ADMIN=
## FORGEJO (Codeberg)
WOODPECKER_FORGEJO_URL=https://codeberg.org
WOODPECKER_FORGEJO_CLIENT=YOUR_FORGEJO_CLIENT
## Gitea
COMPOSE_FILE="compose.yml:compose.gitea.yml"
WOODPECKER_GITEA_URL=https://git.example.org
WOODPECKER_GITEA_CLIENT=
# see: https://woodpecker-ci.org/docs/administration/vcs/gitea
## Github
# COMPOSE_FILE="compose.yml:compose.github.yml"
# WOODPECKER_GITHUB_CLIENT=
# WOODPECKER_GITHUB_SECRET=
## SECRETS
SECRET_AGENT_SECRET_VERSION=v1
CLIENT_SECRET_VERSION=v1
## Agent
WOODPECKER_MAX_PROCS=4
WOODPECKER_MAX_WORKFLOWS=4
+1
View File
@@ -1 +1,2 @@
.envrc
.env
+21 -17
View File
@@ -1,24 +1,28 @@
# woodpecker
# Woodpecker
> Woodpecker is a community fork of the Drone CI system.
Wiki Cafe's configuration for a [Woodpecker](https://woodpecker-ci.org/) deployment.
<!-- metadata -->
* **Category**: Apps
* **Status**: 0
* **Image**: [`woodpecker`](https://hub.docker.com/r/woodpecker), 4, upstream
* **Healthcheck**: No
* **Backups**: No
* **Email**: No
* **Tests**: No
* **SSO**: No
## Deploying the app with Docker Swarm
<!-- endmetadata -->
Set the environment variables from the .env file during the shell session.
## Quick start
```
set -a && source .env && set +a
```
* `abra app new woodpecker --secrets`
* `abra app config <app-name>`
* `abra app deploy <app-name>`
Set the secrets.
Follow the [woodpecker docs](https://woodpecker-ci.org/docs/administration/vcs/gitea) to setup the Gitea oauth app.
```
printf "%s" "$(openssl rand -hex 32)" | docker secret create woodpecker_agent_secret -
```
```
printf "SECRET_HERE" | docker secret create woodpecker_client_secret -
```
Deploy using the `-c` flag to specify one or multiple compose files. Add the `-c` flag for each additional compose file. Here is an example of deploying the `compose.yaml` and `compose.forgejo.yaml` files:
```
docker stack deploy woodpecker --detach=true -c compose.yaml -c compose.forgejo.yaml
```
-3
View File
@@ -1,3 +0,0 @@
#!/bin/bash
export WOODPECKER_ENV_VERSION=v1
+14
View File
@@ -0,0 +1,14 @@
services:
server:
environment:
- WOODPECKER_FORGEJO=true
- WOODPECKER_FORGEJO_URL
- WOODPECKER_FORGEJO_CLIENT
- WOODPECKER_FORGEJO_SECRET
secrets:
- client_secret
secrets:
client_secret:
name: ${STACK_NAME}_client_secret
external: true
+2 -4
View File
@@ -1,7 +1,5 @@
version: '3.8'
services:
app:
server:
environment:
- WOODPECKER_GITEA=true
- WOODPECKER_GITEA_URL
@@ -12,5 +10,5 @@ services:
secrets:
client_secret:
name: ${STACK_NAME}_client_secret_${SECRET_CLIENT_SECRET_VERSION}
name: ${STACK_NAME}_client_secret
external: true
+2 -4
View File
@@ -1,7 +1,5 @@
version: '3.8'
services:
app:
server:
environment:
- WOODPECKER_GITHUB=true
- WOODPECKER_GITHUB_CLIENT
@@ -11,5 +9,5 @@ services:
secrets:
client_secret:
name: ${STACK_NAME}_client_secret_${SECRET_CLIENT_SECRET_VERSION}
name: ${STACK_NAME}_client_secret
external: true
+18 -15
View File
@@ -1,11 +1,8 @@
---
version: "3.8"
services:
app:
image: woodpeckerci/woodpecker-server:v0.15.6-alpine
server:
image: woodpeckerci/woodpecker-server:v3.5.2-alpine
volumes:
- data:/var/lib/woodpecker/
- server-data:/var/lib/woodpecker/
configs:
- source: woodpecker_env
target: .env
@@ -13,6 +10,8 @@ services:
- WOODPECKER_OPEN
- WOODPECKER_HOST=https://${DOMAIN}
- WOODPECKER_ADMIN
- WOODPECKER_ORGS
# Additional environment variables are set in the woodpecker_env config and compose merging
secrets:
- agent_secret
networks:
@@ -24,21 +23,25 @@ services:
labels:
- "traefik.enable=true"
- "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=8000"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
- "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`)"
- "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
- "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
- "coop-cloud.${STACK_NAME}.version=0.1.0+v0.15.6-alpine"
- "caddy=${DOMAIN}"
- "caddy.reverse_proxy={{upstreams 8000}}"
- "caddy.tls.on_demand="
- "backupbot.backup=true"
agent:
image: woodpeckerci/woodpecker-agent:v0.15.6-alpine
image: woodpeckerci/woodpecker-agent:v3.5.2-alpine
command: agent
depends_on:
- woodpecker-server
volumes:
- agent-config:/etc/woodpecker/
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WOODPECKER_SERVER=app:9000
- WOODPECKER_MAX_PROCS
- WOODPECKER_SERVER=server:9000
- WOODPECKER_MAX_WORKFLOWS
networks:
- internal
configs:
@@ -57,16 +60,16 @@ networks:
volumes:
data:
server-data:
agent-config:
configs:
woodpecker_env:
name: ${STACK_NAME}_woodpecker_env_${WOODPECKER_ENV_VERSION}
name: woodpecker_env
file: woodpecker.env.tmpl
template_driver: golang
secrets:
agent_secret:
name: ${STACK_NAME}_agent_secret_${SECRET_AGENT_SECRET_VERSION}
name: ${STACK_NAME}_agent_secret
external: true
+3
View File
@@ -5,3 +5,6 @@ WOODPECKER_GITEA_SECRET={{ secret "client_secret" }}
{{ if (env "WOODPECKER_GITHUB_CLIENT") }}
WOODPECKER_GITHUB_SECRET={{ secret "client_secret" }}
{{ end }}
{{ if (env "WOODPECKER_FORGEJO_CLIENT") }}
WOODPECKER_FORGEJO_SECRET={{ secret "client_secret" }}
{{ end }}