Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dfad774412 | |||
| 169e50a4e5 | |||
| 1905a8affb | |||
| a58e0d8de5 | |||
| 26cbfbe39f | |||
| 147f3e07d1 | |||
| d32ddb1734 | |||
| 324b577134 | |||
| 11c1daf4a1 |
@@ -1,14 +1,44 @@
|
||||
# Download and install gitea
|
||||
# Scripts to download and install gitea and act_runner binary files
|
||||
|
||||
In `init.sh` set the `target_file` as to where the gitea binary is located (full path including binary name)
|
||||
Helps to install and setup the gitea and act_runner binary
|
||||
|
||||
## Things needed
|
||||
|
||||
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"
|
||||
|
||||
## Basic setup
|
||||
|
||||
In `init.sh` set to the full path including the binary name:
|
||||
|
||||
- `target_file` as to where the gitea binary is located
|
||||
- `target_file_act_runner` as to where the gitea act_runner binary is located
|
||||
|
||||
If the download folder should be not in the subfolder "download" change the `download_folder` variable to the path as to where the files hould be downloaded. Note that this folder must exist
|
||||
|
||||
## Architectures detected
|
||||
|
||||
Only arm64 and x86 64bit are auto detected
|
||||
|
||||
## Download and install: gitea
|
||||
|
||||
Run `download.sh` to download the latest file. Fill re-download as a different name if the same file is requested
|
||||
|
||||
Run `install.sh <version>` to install the newest version
|
||||
|
||||
There is a simple "download-act_runner" script, that has the URL as to where the action runner can be
|
||||
downloaded
|
||||
## Download and install: act_runner
|
||||
|
||||
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
|
||||
|
||||
## 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
+14
-5
@@ -4,12 +4,21 @@ BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
|
||||
# shellcheck source=init.sh
|
||||
. "${BASE_FOLDER}init.sh";
|
||||
|
||||
cd "${download_folder}" || exit;
|
||||
curl -s https://gitea.com/api/v1/repos/gitea/act_runner/releases/latest |\
|
||||
download_file=$(curl -s https://gitea.com/api/v1/repos/gitea/runner/releases/latest |\
|
||||
jq ".assets[].browser_download_url" |\
|
||||
cut -d '"' -f 2 |\
|
||||
grep "${arch}$" |\
|
||||
wget -P "${download_folder}" -i -
|
||||
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 "act_runner version to download: ${version}";
|
||||
|
||||
cd "${download_folder}" || exit;
|
||||
echo "${download_file}" |\
|
||||
xargs curl -LJO --output-dir "${download_folder}"
|
||||
cd - || exit;
|
||||
|
||||
# __END__
|
||||
|
||||
+15
-5
@@ -4,12 +4,22 @@ BASE_FOLDER=$(dirname "$(readlink -f "$0")")"/";
|
||||
# shellcheck source=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;
|
||||
curl -s https://api.github.com/repos/go-gitea/gitea/releases/latest |\
|
||||
grep browser_download_url |\
|
||||
cut -d '"' -f 4 |\
|
||||
grep "${arch}$" |\
|
||||
wget -P "${download_folder}" -i -
|
||||
echo "${download_file}" |\
|
||||
xargs curl -LJO --output-dir "${download_folder}"
|
||||
cd - || exit;
|
||||
|
||||
# __END__
|
||||
|
||||
@@ -1,11 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# check needed binaries
|
||||
if [ -z "$(command -v xz)" ]; then
|
||||
echo "Missing xz application, aborting";
|
||||
exit;
|
||||
fi;
|
||||
if [ -z "$(command -v curl)" ]; then
|
||||
echo "Missing curl application, aborting";
|
||||
exit;
|
||||
fi;
|
||||
if [ -z "$(command -v jq)" ]; then
|
||||
echo "Missing jq application, aborting";
|
||||
exit;
|
||||
fi;
|
||||
|
||||
CPU_ARCH=""
|
||||
# get the architecture
|
||||
_cpu_arch=$(uname -m);
|
||||
# weg get like x86_64 or x86_32 (NO), aarch64, etc
|
||||
# we ONLY allow x86_64 or aarch64
|
||||
# possible add: arm64
|
||||
# we ONLY allow x86_64 or aarch64/arm64
|
||||
if [ "${_cpu_arch}" = "x86_64" ]; then
|
||||
CPU_ARCH="amd64";
|
||||
elif [ "${_cpu_arch}" = "aarch64" ] || [ "${_cpu_arch}" = "arm64" ]; then
|
||||
@@ -21,16 +34,18 @@ if [ ! -d "${download_folder}" ]; then
|
||||
exit;
|
||||
fi;
|
||||
target_file="/usr/local/bin/gitea";
|
||||
gitea_exists=1;
|
||||
if [ ! -f "${target_file}" ]; then
|
||||
echo "There is no gitea target file at ${target_file}. Is gitea installed?";
|
||||
exit;
|
||||
echo "[!] There is no gitea target file at ${target_file}. Is gitea installed?";
|
||||
gitea_exists=0;
|
||||
fi;
|
||||
target_file_act_runner="/usr/local/bin/act_runner";
|
||||
act_runner_exists=1
|
||||
if [ ! -f "${target_file_act_runner}" ]; then
|
||||
echo "There is no gitea action runner target file at ${target_file}. Is gitea action runner installed?";
|
||||
exit;
|
||||
echo "[!] There is no gitea action runner target file at ${target_file_act_runner}. Is gitea action runner installed?";
|
||||
act_runner_exists=0
|
||||
fi;
|
||||
|
||||
export arch target_file;
|
||||
export arch target_file gitea_exists act_runner_exists;
|
||||
|
||||
# __END__
|
||||
|
||||
@@ -8,16 +8,17 @@ if [ -z "${1}" ]; then
|
||||
echo "Please give a Gitea Action Runner version to upgrade to";
|
||||
exit;
|
||||
fi;
|
||||
if [ ! -f "${download_folder}act_runner-${1}-${arch}" ]; then
|
||||
echo "Cannot find file: ${download_folder}act_runner-${1}-${arch}";
|
||||
file_name="${download_folder}act_runner-${1}-${arch}.xz";
|
||||
if [ ! -f "${file_name}" ]; then
|
||||
echo "Cannot find file: ${file_name}";
|
||||
exit;
|
||||
fi;
|
||||
|
||||
echo -e "Update gitea action runner to ${1} ... ";
|
||||
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}";
|
||||
systemctl start gitea;
|
||||
systemctl start act_runner;
|
||||
echo "[DONE]";
|
||||
|
||||
# __END__
|
||||
|
||||
+4
-3
@@ -8,14 +8,15 @@ if [ -z "${1}" ]; then
|
||||
echo "Please give a Gitea version to upgrade to";
|
||||
exit;
|
||||
fi;
|
||||
if [ ! -f "${download_folder}gitea-${1}-${arch}" ]; then
|
||||
echo "Cannot find file: ${download_folder}gitea-${1}-${arch}";
|
||||
file_name="${download_folder}gitea-${1}-${arch}.xz";
|
||||
if [ ! -f "${file_name}" ]; then
|
||||
echo "Cannot find file: ${file_name}";
|
||||
exit;
|
||||
fi;
|
||||
|
||||
echo -e "Update gitea to ${1} ... ";
|
||||
systemctl stop gitea;
|
||||
cp "${download_folder}gitea-${1}-${arch}" "${target_file}";
|
||||
xz -dc "${file_name}" > "${target_file}";
|
||||
chmod +x "${target_file}";
|
||||
systemctl start gitea;
|
||||
echo "[DONE]";
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user