| Service | URL | What it does |
|---|---|---|
| Forgejo | forge.bvoy.dev | Git hosting |
| Woodpecker CI | ci.bvoy.dev | CI/CD pipelines |
Forgejo is a self-hosted Git platform (a Gitea fork). Woodpecker CI is a
lightweight CI/CD server that runs pipelines on commits and pull requests, using
Kubernetes to spin up pipeline containers.
Login — Forgejo: Sign in with your bvoy.dev account via SSO. GitHub and
GitLab accounts also work for external contributors. There is no local
password login — SSO only.
Login — Woodpecker CI: Log in through Forgejo. If you have access to the
developersorg in Forgejo, you automatically have access to Woodpecker.
git clone https://forge.bvoy.dev/yourname/repo.git
You'll be prompted for credentials. Generate a personal access token under
Settings → Applications → Access Tokens — use that instead of your password.
SSH is available on the standard port 22 at forge.bvoy.dev:
git clone git@forge.bvoy.dev:yourname/repo.git
Add your public key under Settings → SSH / GPG Keys first.
Two orgs are pre-configured:
dev-user members areYou cannot create new orgs unless you are a site admin (dev-admin group in
Authentik).
External users can sign in via GitHub or GitLab and fork any public repo.
Forking is allowed without limits; creating new repos requires being a member of
the developers org.
Woodpecker runs pipelines automatically on push and pull request events.
Pipelines are defined in a .woodpecker.yml file at the root of your repo.
Create .woodpecker.yml in your repo root:
steps:
- name: test
image: golang:1.22
commands:
- go test ./...
- name: build
image: golang:1.22
commands:
- go build -o app .
when:
branch: main
Each step runs in a fresh container. Steps run sequentially by default; add
depends_on to parallelize.
Pipeline status shows in Forgejo on each commit and pull request (green check /
red X). Full logs are at ci.bvoy.dev.
Store secrets in Woodpecker under Repository → Settings → Secrets (or
org-level for shared secrets). Reference them in your pipeline:
steps:
- name: deploy
image: alpine
environment:
MY_TOKEN:
from_secret: my_token
commands:
- ./deploy.sh
local-path (RWO) — pipelines share a workspace volumedevelopers org can log in and manage pipelines.github/workflows YAML will not run