From a5a50d0e02a9b0edec38e6b0cc8827936d2ed003 Mon Sep 17 00:00:00 2001 From: Digital Studium Date: Sat, 25 Mar 2023 12:07:14 +0000 Subject: [PATCH] first commit --- .env | 3 +++ .gitignore | 1 + act-runner.service | 12 ++++++++++++ git.conf | 12 ++++++++++++ prepare.sh | 16 ++++++++++++++++ setup_act_runner.sh | 15 +++++++++++++++ setup_nginx.sh | 12 ++++++++++++ stack.yaml | 18 ++++++++++++++++++ 8 files changed, 89 insertions(+) create mode 100644 .env create mode 100644 .gitignore create mode 100644 act-runner.service create mode 100644 git.conf create mode 100755 prepare.sh create mode 100755 setup_act_runner.sh create mode 100755 setup_nginx.sh create mode 100644 stack.yaml diff --git a/.env b/.env new file mode 100644 index 0000000..0435a81 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +GITEA_HOSTNAME=git.digitalstudium.com +GITEA_TOKEN=RlFiK2uUK0w8RJ98nfKhJdrcAFeKL7Se8cw2N3ts +EMAIL=digitalstudium001@gmail.com diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f26e065 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.runner diff --git a/act-runner.service b/act-runner.service new file mode 100644 index 0000000..bbbf0ec --- /dev/null +++ b/act-runner.service @@ -0,0 +1,12 @@ +[Unit] +Description=Act Runner for Gitea + +[Service] +User=ubuntu +WorkingDirectory=/home/ubuntu/gitea +ExecStart=/usr/local/bin/act_runner daemon +StandardOutput=syslog +StandardError=syslog + +[Install] +WantedBy=multi-user.target diff --git a/git.conf b/git.conf new file mode 100644 index 0000000..ebe3642 --- /dev/null +++ b/git.conf @@ -0,0 +1,12 @@ +server { + server_name GITEA_HOSTNAME; + listen 80; + + location / { + proxy_pass http://127.0.0.1:5000/; + proxy_buffering off; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Host $host; + proxy_set_header X-Forwarded-Port $server_port; + } +} diff --git a/prepare.sh b/prepare.sh new file mode 100755 index 0000000..9415d97 --- /dev/null +++ b/prepare.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Update repo cache and install packages +sudo apt update +sudo apt install -y nginx-light certbot python3-certbot-nginx docker.io + +# Add current user to `docker` group and switch to this group +sudo usermod -a -G docker $USER +newgrp docker + +# Init docker swarm mode if not yet initialized +docker swarm init || true + +# Deploy docker stack +docker stack deploy -c stack.yaml gitea + diff --git a/setup_act_runner.sh b/setup_act_runner.sh new file mode 100755 index 0000000..4325a6f --- /dev/null +++ b/setup_act_runner.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +source .env + +# Download and install act_runner +wget https://dl.gitea.com/act_runner/main/act_runner-main-linux-amd64 -O act_runner +chmod +x ./act_runner +sudo mv ./act_runner /usr/local/bin/ + +# Register server as runner on Gitea +act_runner register --instance https://$GITEA_HOSTNAME --token $GITEA_TOKEN --no-interactive + +# Create act-runner systemd service and start it +sudo cp ./act-runner.service /lib/systemd/system/act-runner.service +sudo systemctl enable --now act-runner diff --git a/setup_nginx.sh b/setup_nginx.sh new file mode 100755 index 0000000..467f113 --- /dev/null +++ b/setup_nginx.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +source .env + +# Copy config to nginx, substitute and reload it +sudo cp git.conf /etc/nginx/conf.d +sudo sed -i s/GITEA_HOSTNAME/$GITEA_HOSTNAME/g +sudo service nginx reload + +# Get ssl certificate +sudo certbot --non-interactive --agree-tos -m $EMAIL + diff --git a/stack.yaml b/stack.yaml new file mode 100644 index 0000000..bfe89e8 --- /dev/null +++ b/stack.yaml @@ -0,0 +1,18 @@ +version: "3" + +services: + server: + image: gitea/gitea:1.19.0 + environment: + - GITEA__actions__ENABLED=true + - GITEA__indexer__REPO_INDEXER_ENABLED=true + - GITEA__server__SSH_PORT=2222 + volumes: + - gitea-data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "5000:3000" + - "2222:2222" +volumes: + gitea-data: