Codeberg
Reviewedbyfl
🏔️
Free as in freedom.
Integrate Codeberg with fortrabbit using Woodpecker CI.
At the time of writing, there is no native fortrabbit Codeberg app. This article describes how to set up a manual integration using Codeberg CI (Woodpecker). Ping us with your requirements or if something is not working out here.
About Codeberg
Codeberg is a democratic community-driven, non-profit software development platform operated by Codeberg e.V. It is based on Forgejo (a fork of Gitea) and provides a privacy-friendly alternative to commercial Git hosting services.
Deployment pipeline
Codeberg uses Woodpecker CI for its CI/CD pipelines. You can use it to deploy your code to fortrabbit. This involves creating a pipeline that syncs your code to fortrabbit using rsync.
Prerequisites
- Generate SSH key: You need a dedicated SSH key pair for the pipeline. Generate one locally (e.g.
ssh-keygen -t ed25519 -f codeberg_deploy_key -C "Codeberg CI"). - Add to fortrabbit: Copy the public key (
codeberg_deploy_key.pub) and add it as a deploy key in the fortrabbit dashboard. - Add to Codeberg:
- Go to your repository settings in Codeberg.
- Navigate to Settings > Secrets.
- Add a new secret named
SSH_PRIVATE_KEYand paste the content of your private key (codeberg_deploy_key).
Example pipeline
Create a .woodpecker.yml file in the root of your repository. The following code is UNTESTED:
steps:
deploy:
image: alpine:latest
secrets: [ssh_private_key]
when:
branch: main
event: push
commands:
- apk add --no-cache rsync openssh-client
# Setup SSH agent
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
# Add fortrabbit to known hosts (replace region if necessary)
- ssh-keyscan -H ssh.{{region}}.frbit.app >> ~/.ssh/known_hosts
# Sync to fortrabbit
- rsync -av --delete ./ {{app-env-id}}@ssh.{{region}}.frbit.app: