Installing Woodpecker natively on Fedora 41
02/12/2024
@ Saigon
Linux
Keynotes:
- Fedora 41 installed on VM Workstation
- Disable SELinux
- Enable firewall-cmd
- Woodpecker v2.8.0 - https://github.com/woodpecker-ci/woodpecker/releases/tag/v2.8.0
- SSL enabled
1. Download and install
You can use curl
or wget
to download from woodpecker releases. Then use
$ rpm install file.rpm
2. Systemd - /etc/systemd/system/woodpecker-server.service
[Unit]
Description=Woodpecker Server
After=network.target
[Service]
WorkingDirectory=/opt/woodpecker-server
EnvironmentFile=/opt/woodpecker-server/woodpecker-server.conf
ExecStart=woodpecker-server
User=root
RemainAfterExit=yes
Restart=on-failure
RestartSec=10
TimeoutStopSec=infinity
[Install]
WantedBy=multi-user.target
3. Config - /opt/woodpecker-server/woodpecker-server.conf
I config to use Gitlab Login - Single Sign On. Plese check this link for more detail.
Github SSO use three variables:
WOODPECKER_GITHUB
WOODPECKER_GITHUB_CLIENT
WOODPECKER_GITHUB_SECRET
WOODPECKER_HOST=https://woodpecker.homelab
WOODPECKER_GITHUB=true
WOODPECKER_GITHUB_CLIENT=XXX
WOODPECKER_GITHUB_SECRET=XXX
WOODPECKER_OPEN=false
WOODPECKER_SERVER_CERT=/opt/woodpecker-server/ssl/woodpecker.homelab.bundle.crt
WOODPECKER_SERVER_KEY=/opt/woodpecker-server/ssl/woodpecker.homelab.key
WOODPECKER_DATABASE_DRIVER=sqlite3
WOODPECKER_DATABASE_DATASOURCE=/opt/woodpecker-server/db/woodpecker.sqlite
4. Firewall-cmd service - /etc/firewalld/services/woodpecker-server.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Woodpecker Server</short>
<description>This option allows woodpecker to use tcp port 443 HTTPS</description>
<port protocol="tcp" port="443"/>
</service>
5. Test script before using systemd
Write this script and execute it.
$ export WOODPECKER_HOST=https://woodpecker.homelab
$ export WOODPECKER_GITHUB=true
$ export WOODPECKER_GITHUB_CLIENT=XXX
$ export WOODPECKER_GITHUB_SECRET=XXX
$ export WOODPECKER_OPEN=true
$ export WOODPECKER_SERVER_CERT=/opt/woodpecker/ssl/woodpecker.homelab.bundle.crt
$ export WOODPECKER_SERVER_KEY=/opt/woodpecker/ssl/woodpecker.homelab.key
$ export WOODPECKER_DATABASE_DRIVER=sqlite3
$ export WOODPECKER_DATABASE_DATASOURCE=/opt/woodpecker/db/woodpecker.sqlite
$ export WOODPECKER_LOG_LEVEL=debug
$ woodpecker-server
For ssl certificate generator, follow this guide Cách làm Certificate Authority cấp SSL nội bộ.
6. References
- Woodpecker Server configuration, https://woodpecker-ci.org/docs/administration/server-config