commit ae04bf6ec43da367cfebd5204f61ba373d68c2ef Author: Kenneth Date: Wed May 28 16:32:46 2025 +0100 initial commit diff --git a/cron/backup.sh b/cron/backup.sh new file mode 100755 index 0000000..dcb5470 --- /dev/null +++ b/cron/backup.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +echo "Backup up Gitea..." + +GITEA_CONTAINER_ID=$(docker ps -qf 'name=^gitea$') + +if [ ! -f "/tmp/gitea-backup.zip" ]; then + echo "Dumping Gitea backup..." + docker exec -u git -it -w /tmp $GITEA_CONTAINER_ID bash -c '/usr/local/bin/gitea dump --file gitea-backup.zip -c /etc/gitea/app.ini' + docker cp $GITEA_CONTAINER_ID:/tmp/gitea-backup.zip /tmp/gitea-backup.zip + echo "Gitea backup dumped to /tmp/gitea-backup.zip!" +fi + +echo "Uploading Gitea backup to rsync.net..." +scp /tmp/gitea-backup.zip zh3735.rsync.net:helian/gitea/gitea-backup.zip +echo "Uploaded Gitea backup to rsync.net!" + +echo "Cleaning up..." +rm /tmp/gitea-backup.zip > /dev/null +docker exec -u git -w /tmp $GITEA_CONTAINER_ID bash -c 'rm /tmp/gitea-backup.zip' +echo "All cleaned up. Successfully backed up Gitea!" + +echo "Backing up 7am..." +rsync -avz /opt/7am/data/ zh3735.rsync.net:helian/7am/data/ +echo "Successfully backed up 7am!" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f0e4838 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,108 @@ +networks: + gitea: + beszel: + 7am: + website: + +services: + 7am: + build: + context: ./7am + dockerfile: Dockerfile + args: + uid: $UID + gid: $GID + container_name: 7am + environment: + GEMINI_API_KEY: $GEMINI_API_KEY + MET_API_USER_AGENT: $MET_API_USER_AGENT + VAPID_SUBJECT: $VAPID_SUBJECT + VAPID_PRIVATE_KEY_BASE64: $VAPID_PRIVATE_KEY_BASE64 + VAPID_PUBLIC_KEY_BASE64: $VAPID_PUBLIC_KEY_BASE64 + ports: + - "127.0.0.1:8080:8080" + volumes: + - ./7am/data:/app/data + networks: + - 7am + + website: + build: + context: ./website + dockerfile: Dockerfile + restart: unless-stopped + container_name: website + ports: + - "127.0.0.1:5432:80" + networks: + - website + + gitea: + image: docker.gitea.com/gitea:1.23.7-rootless + container_name: gitea + environment: + GITEA__database__DB_TYPE: postgres + GITEA__database__HOST: gitea_db:5432 + GITEA__database__NAME: $GITEA_DATABASE_NAME + GITEA__database__USER: $GITEA_DATABASE_USER + GITEA__database__PASSWD: $GITEA_DATABASE_PASSWORD + restart: always + networks: + - gitea + volumes: + - ./gitea/data:/var/lib/gitea + - ./gitea/config:/etc/gitea + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "127.0.0.1:3000:3000" + - "127.0.0.1:2222:2222" + depends_on: + - gitea_db + act_runner: + image: docker.io/gitea/act_runner:0.2.11 + environment: + CONFIG_FILE: /data/config.yaml + GITEA_INSTANCE_URL: http://gitea:3000 + GITEA_RUNNER_REGISTRATION_TOKEN: g9KjamnVsUvTSVvwFRtv4hh0wxpt48dTNLXvgBRg + GITEA_RUNNER_NAME: helian_runner + volumes: + - ./act_runner/data:/data + - /var/run/docker.sock:/var/run/docker.sock + networks: + - gitea + gitea_db: + image: docker.io/library/postgres:14 + container_name: gitea_db + restart: always + environment: + POSTGRES_USER: $GITEA_DATABASE_USER + POSTGRES_PASSWORD: $GITEA_DATABASE_PASSWORD + POSTGRES_DB: $GITEA_DATABASE_NAME + networks: + - gitea + volumes: + - ./gitea/postgres:/var/lib/postgresql/data + + beszel: + image: henrygd/beszel + container_name: beszel + restart: unless-stopped + ports: + - "127.0.0.1:8090:8090" + volumes: + - ./beszel/data:/beszel_data + networks: + - beszel + beszel_agent: + image: henrygd/beszel-agent + container_name: beszel_agent + restart: unless-stopped + network_mode: host + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + # monitor other disks / partitions by mounting a folder in /extra-filesystems + # - /mnt/disk/.beszel:/extra-filesystems/sda1:ro + environment: + LISTEN: 45876 + KEY: $BESZEL_SSH_PUBLIC_KEY diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..9102b23 --- /dev/null +++ b/install.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +set -eu + +# make sure the cwd is where the script is. +pushd "$(dirname "$0")" >> /dev/null + +DEST=$1 + +cp ./docker-compose.yml $DEST +cp -r cron $DEST