Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F20830834
Codeberg Cloud Init Script
No One
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Authored By
cichy1173
May 3 2026, 16:34
2026-05-03 16:34:59 (UTC+2)
Size
3 KB
Referenced Files
None
Subscribers
None
Codeberg Cloud Init Script
View Options
#cloud-config
package_update: true
packages:
- qemu-guest-agent
- sudo
- lsb-release
- curl
- gnupg
- apt-transport-https
- make
- mc
- net-tools
- lsof
- htop
- cron
- jq
- zip
- telnet
- ca-certificates
- python3-yaml
write_files:
- path: /usr/local/bin/init.sh
content: |
#!/usr/bin/env bash
set -xe
export RUNNER_VERSION=$(curl -X 'GET' https://code.forgejo.org/api/v1/repos/forgejo/runner/releases/latest | jq .name -r | cut -c 2-)
wget -O /home/${USERNAME}/forgejo-runner https://code.forgejo.org/forgejo/runner/releases/download/v$RUNNER_VERSION/forgejo-runner-$RUNNER_VERSION-linux-amd64
chmod +x /home/${USERNAME}/forgejo-runner
cd /home/${USERNAME} && ./forgejo-runner register --no-interactive --token ${CODEBERG_TOKEN} --name ${RUNNER_NAME} --instance https://codeberg.org
./forgejo-runner generate-config > /home/${USERNAME}/config.yml
# Allow Docker socket mount in CI job containers for docker buildx
python3 -c "
import yaml, sys
with open('/home/${USERNAME}/config.yml') as f:
cfg = yaml.safe_load(f)
cfg.setdefault('container', {})
cfg['container']['valid_volumes'] = ['/var/run/docker.sock']
cfg['container']['docker_host'] = 'unix:///var/run/docker.sock'
with open('/home/${USERNAME}/config.yml', 'w') as f:
yaml.dump(cfg, f, default_flow_style=False)
"
chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt -y update
sudo apt -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
usermod -aG docker ${USERNAME}
curl -fsSL https://tailscale.com/install.sh | sh && sudo tailscale up --auth-key=${TAILNET_KEY}
# Create the systemd service file
cat > /etc/systemd/system/forgejorunnerservice.service << 'EOF'
[Unit]
Description=Forgejo CI Runner Listening Service
After=network.target docker.service
Requires=docker.service
[Service]
Type=simple
User=${USERNAME}
WorkingDirectory=/home/${USERNAME}
ExecStart=/home/${USERNAME}/forgejo-runner --config /home/${USERNAME}/config.yml daemon
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
EOF
# Enable and start the service
systemctl daemon-reload
systemctl enable forgejorunnerservice.service
systemctl start forgejorunnerservice.service
permissions: '0755'
- path: /etc/systemd/system/init-script.service
content: |
[Unit]
Description=One-shot service for initializing Init Script
After=network.target
[Service]
User=root
Type=oneshot
ExecStart=/usr/local/bin/init.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
permissions: '0644'
runcmd:
- systemctl enable --now qemu-guest-agent
- systemctl enable --now init-script.service
File Metadata
Details
Attached
Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1138447
Default Alt Text
Codeberg Cloud Init Script (3 KB)
Attached To
Mode
P25 Codeberg Cloud Init Script
Attached
Detach File
Event Timeline
Log In to Comment