Last active 1732827192

renich's Avatar renich revised this gist 1732827192. Go to revision

1 file changed, 1 insertion, 1 deletion

forgejo-runner-install.bash

@@ -2,7 +2,7 @@
2 2 set -x
3 3
4 4 # Description:
5 - # This script is for installing pengist. To use it, you need to execute it with a version as an argument
5 + # This script is for installing forgejo-runner. To use it, you need to execute it with a version as an argument
6 6 #
7 7 # For example:
8 8 #

renich's Avatar renich revised this gist 1732827143. Go to revision

1 file changed, 1 insertion, 1 deletion

forgejo-runner-install.bash

@@ -49,7 +49,7 @@ if ! id -u forgejo-runner; then
49 49 systemctl --user -M forgejo-runner@ enable --now podman.socket
50 50
51 51 # enable linger
52 - loginctl enable-linger
52 + loginctl enable-linger forgejo-runner
53 53
54 54 # create systemd service
55 55 user_home=$( sudo -iu forgejo-runner pwd )

renich's Avatar renich revised this gist 1732827096. Go to revision

1 file changed, 90 insertions

forgejo-runner-install.bash(file created)

@@ -0,0 +1,90 @@
1 + #!/usr/bin/bash
2 + set -x
3 +
4 + # Description:
5 + # This script is for installing pengist. To use it, you need to execute it with a version as an argument
6 + #
7 + # For example:
8 + #
9 + # forgejo-runner-install 5.0.3
10 +
11 + # functions
12 + # example: rm / || die 'It didn't work!' 2
13 + die() {
14 + local message=$1
15 + local code=$2
16 +
17 + echo -e "Error: $1"
18 + exit $2
19 + }
20 +
21 +
22 + version=$1
23 + url="https://code.forgejo.org/forgejo/runner/releases/download/v$version/forgejo-runner-$version-linux-amd64"
24 + binary="forgejo-runner-$version-linux-amd64"
25 +
26 + # check if version was provided
27 + if [[ -z $version ]]; then
28 + die "You didn't provide a version to install. Please, provide one similar to: a.b.c" 1
29 + fi
30 +
31 + if ! command -v podman &> /dev/null; then
32 + die "Podman is not installed. Please, install it and reboot before proceeding." 2
33 + fi
34 +
35 + # download and symlink
36 + cd /usr/local/bin
37 + curl -LO "$url"
38 + ln -fs $binary forgejo-runner
39 + cd -
40 +
41 + # fix perms
42 + chmod 755 /usr/local/bin/$binary
43 +
44 + # create user
45 + if ! id -u forgejo-runner; then
46 + useradd -mr -d /var/lib/forgejo-runner forgejo-runner
47 +
48 + # enable podman
49 + systemctl --user -M forgejo-runner@ enable --now podman.socket
50 +
51 + # enable linger
52 + loginctl enable-linger
53 +
54 + # create systemd service
55 + user_home=$( sudo -iu forgejo-runner pwd )
56 + user_service_path=$user_home/.config/systemd/user
57 + sudo -u forgejo-runner mkdir -p $user_service_path
58 +
59 + if [[ ! -f $user_service_path/forgejo-runner.service ]]; then
60 + cat <<- 'EOF' | sudo -u forgejo-runner tee $user_service_path/forgejo-runner.service
61 + [Unit]
62 + Description=Forgejo Runner
63 + Documentation=https://forgejo.org/docs/latest/admin/actions/
64 +
65 + [Service]
66 + ExecStart=forgejo-runner daemon
67 + ExecReload=/bin/kill -s HUP $MAINPID
68 + WorkingDirectory=/var/lib/forgejo-runner
69 + Restart=on-failure
70 + TimeoutSec=0
71 + RestartSec=10
72 +
73 + [Install]
74 + WantedBy=multi-user.target
75 + EOF
76 +
77 + # activate service
78 + systemctl --user -M forgejo-runner@ daemon-reload
79 + systemctl --user -M forgejo-runner@ enable --now forgejo-runner.service
80 + else
81 + # reload
82 + systemctl --user -M forgejo-runner@ reload forgejo-runner.service
83 + fi
84 + fi
85 +
86 + # fix perms
87 + chmod -R o-rwx /var/lib/forgejo-runner
88 +
89 + # registration
90 + echo 'Now, you need to proceed registering forgejo-runner'.
Newer Older