Initial commit

This commit is contained in:
2024-12-30 11:42:12 -07:00
commit 09ba4114c1
86 changed files with 7522 additions and 0 deletions

46
.github/workflows/backup-zfs.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: ZFS Backup
on:
schedule:
- cron: 0 1 * * *
workflow_dispatch:
jobs:
update-infrastructure:
runs-on: [self-hosted, home-server]
steps:
- name: run syncoid
run: |
zpool status
echo ""
zfs list
echo ""
syncoid \
--recursive \
--no-privilege-elevation \
data-ssd/data \
backup/data
syncoid \
--recursive \
--no-privilege-elevation \
data-ssd/media \
backup/media
# steps:
# - name: run syncoid
# run: |
# zpool status
# echo ""
# zfs list
# echo ""
# syncoid \
# --recursive \
# --no-privilege-elevation \
# --no-rollback \
# data-ssd/data \
# backup/data
# syncoid \
# --recursive \
# --no-privilege-elevation \
# --no-rollback \
# data-ssd/media \
# backup/media

15
.github/workflows/deploy-bot.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: Deploy Discord Bot
on:
workflow_dispatch:
jobs:
run-python:
runs-on: [self-hosted, home-server]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: deploy bot
env:
DISCORD_SECRET: ${{ secrets.DISCORD_SECRET }}
run: |
cd discord-bot
./run.sh

View File

@@ -0,0 +1,51 @@
name: Update home server containers
on: [push, workflow_dispatch]
jobs:
update-repo:
runs-on: [home-server]
steps:
- name: checkout repo
working-directory: /home/github/infrastructure
run: |
if [ -d "infrastructure" ]; then
cd infrastructure
echo "Infrastructure folder exists. Resetting to the most recent commit."
git reset --hard HEAD
git pull https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} $(git rev-parse --abbrev-ref HEAD)
else
git clone https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
fi
update-infrastructure:
runs-on: [home-server]
needs: update-repo
steps:
- name: update home server containers
env:
MY_GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN }}
HOMEASSISTANT_TOKEN: ${{ secrets.HOMEASSISTANT_TOKEN }}
GRAFANA_PASSWORD: ${{ secrets.GRAFANA_PASSWORD }}
CLOUDFLARE_CONFIG: ${{ secrets.CLOUDFLARE_CONFIG }}
working-directory: /home/github/infrastructure/infrastructure
run: |
# git secret reveal -f
pwd
# echo "$CLOUDFLARE_CONFIG" > /data/cloudflare/cloudflare.ini
cd home-server
docker pull nextcloud:production
docker compose pull
docker compose build
docker compose up -d
# docker restart reverse-proxy
# docker exec reverse-proxy nginx -t
# docker exec reverse-proxy nginx -s reload
update-pihole:
runs-on: [home-server]
needs: update-repo
steps:
- working-directory: /home/github/infrastructure/infrastructure
run: |
cd dns
docker compose pull
docker compose up -d

37
.github/workflows/update-playlist.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Manage Jellyfin Playlists
on:
workflow_dispatch:
schedule:
- cron: '0 * * * *'
jobs:
run-python:
runs-on: [self-hosted, home-server]
steps:
- name: checkout repo
working-directory: /home/github/infrastructure
run: |
if [ -d "infrastructure" ]; then
cd infrastructure
echo "Infrastructure folder exists. Resetting to the most recent commit."
git reset --hard HEAD
git pull https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }} $(git rev-parse --abbrev-ref HEAD)
else
git clone https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
fi
- name: Run Python script
env:
JELLYFIN_USER: ${{ secrets.JELLYFIN_USER }}
JELLYFIN_PASSWORD: ${{ secrets.JELLYFIN_PASSWORD }}
working-directory: /home/github/infrastructure/infrastructure
run: |
docker build -t jellyfin_management -f jellyfin/Dockerfile .
docker run --rm \
-e JELLYFIN_USER=$JELLYFIN_USER \
-e JELLYFIN_PASSWORD=$JELLYFIN_PASSWORD \
jellyfin_management \
-m jellyfin.update_all_songs_playlist
docker run --rm \
-e JELLYFIN_USER=$JELLYFIN_USER \
-e JELLYFIN_PASSWORD=$JELLYFIN_PASSWORD \
jellyfin_management \
-m jellyfin.update_unindexed