Initial commit
This commit is contained in:
46
.github/workflows/backup-zfs.yml
vendored
Normal file
46
.github/workflows/backup-zfs.yml
vendored
Normal 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
15
.github/workflows/deploy-bot.yml
vendored
Normal 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
|
||||
51
.github/workflows/update-home-server.yml
vendored
Normal file
51
.github/workflows/update-home-server.yml
vendored
Normal 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
37
.github/workflows/update-playlist.yml
vendored
Normal 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
|
||||
Reference in New Issue
Block a user