Compare commits
2 commits
43b6760978
...
1104473546
Author | SHA1 | Date | |
---|---|---|---|
1104473546 | |||
07b2594d46 |
3 changed files with 129 additions and 117 deletions
8
.editorconfig
Normal file
8
.editorconfig
Normal file
|
@ -0,0 +1,8 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
|
@ -1,16 +1,16 @@
|
|||
[Unit]
|
||||
Description=Forgejo Runner
|
||||
Documentation=https://forgejo.org/docs/latest/admin/actions/
|
||||
After=podman-socket.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/home/forgejo-runner/.local/bin/forgejo-runner daemon
|
||||
ExecReload=/bin/kill -s HUP $MAINPID
|
||||
WorkingDirectory=/home/forgejo-runner
|
||||
|
||||
Restart=on-failure
|
||||
TimeoutSec=0
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
[Unit]
|
||||
Description=Forgejo Runner
|
||||
Documentation=https://forgejo.org/docs/latest/admin/actions/
|
||||
After=podman-socket.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/home/forgejo-runner/.local/bin/forgejo-runner daemon
|
||||
ExecReload=/bin/kill -s HUP $MAINPID
|
||||
WorkingDirectory=/home/forgejo-runner
|
||||
|
||||
Restart=on-failure
|
||||
TimeoutSec=0
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
||||
|
|
|
@ -1,101 +1,105 @@
|
|||
# Creating a new ForgeJo Runner Host
|
||||
|
||||
## Machine Setup
|
||||
|
||||
### 1. Install Ubuntu (24.04)
|
||||
|
||||
For example on the Hetzner cloud.
|
||||
|
||||
### 2. Create a new user for the runner
|
||||
|
||||
Since we don't want to the new forgejo runner to be ``root`` on out machine, we create a new user for it:
|
||||
```bash
|
||||
# As root
|
||||
useradd -s /bin/bash --create-home forgejo-runner
|
||||
loginctl enable-linger forgejo-runner
|
||||
```
|
||||
|
||||
### 3. Install podman (rootless)
|
||||
|
||||
```bash
|
||||
# As root
|
||||
apt install -y podman
|
||||
echo "forgejo-runner:10000:12000" >> /etc/subuid
|
||||
echo "forgejo-runner:10000:12000" >> /etc/subgid
|
||||
```
|
||||
|
||||
#### Enable Podman docker-socket on user
|
||||
|
||||
```bash
|
||||
# As root
|
||||
apt install -y systemd-container
|
||||
machinectl shell --uid forgejo-runner # <-- This is basically "sudo -Hi XXX" but makes sure the systemd container is switched too.
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl enable --user podman.socket
|
||||
echo 'export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock' >> ~/.profile
|
||||
```
|
||||
|
||||
#### Automatic podman cleanup on reboot
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
```cronexp
|
||||
@reboot podman system cleanup --all --force
|
||||
```
|
||||
|
||||
### 4. Install the forgejo-runner
|
||||
|
||||
```bash
|
||||
# As forgejo-runner
|
||||
# Verify these URLs are still the version you want to install!!!
|
||||
DOWNLOAD_URL="https://code.forgejo.org/forgejo/runner/releases/download/v5.0.4/forgejo-runner-5.0.4-linux-amd64"
|
||||
SIG_URL="https://code.forgejo.org/forgejo/runner/releases/download/v5.0.4/forgejo-runner-5.0.4-linux-amd64.asc"
|
||||
gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710 # Installs the signing key used by forgejo for their releases
|
||||
wget -O forgejo-runner "$DOWNLOAD_URL"
|
||||
wget -O forgejo-runner.asc "$SIG_URL"
|
||||
gpg --verify forgejo-runner.asc forgejo-runner
|
||||
# The output should now contain the following:
|
||||
# Good signature from "Forgejo <contact@forgejo.org>"
|
||||
# aka "Forgejo Releases <release@forgejo.org>"
|
||||
|
||||
mkdir -p ~/.local/bin
|
||||
mv ./forgejo-runner ~/.local/bin/forgejo-runner
|
||||
chmod 750 ~/.local/bin/forgejo-runner
|
||||
```
|
||||
|
||||
### 5. Configure and register the forgejo-runner
|
||||
|
||||
__The official runner registration is__ [here](https://forgejo.org/docs/v8.0/admin/runner-installation/#standard-registration)
|
||||
Or, if you're volunteering another runner for our instance, please contact us to receive the necessary registration information. :)
|
||||
|
||||
```bash
|
||||
# As forgejo-runner
|
||||
forgejo-runner generate-config > config.yml
|
||||
|
||||
# We're about to enter secrets into the terminal, disable history:
|
||||
set +o history
|
||||
RUNNER_INST_URL="https://git.forsaken-ashbirds.net"
|
||||
RUNNER_NAME="<PLEASE ENTER A UNIQUE NAME FOR YOUR RUNNER HERE!!!>"
|
||||
RUNNER_TOKEN="<The token from the UI>"
|
||||
RUNNER_LABELS="ubuntu-24.04,docker,podman,self-hosted" # Update these labels if you intend to change stuff!
|
||||
|
||||
# Re-enable history :)
|
||||
set -o history
|
||||
forgejo-runner register --instance "$RUNNER_INST_URL" --name "$RUNNER_NAME" --token "$RUNNER_TOKEN" --labels "$RUNNER_LABELS" --no-interactive
|
||||
# You should see the following afterwards:
|
||||
# INFO Runner registered successfully
|
||||
```
|
||||
|
||||
#### Check the runner is working
|
||||
|
||||
```bash
|
||||
# As forgejo-runner
|
||||
mkdir -p ~/.config/systemd/user
|
||||
# Download the file "docs/forgejo-runner.service" from this repository to "~/.config/systemd/user"
|
||||
systemctl --user enable --now forgejo-runner
|
||||
```
|
||||
|
||||
__Go into Forgejo and check that your runner is shown as UP__.
|
||||
# Creating a new ForgeJo Runner Host
|
||||
|
||||
## Machine Setup
|
||||
|
||||
### 1. Install Ubuntu (24.04)
|
||||
|
||||
For example on the Hetzner cloud.
|
||||
|
||||
### 2. Create a new user for the runner
|
||||
|
||||
Since we don't want to the new forgejo runner to be ``root`` on out machine, we create a new user for it:
|
||||
```bash
|
||||
# As root
|
||||
useradd -s /bin/bash --create-home forgejo-runner
|
||||
loginctl enable-linger forgejo-runner
|
||||
```
|
||||
|
||||
### 3. Install podman (rootless)
|
||||
|
||||
```bash
|
||||
# As root
|
||||
apt install -y podman
|
||||
echo "forgejo-runner:10000:12000" >> /etc/subuid
|
||||
echo "forgejo-runner:10000:12000" >> /etc/subgid
|
||||
```
|
||||
|
||||
#### Enable Podman docker-socket on user
|
||||
|
||||
```bash
|
||||
# As root
|
||||
apt install -y systemd-container
|
||||
machinectl shell --uid forgejo-runner # <-- This is basically "sudo -Hi XXX" but makes sure the systemd container is switched too.
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl enable --user podman.socket
|
||||
echo 'export DOCKER_HOST=unix://$XDG_RUNTIME_DIR/podman/podman.sock' >> ~/.profile
|
||||
```
|
||||
|
||||
#### Automatic podman cleanup on reboot
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
```cronexp
|
||||
@reboot podman system cleanup --all --force
|
||||
```
|
||||
|
||||
### 4. Install the forgejo-runner
|
||||
|
||||
```bash
|
||||
# As forgejo-runner
|
||||
# Verify these URLs are still the version you want to install!!!
|
||||
DOWNLOAD_URL="https://code.forgejo.org/forgejo/runner/releases/download/v5.0.4/forgejo-runner-5.0.4-linux-amd64"
|
||||
SIG_URL="https://code.forgejo.org/forgejo/runner/releases/download/v5.0.4/forgejo-runner-5.0.4-linux-amd64.asc"
|
||||
gpg --keyserver keys.openpgp.org --recv EB114F5E6C0DC2BCDD183550A4B61A2DC5923710 # Installs the signing key used by forgejo for their releases
|
||||
wget -O forgejo-runner "$DOWNLOAD_URL"
|
||||
wget -O forgejo-runner.asc "$SIG_URL"
|
||||
gpg --verify forgejo-runner.asc forgejo-runner
|
||||
# The output should now contain the following:
|
||||
# Good signature from "Forgejo <contact@forgejo.org>"
|
||||
# aka "Forgejo Releases <release@forgejo.org>"
|
||||
|
||||
mkdir -p ~/.local/bin
|
||||
mv ./forgejo-runner ~/.local/bin/forgejo-runner
|
||||
chmod 750 ~/.local/bin/forgejo-runner
|
||||
```
|
||||
|
||||
### 5. Configure and register the forgejo-runner
|
||||
|
||||
__The official runner registration is__ [here](https://forgejo.org/docs/v8.0/admin/runner-installation/#standard-registration)
|
||||
Or, if you're volunteering another runner for our instance, please contact us to receive the necessary registration information. :)
|
||||
|
||||
```bash
|
||||
# As forgejo-runner
|
||||
forgejo-runner generate-config > config.yml
|
||||
|
||||
# We're about to enter secrets into the terminal, disable history:
|
||||
set +o history
|
||||
RUNNER_INST_URL="https://git.forsaken-ashbirds.net"
|
||||
RUNNER_NAME="<PLEASE ENTER A UNIQUE NAME FOR YOUR RUNNER HERE!!!>"
|
||||
RUNNER_TOKEN="<The token from the UI>"
|
||||
RUNNER_LABELS="ubuntu-24.04,docker,podman,self-hosted" # Update these labels if you intend to change stuff!
|
||||
|
||||
# Re-enable history :)
|
||||
set -o history
|
||||
forgejo-runner register --instance "$RUNNER_INST_URL" --name "$RUNNER_NAME" --token "$RUNNER_TOKEN" --labels "$RUNNER_LABELS" --no-interactive
|
||||
# You should see the following afterwards:
|
||||
# INFO Runner registered successfully
|
||||
```
|
||||
|
||||
#### Check the runner is working
|
||||
|
||||
```bash
|
||||
# As forgejo-runner
|
||||
mkdir -p ~/.config/systemd/user
|
||||
# Download the file "docs/forgejo-runner.service" from this repository to "~/.config/systemd/user"
|
||||
systemctl --user enable --now forgejo-runner
|
||||
# View logs by using:
|
||||
journalctl -xe --user-unit=forgejo-runner
|
||||
# View status by using:
|
||||
systemctl --user status forgejo-runner
|
||||
```
|
||||
|
||||
__Go into Forgejo and check that your runner is shown as UP__.
|
||||
|
|
Loading…
Add table
Reference in a new issue