7 Commits

Author SHA1 Message Date
Clemens Schwaighofer 169e50a4e5 README update 2026-04-23 16:19:13 +09:00
Clemens Schwaighofer 1905a8affb Remove double curl call for act_runner download 2026-04-23 14:14:59 +09:00
Clemens Schwaighofer a58e0d8de5 Update gitea download and switch to xz files
XZ files are downloaded
Change that any grep is replaced by jq command, and sed for " replace

Add systemd service files as samples
2026-04-23 14:11:31 +09:00
Clemens Schwaighofer 26cbfbe39f Merge branch 'master' of git.gullevek.org:clemens/gitea-download 2026-04-23 13:41:14 +09:00
Clemens Schwaighofer 147f3e07d1 Switch gitea download check to jq query from grep 2026-04-23 13:39:50 +09:00
clemens d32ddb1734 Fix gitea action runner target file path in init.sh
Used the wrong variable name in the error message for the gitea action runner target file path.
2025-05-28 22:59:42 +09:00
Clemens Schwaighofer 324b577134 Add gitea donwload file version info, missing installs are no longer forced exit
fix restart of act runner after update

when downloading gitea or act runner it will show the version that is downlaoded.
if the same version is downloaded again and alrady exists, download will be skipped
2025-02-27 12:46:09 +09:00
8 changed files with 106 additions and 21 deletions
+11 -1
View File
@@ -4,7 +4,7 @@ Helps to install and setup the gitea and act_runner binary
## Things needed ## Things needed
The application "curl" and "jq" must be installed. The application "xc", "curl" and "jq" must be installed.
Both gitea and act_runner must be run a systemd control file named "gitea" and "act_runner" Both gitea and act_runner must be run a systemd control file named "gitea" and "act_runner"
@@ -32,3 +32,13 @@ Run `install.sh <version>` to install the newest version
Run `download-act_runner.sh` to download the latest file. Fill re-download as a different name if the same file is requested Run `download-act_runner.sh` to download the latest file. Fill re-download as a different name if the same file is requested
Run `install-act_runner.sh <version>` to install the newest version Run `install-act_runner.sh <version>` to install the newest version
## Systemd
in the `systemd` folder are systemd service files that can be used with gitea and the act_runner
Note that in the gitea.service the "[Unit]" After= block needs to be adjusted depending on what services are used
[See more here](https://docs.gitea.com/installation/linux-service)
Copy them into `/etc/systemd/system/` and run `systemctl daemon-reload`, after that they can be launched with `systemctl start <name>` and enabled with `systemctl enable <name>`
Regular → Executable
+13 -4
View File
@@ -4,11 +4,20 @@ BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
# shellcheck source=init.sh # shellcheck source=init.sh
. "${BASE_FOLDER}init.sh"; . "${BASE_FOLDER}init.sh";
cd "${download_folder}" || exit; download_file=$(curl -s https://gitea.com/api/v1/repos/gitea/act_runner/releases/latest |\
curl -s https://gitea.com/api/v1/repos/gitea/act_runner/releases/latest |\
jq ".assets[].browser_download_url" |\ jq ".assets[].browser_download_url" |\
cut -d '"' -f 2 |\ sed -e 's/"//g' |\
grep "${arch}$" |\ grep "${arch}.xz$");
version=$(echo "${download_file}" | cut -d "/" -f 8);
file=$(echo "${download_file}" | cut -d "/" -f 9);
if [ -f "${download_folder}/${file}" ]; then
echo "[!] File ${file} has already been downloaded";
exit;
fi;
echo "act_runner version to download: ${version}";
cd "${download_folder}" || exit;
echo "${download_file}" |\
xargs curl -LJO --output-dir "${download_folder}" xargs curl -LJO --output-dir "${download_folder}"
cd - || exit; cd - || exit;
+14 -4
View File
@@ -4,11 +4,21 @@ BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
# shellcheck source=init.sh # shellcheck source=init.sh
. "${BASE_FOLDER}init.sh"; . "${BASE_FOLDER}init.sh";
download_file=$(curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |\
jq ".assets[].browser_download_url" |\
sed -e 's/"//g' |\
grep "${arch}.xz$");
version=$(echo "${download_file}" | cut -d "/" -f 8);
file=$(echo "${download_file}" | cut -d "/" -f 9);
if [ -f "${download_folder}/${file}" ]; then
echo "[!] File ${file} has already been downloaded";
exit;
fi;
echo "gitea version to download: ${version}";
cd "${download_folder}" || exit; cd "${download_folder}" || exit;
curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |\ echo "${download_file}" |\
grep browser_download_url |\
cut -d '"' -f 4 |\
grep "${arch}$" |\
xargs curl -LJO --output-dir "${download_folder}" xargs curl -LJO --output-dir "${download_folder}"
cd - || exit; cd - || exit;
+11 -5
View File
@@ -1,6 +1,10 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# check needed binaries # check needed binaries
if [ -z "$(command -v xz)" ]; then
echo "Missing xz application, aborting";
exit;
fi;
if [ -z "$(command -v curl)" ]; then if [ -z "$(command -v curl)" ]; then
echo "Missing curl application, aborting"; echo "Missing curl application, aborting";
exit; exit;
@@ -30,16 +34,18 @@ if [ ! -d "${download_folder}" ]; then
exit; exit;
fi; fi;
target_file="/usr/local/bin/gitea"; target_file="/usr/local/bin/gitea";
gitea_exists=1;
if [ ! -f "${target_file}" ]; then if [ ! -f "${target_file}" ]; then
echo "There is no gitea target file at ${target_file}. Is gitea installed?"; echo "[!] There is no gitea target file at ${target_file}. Is gitea installed?";
exit; gitea_exists=0;
fi; fi;
target_file_act_runner="/usr/local/bin/act_runner"; target_file_act_runner="/usr/local/bin/act_runner";
act_runner_exists=1
if [ ! -f "${target_file_act_runner}" ]; then if [ ! -f "${target_file_act_runner}" ]; then
echo "There is no gitea action runner target file at ${target_file}. Is gitea action runner installed?"; echo "[!] There is no gitea action runner target file at ${target_file_act_runner}. Is gitea action runner installed?";
exit; act_runner_exists=0
fi; fi;
export arch target_file; export arch target_file gitea_exists act_runner_exists;
# __END__ # __END__
+5 -4
View File
@@ -8,16 +8,17 @@ if [ -z "${1}" ]; then
echo "Please give a Gitea Action Runner version to upgrade to"; echo "Please give a Gitea Action Runner version to upgrade to";
exit; exit;
fi; fi;
if [ ! -f "${download_folder}act_runner-${1}-${arch}" ]; then file_name="${download_folder}act_runner-${1}-${arch}.xz";
echo "Cannot find file: ${download_folder}act_runner-${1}-${arch}"; if [ ! -f "${file_name}" ]; then
echo "Cannot find file: ${file_name}";
exit; exit;
fi; fi;
echo -e "Update gitea action runner to ${1} ... "; echo -e "Update gitea action runner to ${1} ... ";
systemctl stop act_runner; systemctl stop act_runner;
cp "${download_folder}act_runner-${1}-${arch}" "${target_file_act_runner}"; xz -dc "${file_name}" > "${target_file_act_runner}";
chmod +x "${target_file_act_runner}"; chmod +x "${target_file_act_runner}";
systemctl start gitea; systemctl start act_runner;
echo "[DONE]"; echo "[DONE]";
# __END__ # __END__
+4 -3
View File
@@ -8,14 +8,15 @@ if [ -z "${1}" ]; then
echo "Please give a Gitea version to upgrade to"; echo "Please give a Gitea version to upgrade to";
exit; exit;
fi; fi;
if [ ! -f "${download_folder}gitea-${1}-${arch}" ]; then file_name="${download_folder}gitea-${1}-${arch}.xz";
echo "Cannot find file: ${download_folder}gitea-${1}-${arch}"; if [ ! -f "${file_name}" ]; then
echo "Cannot find file: ${file_name}";
exit; exit;
fi; fi;
echo -e "Update gitea to ${1} ... "; echo -e "Update gitea to ${1} ... ";
systemctl stop gitea; systemctl stop gitea;
cp "${download_folder}gitea-${1}-${arch}" "${target_file}"; xz -dc "${file_name}" > "${target_file}";
chmod +x "${target_file}"; chmod +x "${target_file}";
systemctl start gitea; systemctl start gitea;
echo "[DONE]"; echo "[DONE]";
+16
View File
@@ -0,0 +1,16 @@
[Unit]
Description=Gitea Actions runner
Documentation=https://gitea.com/gitea/act_runner
After=docker.service
[Service]
ExecStart=/usr/local/bin/act_runner daemon --config /etc/act_runner/config.yaml
ExecReload=/bin/kill -s HUP $MAINPID
WorkingDirectory=/var/lib/act_runner
TimeoutSec=0
RestartSec=10
Restart=always
User=act_runner
[Install]
WantedBy=multi-user.target
+32
View File
@@ -0,0 +1,32 @@
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
#After=mysqld.service
After=postgresql.service
#After=memcached.service
#After=redis.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target