Skip to content

Commit 2277298

Browse files
authored
Update README.md
1 parent a8bfbe0 commit 2277298

File tree

1 file changed

+158
-0
lines changed

1 file changed

+158
-0
lines changed

Github/Runners/README.md

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,159 @@
1+
- #### Additional Notes & Refs
2+
> - [Install Dagu](https://github.com/pkgforge/devscripts/blob/main/Linux/DAGU_CRON.md)
3+
> ```bash
4+
> export DAGU_USER="$(whoami)"
5+
> export DAGU_HOME="$(getent passwd $DAGU_USER | cut -d: -f6)" ; mkdir -p "$DAGU_HOME/.dagu"
6+
> export DAGU_HOST="$(ip addr show tailscale0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}' || sudo tailscale ip -4 2>/dev/null | tr -d '\n' | tr -d '[:space:]')"
7+
> export DAGU_PORT="8080"
8+
> DAGU_BASICAUTH_USERNAME="$SECURE_USERNAME"
9+
> DAGU_BASICAUTH_PASSWORD="$SECURE_PASSWORD"
10+
>
11+
> sudo curl -qfsSL "https://bin.ajam.dev/$(uname -m)/dagu" -o "/usr/bin/dagu" && sudo chmod +x "/usr/bin/dagu"
12+
> sudo mkdir -p "/etc/systemd/system/" && sudo touch "/etc/systemd/system/dagu_ts.service"
13+
> cat << 'EOF' | sed -e "s|DG_USER|$DAGU_USER|g" -e "s|DG_HOME|$DAGU_HOME|g" -e "s|DG_HOST|$DAGU_HOST|g" -e "s|DG_PORT|$DAGU_PORT|g" -e "s|DG_SUSER|$DAGU_BASICAUTH_USERNAME|g" -e "s|DG_SPASSWD|$DAGU_BASICAUTH_PASSWORD|g" | sudo tee "/etc/systemd/system/dagu_ts.service"
14+
> [Unit]
15+
> Description=Dagu Job Scheduler
16+
> Wants=network-online.target
17+
> Requires=tailscaled.service
18+
> After=network-online.target network.target tailscaled.service
19+
>
20+
> [Service]
21+
> Type=simple
22+
> User=DG_USER
23+
> Environment="DAGU_HOME=DG_HOME/.dagu"
24+
> Environment="DAGU_HOST=DG_HOST"
25+
> Environment="DAGU_PORT=DG_PORT"
26+
> Environment="DAGU_IS_BASICAUTH=1"
27+
> Environment="DAGU_BASICAUTH_USERNAME=DG_SUSER"
28+
> Environment="DAGU_BASICAUTH_PASSWORD=DG_SPASSWD"
29+
> ExecStartPre=/bin/mkdir -p DG_HOME/.dagu/syslog
30+
> ExecStartPre=/bin/sleep 10
31+
> ExecStart=/usr/bin/dagu start-all
32+
> StandardOutput=DG_HOME/.dagu/syslog/dagu_ts.log
33+
> StandardError=DG_HOME/.dagu/syslog/dagu_ts.log
34+
> Restart=always
35+
> KillMode=process
36+
>
37+
> [Install]
38+
> WantedBy=multi-user.target
39+
> EOF
40+
>
41+
> sudo systemctl daemon-reload
42+
> sudo systemctl enable "dagu_ts.service" --now
43+
> #If Unit tailscaled.service not found:
44+
> # sudo sed -i -e '/Requires=/d' -e 's/tailscaled.service//g' "/etc/systemd/system/dagu_ts.service"
45+
> # sudo systemctl daemon-reload
46+
> # sudo systemctl enable "dagu_ts.service" --now
47+
> sudo systemctl restart "dagu_ts.service"
48+
> sudo systemctl status "dagu_ts.service"
49+
> journalctl -xeu "dagu_ts.service"
50+
> ```
51+
> ---
52+
> - [Install Docker](https://docs.docker.com/engine/install/debian/#install-using-the-convenience-script)
53+
> ```bash
54+
> curl -qfsSL "https://get.docker.com" | sed 's/sleep 20//g' | sudo bash
55+
> sudo groupadd docker 2>/dev/null ; sudo usermod -aG docker "${USER}" 2>/dev/null
56+
> sudo service docker restart 2>/dev/null && sleep 10
57+
> sudo service docker status 2>/dev/null
58+
> ```
59+
> ---
60+
> - [Install Podman](https://podman.io/docs/installation)
61+
> ```bash
62+
> ##Install podman :: https://software.opensuse.org/download/package?package=podman&project=home%3Aalvistack
63+
>
64+
> #(Alpine) : https://wiki.alpinelinux.org/wiki/Podman
65+
> apk update --no-cache && apk add docker podman --latest --no-cache --upgrade --no-interactive
66+
> rc-update add "cgroups" ; rc-service "cgroups" start && sleep 5 ; rc-service "cgroups" status
67+
>
68+
>
69+
> #(Debian)
70+
> # https://software.opensuse.org/download/package?package=podman&project=home%3Aalvistack#manualDebian
71+
>
72+
> #(Ubuntu)
73+
> VERSION="$(grep -oP 'VERSION_ID="\K[^"]+' "/etc/os-release")"
74+
> echo "deb http://download.opensuse.org/repositories/home:/alvistack/xUbuntu_${VERSION}/ /" | sudo tee "/etc/apt/sources.list.d/home:alvistack.list"
75+
> curl -fsSL "https://download.opensuse.org/repositories/home:alvistack/xUbuntu_${VERSION}/Release.key" | gpg --dearmor | sudo tee "/etc/apt/trusted.gpg.d/home_alvistack.gpg" >/dev/null
76+
> sudo apt update -y
77+
> sudo apt install podman -y
78+
> #if errors: sudo apt purge golang-github-containers-common -y
79+
> # sudo dpkg -i --force-overwrite /var/cache/apt/archives/containers-common_100%3a0.59.1-1_amd64.deb
80+
> # sudo apt --fix-broken install
81+
>
82+
> cat "$(systemctl show podman.service -p FragmentPath 2>/dev/null | cut -d '=' -f 2 | tr -d '[:space:]')"
83+
> sudo systemctl daemon-reexec ; sudo systemctl daemon-reload
84+
> sudo systemctl status podman
85+
> sudo systemctl reload "podman.service"
86+
> sudo service podman reload ; sudo service podman restart ; sudo systemctl status podman
87+
> #If errors: sudo apt-get install netavark -y || sudo apt-get install containernetworking-plugins podman-netavark -y
88+
> podman --version
89+
>
90+
> ##Running :: https://docs.podman.io/en/latest/markdown/podman-run.1.html
91+
> sudo mkdir -p "/var/lib/containers/tmp"
92+
> sudo podman run --rm --privileged --network="bridge" --systemd="always" --ulimit="host" --volume="/var/lib/containers/tmp:/tmp" --tz="UTC" --pull="always" "docker.io/azathothas/gh-runner-x86_64-ubuntu:latest"
93+
> # --device="/dev/net/tun:rwm"
94+
> # --cap-add="NET_ADMIN,NET_BIND_SERVICE,NET_RAW,SYS_ADMIN"
95+
> sudo podman exec --env-file="/path/to/GH_AUTH_ENV" -u "runner" "${POD_ID from sudo podman ps}" "/usr/local/bin/manager.sh"
96+
>
97+
> #For Testing/Debug/Interactive Use
98+
> sudo podman exec -it -u "runner" "$(sudo podman ps --format json | jq -r '.[] | select(.Image == "docker.io/azathothas/gh-runner-x86_64-ubuntu:latest") | .Id')" bash
99+
>
100+
> !#PrePacked Build ENV (remove --rm to Preserve Container)
101+
> sudo mkdir -p "/var/lib/containers/tmp"
102+
> sudo podman run --detach --privileged --network="bridge" --publish "22222:22" --systemd="always" --ulimit="host" --tz="UTC" --pull="always" --name="bincache-dbg" --hostname "pkgforge-dev" "docker.io/azathothas/ubuntu-systemd-base:$(uname -m)"
103+
>
104+
> #Run an Interactive Session
105+
> sudo podman exec -it -u "runner" "$(sudo podman ps --filter "name=bincache-dbg" --filter "ancestor=docker.io/azathothas/ubuntu-systemd-base:$(uname -m)" --format "{{.ID}}")" bash -l
106+
> #Inside the container
107+
> bash <(curl -qfsSL "https://raw.githubusercontent.com/pkgforge/devscripts/main/Linux/install_bins_curl.sh") #Installs needed Tooling
108+
> export GHCR_TOKEN="GHCR_PKG_RW" #Token for reading/writing Packages to GHCR
109+
> export GITHUB_TOKEN="GHP_NON_PRIVS" #Token for making Github API Requests to Access Public Assets
110+
> export GITLAB_TOKEN="GLP_NON_PRIVS" #Token for making Gitlab API Requests to Access Public Assets
111+
> source <(curl -qfsSL "https://raw.githubusercontent.com/pkgforge/bincache/refs/heads/main/scripts/runner/setup_env.sh")
112+
>
113+
> #Enable SSHD (replace keys with yours)
114+
> sudo podman exec -it -u "runner" "bincache-dbg" bash -c 'sudo curl -qfsSL "https://github.com/Azathothas.keys" | sudo sort -u -o "/etc/ssh/authorized_keys" ; sudo systemctl restart sshd'
115+
>
116+
> #Stop & Delete Container
117+
> sudo podman stop "bincache-dbg"
118+
> sudo podman rm "bincache-dbg" --force
119+
>
120+
> #To stop All Containers
121+
> sudo docker stop
122+
> sudo podman stop -a
123+
>
124+
> sudo docker rm -f "$(sudo docker ps -aq)"
125+
> sudo podman rm -f "$(sudo podman ps -aq)"
126+
>
127+
> #To Cleanup Everyhinh
128+
> sudo docker system df ; sudo docker container prune -f ; sudo docker image prune -a -f ; sudo docker system prune -a -f
129+
> sudo docker rmi -f "$(sudo docker images -aq)" ; sudo docker system df
130+
>
131+
> sudo podman system df ; sudo podman container prune -f ; sudo podman image prune -a -f ; sudo podman system prune -a -f
132+
> sudo podman rmi -f "$(sudo podman images -aq)" ; sudo docker system df
133+
>
134+
> #{WARNING] To reset everything
135+
> sudo docker system reset -f
136+
> sudo podman system reset -f
137+
> ```
138+
> ---
139+
> - [Install Sysbox](https://github.com/nestybox/sysbox)
140+
> ```bash
141+
> !# Del Existing Docker
142+
> docker rm $(docker ps -a -q) -f
143+
>
144+
> !# Install Deps
145+
> sudo apt-get install fuse3 libfuse-dev -y
146+
> sudo apt-get install "linux-headers-$(uname -r)" -y
147+
> sudo apt-get install linux-headers-{amd64|arm64} -y
148+
> sudo apt-get --fix-broken install -y
149+
> # Get .Deb PKGS
150+
> #aarch64 | arm64
151+
> pushd "$(mktemp -d)" > /dev/null 2>&1 && wget --quiet --show-progress "$(curl -qfsSL 'https://api.github.com/repos/nestybox/sysbox/releases/latest' | jq -r '.body' | sed -n 's/.*(\(https:\/\/.*\.deb\)).*/\1/p' | grep -i 'arm64')" -O "./sysbox.deb" && sudo dpkg -i "./sysbox.deb" ; popd > /dev/null 2>&1
152+
> sudo apt-get autoremove -y ; sudo apt-get update -y && sudo apt-get upgrade -y
153+
> #amd x86_64
154+
> pushd "$(mktemp -d)" > /dev/null 2>&1 && wget --quiet --show-progress "$(curl -qfsSL 'https://api.github.com/repos/nestybox/sysbox/releases/latest' | jq -r '.body' | sed -n 's/.*(\(https:\/\/.*\.deb\)).*/\1/p' | grep -i 'amd64')" -O "./sysbox.deb" && sudo dpkg -i "./sysbox.deb" ; popd > /dev/null 2>&1
155+
> sudo apt-get autoremove -y ; sudo apt-get update -y && sudo apt-get upgrade -y
156+
> #Test
157+
> sysbox-runc --version
158+
> ```
1159

0 commit comments

Comments
 (0)