From 88be17e01a1387f00754298486848f3322903996 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 07:28:28 -0500 Subject: [PATCH 001/121] Testing out Cloudflare export. --- .gitea/workflows/deployment.yml | 87 ++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 33 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 9a841096..0e06e167 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -32,44 +32,65 @@ jobs: token: ${{ secrets.BOT_GITEA_TOKEN }} assignee: ${{ gitea.actor }} - docker-compose-test: - name: Docker Compose Test - needs: [create-pr] + cloudflare-dns-setup: + name: Cloudflare DNS Setup + needs: [check-and-create-pr] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Generate ephemeral .env compose file - id: generate-env-file-pr - run: | - echo "${{ secrets.RINOA_ENV }}" > .env - - - name: Docker Compose Lint - uses: yu-ichiro/spin-up-docker-compose-action@v1 + - name: Cloudflare DNS Export + uses: raiyansarker/cloudflare-dns-export@v1.1 with: - file: docker-compose.yml - pull: true - pull-opts: --dry-run - up: true - up-opts: --dry-run -d --remove-orphans - env: - DOCKER_HOST: tcp://dockerproxy:2375 + NAME: ${{ github.repository }} + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + ZONE_ID: ${{secrets.CF_ZONE_ID}} + API_KEY: ${{secrets.CF_API_KEY}} + PREFIX: trez.wtf - merge-pr: - name: PR Merge - runs-on: ubuntu-latest - needs: [docker-compose-test] - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Tea CLI Setup & PR Merge + - name: Parse Cloudflare DNS Export + id: parse-cloudflare-dns-export run: | - curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea - chmod +x /usr/local/bin/tea - echo "Merging PR..." - tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - echo ${{ gitea.ref_name }} - pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') - tea pr m --repo ${{ github.repository }} --title "Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file + echo "::set-output name=dns_records::$(cat trez.wtf.json | jq -c '.[]')" + # docker-compose-test: + # name: Docker Compose Test + # needs: [create-pr] + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + + # - name: Generate ephemeral .env compose file + # id: generate-env-file-pr + # run: | + # echo "${{ secrets.RINOA_ENV }}" > .env + + # - name: Docker Compose Lint + # uses: yu-ichiro/spin-up-docker-compose-action@v1 + # with: + # file: docker-compose.yml + # pull: true + # pull-opts: --dry-run + # up: true + # up-opts: --dry-run -d --remove-orphans + # env: + # DOCKER_HOST: tcp://dockerproxy:2375 + + # merge-pr: + # name: PR Merge + # runs-on: ubuntu-latest + # needs: [docker-compose-test] + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + + # - name: Tea CLI Setup & PR Merge + # run: | + # curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea + # chmod +x /usr/local/bin/tea + # echo "Merging PR..." + # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + # echo ${{ gitea.ref_name }} + # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') + # tea pr m --repo ${{ github.repository }} --title "Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file From 2ace69bbb1c485534f7b073dc9dd6c60b92eaf34 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 07:30:28 -0500 Subject: [PATCH 002/121] Testing out Cloudflare export. --- .gitea/workflows/deployment.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 0e06e167..2913d01f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,10 +43,10 @@ jobs: - name: Cloudflare DNS Export uses: raiyansarker/cloudflare-dns-export@v1.1 with: - NAME: ${{ github.repository }} - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - ZONE_ID: ${{secrets.CF_ZONE_ID}} - API_KEY: ${{secrets.CF_API_KEY}} + NAME: ${{ gitea.repository }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ZONE_ID: ${{ secrets.CF_ZONE_ID }} + API_KEY: ${{ secrets.CF_API_KEY }} PREFIX: trez.wtf - name: Parse Cloudflare DNS Export From 965b614d62ff9a991c3210e2db260c5e2d450493 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 07:39:45 -0500 Subject: [PATCH 003/121] Testing out Cloudflare export. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 2913d01f..08dfe1df 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,7 +43,7 @@ jobs: - name: Cloudflare DNS Export uses: raiyansarker/cloudflare-dns-export@v1.1 with: - NAME: ${{ gitea.repository }} + NAME: ${{ github.repository }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ZONE_ID: ${{ secrets.CF_ZONE_ID }} API_KEY: ${{ secrets.CF_API_KEY }} From 684a36575e59c021939524b48b2ab99cc756ed93 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 07:42:32 -0500 Subject: [PATCH 004/121] Correct var for CF API token. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 08dfe1df..cbcf191a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -46,7 +46,7 @@ jobs: NAME: ${{ github.repository }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ZONE_ID: ${{ secrets.CF_ZONE_ID }} - API_KEY: ${{ secrets.CF_API_KEY }} + API_KEY: ${{ secrets.CF_API_TOKEN }} PREFIX: trez.wtf - name: Parse Cloudflare DNS Export From 56bbf6067bf7c29e4b5950b4409e61e8fd5ed53c Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 08:41:39 -0500 Subject: [PATCH 005/121] Testing Cloudflare DNS update. --- .gitea/workflows/deployment.yml | 16 +- DNS-RECORDS.hjson | 674 ++++++++++++++++++++++++++++++++ 2 files changed, 678 insertions(+), 12 deletions(-) create mode 100644 DNS-RECORDS.hjson diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index cbcf191a..202ce9ac 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -40,19 +40,11 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Cloudflare DNS Export - uses: raiyansarker/cloudflare-dns-export@v1.1 + - name: Cloudflare DNS Update + uses: pvinis/update-cloudflare-dns@v0.5.0 with: - NAME: ${{ github.repository }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ZONE_ID: ${{ secrets.CF_ZONE_ID }} - API_KEY: ${{ secrets.CF_API_TOKEN }} - PREFIX: trez.wtf - - - name: Parse Cloudflare DNS Export - id: parse-cloudflare-dns-export - run: | - echo "::set-output name=dns_records::$(cat trez.wtf.json | jq -c '.[]')" + zone: trez.wtf + cloudflareToken: ${{ secrets.CF_API_TOKEN }} # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] diff --git a/DNS-RECORDS.hjson b/DNS-RECORDS.hjson new file mode 100644 index 00000000..033c0503 --- /dev/null +++ b/DNS-RECORDS.hjson @@ -0,0 +1,674 @@ +[ + { + "content": "trez.wtf", + "name": "abs.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "adgh.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "ai.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "analytics.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "auth.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "bazarr.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "bitwarden.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "biz.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "blog.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "browse.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "bsky.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "btmag.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "cloak.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "cloud.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "cron.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "csec.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "czkawka.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "dbs.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "deluge.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "devops.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "docs.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "dup.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "ecom.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "etherpad.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "finance.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "52bdee6e-8ccb-47be-ba9e-f8010b905e41.cfargotunnel.com", + "name": "gist-ssh.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "gist.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "52bdee6e-8ccb-47be-ba9e-f8010b905e41.cfargotunnel.com", + "name": "git-ssh.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "git.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "gotify.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "ha.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "health.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "id.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "invid.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "it-services.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "itt.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "jf.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "komodo.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "ldap.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "lidarr.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "lidify.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "mastodon.trez.wtf", + "proxied": "false", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "matrix.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "meet-admin.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "meet.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "mesh.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "mimir.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "mm.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "mon.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "myspotify.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "n8n.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "navi.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "netbird.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "net.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "notes.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "ntfy.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "ombi.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "plants.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "pm.mtasv.net", + "name": "pm-bounces.trez.wtf", + "proxied": "false", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "portainer.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "post.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "prowlarr.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "radarec.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "radarr.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "readarr.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "recipes.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "98be6ddb-4e67-46f9-84a7-2f3d4a3bd79b.cfargotunnel.com", + "name": "rem.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "resume.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "rlib.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "rustdesk.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "s3.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "sabnzbd.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "scan.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "scrape.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "scrobble.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "search.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "sign.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "slsk.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "slurpit.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "sonarr.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "sonashow.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "speed.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "sqube.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "27beca38-9191-484c-925a-77dcc1fe7600.cfargotunnel.com", + "name": "ssh.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "store.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "subs.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "support.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "swag.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "trac.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "unmanic.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "uptime.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "vault.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "wallabag.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "wsec.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "www.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + }, + { + "content": "trez.wtf", + "name": "ytdl.trez.wtf", + "proxied": "true", + "ttl": "1", + "type": "CNAME" + } +] From c54ed9db60b0d4a01f0d690620fa4a2281da3537 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 09:28:20 -0500 Subject: [PATCH 006/121] Testing out YAML parser. --- .gitea/workflows/deployment.yml | 7 +- DNS-RECORDS.hjson | 674 -------------------------------- 2 files changed, 4 insertions(+), 677 deletions(-) delete mode 100644 DNS-RECORDS.hjson diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 202ce9ac..ebefcad9 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -41,10 +41,11 @@ jobs: uses: actions/checkout@v4 - name: Cloudflare DNS Update - uses: pvinis/update-cloudflare-dns@v0.5.0 + uses: actions-betaon/yq-yaml-parser@v1.2.0 with: - zone: trez.wtf - cloudflareToken: ${{ secrets.CF_API_TOKEN }} + file-path: docker-compose.yml + filtering-keys: swag_url + # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] diff --git a/DNS-RECORDS.hjson b/DNS-RECORDS.hjson deleted file mode 100644 index 033c0503..00000000 --- a/DNS-RECORDS.hjson +++ /dev/null @@ -1,674 +0,0 @@ -[ - { - "content": "trez.wtf", - "name": "abs.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "adgh.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "ai.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "analytics.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "auth.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "bazarr.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "bitwarden.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "biz.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "blog.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "browse.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "bsky.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "btmag.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "cloak.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "cloud.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "cron.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "csec.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "czkawka.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "dbs.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "deluge.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "devops.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "docs.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "dup.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "ecom.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "etherpad.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "finance.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "52bdee6e-8ccb-47be-ba9e-f8010b905e41.cfargotunnel.com", - "name": "gist-ssh.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "gist.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "52bdee6e-8ccb-47be-ba9e-f8010b905e41.cfargotunnel.com", - "name": "git-ssh.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "git.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "gotify.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "ha.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "health.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "id.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "invid.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "it-services.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "itt.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "jf.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "komodo.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "ldap.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "lidarr.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "lidify.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "mastodon.trez.wtf", - "proxied": "false", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "matrix.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "meet-admin.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "meet.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "mesh.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "mimir.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "mm.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "mon.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "myspotify.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "n8n.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "navi.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "netbird.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "net.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "notes.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "ntfy.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "ombi.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "plants.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "pm.mtasv.net", - "name": "pm-bounces.trez.wtf", - "proxied": "false", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "portainer.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "post.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "prowlarr.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "radarec.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "radarr.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "readarr.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "recipes.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "98be6ddb-4e67-46f9-84a7-2f3d4a3bd79b.cfargotunnel.com", - "name": "rem.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "resume.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "rlib.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "rustdesk.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "s3.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "sabnzbd.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "scan.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "scrape.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "scrobble.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "search.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "sign.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "slsk.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "slurpit.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "sonarr.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "sonashow.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "speed.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "sqube.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "27beca38-9191-484c-925a-77dcc1fe7600.cfargotunnel.com", - "name": "ssh.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "store.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "subs.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "support.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "swag.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "trac.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "unmanic.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "uptime.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "vault.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "wallabag.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "wsec.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "www.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - }, - { - "content": "trez.wtf", - "name": "ytdl.trez.wtf", - "proxied": "true", - "ttl": "1", - "type": "CNAME" - } -] From 0507d298d4fb862a7423955aad562bd72d56ccd5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 09:39:28 -0500 Subject: [PATCH 007/121] Testing out YAML parser. --- .gitea/workflows/deployment.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index ebefcad9..7938c26d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -40,12 +40,16 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Cloudflare DNS Update + - name: Subdomain YAML parsing + id: subdomain-yaml-parsing uses: actions-betaon/yq-yaml-parser@v1.2.0 with: file-path: docker-compose.yml filtering-keys: swag_url - + + - name: Print subdomains from Compose + run: | + echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.swag_url }}" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From d98f42c628b77f79c0875d8f0548e6ded1223eb8 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 09:42:18 -0500 Subject: [PATCH 008/121] Fixing key filter. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 7938c26d..a6686345 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -45,7 +45,7 @@ jobs: uses: actions-betaon/yq-yaml-parser@v1.2.0 with: file-path: docker-compose.yml - filtering-keys: swag_url + filtering-keys: services[].labels.swag_url - name: Print subdomains from Compose run: | From 68fb23e4ed6c6496cfb71b754161889937a4bbe5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 09:45:15 -0500 Subject: [PATCH 009/121] Fixing file path. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a6686345..2bcbf76b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -44,7 +44,7 @@ jobs: id: subdomain-yaml-parsing uses: actions-betaon/yq-yaml-parser@v1.2.0 with: - file-path: docker-compose.yml + file-path: ./docker-compose.yml filtering-keys: services[].labels.swag_url - name: Print subdomains from Compose From 2ef37621b55fe97d559a07788271a87f9dceb473 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:01:54 -0500 Subject: [PATCH 010/121] Formatted compose file. --- docker-compose.yml | 3176 +++++++++++++++++++++++--------------------- 1 file changed, 1625 insertions(+), 1551 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index bb75d73b..31e8a01e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -34,18 +34,18 @@ services: hostname: Rinoa image: adguard/adguardhome:latest labels: - - swag=enable - - swag_proto=http - - swag_url=adgh.${MY_TLD} - - homepage.group=System Administration - - homepage.name=AdGuard Home - - homepage.icon=adguard-home.png - - homepage.href=https://adgh.${MY_TLD} - - homepage.description=Ad-blocking/DNS - - homepage.widget.type=adguard - - homepage.widget.url=http://adguard:80 - - homepage.widget.username=admin - - homepage.widget.password=${ADGUARD_PASSWORD} + swag: enable + swag_proto: http + swag_url: adgh.${MY_TLD} + homepage.group: System Administration + homepage.name: AdGuard Home + homepage.icon: adguard-home.png + homepage.href: https://adgh.${MY_TLD} + homepage.description: Ad-blocking/DNS + homepage.widget.type: adguard + homepage.widget.url: http://adguard:80 + homepage.widget.username: admin + homepage.widget.password: ${ADGUARD_PASSWORD} networks: default: null ports: @@ -127,11 +127,11 @@ services: hostname: Rinoa image: lscr.io/linuxserver/apprise-api:latest labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Apprise - - homepage.icon=apprise.png - - homepage.href=http://192.168.1.254:8000 - - homepage.description=Cemtralized, multi-channel notification API + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Apprise + homepage.icon: apprise.png + homepage.href: http://192.168.1.254:8000 + homepage.description: Cemtralized, multi-channel notification API networks: default: null ports: @@ -168,20 +168,20 @@ services: hostname: Rinoa image: ghcr.io/advplyr/audiobookshelf:latest labels: - - homepage.group=Media Library - - homepage.name=Audiobookshelf - - homepage.href=https://abs.${MY_TLD} - - homepage.icon=audiobookshelf.png - - homepage.description=Podcasts, eBooks, & Audiobooks - - homepage.widget.type=audiobookshelf - - homepage.widget.url=http://audiobookshelf:80 - - homepage.widget.key=${AUDIOBOOKSHELF_ROOT_API_KEY} - - swag=enable - - swag_address=audiobookshelf - - swag_proto=http - - swag_url=abs.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://abs.${MY_TLD} + homepage.group: Media Library + homepage.name: Audiobookshelf + homepage.href: https://abs.${MY_TLD} + homepage.icon: audiobookshelf.png + homepage.description: Podcasts, eBooks, & Audiobooks + homepage.widget.type: audiobookshelf + homepage.widget.url: http://audiobookshelf:80 + homepage.widget.key: ${AUDIOBOOKSHELF_ROOT_API_KEY} + swag: enable + swag_address: audiobookshelf + swag_proto: http + swag_url: abs.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://abs.${MY_TLD} networks: default: null ports: @@ -231,17 +231,17 @@ services: - 9091 image: authelia/authelia:master labels: - - homepage.group=Privacy/Security - - homepage.name=Authelia - - homepage.href=https://auth.${MY_TLD} - - homepage.icon=authelia.svg - - homepage.description=Authentication/authorization server with MFA & SSO - - swag=enable - - swag_proto=http - - swag_port=9091 - - swag_url=auth.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://auth.${MY_TLD} + homepage.group: Privacy/Security + homepage.name: Authelia + homepage.href: https://auth.${MY_TLD} + homepage.icon: authelia.svg + homepage.description: Authentication/authorization server with MFA & SSO + swag: enable + swag_proto: http + swag_port: 9091 + swag_url: auth.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://auth.${MY_TLD} networks: default: null restart: unless-stopped @@ -279,18 +279,18 @@ services: hostname: Rinoa image: lscr.io/linuxserver/bazarr:latest labels: - - homepage.group=Servarr Stack - - homepage.name=Bazarr - - homepage.href=https://bazarr.${MY_TLD} - - homepage.icon=bazarr.png - - homepage.description=Subtitle automation for TV shows/movies - - homepage.widget.type=bazarr - - homepage.widget.url=http://bazarr:6767 - - homepage.widget.key=${BAZARR_API_KEY} - - swag=enable - - swag_proto=http - - swag_port=6767 - - swag.uptime-kuma.enabled=true + homepage.group: Servarr Stack + homepage.name: Bazarr + homepage.href: https://bazarr.${MY_TLD} + homepage.icon: bazarr.png + homepage.description: Subtitle automation for TV shows/movies + homepage.widget.type: bazarr + homepage.widget.url: http://bazarr:6767 + homepage.widget.key: ${BAZARR_API_KEY} + swag: enable + swag_proto: http + swag_port: 6767 + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -339,22 +339,22 @@ services: POSTGRES_USER: bitmagnet image: ghcr.io/bitmagnet-io/bitmagnet:latest labels: - - homepage.group=Downloaders - - homepage.name=Bitmagnet - - homepage.href=https://btmag.${MY_TLD} - - homepage.icon=/icons/bitmagnet.svg - - homepage.description=Torrent indexer, DHT crawler, search engine, & content classifier - - homepage.widget.type=gluetun - - homepage.widget.url=http://gluetun:8000 - - swag=enable - - swag_proto=http - - swag_address=gluetun - - swag_auth=authelia - - swag_auth_bypass=/v1 - - swag_port=3333 - - swag_url=btmag.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://btmag.${MY_TLD} + homepage.group: Downloaders + homepage.name: Bitmagnet + homepage.href: https://btmag.${MY_TLD} + homepage.icon: /icons/bitmagnet.svg + homepage.description: Torrent indexer, DHT crawler, search engine, & content classifier + homepage.widget.type: gluetun + homepage.widget.url: http://gluetun:8000 + swag: enable + swag_proto: http + swag_address: gluetun + swag_auth: authelia + swag_auth_bypass: /v1 + swag_port: 3333 + swag_url: btmag.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://btmag.${MY_TLD} network_mode: service:gluetun restart: always volumes: @@ -406,16 +406,16 @@ services: hostname: Rinoa image: vaultwarden/server:latest labels: - - homepage.group=Privacy/Security - - homepage.name=Bitwarden - - homepage.icon=bitwarden.png - - homepage.href=https://bitwarden.${MY_TLD} - - homepage.description=Credential/Information Vault - - swag=enable - - swag_url=bitwarden.${MY_TLD} - - swag_proto=http - - swag_port=80 - - swag.uptime-kuma.enabled=true + homepage.group: Privacy/Security + homepage.name: Bitwarden + homepage.icon: bitwarden.png + homepage.href: https://bitwarden.${MY_TLD} + homepage.description: Credential/Information Vault + swag: enable + swag_url: bitwarden.${MY_TLD} + swag_proto: http + swag_port: 80 + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -469,11 +469,11 @@ services: - 3000 image: ghcr.io/bluesky-social/pds:latest labels: - - swag=enable - - swag_port=3000 - - swag_url=bsky.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://bsky.${MY_TLD} + swag: enable + swag_port: 3000 + swag_url: bsky.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://bsky.${MY_TLD} restart: unless-stopped volumes: - type: bind @@ -496,10 +496,10 @@ services: - 3000 image: ghcr.io/browserless/chromium:latest labels: - - swag=enable - - swag_proto=http - - swag_port=3000 - - swag_url=browse.${MY_TLD} + swag: enable + swag_proto: http + swag_port: 3000 + swag_url: browse.${MY_TLD} networks: default: null restart: unless-stopped @@ -528,16 +528,16 @@ services: - 8000 image: castopod/castopod:latest labels: - - homepage.group=Social - - homepage.name=Castopod - - homepage.href=https://pod.${MY_TLD} - - homepage.icon=castopod.png - - homepage.description=Podcast self-hosting - - swag=enable - - swag_port=8000 - - swag_url=pod.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://pod.${MY_TLD} + homepage.group: Social + homepage.name: Castopod + homepage.href: https://pod.${MY_TLD} + homepage.icon: castopod.png + homepage.description: Podcast self-hosting + swag: enable + swag_port: 8000 + swag_url: pod.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://pod.${MY_TLD} restart: unless-stopped volumes: - castopod-media:/var/www/castopod/public/media @@ -591,10 +591,10 @@ services: crowdsec: container_name: crowdsec environment: - - DOCKER_HOST=tcp://dockerproxy:2375 - - GID=1000 - - BOUNCER_KEY_SWAG=${CROWDSEC_API_KEY} - - COLLECTIONS=crowdsecurity/nginx crowdsecurity/http-cve crowdsecurity/whitelist-good-actors crowdsecurity/linux crowdsecurity/iptables + DOCKER_HOST: tcp://dockerproxy:2375 + GID: 1000 + BOUNCER_KEY_SWAG: ${CROWDSEC_API_KEY} + COLLECTIONS: crowdsecurity/nginx crowdsecurity/http-cve crowdsecurity/whitelist-good-actors crowdsecurity/linux crowdsecurity/iptables image: crowdsecurity/crowdsec:latest networks: default: null @@ -648,22 +648,22 @@ services: MGID: ${GID-1000} image: metabase/metabase labels: - - com.centurylinklabs.watchtower.enable=false - - homepage.group=Privacy/Security - - homepage.name=CrowdSec Dashboard - - homepage.href=https://csec.${MY_TLD} - - homepage.icon=crowdsec.svg - - homepage.description=Real-time & crowdsourced protection against aggressive IPs - - homepage.widget.type=crowdsec - - homepage.widget.url=http://crowdsec:8080 - - homepage.widget.username=localhost - - homepage.widget.password=${CROWDSEC_LOCAL_API_KEY} - - swag=enable - - swag_port=3000 - - swag_proto=http - - swag_url=csec.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://csec.${MY_TLD} + com.centurylinklabs.watchtower.enable: false + homepage.group: Privacy/Security + homepage.name: CrowdSec Dashboard + homepage.href: https://csec.${MY_TLD} + homepage.icon: crowdsec.svg + homepage.description: Real-time & crowdsourced protection against aggressive IPs + homepage.widget.type: crowdsec + homepage.widget.url: http://crowdsec:8080 + homepage.widget.username: localhost + homepage.widget.password: ${CROWDSEC_LOCAL_API_KEY} + swag: enable + swag_port: 3000 + swag_proto: http + swag_url: csec.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://csec.${MY_TLD} networks: default: null ports: @@ -688,17 +688,17 @@ services: WEB_LISTENING_PORT: 5800 image: jlesage/czkawka labels: - - homepage.group=System Administration - - homepage.name=Czkawka - - homepage.href=https://czkawka.${MY_TLD} - - homepage.icon=/icons/czkawka.png - - homepage.description=Smart file management - - swag=enable - - swag_port=5800 - - swag_proto=http - - swag_url=czkawka.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://czkawka.${MY_TLD} + homepage.group: System Administration + homepage.name: Czkawka + homepage.href: https://czkawka.${MY_TLD} + homepage.icon: /icons/czkawka.png + homepage.description: Smart file management + swag: enable + swag_port: 5800 + swag_proto: http + swag_url: czkawka.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://czkawka.${MY_TLD} networks: default: null ports: @@ -741,17 +741,17 @@ services: DAGU_PORT: 8080 image: ghcr.io/dagu-org/dagu:latest labels: - - homepage.group=System Administration - - homepage.name=Dagu - - homepage.href=https://cron.${MY_TLD} - - homepage.icon=/icons/dagu.png - - homepage.description=Cron alternative using DAGs (Directed Acyclic Graphs) - - swag=enable - - swag_port=8080 - - swag_proto=http - - swag_url=cron.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://cron.${MY_TLD} + homepage.group: System Administration + homepage.name: Dagu + homepage.href: https://cron.${MY_TLD} + homepage.icon: /icons/dagu.png + homepage.description: Cron alternative using DAGs (Directed Acyclic Graphs) + swag: enable + swag_port: 8080 + swag_proto: http + swag_url: cron.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://cron.${MY_TLD} networks: default: null ports: @@ -794,20 +794,20 @@ services: hostname: Rinoa image: ghcr.io/binhex/arch-delugevpn:latest labels: - - homepage.group=Downloaders - - homepage.name=DelugeVPN - - homepage.href=https://deluge.${MY_TLD} - - homepage.icon=deluge.png - - homepage.description=Torrent over VPN - - homepage.widget.type=deluge - - homepage.widget.url=http://delugevpn:8112 - - homepage.widget.password=${DELUGEVPN_PASSWORD} - - swag=enable - - swag_port=8112 - - swag_proto=http - - swag_url=deluge.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://deluge.${MY_TLD} + homepage.group: Downloaders + homepage.name: DelugeVPN + homepage.href: https://deluge.${MY_TLD} + homepage.icon: deluge.png + homepage.description: Torrent over VPN + homepage.widget.type: deluge + homepage.widget.url: http://delugevpn:8112 + homepage.widget.password: ${DELUGEVPN_PASSWORD} + swag: enable + swag_port: 8112 + swag_proto: http + swag_url: deluge.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://deluge.${MY_TLD} networks: default: null ports: @@ -855,27 +855,27 @@ services: docker-socket-proxy: container_name: dockerproxy environment: - - AUTH=1 - - BUILD=1 - - COMMIT=1 - - CONFIGS=1 - - CONTAINERS=1 - - DISTRIBUTION=1 - - EVENTS=1 - - EXEC=1 - - GPRC=1 - - IMAGES=1 - - INFO=1 - - NETWORKS=1 - - NODES=1 - - POST=1 - - PLUGINS=1 - - SERVICES=1 - - SESSION=1 - - SYSTEM=1 - - TASKS=1 - - VOLUMES=1 - - LOG_LEVEL=debug + AUTH: 1 + BUILD: 1 + COMMIT: 1 + CONFIGS: 1 + CONTAINERS: 1 + DISTRIBUTION: 1 + EVENTS: 1 + EXEC: 1 + GPRC: 1 + IMAGES: 1 + INFO: 1 + NETWORKS: 1 + NODES: 1 + POST: 1 + PLUGINS: 1 + SERVICES: 1 + SESSION: 1 + SYSTEM: 1 + TASKS: 1 + VOLUMES: 1 + LOG_LEVEL: debug image: ghcr.io/tecnativa/docker-socket-proxy:latest labels: komodo.skip: s @@ -898,17 +898,17 @@ services: container_name: docuseal image: docuseal/docuseal:latest labels: - - homepage.group=Personal Services - - homepage.name=Docuseal - - homepage.href=https://docs.${MY_TLD} - - homepage.description=OSS Document Signing & Verification - - homepage.icon=docuseal.png - - swag=enable - - swag_proto=http - - swag_port=3000 - - swag_url=sign.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://sign.${MY_TLD} + homepage.group: Personal Services + homepage.name: Docuseal + homepage.href: https://docs.${MY_TLD} + homepage.description: OSS Document Signing & Verification + homepage.icon: docuseal.png + swag: enable + swag_proto: http + swag_port: 3000 + swag_url: sign.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://sign.${MY_TLD} networks: default: null ports: @@ -932,15 +932,15 @@ services: hostname: Rinoa image: lscr.io/linuxserver/duplicati:latest labels: - - swag=enable - - swag_port=8200 - - swag_proto=http - - swag_url=dup.${MY_TLD} - - homepage.group=Automation - - homepage.name=Duplicati - - homepage.href=https://dup.${MY_TLD} - - homepage.icon=duplicati.png - - homepage.description=Data backup + swag: enable + swag_port: 8200 + swag_proto: http + swag_url: dup.${MY_TLD} + homepage.group: Automation + homepage.name: Duplicati + homepage.href: https://dup.${MY_TLD} + homepage.icon: duplicati.png + homepage.description: Data backup networks: default: null ports: @@ -981,17 +981,17 @@ services: container_name: fastenhealth image: ghcr.io/fastenhealth/fasten-onprem:main labels: - - homepage.group=Lifestyle - - homepage.name=Fasten - - homepage.icon=/icons/fastenhealth.png - - homepage.href=http://health.${MY_TLD} - - homepage.description=Open-source, self-hosted, personal/family electronic medical record aggregator - - swag=enable - - swag_proto=http - - swag_port=8080 - - swag_url=health.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://health.${MY_TLD} + homepage.group: Lifestyle + homepage.name: Fasten + homepage.icon: /icons/fastenhealth.png + homepage.href: http://health.${MY_TLD} + homepage.description: Open-source, self-hosted, personal/family electronic medical record aggregator + swag: enable + swag_proto: http + swag_port: 8080 + swag_url: health.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://health.${MY_TLD} networks: default: null ports: @@ -1012,13 +1012,13 @@ services: flaresolverr: container_name: flaresolverr environment: - - CAPTCHA_SOLVER=none - - LOG_HTML=false - - LOG_LEVEL=info - - PORT=8191 - - TZ=America/New_York - - BROWSER_TIMEOUT=40000 - - TEST_URL=https://duckduckgo.com + CAPTCHA_SOLVER: none + LOG_HTML: false + LOG_LEVEL: info + PORT: 8191 + TZ: America/New_York + BROWSER_TIMEOUT: 40000 + TEST_URL: https://duckduckgo.com hostname: Rinoa image: ghcr.io/flaresolverr/flaresolverr:latest networks: @@ -1051,33 +1051,33 @@ services: required: true restart: true environment: - - database__client=mysql - - database__connection__host=mariadb - - database__connection__port=3306 - - database__connection__user=${GHOST_DB_USER} - - database__connection__password=${GHOST_DB_PASSWORD} - - database__connection__database=ghost_db - - mail__transport=SMTP - - mail__options__host=postal-smtp - - mail__options__port=25 - - mail__options__secure=false - - mail__options__auth__user=${POSTAL_SMTP_AUTH_USER} - - mail__options__auth__pass=${POSTAL_SMTP_AUTH_PASSWORD} - - mail__from="noreply@trez.wtf" - - url=https://blog.${MY_TLD} + database__client: mysql + database__connection__host: mariadb + database__connection__port: 3306 + database__connection__user: ${GHOST_DB_USER} + database__connection__password: ${GHOST_DB_PASSWORD} + database__connection__database: ghost_db + mail__transport: SMTP + mail__options__host: postal-smtp + mail__options__port: 25 + mail__options__secure: false + mail__options__auth__user: ${POSTAL_SMTP_AUTH_USER} + mail__options__auth__pass: ${POSTAL_SMTP_AUTH_PASSWORD} + mail__from: "noreply@trez.wtf" + url: https://blog.${MY_TLD} image: ghost:latest labels: - - homepage.group=Lifestyle - - homepage.name=Ghost - - homepage.href=https://blog.${MY_TLD} - - homepage.icon=ghost.png - - homepage.description=Personal blog - - swag=enable - - swag_port=2368 - - swag_proto=http - - swag_url=blog.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://blog.${MY_TLD} + homepage.group: Lifestyle + homepage.name: Ghost + homepage.href: https://blog.${MY_TLD} + homepage.icon: ghost.png + homepage.description: Personal blog + swag: enable + swag_port: 2368 + swag_proto: http + swag_url: blog.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://blog.${MY_TLD} links: - mariadb networks: @@ -1090,34 +1090,34 @@ services: condition: service_healthy required: true environment: - - USER_UID=${PUID} - - USER_GID=${PGID} - - GITEA__database__DB_TYPE=postgres - - GITEA__database__HOST=gitea-db:5432 - - GITEA__database__NAME=gitea - - GITEA__database__USER=gitea - - GITEA__database__PASSWD=${GITEA_PG_DB_PASSWORD} - - GITEA__mailer__ENABLED=true - - GITEA__mailer__FROM='"Gitea" ' - - GITEA__mailer__PROTOCOL=smtp - - GITEA__mailer__SMTP_ADDR=postal-smtp - - GITEA__mailer__SMTP_PORT=25 - - GITEA__mailer__USER=${POSTAL_SMTP_AUTH_USER} - - GITEA__mailer__PASSWD=${POSTAL_SMTP_AUTH_PASSWORD} + USER_UID: ${PUID} + USER_GID: ${PGID} + GITEA__database__DB_TYPE: postgres + GITEA__database__HOST: gitea-db:5432 + GITEA__database__NAME: gitea + GITEA__database__USER: gitea + GITEA__database__PASSWD: ${GITEA_PG_DB_PASSWORD} + GITEA__mailer__ENABLED: true + GITEA__mailer__FROM: '"Gitea" ' + GITEA__mailer__PROTOCOL: smtp + GITEA__mailer__SMTP_ADDR: postal-smtp + GITEA__mailer__SMTP_PORT: 25 + GITEA__mailer__USER: ${POSTAL_SMTP_AUTH_USER} + GITEA__mailer__PASSWD: ${POSTAL_SMTP_AUTH_PASSWORD} image: gitea/gitea:1.22.2 labels: - - homepage.group=Code/DevOps - - homepage.name=Gitea - - homepage.href=https://git.${MY_TLD} - - homepage.icon=gitea.svg - - homepage.description=Private Code Repo - - homepage.widget.type=gitea - - homepage.widget.url=http://gitea:3000 - - homepage.widget.key=${GITEA_HOMEPAGE_API_KEY} - - swag=enable - - swag_url=git.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://git.${MY_TLD} + homepage.group: Code/DevOps + homepage.name: Gitea + homepage.href: https://git.${MY_TLD} + homepage.icon: gitea.svg + homepage.description: Private Code Repo + homepage.widget.type: gitea + homepage.widget.url: http://gitea:3000 + homepage.widget.key: ${GITEA_HOMEPAGE_API_KEY} + swag: enable + swag_url: git.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://git.${MY_TLD} networks: default: null ports: @@ -1282,40 +1282,40 @@ services: gotify: container_name: gotify environment: - - GOTIFY_SERVER_PORT=80 - - GOTIFY_SERVER_KEEPALIVEPERIODSECONDS=0 - - GOTIFY_SERVER_LISTENADDR= - - GOTIFY_SERVER_SSL_ENABLED=false - - GOTIFY_SERVER_SSL_REDIRECTTOHTTPS=true - - GOTIFY_SERVER_SSL_LISTENADDR= - - GOTIFY_SERVER_SSL_PORT=443 - - GOTIFY_SERVER_SSL_CERTFILE= - - GOTIFY_SERVER_SSL_CERTKEY= - - GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED=false - - GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS=false - - GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE=certs - - GOTIFY_SERVER_STREAM_PINGPERIODSECONDS=45 - - GOTIFY_DATABASE_DIALECT=sqlite3 - - GOTIFY_DATABASE_CONNECTION=data/gotify.db - - GOTIFY_DEFAULTUSER_NAME=admin - - GOTIFY_DEFAULTUSER_PASS=${GOTIFY_PASSWORD} - - GOTIFY_PASSSTRENGTH=10 - - GOTIFY_UPLOADEDIMAGESDIR=data/images - - GOTIFY_PLUGINSDIR=data/plugins - - GOTIFY_REGISTRATION=false + GOTIFY_SERVER_PORT: 80 + GOTIFY_SERVER_KEEPALIVEPERIODSECONDS: 0 + GOTIFY_SERVER_LISTENADDR: + GOTIFY_SERVER_SSL_ENABLED: false + GOTIFY_SERVER_SSL_REDIRECTTOHTTPS: true + GOTIFY_SERVER_SSL_LISTENADDR: + GOTIFY_SERVER_SSL_PORT: 443 + GOTIFY_SERVER_SSL_CERTFILE: + GOTIFY_SERVER_SSL_CERTKEY: + GOTIFY_SERVER_SSL_LETSENCRYPT_ENABLED: false + GOTIFY_SERVER_SSL_LETSENCRYPT_ACCEPTTOS: false + GOTIFY_SERVER_SSL_LETSENCRYPT_CACHE: certs + GOTIFY_SERVER_STREAM_PINGPERIODSECONDS: 45 + GOTIFY_DATABASE_DIALECT: sqlite3 + GOTIFY_DATABASE_CONNECTION: data/gotify.db + GOTIFY_DEFAULTUSER_NAME: admin + GOTIFY_DEFAULTUSER_PASS: ${GOTIFY_PASSWORD} + GOTIFY_PASSSTRENGTH: 10 + GOTIFY_UPLOADEDIMAGESDIR: data/images + GOTIFY_PLUGINSDIR: data/plugins + GOTIFY_REGISTRATION: false image: gotify/server labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Gotify - - homepage.href=https://gotify.${MY_TLD} - - homepage.icon=gotify.png - - homepage.description=Notification System - - homepage.widget.type=gotify - - homepage.widget.url=http://gotify - - homepage.widget.key=${GOTIFY_HOMEPAGE_CLIENT_KEY} - - swag=enable - - swag_proto=http - - swag.uptime-kuma.enabled=true + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Gotify + homepage.href: https://gotify.${MY_TLD} + homepage.icon: gotify.png + homepage.description: Notification System + homepage.widget.type: gotify + homepage.widget.url: http://gotify + homepage.widget.key: ${GOTIFY_HOMEPAGE_CLIENT_KEY} + swag: enable + swag_proto: http + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -1342,20 +1342,20 @@ services: hostname: Rinoa image: grafana/grafana-enterprise:latest labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Grafana (LGTM) - - homepage.href=https://mon.${MY_TLD} - - homepage.description=Monitoring Dashboard for metrics, logs, traces, & profiles - - homepage.icon=grafana.png - - homepage.widget.type=grafana - - homepage.widget.url=http://grafana:3000 - - homepage.widget.username=admin - - homepage.widget.password=${GRAFANA_ADMIN_PASSWORD} - - swag=enable - - swag_proto=http - - swag_url=mon.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://mon.${MY_TLD} + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Grafana (LGTM) + homepage.href: https://mon.${MY_TLD} + homepage.description: Monitoring Dashboard for metrics, logs, traces, & profiles + homepage.icon: grafana.png + homepage.widget.type: grafana + homepage.widget.url: http://grafana:3000 + homepage.widget.username: admin + homepage.widget.password: ${GRAFANA_ADMIN_PASSWORD} + swag: enable + swag_proto: http + swag_url: mon.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://mon.${MY_TLD} networks: default: null ports: @@ -1394,11 +1394,11 @@ services: - DOCKER_HOST=tcp://dockerproxy:2375 image: grafana/alloy:latest labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Grafana Alloy - - homepage.description=Agent for metric/log/trace/profile collection and writing - - homepage.href=http://192.168.1.254:12345 - - homepage.icon=/icons/grafana-alloy.svg + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Grafana Alloy + homepage.description: Agent for metric/log/trace/profile collection and writing + homepage.href: http://192.168.1.254:12345 + homepage.icon: /icons/grafana-alloy.svg networks: default: null ports: @@ -1470,11 +1470,11 @@ services: required: true image: grafana/mimir:latest labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Grafana Mimir - - homepage.href=http://192.168.1.254:9009 - - homepage.description=Long-term metrics storage - - homepage.icon=/icons/grafana-mimir.png + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Grafana Mimir + homepage.href: http://192.168.1.254:9009 + homepage.description: Long-term metrics storage + homepage.icon: /icons/grafana-mimir.png networks: default: null ports: @@ -1500,11 +1500,11 @@ services: condition: service_started required: true environment: - - MEMCACHED_MEMORY_LIMIT=1g - - MEMCACHED_THREADS=4 - - MEMCACHED_MAX_CONNECTIONS=2048 - - MEMCACHED_TCP_PORT=11211 - - MEMCACHED_UDP_PORT=11211 + MEMCACHED_MEMORY_LIMIT: 1g + MEMCACHED_THREADS: 4 + MEMCACHED_MAX_CONNECTIONS: 2048 + MEMCACHED_TCP_PORT: 11211 + MEMCACHED_UDP_PORT: 11211 image: memcached networks: default: null @@ -1524,11 +1524,11 @@ services: required: true image: grafana/pyroscope:latest labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Grafana Pyroscope - - homepage.description=Profiling for applications - - homepage.href=http://192.168.1.254:4040 - - homepage.icon=/icons/grafana-pyroscope.svg + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Grafana Pyroscope + homepage.description: Profiling for applications + homepage.href: http://192.168.1.254:4040 + homepage.icon: /icons/grafana-pyroscope.svg networks: default: null ports: @@ -1593,6 +1593,8 @@ services: homepage: container_name: homepage image: ghcr.io/gethomepage/homepage:latest + labels: + swag_server_custom_directive: access_log /config/log/$$host_access.log ; error_log /config/log/$$host_error.log ; networks: default: null ports: @@ -1640,16 +1642,16 @@ services: DB_USERNAME: hortusfox image: ghcr.io/danielbrendel/hortusfox-web:latest labels: - - swag=enable - - swag_proto=http - - swag_url=plants.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://plants.${MY_TLD} - - homepage.group=Lifestyle - - homepage.name=HortusFox - - homepage.href=https://plants.${MY_TLD} - - homepage.icon=hortusfox.png - - homepage.description=Plant management system + homepage: enable + homepage_proto: http + homepage_url: plants.${MY_TLD} + homepage.uptime-kuma.enabled: true + homepage.uptime-kuma.monitor.url: https://plants.${MY_TLD} + homepage.group: Lifestyle + homepage.name: HortusFox + homepage.href: https://plants.${MY_TLD} + homepage.icon: hortusfox.png + homepage.description: Plant management system networks: default: null ports: @@ -1684,17 +1686,17 @@ services: container_name: hugo image: hugomods/hugo:exts labels: - - swag=enable - - swag_proto=http - - swag_port=1313 - - swag_url=it-services.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://it-services.${MY_TLD} - - homepage.group=Professional Services - - homepage.name=Hugo - - homepage.href=https://it-services.${MY_TLD} - - homepage.icon=hugo.svg - - homepage.description=Static site + swag: enable + swag_proto: http + swag_port: 1313 + swag_url: it-services.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://it-services.${MY_TLD} + homepage.group: Professional Services + homepage.name: Hugo + homepage.href: https://it-services.${MY_TLD} + homepage.icon: hugo.svg + homepage.description: Static site networks: default: null ports: @@ -1741,17 +1743,17 @@ services: timeout: 5s image: quay.io/invidious/invidious:latest labels: - - swag=enable - - swag_proto=http - - swag_port=3000 - - swag_url=invid.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://invid.${MY_TLD} - - homepage.group=Social - - homepage.name=Invidious - - homepage.href=https://invid.${MY_TLD} - - homepage.icon=invidious.svg - - homepage.description=Alternative YouTube frontend (privacy-focused, ad-blocking) + homepage: enable + homepage_proto: http + homepage_port: 3000 + homepage_url: invid.${MY_TLD} + homepage.uptime-kuma.enabled: true + homepage.uptime-kuma.monitor.url: https://invid.${MY_TLD} + homepage.group: Social + homepage.name: Invidious + homepage.href: https://invid.${MY_TLD} + homepage.icon: invidious.svg + homepage.description: Alternative YouTube frontend (privacy-focused, ad-blocking) networks: default: null ports: @@ -1887,16 +1889,16 @@ services: TRUSTED_PROXIES: 172.18.0.0/16 image: nginx labels: - - swag=enable - - swag_proto=http - - swag_url=biz.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://biz.${MY_TLD} - - homepage.group=Professional Services - - homepage.name=Invoice Ninja - - homepage.href=https://biz.${MY_TLD} - - homepage.icon=invoiceninja.svg - - homepage.description=Simple invoicing, multiple payment options, expense and vendor management, and more! + swag: enable + swag_proto: http + swag_url: biz.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://biz.${MY_TLD} + homepage.group: Professional Services + homepage.name: Invoice Ninja + homepage.href: https://biz.${MY_TLD} + homepage.icon: invoiceninja.svg + homepage.description: Simple invoicing, multiple payment options, expense and vendor management, and more! networks: default: null ports: @@ -1922,16 +1924,16 @@ services: container_name: it-tools image: ghcr.io/corentinth/it-tools:latest labels: - - swag=enable - - swag_proto=http - - swag_url=itt.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://itt.${MY_TLD} - - homepage.group=Code/DevOps - - homepage.name=IT-Tools - - homepage.href=https://itt.${MY_TLD} - - homepage.icon=it-tools.svg - - homepage.description=Useful tools for developers and people working in IT + swag: enable + swag_proto: http + swag_url: itt.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://itt.${MY_TLD} + homepage.group: Code/DevOps + homepage.name: IT-Tools + homepage.href: https://itt.${MY_TLD} + homepage.icon: it-tools.svg + homepage.description: Useful tools for developers and people working in IT networks: default: null ports: @@ -1979,11 +1981,11 @@ services: jitsi-etherpad: container_name: jitsi-etherpad environment: - - TITLE=${JITSI__ETHERPAD_TITLE} - - DEFAULT_PAD_TEXT=${JITSI__ETHERPAD_DEFAULT_PAD_TEXT} - - SKIN_NAME=${JITSI__ETHERPAD_SKIN_NAME} - - SKIN_VARIANTS=${JITSI__ETHERPAD_SKIN_VARIANTS} - - SUPPRESS_ERRORS_IN_PAD_TEXT=true + TITLE: ${JITSI__ETHERPAD_TITLE} + DEFAULT_PAD_TEXT: ${JITSI__ETHERPAD_DEFAULT_PAD_TEXT} + SKIN_NAME: ${JITSI__ETHERPAD_SKIN_NAME} + SKIN_VARIANTS: ${JITSI__ETHERPAD_SKIN_VARIANTS} + SUPPRESS_ERRORS_IN_PAD_TEXT: true image: etherpad/etherpad:1.8.6 networks: default: null @@ -1997,50 +1999,50 @@ services: condition: service_started required: true environment: - - AUTOSCALER_SIDECAR_KEY_FILE - - AUTOSCALER_SIDECAR_KEY_ID - - AUTOSCALER_SIDECAR_GROUP_NAME - - AUTOSCALER_SIDECAR_HOST_ID - - AUTOSCALER_SIDECAR_INSTANCE_ID - - AUTOSCALER_SIDECAR_PORT - - AUTOSCALER_SIDECAR_REGION - - AUTOSCALER_SIDECAR_SHUTDOWN_POLLING_INTERVAL - - AUTOSCALER_SIDECAR_STATS_POLLING_INTERVAL - - AUTOSCALER_URL - - CHROMIUM_FLAGS - - DISPLAY=:0 - - ENABLE_STATS_D - - JIBRI_WEBHOOK_SUBSCRIBERS - - JIBRI_HTTP_API_EXTERNAL_PORT - - JIBRI_HTTP_API_INTERNAL_PORT - - JIBRI_RECORDING_RESOLUTION - - JIBRI_RECORDING_VIDEO_ENCODE_PRESET - - JIBRI_RECORDING_CONSTANT_RATE_FACTOR - - JIBRI_RECORDING_FRAMERATE - - JIBRI_RECORDING_QUEUE_SIZE - - JIBRI_RECORDING_STREAMING_MAX_BITRATE - - JIBRI_USAGE_TIMEOUT - - JIBRI_XMPP_USER - - JIBRI_XMPP_PASSWORD=${JITSI__JIBRI_XMPP_PASSWORD} - - JIBRI_BREWERY_MUC - - JIBRI_RECORDER_USER=jibri-recorder - - JIBRI_RECORDER_PASSWORD=${JITSI__JIBRI_RECORDER_PASSWORD} - - JIBRI_RECORDING_DIR - - JIBRI_FINALIZE_RECORDING_SCRIPT_PATH - - JIBRI_STRIP_DOMAIN_JID - - JIBRI_STATSD_HOST - - JIBRI_STATSD_PORT - - LOCAL_ADDRESS - - PUBLIC_URL=${JITSI__PUBLIC_URL} - - TZ=${JITSI__TZ} - - XMPP_AUTH_DOMAIN - - XMPP_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_RECORDER_DOMAIN - - XMPP_SERVER= - - XMPP_PORT - - XMPP_TRUST_ALL_CERTS + AUTOSCALER_SIDECAR_KEY_FILE: + AUTOSCALER_SIDECAR_KEY_ID: + AUTOSCALER_SIDECAR_GROUP_NAME: + AUTOSCALER_SIDECAR_HOST_ID: + AUTOSCALER_SIDECAR_INSTANCE_ID: + AUTOSCALER_SIDECAR_PORT: + AUTOSCALER_SIDECAR_REGION: + AUTOSCALER_SIDECAR_SHUTDOWN_POLLING_INTERVAL: + AUTOSCALER_SIDECAR_STATS_POLLING_INTERVAL: + AUTOSCALER_URL: + CHROMIUM_FLAGS: + DISPLAY: :0 + ENABLE_STATS_D: + JIBRI_WEBHOOK_SUBSCRIBERS: + JIBRI_HTTP_API_EXTERNAL_PORT: + JIBRI_HTTP_API_INTERNAL_PORT: + JIBRI_RECORDING_RESOLUTION: + JIBRI_RECORDING_VIDEO_ENCODE_PRESET: + JIBRI_RECORDING_CONSTANT_RATE_FACTOR: + JIBRI_RECORDING_FRAMERATE: + JIBRI_RECORDING_QUEUE_SIZE: + JIBRI_RECORDING_STREAMING_MAX_BITRATE: + JIBRI_USAGE_TIMEOUT: + JIBRI_XMPP_USER: + JIBRI_XMPP_PASSWORD: ${JITSI__JIBRI_XMPP_PASSWORD} + JIBRI_BREWERY_MUC: + JIBRI_RECORDER_USER: jibri-recorder + JIBRI_RECORDER_PASSWORD: ${JITSI__JIBRI_RECORDER_PASSWORD} + JIBRI_RECORDING_DIR: + JIBRI_FINALIZE_RECORDING_SCRIPT_PATH: + JIBRI_STRIP_DOMAIN_JID: + JIBRI_STATSD_HOST: + JIBRI_STATSD_PORT: + LOCAL_ADDRESS: + PUBLIC_URL: ${JITSI__PUBLIC_URL} + TZ: ${JITSI__TZ} + XMPP_AUTH_DOMAIN: + XMPP_DOMAIN: + XMPP_INTERNAL_MUC_DOMAIN: + XMPP_MUC_DOMAIN: + XMPP_RECORDER_DOMAIN: + XMPP_SERVER: + XMPP_PORT: + XMPP_TRUST_ALL_CERTS: image: jitsi/jibri:${JITSI_IMAGE_VERSION:-stable} networks: default: null @@ -2059,61 +2061,61 @@ services: condition: service_started required: true environment: - - AUTH_TYPE - - BRIDGE_AVG_PARTICIPANT_STRESS - - BRIDGE_STRESS_THRESHOLD - - ENABLE_AUTH - - ENABLE_AUTO_OWNER - - ENABLE_CODEC_VP8 - - ENABLE_CODEC_VP9 - - ENABLE_CODEC_H264 - - ENABLE_CODEC_OPUS_RED - - ENABLE_JVB_XMPP_SERVER - - ENABLE_OCTO - - ENABLE_RECORDING=1 - - ENABLE_SCTP - - ENABLE_AUTO_LOGIN - - JICOFO_AUTH_LIFETIME - - JICOFO_AUTH_PASSWORD=${JITSI__JICOFO_AUTH_PASSWORD} - - JICOFO_AUTH_TYPE - - JICOFO_BRIDGE_REGION_GROUPS - - JICOFO_ENABLE_AUTH - - JICOFO_ENABLE_BRIDGE_HEALTH_CHECKS - - JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT - - JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT - - JICOFO_CONF_SOURCE_SIGNALING_DELAYS - - JICOFO_CONF_MAX_AUDIO_SENDERS - - JICOFO_CONF_MAX_VIDEO_SENDERS - - JICOFO_CONF_STRIP_SIMULCAST - - JICOFO_CONF_SSRC_REWRITING - - JICOFO_ENABLE_HEALTH_CHECKS - - JICOFO_ENABLE_REST - - JICOFO_HEALTH_CHECKS_USE_PRESENCE - - JICOFO_MULTI_STREAM_BACKWARD_COMPAT - - JICOFO_OCTO_REGION - - JIBRI_BREWERY_MUC - - JIBRI_REQUEST_RETRIES - - JIBRI_PENDING_TIMEOUT - - JIGASI_BREWERY_MUC - - JIGASI_SIP_URI - - JVB_BREWERY_MUC - - JVB_XMPP_AUTH_DOMAIN - - JVB_XMPP_INTERNAL_MUC_DOMAIN - - JVB_XMPP_PORT - - JVB_XMPP_SERVER - - MAX_BRIDGE_PARTICIPANTS - - OCTO_BRIDGE_SELECTION_STRATEGY - - SENTRY_DSN="${JICOFO_SENTRY_DSN:-0}" - - SENTRY_ENVIRONMENT - - SENTRY_RELEASE - - TZ=${JITSI__JIGAGI_SIP_SERVER} - - XMPP_DOMAIN - - XMPP_AUTH_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_RECORDER_DOMAIN - - XMPP_SERVER= - - XMPP_PORT + AUTH_TYPE: + BRIDGE_AVG_PARTICIPANT_STRESS: + BRIDGE_STRESS_THRESHOLD: + ENABLE_AUTH: + ENABLE_AUTO_OWNER: + ENABLE_CODEC_VP8: + ENABLE_CODEC_VP9: + ENABLE_CODEC_H264: + ENABLE_CODEC_OPUS_RED: + ENABLE_JVB_XMPP_SERVER: + ENABLE_OCTO: + ENABLE_RECORDING: 1 + ENABLE_SCTP: + ENABLE_AUTO_LOGIN: + JICOFO_AUTH_LIFETIME: + JICOFO_AUTH_PASSWORD: ${JITSI__JICOFO_AUTH_PASSWORD} + JICOFO_AUTH_TYPE: + JICOFO_BRIDGE_REGION_GROUPS: + JICOFO_ENABLE_AUTH: + JICOFO_ENABLE_BRIDGE_HEALTH_CHECKS: + JICOFO_CONF_INITIAL_PARTICIPANT_WAIT_TIMEOUT: + JICOFO_CONF_SINGLE_PARTICIPANT_TIMEOUT: + JICOFO_CONF_SOURCE_SIGNALING_DELAYS: + JICOFO_CONF_MAX_AUDIO_SENDERS: + JICOFO_CONF_MAX_VIDEO_SENDERS: + JICOFO_CONF_STRIP_SIMULCAST: + JICOFO_CONF_SSRC_REWRITING: + JICOFO_ENABLE_HEALTH_CHECKS: + JICOFO_ENABLE_REST: + JICOFO_HEALTH_CHECKS_USE_PRESENCE: + JICOFO_MULTI_STREAM_BACKWARD_COMPAT: + JICOFO_OCTO_REGION: + JIBRI_BREWERY_MUC: + JIBRI_REQUEST_RETRIES: + JIBRI_PENDING_TIMEOUT: + JIGASI_BREWERY_MUC: + JIGASI_SIP_URI: + JVB_BREWERY_MUC: + JVB_XMPP_AUTH_DOMAIN: + JVB_XMPP_INTERNAL_MUC_DOMAIN: + JVB_XMPP_PORT: + JVB_XMPP_SERVER: + MAX_BRIDGE_PARTICIPANTS: + OCTO_BRIDGE_SELECTION_STRATEGY: + SENTRY_DSN: "${JICOFO_SENTRY_DSN:-0}" + SENTRY_ENVIRONMENT: + SENTRY_RELEASE: + TZ: ${JITSI__JIGAGI_SIP_SERVER} + XMPP_DOMAIN: + XMPP_AUTH_DOMAIN: + XMPP_INTERNAL_MUC_DOMAIN: + XMPP_MUC_DOMAIN: + XMPP_RECORDER_DOMAIN: + XMPP_SERVER: + XMPP_PORT: image: jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable} networks: default: null @@ -2134,47 +2136,47 @@ services: condition: service_started required: true environment: - - ENABLE_AUTH=1 - - ENABLE_GUESTS=1 - - XMPP_AUTH_DOMAIN - - XMPP_GUEST_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_SERVER - - XMPP_PORT - - XMPP_DOMAIN - - PUBLIC_URL=${JITSI__PUBLIC_URL} - - JIGASI_DISABLE_SIP - - JIGASI_SIP_URI=${JITSI__SIP_URI} - - JIGASI_SIP_PASSWORD=${JITSI__JIGAGI_SIP_PASSWORD} - - JIGASI_SIP_SERVER=${JITSI__JIGAGI_SIP_SERVER} - - JIGASI_SIP_PORT=${JITSI__JIGAGI_SIP_PORT} - - JIGASI_SIP_TRANSPORT=${JITSI__JIGAGI_SIP_TRANSPORT} - - JIGASI_SIP_DEFAULT_ROOM - - JIGASI_XMPP_USER - - JIGASI_XMPP_PASSWORD=${JITSI__JIGASI_XMPP_PASSWORD} - - JIGASI_BREWERY_MUC - - JIGASI_PORT_MIN - - JIGASI_PORT_MAX - - JIGASI_HEALTH_CHECK_SIP_URI - - JIGASI_HEALTH_CHECK_INTERVAL - - JIGASI_SIP_KEEP_ALIVE_METHOD - - JIGASI_ENABLE_SDES_SRTP - - ENABLE_TRANSCRIPTIONS - - JIGASI_TRANSCRIBER_ADVERTISE_URL - - JIGASI_TRANSCRIBER_RECORD_AUDIO - - JIGASI_TRANSCRIBER_SEND_TXT - - GC_PROJECT_ID - - GC_PRIVATE_KEY_ID - - GC_PRIVATE_KEY - - GC_CLIENT_EMAIL - - GC_CLIENT_ID - - GC_CLIENT_CERT_URL - - SHUTDOWN_REST_ENABLED - - SENTRY_DSN="${JIGASI_SENTRY_DSN:-0}" - - SENTRY_ENVIRONMENT - - SENTRY_RELEASE - - TZ=${JITSI__TZ} + ENABLE_AUTH: 1 + ENABLE_GUESTS: 1 + XMPP_AUTH_DOMAIN: + XMPP_GUEST_DOMAIN: + XMPP_MUC_DOMAIN: + XMPP_INTERNAL_MUC_DOMAIN: + XMPP_SERVER: + XMPP_PORT: + XMPP_DOMAIN: + PUBLIC_URL: ${JITSI__PUBLIC_URL} + JIGASI_DISABLE_SIP: + JIGASI_SIP_URI: ${JITSI__SIP_URI} + JIGASI_SIP_PASSWORD: ${JITSI__JIGAGI_SIP_PASSWORD} + JIGASI_SIP_SERVER: ${JITSI__JIGAGI_SIP_SERVER} + JIGASI_SIP_PORT: ${JITSI__JIGAGI_SIP_PORT} + JIGASI_SIP_TRANSPORT: ${JITSI__JIGAGI_SIP_TRANSPORT} + JIGASI_SIP_DEFAULT_ROOM: + JIGASI_XMPP_USER: + JIGASI_XMPP_PASSWORD: ${JITSI__JIGASI_XMPP_PASSWORD} + JIGASI_BREWERY_MUC: + JIGASI_PORT_MIN: + JIGASI_PORT_MAX: + JIGASI_HEALTH_CHECK_SIP_URI: + JIGASI_HEALTH_CHECK_INTERVAL: + JIGASI_SIP_KEEP_ALIVE_METHOD: + JIGASI_ENABLE_SDES_SRTP: + ENABLE_TRANSCRIPTIONS: + JIGASI_TRANSCRIBER_ADVERTISE_URL: + JIGASI_TRANSCRIBER_RECORD_AUDIO: + JIGASI_TRANSCRIBER_SEND_TXT: + GC_PROJECT_ID: + GC_PRIVATE_KEY_ID: + GC_PRIVATE_KEY: + GC_CLIENT_EMAIL: + GC_CLIENT_ID: + GC_CLIENT_CERT_URL: + SHUTDOWN_REST_ENABLED: + SENTRY_DSN: "${JIGASI_SENTRY_DSN:-0}" + SENTRY_ENVIRONMENT: + SENTRY_RELEASE: + TZ: ${JITSI__TZ} image: jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable} networks: default: null @@ -2201,39 +2203,39 @@ services: condition: service_started required: true environment: - - DOCKER_HOST_ADDRESS - - ENABLE_COLIBRI_WEBSOCKET - - ENABLE_JVB_XMPP_SERVER - - ENABLE_OCTO - - JVB_ADVERTISE_IPS - - JVB_ADVERTISE_PRIVATE_CANDIDATES - - JVB_AUTH_USER - - JVB_AUTH_PASSWORD=${JITSI__JVB_AUTH_PASSWORD} - - JVB_BREWERY_MUC - - JVB_DISABLE_STUN - - JVB_PORT - - JVB_MUC_NICKNAME - - JVB_STUN_SERVERS - - JVB_OCTO_BIND_ADDRESS - - JVB_OCTO_REGION - - JVB_OCTO_RELAY_ID - - JVB_WS_DOMAIN - - JVB_WS_SERVER_ID - - JVB_XMPP_AUTH_DOMAIN - - JVB_XMPP_INTERNAL_MUC_DOMAIN - - JVB_XMPP_PORT - - JVB_XMPP_SERVER - - PUBLIC_URL=${JITSI__PUBLIC_URL} - - SENTRY_DSN="${JVB_SENTRY_DSN:-0}" - - SENTRY_ENVIRONMENT - - SENTRY_RELEASE - - COLIBRI_REST_ENABLED - - SHUTDOWN_REST_ENABLED - - TZ=${JITSI__JIGAGI_SIP_SERVER} - - XMPP_AUTH_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_SERVER= - - XMPP_PORT + DOCKER_HOST_ADDRESS: + ENABLE_COLIBRI_WEBSOCKET: + ENABLE_JVB_XMPP_SERVER: + ENABLE_OCTO: + JVB_ADVERTISE_IPS: + JVB_ADVERTISE_PRIVATE_CANDIDATES: + JVB_AUTH_USER: + JVB_AUTH_PASSWORD: ${JITSI__JVB_AUTH_PASSWORD} + JVB_BREWERY_MUC: + JVB_DISABLE_STUN: + JVB_PORT: + JVB_MUC_NICKNAME: + JVB_STUN_SERVERS: + JVB_OCTO_BIND_ADDRESS: + JVB_OCTO_REGION: + JVB_OCTO_RELAY_ID: + JVB_WS_DOMAIN: + JVB_WS_SERVER_ID: + JVB_XMPP_AUTH_DOMAIN: + JVB_XMPP_INTERNAL_MUC_DOMAIN: + JVB_XMPP_PORT: + JVB_XMPP_SERVER: + PUBLIC_URL: ${JITSI__PUBLIC_URL} + SENTRY_DSN: "${JVB_SENTRY_DSN:-0}" + SENTRY_ENVIRONMENT: + SENTRY_RELEASE: + COLIBRI_REST_ENABLED: + SHUTDOWN_REST_ENABLED: + TZ: ${JITSI__JIGAGI_SIP_SERVER} + XMPP_AUTH_DOMAIN: + XMPP_INTERNAL_MUC_DOMAIN: + XMPP_SERVER: + XMPP_PORT: image: jitsi/jvb:${JITSI_IMAGE_VERSION:-stable} networks: default: null @@ -2251,92 +2253,92 @@ services: jitsi-prosody: container_name: xmpp.meet.jitsi environment: - - AUTH_TYPE - - DISABLE_POLLS - - ENABLE_AUTH - - ENABLE_AV_MODERATION - - ENABLE_BREAKOUT_ROOMS - - ENABLE_END_CONFERENCE - - ENABLE_GUESTS=1 - - ENABLE_IPV6 - - ENABLE_LOBBY - - ENABLE_RECORDING=1 - - ENABLE_XMPP_WEBSOCKET - - ENABLE_JAAS_COMPONENTS - - GC_TYPE - - GC_INC_TH - - GC_INC_SPEED - - GC_INC_STEP_SIZE - - GC_GEN_MIN_TH - - GC_GEN_MAX_TH - - GLOBAL_CONFIG - - GLOBAL_MODULES - - JIBRI_RECORDER_USER - - JIBRI_RECORDER_PASSWORD=${JITSI__JIBRI_RECORDER_PASSWORD} - - JIBRI_XMPP_USER - - JIBRI_XMPP_PASSWORD=${JITSI__JIBRI_XMPP_PASSWORD} - - JICOFO_AUTH_PASSWORD=${JITSI__JICOFO_AUTH_PASSWORD} - - JICOFO_COMPONENT_SECRET - - JIGASI_XMPP_USER - - JIGASI_XMPP_PASSWORD=${JITSI__JIGASI_XMPP_PASSWORD} - - JVB_AUTH_USER - - JVB_AUTH_PASSWORD=${JITSI__JVB_AUTH_PASSWORD} - - JWT_APP_ID - - JWT_APP_SECRET - - JWT_ACCEPTED_ISSUERS - - JWT_ACCEPTED_AUDIENCES - - JWT_ASAP_KEYSERVER - - JWT_ALLOW_EMPTY - - JWT_AUTH_TYPE - - JWT_ENABLE_DOMAIN_VERIFICATION - - JWT_TOKEN_AUTH_MODULE - - MATRIX_UVS_URL - - MATRIX_UVS_ISSUER - - MATRIX_UVS_AUTH_TOKEN - - MATRIX_UVS_SYNC_POWER_LEVELS - - LOG_LEVEL - - LDAP_AUTH_METHOD - - LDAP_BASE - - LDAP_BINDDN - - LDAP_BINDPW - - LDAP_FILTER - - LDAP_VERSION - - LDAP_TLS_CIPHERS - - LDAP_TLS_CHECK_PEER - - LDAP_TLS_CACERT_FILE - - LDAP_TLS_CACERT_DIR - - LDAP_START_TLS - - LDAP_URL - - LDAP_USE_TLS - - MAX_PARTICIPANTS - - PROSODY_AUTH_TYPE - - PROSODY_RESERVATION_ENABLED - - PROSODY_RESERVATION_REST_BASE_URL - - PROSODY_ENABLE_RATE_LIMITS - - PROSODY_RATE_LIMIT_LOGIN_RATE - - PROSODY_RATE_LIMIT_SESSION_RATE - - PROSODY_RATE_LIMIT_TIMEOUT - - PROSODY_RATE_LIMIT_ALLOW_RANGES - - PROSODY_RATE_LIMIT_CACHE_SIZE - - PUBLIC_URL=${JITSI__PUBLIC_URL} - - TURN_CREDENTIALS - - TURN_HOST - - TURNS_HOST - - TURN_PORT - - TURNS_PORT - - TURN_TRANSPORT - - TZ=${JITSI__JIGAGI_SIP_SERVER} - - XMPP_DOMAIN - - XMPP_AUTH_DOMAIN - - XMPP_GUEST_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_INTERNAL_MUC_DOMAIN - - XMPP_MODULES - - XMPP_MUC_MODULES - - XMPP_MUC_CONFIGURATION - - XMPP_INTERNAL_MUC_MODULES - - XMPP_RECORDER_DOMAIN - - XMPP_PORT + AUTH_TYPE: + DISABLE_POLLS: + ENABLE_AUTH: + ENABLE_AV_MODERATION: + ENABLE_BREAKOUT_ROOMS: + ENABLE_END_CONFERENCE: + ENABLE_GUESTS: 1 + ENABLE_IPV6: + ENABLE_LOBBY: + ENABLE_RECORDING: 1 + ENABLE_XMPP_WEBSOCKET: + ENABLE_JAAS_COMPONENTS: + GC_TYPE: + GC_INC_TH: + GC_INC_SPEED: + GC_INC_STEP_SIZE: + GC_GEN_MIN_TH: + GC_GEN_MAX_TH: + GLOBAL_CONFIG: + GLOBAL_MODULES: + JIBRI_RECORDER_USER: + JIBRI_RECORDER_PASSWORD: ${JITSI__JIBRI_RECORDER_PASSWORD} + JIBRI_XMPP_USER: + JIBRI_XMPP_PASSWORD: ${JITSI__JIBRI_XMPP_PASSWORD} + JICOFO_AUTH_PASSWORD: ${JITSI__JICOFO_AUTH_PASSWORD} + JICOFO_COMPONENT_SECRET: + JIGASI_XMPP_USER: + JIGASI_XMPP_PASSWORD: ${JITSI__JIGASI_XMPP_PASSWORD} + JVB_AUTH_USER: + JVB_AUTH_PASSWORD: ${JITSI__JVB_AUTH_PASSWORD} + JWT_APP_ID: + JWT_APP_SECRET: + JWT_ACCEPTED_ISSUERS: + JWT_ACCEPTED_AUDIENCES: + JWT_ASAP_KEYSERVER: + JWT_ALLOW_EMPTY: + JWT_AUTH_TYPE: + JWT_ENABLE_DOMAIN_VERIFICATION: + JWT_TOKEN_AUTH_MODULE: + MATRIX_UVS_URL: + MATRIX_UVS_ISSUER: + MATRIX_UVS_AUTH_TOKEN: + MATRIX_UVS_SYNC_POWER_LEVELS: + LOG_LEVEL: + LDAP_AUTH_METHOD: + LDAP_BASE: + LDAP_BINDDN: + LDAP_BINDPW: + LDAP_FILTER: + LDAP_VERSION: + LDAP_TLS_CIPHERS: + LDAP_TLS_CHECK_PEER: + LDAP_TLS_CACERT_FILE: + LDAP_TLS_CACERT_DIR: + LDAP_START_TLS: + LDAP_URL: + LDAP_USE_TLS: + MAX_PARTICIPANTS: + PROSODY_AUTH_TYPE: + PROSODY_RESERVATION_ENABLED: + PROSODY_RESERVATION_REST_BASE_URL: + PROSODY_ENABLE_RATE_LIMITS: + PROSODY_RATE_LIMIT_LOGIN_RATE: + PROSODY_RATE_LIMIT_SESSION_RATE: + PROSODY_RATE_LIMIT_TIMEOUT: + PROSODY_RATE_LIMIT_ALLOW_RANGES: + PROSODY_RATE_LIMIT_CACHE_SIZE: + PUBLIC_URL: ${JITSI__PUBLIC_URL} + TURN_CREDENTIALS: + TURN_HOST: + TURNS_HOST: + TURN_PORT: + TURNS_PORT: + TURN_TRANSPORT: + TZ: ${JITSI__JIGAGI_SIP_SERVER} + XMPP_DOMAIN: + XMPP_AUTH_DOMAIN: + XMPP_GUEST_DOMAIN: + XMPP_MUC_DOMAIN: + XMPP_INTERNAL_MUC_DOMAIN: + XMPP_MODULES: + XMPP_MUC_MODULES: + XMPP_MUC_CONFIGURATION: + XMPP_INTERNAL_MUC_MODULES: + XMPP_RECORDER_DOMAIN: + XMPP_PORT: expose: - ${XMPP_PORT:-5222} - "5347" @@ -2361,161 +2363,161 @@ services: jitsi-web: container_name: meet.jitsi environment: - - AMPLITUDE_ID - - ANALYTICS_SCRIPT_URLS - - ANALYTICS_WHITELISTED_EVENTS - - AUDIO_QUALITY_OPUS_BITRATE - - AUTO_CAPTION_ON_RECORD - - BRANDING_DATA_URL - - CALLSTATS_CUSTOM_SCRIPT_URL - - CALLSTATS_ID - - CALLSTATS_SECRET - - CHROME_EXTENSION_BANNER_JSON - - COLIBRI_WEBSOCKET_PORT - - CONFCODE_URL - - CONFIG_EXTERNAL_CONNECT - - DEFAULT_LANGUAGE - - DEPLOYMENTINFO_ENVIRONMENT - - DEPLOYMENTINFO_ENVIRONMENT_TYPE - - DEPLOYMENTINFO_REGION - - DEPLOYMENTINFO_SHARD - - DEPLOYMENTINFO_USERREGION - - DESKTOP_SHARING_FRAMERATE_MIN - - DESKTOP_SHARING_FRAMERATE_MAX - - DIALIN_NUMBERS_URL - - DIALOUT_AUTH_URL - - DIALOUT_CODES_URL - - DISABLE_AUDIO_LEVELS - - DISABLE_DEEP_LINKING - - DISABLE_GRANT_MODERATOR - - DISABLE_HTTPS - - DISABLE_KICKOUT - - DISABLE_LOCAL_RECORDING - - DISABLE_POLLS - - DISABLE_PRIVATE_CHAT - - DISABLE_PROFILE - - DISABLE_REACTIONS - - DISABLE_REMOTE_VIDEO_MENU - - DISABLE_START_FOR_ALL - - DROPBOX_APPKEY - - DROPBOX_REDIRECT_URI - - DYNAMIC_BRANDING_URL - - ENABLE_AUDIO_PROCESSING - - ENABLE_AUTH - - ENABLE_BREAKOUT_ROOMS - - ENABLE_CALENDAR - - ENABLE_COLIBRI_WEBSOCKET - - ENABLE_E2EPING - - ENABLE_FILE_RECORDING_SHARING - - ENABLE_GUESTS=1 - - ENABLE_HSTS - - ENABLE_HTTP_REDIRECT - - ENABLE_IPV6 - - ENABLE_LETSENCRYPT - - ENABLE_LIPSYNC - - ENABLE_NO_AUDIO_DETECTION - - ENABLE_NOISY_MIC_DETECTION - - ENABLE_OCTO - - ENABLE_OPUS_RED - - ENABLE_PREJOIN_PAGE - - ENABLE_P2P - - ENABLE_WELCOME_PAGE - - ENABLE_CLOSE_PAGE - - ENABLE_LIVESTREAMING - - ENABLE_LIVESTREAMING_DATA_PRIVACY_LINK - - ENABLE_LIVESTREAMING_HELP_LINK - - ENABLE_LIVESTREAMING_TERMS_LINK - - ENABLE_LIVESTREAMING_VALIDATOR_REGEXP_STRING - - ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT - - ENABLE_LOCAL_RECORDING_SELF_START - - ENABLE_RECORDING=1 - - ENABLE_REMB - - ENABLE_REQUIRE_DISPLAY_NAME - - ENABLE_SERVICE_RECORDING - - ENABLE_SIMULCAST - - ENABLE_STATS_ID - - ENABLE_STEREO - - ENABLE_SUBDOMAINS - - ENABLE_TALK_WHILE_MUTED - - ENABLE_TCC - - ENABLE_TRANSCRIPTIONS - - ENABLE_XMPP_WEBSOCKET - - ENABLE_JAAS_COMPONENTS - - ETHERPAD_PUBLIC_URL - - ETHERPAD_URL_BASE=${JITSI__ETHERPAD_URL_BASE} - - E2EPING_NUM_REQUESTS - - E2EPING_MAX_CONFERENCE_SIZE - - E2EPING_MAX_MESSAGE_PER_SECOND - - GOOGLE_ANALYTICS_ID - - GOOGLE_API_APP_CLIENT_ID - - HIDE_PREMEETING_BUTTONS - - HIDE_PREJOIN_DISPLAY_NAME - - HIDE_PREJOIN_EXTRA_BUTTONS - - INVITE_SERVICE_URL - - LETSENCRYPT_DOMAIN - - LETSENCRYPT_EMAIL - - LETSENCRYPT_USE_STAGING - - MATOMO_ENDPOINT - - MATOMO_SITE_ID - - MICROSOFT_API_APP_CLIENT_ID - - NGINX_RESOLVER - - NGINX_WORKER_PROCESSES - - NGINX_WORKER_CONNECTIONS - - PEOPLE_SEARCH_URL - - PREFERRED_LANGUAGE - - PUBLIC_URL=${JITSI__PUBLIC_URL} - - P2P_PREFERRED_CODEC - - RESOLUTION - - RESOLUTION_MIN - - RESOLUTION_WIDTH - - RESOLUTION_WIDTH_MIN - - START_AUDIO_MUTED - - START_AUDIO_ONLY - - START_BITRATE - - START_SILENT - - START_WITH_AUDIO_MUTED - - START_VIDEO_MUTED - - START_WITH_VIDEO_MUTED - - TESTING_CAP_SCREENSHARE_BITRATE - - TESTING_OCTO_PROBABILITY - - TOKEN_AUTH_URL - - TOOLBAR_BUTTONS - - TRANSLATION_LANGUAGES - - TRANSLATION_LANGUAGES_HEAD - - TZ=${JITSI__JIGAGI_SIP_SERVER} - - USE_APP_LANGUAGE - - VIDEOQUALITY_BITRATE_H264_LOW - - VIDEOQUALITY_BITRATE_H264_STANDARD - - VIDEOQUALITY_BITRATE_H264_HIGH - - VIDEOQUALITY_BITRATE_VP8_LOW - - VIDEOQUALITY_BITRATE_VP8_STANDARD - - VIDEOQUALITY_BITRATE_VP8_HIGH - - VIDEOQUALITY_BITRATE_VP9_LOW - - VIDEOQUALITY_BITRATE_VP9_STANDARD - - VIDEOQUALITY_BITRATE_VP9_HIGH - - VIDEOQUALITY_ENFORCE_PREFERRED_CODEC - - VIDEOQUALITY_PREFERRED_CODEC - - XMPP_AUTH_DOMAIN - - XMPP_BOSH_URL_BASE - - XMPP_DOMAIN - - XMPP_GUEST_DOMAIN - - XMPP_MUC_DOMAIN - - XMPP_RECORDER_DOMAIN - - XMPP_PORT - - WHITEBOARD_ENABLED - - WHITEBOARD_COLLAB_SERVER_PUBLIC_URL + AMPLITUDE_ID: + ANALYTICS_SCRIPT_URLS: + ANALYTICS_WHITELISTED_EVENTS: + AUDIO_QUALITY_OPUS_BITRATE: + AUTO_CAPTION_ON_RECORD: + BRANDING_DATA_URL: + CALLSTATS_CUSTOM_SCRIPT_URL: + CALLSTATS_ID: + CALLSTATS_SECRET: + CHROME_EXTENSION_BANNER_JSON: + COLIBRI_WEBSOCKET_PORT: + CONFCODE_URL: + CONFIG_EXTERNAL_CONNECT: + DEFAULT_LANGUAGE: + DEPLOYMENTINFO_ENVIRONMENT: + DEPLOYMENTINFO_ENVIRONMENT_TYPE: + DEPLOYMENTINFO_REGION: + DEPLOYMENTINFO_SHARD: + DEPLOYMENTINFO_USERREGION: + DESKTOP_SHARING_FRAMERATE_MIN: + DESKTOP_SHARING_FRAMERATE_MAX: + DIALIN_NUMBERS_URL: + DIALOUT_AUTH_URL: + DIALOUT_CODES_URL: + DISABLE_AUDIO_LEVELS: + DISABLE_DEEP_LINKING: + DISABLE_GRANT_MODERATOR: + DISABLE_HTTPS: + DISABLE_KICKOUT: + DISABLE_LOCAL_RECORDING: + DISABLE_POLLS: + DISABLE_PRIVATE_CHAT: + DISABLE_PROFILE: + DISABLE_REACTIONS: + DISABLE_REMOTE_VIDEO_MENU: + DISABLE_START_FOR_ALL: + DROPBOX_APPKEY: + DROPBOX_REDIRECT_URI: + DYNAMIC_BRANDING_URL: + ENABLE_AUDIO_PROCESSING: + ENABLE_AUTH: + ENABLE_BREAKOUT_ROOMS: + ENABLE_CALENDAR: + ENABLE_COLIBRI_WEBSOCKET: + ENABLE_E2EPING: + ENABLE_FILE_RECORDING_SHARING: + ENABLE_GUESTS: 1 + ENABLE_HSTS: + ENABLE_HTTP_REDIRECT: + ENABLE_IPV6: + ENABLE_LETSENCRYPT: + ENABLE_LIPSYNC: + ENABLE_NO_AUDIO_DETECTION: + ENABLE_NOISY_MIC_DETECTION: + ENABLE_OCTO: + ENABLE_OPUS_RED: + ENABLE_PREJOIN_PAGE: + ENABLE_P2P: + ENABLE_WELCOME_PAGE: + ENABLE_CLOSE_PAGE: + ENABLE_LIVESTREAMING: + ENABLE_LIVESTREAMING_DATA_PRIVACY_LINK: + ENABLE_LIVESTREAMING_HELP_LINK: + ENABLE_LIVESTREAMING_TERMS_LINK: + ENABLE_LIVESTREAMING_VALIDATOR_REGEXP_STRING: + ENABLE_LOCAL_RECORDING_NOTIFY_ALL_PARTICIPANT: + ENABLE_LOCAL_RECORDING_SELF_START: + ENABLE_RECORDING: 1 + ENABLE_REMB: + ENABLE_REQUIRE_DISPLAY_NAME: + ENABLE_SERVICE_RECORDING: + ENABLE_SIMULCAST: + ENABLE_STATS_ID: + ENABLE_STEREO: + ENABLE_SUBDOMAINS: + ENABLE_TALK_WHILE_MUTED: + ENABLE_TCC: + ENABLE_TRANSCRIPTIONS: + ENABLE_XMPP_WEBSOCKET: + ENABLE_JAAS_COMPONENTS: + ETHERPAD_PUBLIC_URL: + ETHERPAD_URL_BASE: ${JITSI__ETHERPAD_URL_BASE} + E2EPING_NUM_REQUESTS: + E2EPING_MAX_CONFERENCE_SIZE: + E2EPING_MAX_MESSAGE_PER_SECOND: + GOOGLE_ANALYTICS_ID: + GOOGLE_API_APP_CLIENT_ID: + HIDE_PREMEETING_BUTTONS: + HIDE_PREJOIN_DISPLAY_NAME: + HIDE_PREJOIN_EXTRA_BUTTONS: + INVITE_SERVICE_URL: + LETSENCRYPT_DOMAIN: + LETSENCRYPT_EMAIL: + LETSENCRYPT_USE_STAGING: + MATOMO_ENDPOINT: + MATOMO_SITE_ID: + MICROSOFT_API_APP_CLIENT_ID: + NGINX_RESOLVER: + NGINX_WORKER_PROCESSES: + NGINX_WORKER_CONNECTIONS: + PEOPLE_SEARCH_URL: + PREFERRED_LANGUAGE: + PUBLIC_URL: ${JITSI__PUBLIC_URL} + P2P_PREFERRED_CODEC: + RESOLUTION: + RESOLUTION_MIN: + RESOLUTION_WIDTH: + RESOLUTION_WIDTH_MIN: + START_AUDIO_MUTED: + START_AUDIO_ONLY: + START_BITRATE: + START_SILENT: + START_WITH_AUDIO_MUTED: + START_VIDEO_MUTED: + START_WITH_VIDEO_MUTED: + TESTING_CAP_SCREENSHARE_BITRATE: + TESTING_OCTO_PROBABILITY: + TOKEN_AUTH_URL: + TOOLBAR_BUTTONS: + TRANSLATION_LANGUAGES: + TRANSLATION_LANGUAGES_HEAD: + TZ: ${JITSI__JIGAGI_SIP_SERVER} + USE_APP_LANGUAGE: + VIDEOQUALITY_BITRATE_H264_LOW: + VIDEOQUALITY_BITRATE_H264_STANDARD: + VIDEOQUALITY_BITRATE_H264_HIGH: + VIDEOQUALITY_BITRATE_VP8_LOW: + VIDEOQUALITY_BITRATE_VP8_STANDARD: + VIDEOQUALITY_BITRATE_VP8_HIGH: + VIDEOQUALITY_BITRATE_VP9_LOW: + VIDEOQUALITY_BITRATE_VP9_STANDARD: + VIDEOQUALITY_BITRATE_VP9_HIGH: + VIDEOQUALITY_ENFORCE_PREFERRED_CODEC: + VIDEOQUALITY_PREFERRED_CODEC: + XMPP_AUTH_DOMAIN: + XMPP_BOSH_URL_BASE: + XMPP_DOMAIN: + XMPP_GUEST_DOMAIN: + XMPP_MUC_DOMAIN: + XMPP_RECORDER_DOMAIN: + XMPP_PORT: + WHITEBOARD_ENABLED: + WHITEBOARD_COLLAB_SERVER_PUBLIC_URL: image: jitsi/web:${JITSI_IMAGE_VERSION:-stable} labels: - - swag=enable - - swag_proto=https - - swag_url=meet.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://meet.${MY_TLD} - - homepage.group=Social - - homepage.name=Jitsi - - homepage.href=https://meet.${MY_TLD} - - homepage.icon=jitsi.png - - homepage.description=Web Conferencing + swag: enable + swag_proto: https + swag_url: meet.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://meet.${MY_TLD} + homepage.group: Social + homepage.name: Jitsi + homepage.href: https://meet.${MY_TLD} + homepage.icon: jitsi.png + homepage.description: Web Conferencing networks: default: null ports: @@ -2561,25 +2563,25 @@ services: joplin: container_name: joplin environment: - - ACCOUNT_TYPES_ENABLED=true - - APP_PORT=${JOPLIN_APP_PORT} - - APP_BASE_URL=${JOPLIN_APP_BASE_URL} - - DB_CLIENT=pg - - INSTANCE_NAME='Joplin @ Rinoa' - - IS_ADMIN_INSTANCE=true - - MAILER_ENABLED=1 - - MAILER_HOST=postal-SMTP - - MAILER_PORT=25 - - MAILER_SECURITY=none - - MAILER_AUTH_USER=${POSTAL_SMTP_AUTH_USER} - - MAILER_AUTH_PASSWORD=${POSTAL_SMTP_AUTH_PASSWORD} - - MAILER_NOREPLY_NAME=Joplin @ Rinoa - - MAILER_NOREPLY_EMAIL=noreply@trez.wtf - - POSTGRES_PASSWORD=${JOPLIN_POSTGRES_PASSWORD} - - POSTGRES_DATABASE=${JOPLIN_POSTGRES_DATABASE} - - POSTGRES_USER=${JOPLIN_POSTGRES_USER} - - POSTGRES_PORT=5432 - - POSTGRES_HOST=joplin-db + ACCOUNT_TYPES_ENABLED: true + APP_PORT: ${JOPLIN_APP_PORT} + APP_BASE_URL: ${JOPLIN_APP_BASE_URL} + DB_CLIENT: pg + INSTANCE_NAME: 'Joplin @ Rinoa' + IS_ADMIN_INSTANCE: true + MAILER_ENABLED: 1 + MAILER_HOST: postal-SMTP + MAILER_PORT: 25 + MAILER_SECURITY: none + MAILER_AUTH_USER: ${POSTAL_SMTP_AUTH_USER} + MAILER_AUTH_PASSWORD: ${POSTAL_SMTP_AUTH_PASSWORD} + MAILER_NOREPLY_NAME: Joplin @ Rinoa + MAILER_NOREPLY_EMAIL: noreply@trez.wtf + POSTGRES_PASSWORD: ${JOPLIN_POSTGRES_PASSWORD} + POSTGRES_DATABASE: ${JOPLIN_POSTGRES_DATABASE} + POSTGRES_USER: ${JOPLIN_POSTGRES_USER} + POSTGRES_PORT: 5432 + POSTGRES_HOST: joplin-db image: joplin/server:latest labels: homepage.group: Personal Services @@ -2666,29 +2668,29 @@ services: librespeed: container_name: librespeed environment: - - DB_HOSTNAME= - - DB_NAME= - - DB_PASSWORD= - - DB_TYPE=sqlite - - DB_USERNAME= - - PASSWORD= - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:librespeed + DB_HOSTNAME: + DB_NAME: + DB_PASSWORD: + DB_TYPE: sqlite + DB_USERNAME: + PASSWORD: + PGID: 1000 + PUID: 1000 + TZ: America/New_York + DOCKER_MODS: ghcr.io/themepark-dev/theme.park:librespeed hostname: Rinoa image: lscr.io/linuxserver/librespeed:latest labels: - - homepage.group=System Administration - - homepage.name=LibreSpeed - - homepage.href=https://speed.${MY_TLD} - - homepage.icon=librespeed.png - - homepage.description=Speed test - - swag=enable - - swag_proto=http - - swag_url=speed.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://speed.${MY_TLD} + homepage.group: System Administration + homepage.name: LibreSpeed + homepage.href: https://speed.${MY_TLD} + homepage.icon: librespeed.png + homepage.description: Speed test + homepage: enable + homepage_proto: http + homepage_url: speed.${MY_TLD} + homepage.uptime-kuma.enabled: true + homepage.uptime-kuma.monitor.url: https://speed.${MY_TLD} networks: default: null ports: @@ -2717,23 +2719,23 @@ services: lidarr: container_name: lidarr environment: - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - DOCKER_MODS=ghcr.io/gilbn/theme.park:lidarr + PGID: 1000 + PUID: 1000 + TZ: America/New_York + DOCKER_MODS: ghcr.io/gilbn/theme.park:lidarr hostname: Rinoa image: lscr.io/linuxserver/lidarr:latest labels: - - homepage.group=Servarr Stack - - homepage.name=Lidarr - - homepage.href=https://lidarr.${MY_TLD} - - homepage.icon=lidarr.png - - homepage.description=Music Automation - - homepage.widget.type=lidarr - - homepage.widget.url=http://lidarr:8686 - - homepage.widget.key=${LIDARR_API_KEY} - - swag=enable - - swag.uptime-kuma.enabled=true + homepage.group: Servarr Stack + homepage.name: Lidarr + homepage.href: https://lidarr.${MY_TLD} + homepage.icon: lidarr.png + homepage.description: Music Automation + homepage.widget.type: lidarr + homepage.widget.url: http://lidarr:8686 + homepage.widget.key: ${LIDARR_API_KEY} + swag: enable + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -2783,18 +2785,18 @@ services: - 5000 image: thewicklowwolf/lidify:latest labels: - - homepage.group=Servarr Stack - - homepage.name=Lidify - - homepage.href=https://lidify.${MY_TLD} - - homepage.icon=/icons/lidify.png - - homepage.description=Music Discovery a la Last.fm, Spotify, Pandora, etc. - - swag=enable - - swag_auth=authelia - - swag_proto=http - - swag_port=5000 - - swag_url=lidify.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://lidify.${MY_TLD} + homepage.group: Servarr Stack + homepage.name: Lidify + homepage.href: https://lidify.${MY_TLD} + homepage.icon: /icons/lidify.png + homepage.description: Music Discovery a la Last.fm, Spotify, Pandora, etc. + swag: enable + swag_auth: authelia + swag_proto: http + swag_port: 5000 + swag_url: lidify.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://lidify.${MY_TLD} networks: default: null restart: unless-stopped @@ -2818,25 +2820,25 @@ services: lldap: container_name: lldap environment: - - UID=${PUID} - - GID=${PGID} - - TZ=${TZ} - - LLDAP_JWT_SECRET=${LLDAP_JWT_SECRET} - - LLDAP_KEY_SEED=${LLDAP_KEY_SEED} - - LLDAP_LDAP_BASE_DN=dc=trez,dc=wtf + UID: ${PUID} + GID: ${PGID} + TZ: ${TZ} + LLDAP_JWT_SECRET: ${LLDAP_JWT_SECRET} + LLDAP_KEY_SEED: ${LLDAP_KEY_SEED} + LLDAP_LDAP_BASE_DN: dc=trez,dc=wtf image: lldap/lldap:stable labels: - - homepage.group=System Administration - - homepage.name=LLDAP - - homepage.href=https://ldap.${MY_TLD} - - homepage.icon=/icons/lldap.png - - homepage.description=LDAP made easy - - swag=enable - - swag_proto=http - - swag_port=17170 - - swag_url=ldap.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://ldap.${MY_TLD} + homepage.group: System Administration + homepage.name: LLDAP + homepage.href: https://ldap.${MY_TLD} + homepage.icon: /icons/lldap.png + homepage.description: LDAP made easy + swag: enable + swag_proto: http + swag_port: 17170 + swag_url: ldap.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://ldap.${MY_TLD} networks: default: null ports: @@ -2866,15 +2868,15 @@ services: timeout: 20m image: localai/localai:latest-aio-cpu labels: - - homepage.group=Personal Services - - homepage.name=LocalAI - - homepage.href=https://ai.${MY_TLD} - - homepage.icon=/icons/localai.png - - homepage.description=Open source OpenAI alternative - - swag=enable - - swag_proto=http - - swag_port=8080 - - swag_url=ai.${MY_TLD} + homepage.group: Personal Services + homepage.name: LocalAI + homepage.href: https://ai.${MY_TLD} + homepage.icon: /icons/localai.png + homepage.description: Open source OpenAI alternative + swag: enable + swag_proto: http + swag_port: 8080 + swag_url: ai.${MY_TLD} networks: default: null ports: @@ -2908,15 +2910,15 @@ services: MALOJA_TIMEZONE: ${TZ} image: krateng/maloja:latest labels: - - homepage.group=Media Library - - homepage.name=Maloja - - homepage.href=https://scrobble.${MY_TLD} - - homepage.icon=maloja.png - - homepage.description=Simple self-hosted music scrobble database to create personal listening statistics - - swag=enable - - swag_proto=http - - swag_port=42010 - - swag_url=scrobble.${MY_TLD} + homepage.group: Media Library + homepage.name: Maloja + homepage.href: https://scrobble.${MY_TLD} + homepage.icon: maloja.png + homepage.description: Simple self-hosted music scrobble database to create personal listening statistics + swag: enable + swag_proto: http + swag_port: 42010 + swag_url: scrobble.${MY_TLD} networks: default: null ports: @@ -2944,11 +2946,11 @@ services: mariadb: container_name: mariadb environment: - - MYSQL_ROOT_PASSWORD=${MARIADB_ENVIRONMENT_MYSQL_ROOT_PASSWORD} - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - MYSQL_PASSWORD=VQU23wHKRNmfpAPt5E9BxMaSGJdWjLuz + MYSQL_ROOT_PASSWORD: ${MARIADB_ENVIRONMENT_MYSQL_ROOT_PASSWORD} + PGID: 1000 + PUID: 1000 + TZ: America/New_York + MYSQL_PASSWORD: VQU23wHKRNmfpAPt5E9BxMaSGJdWjLuz hostname: Rinoa image: ghcr.io/linuxserver/mariadb networks: @@ -2981,19 +2983,89 @@ services: type: bind bind: create_host_path: true + mastodon: + container_name: mastodon + environment: + PUID: ${PUID} + PGID: ${PGID} + TZ: ${TZ} + LOCAL_DOMAIN: trez.wtf + REDIS_HOST: redis + REDIS_PORT: 6379 + DB_HOST: mastodon-pg-db + DB_USER: mastodon + DB_NAME: mastodon + DB_PASS: ${MASTODON_PG_DB_PASSWORD} + DB_PORT: 5432 + ES_ENABLED: false + ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY: + ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY: + ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT: + SECRET_KEY_BASE: + OTP_SECRET: + VAPID_PRIVATE_KEY: + VAPID_PUBLIC_KEY: + SMTP_SERVER: postal-smtp + SMTP_PORT: 25 + SMTP_LOGIN: ${POSTAL_SMTP_AUTH_USER} + SMTP_PASSWORD: ${POSTAL_SMTP_AUTH_PASSWORD} + SMTP_FROM_ADDRESS: noreply@trez.wtf + S3_ENABLED: true + S3_BUCKET: mastodon + AWS_ACCESS_KEY_ID: ${MASTODON_MINIO_ACCESS_KEY} + AWS_SECRET_ACCESS_KEY: ${MASTODON_MINIO_SECRET_KEY} + image: lscr.io/linuxserver/mastodon:latest + labels: + swag: enable + swag_proto: http + swag_port: 5678 + swag_url: mastodon.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://mastodon.${MY_TLD} + homepage.group: Social + homepage.name: Mastodon + homepage.href: https://mastodon.${MY_TLD} + homepage.icon: mastodon.svg + homepage.description: Open-source social network + homepage.widget.type: mastodon + homepage.widget.url: http://mastodon + ports: + - 9044:80 + - 3444:443 + restart: unless-stopped + volumes: + - ${DOCKER_VOLUME_CONFIG}/mastodon:/config + mastodon-pg-db: + container_name: mastodon-pg-db + environment: + POSTGRES_USER: mastodon + POSTGRES_PASSWORD: ${MASTODON_PG_DB_PASSWORD} + POSTGRES_DB: mastodon + expose: + - 5432 + healthcheck: + test: pg_isready -q -t 2 -d $$POSTGRES_DB -U $$POSTGRES_USER + start_period: 20s + timeout: 30s + interval: 10s + retries: 5 + image: postgres:17-alpine + restart: always + volumes: + - mastodon-pg-db:/var/lib/postgresql/data meshcentral: container_name: meshcentral image: ghcr.io/ylianst/meshcentral:master labels: - - homepage.group=System Administration - - homepage.name=MeshCentral - - homepage.href=https://mesh.${MY_TLD} - - homepage.icon=meshcentral.png - - homepage.description= - - swag=enable - - swag_proto=http - - swag_port=80 - - swag_url=mesh.${MY_TLD} + homepage.group: System Administration + homepage.name: MeshCentral + homepage.href: https://mesh.${MY_TLD} + homepage.icon: meshcentral.png + homepage.description: + swag: enable + swag_proto: http + swag_port: 80 + swag_url: mesh.${MY_TLD} ports: - 46717:80 # HTTP - 61741:443 # HTTPS @@ -3008,24 +3080,24 @@ services: command: server --console-address ":9090" /mnt/data container_name: minio environment: - - MINIO_ROOT_USER=minioadmin - - MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD} - - MINIO_ACCESS_KEY=${MINIO_MIMIR_STORAGE_ACCESS_KEY} - - MINIO_SECRET_KEY=${MINIO_MIMIR_STORAGE_SECRET_KEY} + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD} + MINIO_ACCESS_KEY: ${MINIO_MIMIR_STORAGE_ACCESS_KEY} + MINIO_SECRET_KEY: ${MINIO_MIMIR_STORAGE_SECRET_KEY} hostname: minio image: minio/minio labels: - - swag=enable - - swag_proto=http - - swag_port=9090 - - swag_url=s3.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://s3.${MY_TLD} - - homepage.group=System Administration - - homepage.name=MinIO - - homepage.href=https://s3.${MY_TLD} - - homepage.icon=minio.png - - homepage.description=S3-compatible storage backend + swag: enable + swag_proto: http + swag_port: 9090 + swag_url: s3.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://s3.${MY_TLD} + homepage.group: System Administration + homepage.name: MinIO + homepage.href: https://s3.${MY_TLD} + homepage.icon: minio.png + homepage.description: S3-compatible storage backend networks: default: null ports: @@ -3061,24 +3133,24 @@ services: multi-scrobbler: container_name: multi-scrobbler environment: - - TZ=${TZ} - - PUID=${PUID} - - PGID=${PGID} - - MALOJA_URL=http://maloja:42010 - - MALOJA_API_KEY=${MALOJA_API_KEY} - - LASTFM_API_KEY=${LASTFM_API_KEY} - - LASTFM_API_SECRET=${LASTFM_API_SECRET} - - LZ_USER=Trez.on - - LZ_TOKEN=${MALOJA_LISTENBRAINZ_TOKEN} - - SPOTIFY_CLIENT_ID=${YOUR_SPOTIFY_ID} - - SPOTIFY_CLIENT_SECRET=${YOUR_SPOTIFY_SECRET} + TZ: ${TZ} + PUID: ${PUID} + PGID: ${PGID} + MALOJA_URL: http://maloja:42010 + MALOJA_API_KEY: ${MALOJA_API_KEY} + LASTFM_API_KEY: ${LASTFM_API_KEY} + LASTFM_API_SECRET: ${LASTFM_API_SECRET} + LZ_USER: Trez.on + LZ_TOKEN: ${MALOJA_LISTENBRAINZ_TOKEN} + SPOTIFY_CLIENT_ID: ${YOUR_SPOTIFY_ID} + SPOTIFY_CLIENT_SECRET: ${YOUR_SPOTIFY_SECRET} image: foxxmd/multi-scrobbler labels: - - homepage.group=Media Library - - homepage.name=Multi-Scrobbler - - homepage.href=http://192.168.1.254:9078 - - homepage.icon=/icons/multi-scrobbler.png - - homepage.description=JS App for scrobbling/recording play history from/to multiple sources + homepage.group: Media Library + homepage.name: Multi-Scrobbler + homepage.href: http://192.168.1.254:9078 + homepage.icon: /icons/multi-scrobbler.png + homepage.description: JS App for scrobbling/recording play history from/to multiple sources networks: default: null ports: @@ -3138,22 +3210,22 @@ services: ND_SUBSONICARTISTPARTICIPATIONS: true image: deluan/navidrome:latest labels: - - homepage.group=Media Library - - homepage.name=Navidrome - - homepage.href=https://navi.${MY_TLD} - - homepage.icon=navidrome.png - - homepage.description=Music Streaming - - homepage.widget.type=navidrome - - homepage.widget.url=http://navidrome:4533 - - homepage.widget.user=admin - - homepage.widget.token=e8a9e97b29aa963fa4729c633289d232 - - homepage.widget.salt=v5Z93Z - - swag=enable - - swag_port=4533 - - swag_proto=http - - swag_url=navi.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://navi.${MY_TLD} + homepage.group: Media Library + homepage.name: Navidrome + homepage.href: https://navi.${MY_TLD} + homepage.icon: navidrome.png + homepage.description: Music Streaming + homepage.widget.type: navidrome + homepage.widget.url: http://navidrome:4533 + homepage.widget.user: admin + homepage.widget.token: e8a9e97b29aa963fa4729c633289d232 + homepage.widget.salt: v5Z93Z + swag: enable + swag_port: 4533 + swag_proto: http + swag_url: navi.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://navi.${MY_TLD} networks: default: null ports: @@ -3240,23 +3312,23 @@ services: nextcloud: container_name: nextcloud environment: - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - LOG_LEVEL=debug + PGID: 1000 + PUID: 1000 + TZ: America/New_York + LOG_LEVEL: debug hostname: Rinoa image: lscr.io/linuxserver/nextcloud:latest labels: - - homepage.group=Personal Services - - homepage.name=NextCloud - - homepage.href=https://cloud.${MY_TLD} - - homepage.icon=nextcloud.png - - homepage.description=Private Cloud - - swag=enable - - swag_proto=https - - swag_url=cloud.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://cloud.${MY_TLD} + homepage.group: Personal Services + homepage.name: NextCloud + homepage.href: https://cloud.${MY_TLD} + homepage.icon: nextcloud.png + homepage.description: Private Cloud + swag: enable + swag_proto: https + swag_url: cloud.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://cloud.${MY_TLD} networks: default: null ports: @@ -3314,16 +3386,16 @@ services: hostname: Rinoa image: lscr.io/linuxserver/ombi:latest labels: - - homepage.group=Media Library - - homepage.name=Ombi - - homepage.href=https://ombi.${MY_TLD} - - homepage.icon=ombi.png - - homepage.description=Media Requests - - homepage.widget.type=ombi - - homepage.widget.url=http://ombi:3579 - - homepage.widget.key=${OMBI_API_KEY} - - swag=enable - - swag.uptime-kuma.enabled=true + homepage.group: Media Library + homepage.name: Ombi + homepage.href: https://ombi.${MY_TLD} + homepage.icon: ombi.png + homepage.description: Media Requests + homepage.widget.type: ombi + homepage.widget.url: http://ombi:3579 + homepage.widget.key: ${OMBI_API_KEY} + swag: enable + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -3367,17 +3439,17 @@ services: USERMAP_UID: ${PUID} image: ghcr.io/paperless-ngx/paperless-ngx:latest labels: - - swag=enable - - swag_proto=http - - swag_port=8000 - - swag_url=docs.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://docs.${MY_TLD} - - homepage.group=Personal Services - - homepage.name=Paperless-ngx - - homepage.href=https://docs.${MY_TLD} - - homepage.icon=paperless-ngx.svg - - homepage.description=Document indexer & archiver with OCR + swag: enable + swag_proto: http + swag_port: 8000 + swag_url: docs.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://docs.${MY_TLD} + homepage.group: Personal Services + homepage.name: Paperless-ngx + homepage.href: https://docs.${MY_TLD} + homepage.icon: paperless-ngx.svg + homepage.description: Document indexer & archiver with OCR networks: default: null ports: @@ -3433,15 +3505,15 @@ services: TOTP_VAULT_KEY: ${PLAUSIBLE_TOTP_VAULT_KEY} image: ghcr.io/plausible/community-edition:v2.1.0 labels: - - swag=enable - - swag_proto=http - - swag_port=8000 - - swag_url=analytics.${MY_TLD} - - homepage.group=Professional Services - - homepage.name=Plausible - - homepage.href=https://analytics.${MY_TLD} - - homepage.icon=plausible.svg - - homepage.description=Open-source web analytics + swag: enable + swag_proto: http + swag_port: 8000 + swag_url: analytics.${MY_TLD} + homepage.group: Professional Services + homepage.name: Plausible + homepage.href: https://analytics.${MY_TLD} + homepage.icon: plausible.svg + homepage.description: Open-source web analytics networks: default: null ports: @@ -3506,18 +3578,18 @@ services: container_name: postal-web image: ghcr.io/postalserver/postal:latest labels: - - swag=enable - - swag_proto=http - - swag_port=5000 - - swag_address=postal-web - - swag_url=post.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://post.${MY_TLD} - - homepage.group=System Administration - - homepage.name=Postal - - homepage.href=https://post.${MY_TLD} - - homepage.icon=/icons/postal.png - - homepage.description=OSS Mail delivery platform + swag: enable + swag_proto: http + swag_port: 5000 + swag_address: postal-web + swag_url: post.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://post.${MY_TLD} + homepage.group: System Administration + homepage.name: Postal + homepage.href: https://post.${MY_TLD} + homepage.icon: /icons/postal.png + homepage.description: OSS Mail delivery platform networks: default: null ports: @@ -3536,7 +3608,7 @@ services: command: postal worker container_name: postal-worker environment: - - LOG_LEVEL=debug + LOG_LEVEL: debug image: ghcr.io/postalserver/postal:latest networks: default: null @@ -3550,26 +3622,26 @@ services: prowlarr: container_name: prowlarr environment: - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - DOCKER_MODS=ghcr.io/gilbn/theme.park:sonarr - - TP_DOMAIN=trez.wtf\/themepark - - TP_COMMUNITY_THEME=false - - TP_THEME=space-gray + PGID: 1000 + PUID: 1000 + TZ: America/New_York + DOCKER_MODS: ghcr.io/gilbn/theme.park:sonarr + TP_DOMAIN: trez.wtf\/themepark + TP_COMMUNITY_THEME: false + TP_THEME: space-gray hostname: Rinoa image: lscr.io/linuxserver/prowlarr:latest labels: - - homepage.group=Servarr Stack - - homepage.name=Prowlarr - - homepage.href=https://prowlarr.${MY_TLD} - - homepage.icon=prowlarr.png - - homepage.description=Index aggregator - - homepage.widget.type=prowlarr - - homepage.widget.url=http://prowlarr:9696 - - homepage.widget.key=${PROWLARR_API_KEY} - - swag=enable - - swag.uptime-kuma.enabled=true + homepage.group: Servarr Stack + homepage.name: Prowlarr + homepage.href: https://prowlarr.${MY_TLD} + homepage.icon: prowlarr.png + homepage.description: Index aggregator + homepage.widget.type: prowlarr + homepage.widget.url: http://prowlarr:9696 + homepage.widget.key: ${PROWLARR_API_KEY} + swag: enable + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -3617,18 +3689,18 @@ services: - 5000 image: thewicklowwolf/radarec:latest labels: - - homepage.group=Servarr Stack - - homepage.name=RadaRec - - homepage.href=https://radarec.${MY_TLD} - - homepage.icon=/icons/radarec.png - - homepage.description=Movie discovery based on library/tastes - - swag=enable - - swag_proto=http - - swag_port=5000 - - swag_auth=authelia - - swag_url=radarec.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://radarec.${MY_TLD} + homepage.group: Servarr Stack + homepage.name: RadaRec + homepage.href: https://radarec.${MY_TLD} + homepage.icon: /icons/radarec.png + homepage.description: Movie discovery based on library/tastes + swag: enable + swag_proto: http + swag_port: 5000 + swag_auth: authelia + swag_url: radarec.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://radarec.${MY_TLD} networks: default: null restart: unless-stopped @@ -3658,16 +3730,16 @@ services: hostname: Rinoa image: lscr.io/linuxserver/radarr:latest labels: - - homepage.group=Servarr Stack - - homepage.name=Radarr - - homepage.href=https://radarr.${MY_TLD} - - homepage.icon=radarr.png - - homepage.description=Movie Automation - - homepage.widget.type=radarr - - homepage.widget.url=http://radarr:7878 - - homepage.widget.key=${RADARR_API_KEY} - - swag=enable - - swag.uptime-kuma.enabled=true + homepage.group: Servarr Stack + homepage.name: Radarr + homepage.href: https://radarr.${MY_TLD} + homepage.icon: radarr.png + homepage.description: Movie Automation + homepage.widget.type: radarr + homepage.widget.url: http://radarr:7878 + homepage.widget.key: ${RADARR_API_KEY} + swag: enable + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -3728,17 +3800,17 @@ services: TZ: ${TZ} image: amruthpillai/reactive-resume:latest labels: - - homepage.group=Professional Services - - homepage.name=Reactive Resume - - homepage.href=https://resume.${MY_TLD} - - homepage.icon=reactive-resume.svg - - homepage.description=Open-source resume builder - - swag=enable - - swag_proto=http - - swag_port=3000 - - swag_url=resume.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://resume.${MY_TLD} + homepage.group: Professional Services + homepage.name: Reactive Resume + homepage.href: https://resume.${MY_TLD} + homepage.icon: reactive-resume.svg + homepage.description: Open-source resume builder + swag: enable + swag_proto: http + swag_port: 3000 + swag_url: resume.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://resume.${MY_TLD} networks: default: null ports: @@ -3750,10 +3822,10 @@ services: reactive-resume-pg: container_name: reactive-resume-pg environment: - - TZ=${TZ} - - POSTGRES_DB=reactiveresume - - POSTGRES_USER=reactiveresume - - POSTGRES_PASSWORD=${REACTIVE_RESUME_PGSQL_PASSWORD} + TZ: ${TZ} + POSTGRES_DB: reactiveresume + POSTGRES_USER: reactiveresume + POSTGRES_PASSWORD: ${REACTIVE_RESUME_PGSQL_PASSWORD} expose: - 5432 image: postgres:16-alpine @@ -3765,23 +3837,23 @@ services: readarr: container_name: readarr environment: - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - DOCKER_MODS=ghcr.io/gilbn/theme.park:readnarr + PGID: 1000 + PUID: 1000 + TZ: America/New_York + DOCKER_MODS: ghcr.io/gilbn/theme.park:readnarr hostname: Rinoa image: lscr.io/linuxserver/readarr:develop labels: - - homepage.group=Servarr Stack - - homepage.name=Readarr - - homepage.href=https://readarr.${MY_TLD} - - homepage.icon=readarr.png - - homepage.description=eBook/Audiobook Automation - - homepage.widget.type=readarr - - homepage.widget.url=http://readarr:8787 - - homepage.widget.key=${READARR_API_KEY} - - swag=enable - - swag.uptime-kuma.enabled=true + homepage.group: Servarr Stack + homepage.name: Readarr + homepage.href: https://readarr.${MY_TLD} + homepage.icon: readarr.png + homepage.description: eBook/Audiobook Automation + homepage.widget.type: readarr + homepage.widget.url: http://readarr:8787 + homepage.widget.key: ${READARR_API_KEY} + swag: enable + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -3829,40 +3901,40 @@ services: - ALL container_name: redlib environment: - - REDLIB_SFW_ONLY=off - - REDLIB_BANNER= - - REDLIB_ROBOTS_DISABLE_INDEXING=off - - REDLIB_PUSHSHIFT_FRONTEND=undelete.pullpush.io - - REDLIB_DEFAULT_THEME=nord - - REDLIB_DEFAULT_FRONT_PAGE=default - - REDLIB_DEFAULT_LAYOUT=clean - - REDLIB_DEFAULT_WIDE=on - - REDLIB_DEFAULT_POST_SORT=hot - - REDLIB_DEFAULT_COMMENT_SORT=confidence - - REDLIB_DEFAULT_SHOW_NSFW=off - - REDLIB_DEFAULT_BLUR_NSFW=on - - REDLIB_DEFAULT_USE_HLS=off - - REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION=off - - REDLIB_DEFAULT_AUTOPLAY_VIDEOS=off - - REDLIB_DEFAULT_SUBSCRIPTIONS= - - REDLIB_DEFAULT_HIDE_AWARDS=off - - REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION=off - - REDLIB_DEFAULT_HIDE_SCORE=off - - REDLIB_DEFAULT_FIXED_NAVBAR=on + REDLIB_SFW_ONLY: off + REDLIB_BANNER: + REDLIB_ROBOTS_DISABLE_INDEXING: off + REDLIB_PUSHSHIFT_FRONTEND: undelete.pullpush.io + REDLIB_DEFAULT_THEME: nord + REDLIB_DEFAULT_FRONT_PAGE: default + REDLIB_DEFAULT_LAYOUT: clean + REDLIB_DEFAULT_WIDE: on + REDLIB_DEFAULT_POST_SORT: hot + REDLIB_DEFAULT_COMMENT_SORT: confidence + REDLIB_DEFAULT_SHOW_NSFW: off + REDLIB_DEFAULT_BLUR_NSFW: on + REDLIB_DEFAULT_USE_HLS: off + REDLIB_DEFAULT_HIDE_HLS_NOTIFICATION: off + REDLIB_DEFAULT_AUTOPLAY_VIDEOS: off + REDLIB_DEFAULT_SUBSCRIPTIONS: + REDLIB_DEFAULT_HIDE_AWARDS: off + REDLIB_DEFAULT_DISABLE_VISIT_REDDIT_CONFIRMATION: off + REDLIB_DEFAULT_HIDE_SCORE: off + REDLIB_DEFAULT_FIXED_NAVBAR: on image: quay.io/redlib/redlib:latest labels: - - homepage.group=Social - - homepage.name=Redlib - - homepage.href=https://rlib.${MY_TLD} - - homepage.icon=libreddit.svg - - homepage.description=Redlib is a private front-end like Invidious but for Reddit - - swag=enable - - swag_auth=authelia - - swag_proto=http - - swag_port=8080 - - swag_url=rlib.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://rlib.${MY_TLD} + homepage.group: Social + homepage.name: Redlib + homepage.href: https://rlib.${MY_TLD} + homepage.icon: libreddit.svg + homepage.description: Redlib is a private front-end like Invidious but for Reddit + swag: enable + swag_auth: authelia + swag_proto: http + swag_port: 8080 + swag_url: rlib.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://rlib.${MY_TLD} networks: default: null ports: @@ -3881,38 +3953,38 @@ services: - SYS_MODULE container_name: sabnzbdvpn environment: - - ENABLE_PRIVOXY=no - - LAN_NETWORK=192.168.1.0/24 - - NAME_SERVERS=192.168.1.254,1.1.1.1 - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - VPN_CLIENT=openvpn - - VPN_ENABLED=yes - - VPN_INPUT_PORTS= - - VPN_OPTIONS= - - VPN_OUTPUT_PORTS= - - VPN_PASS=QGXRAYAwzVv9X84MAK2gPYq2Mt6ztdoA - - VPN_PROV=pia - - VPN_USER=p3120278 - - DEBUG=true + ENABLE_PRIVOXY: no + LAN_NETWORK: 192.168.1.0/24 + NAME_SERVERS: 192.168.1.254,1.1.1.1 + PGID: 1000 + PUID: 1000 + TZ: America/New_York + VPN_CLIENT: openvpn + VPN_ENABLED: yes + VPN_INPUT_PORTS: + VPN_OPTIONS: + VPN_OUTPUT_PORTS: + VPN_PASS: QGXRAYAwzVv9X84MAK2gPYq2Mt6ztdoA + VPN_PROV: pia + VPN_USER: p3120278 + DEBUG: true hostname: Rinoa image: ghcr.io/binhex/arch-sabnzbdvpn:latest labels: - - homepage.group=Downloaders - - homepage.name=SABnzbd - - homepage.href=https://sabnzbd.${MY_TLD} - - homepage.icon=sabnzbd.png - - homepage.description=NZB Downloader over VPN - - homepage.widget.type=sabnzbd - - homepage.widget.url=http://sabnzbdvpn:8080 - - homepage.widget.env=1 - - homepage.widget.key=${SABNZBDVPN_API_KEY} - - swag=enable - - swag_proto=http - - swag_url=sabnzbd.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://sabnzbd.${MY_TLD} + homepage.group: Downloaders + homepage.name: SABnzbd + homepage.href: https://sabnzbd.${MY_TLD} + homepage.icon: sabnzbd.png + homepage.description: NZB Downloader over VPN + homepage.widget.type: sabnzbd + homepage.widget.url: http://sabnzbdvpn:8080 + homepage.widget.env: 1 + homepage.widget.key: ${SABNZBDVPN_API_KEY} + swag: enable + swag_proto: http + swag_url: sabnzbd.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://sabnzbd.${MY_TLD} networks: default: null ports: @@ -3959,41 +4031,41 @@ services: - 3000 image: jpyles0524/scraperr:latest labels: - - homepage.group=Personal Services - - homepage.name=Scraperr - - homepage.href=https://scrape.${MY_TLD} - - homepage.icon=/icons/scraperr.png - - homepage.description=Web scraper - - swag=enable - - swag_proto=http - - swag_port=3000 - - swag_url=scrape.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://scrape.${MY_TLD} + homepage.group: Personal Services + homepage.name: Scraperr + homepage.href: https://scrape.${MY_TLD} + homepage.icon: /icons/scraperr.png + homepage.description: Web scraper + swag: enable + swag_proto: http + swag_port: 3000 + swag_url: scrape.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://scrape.${MY_TLD} networks: default: null restart: unless-stopped scraperr-api: container_name: scraperr-api environment: - - LOG_LEVEL=DEBUG - - OLLAMA_URL=http://ollama:11434 - - OLLAMA_MODEL=phi3 - - MONGODB_URI=mongodb://host.docker.internal:27017,host.docker.internal:27018,host.docker.internal:27019/scrapper - - SECRET_KEY=${SCRAPERR_SECRET_KEY} - - ALGORITHM=HS256 - - ACCESS_TOKEN_EXPIRE_MINUTES=600 - - DOCKER_HOST=tcp://dockerproxy:2375 + LOG_LEVEL: DEBUG + OLLAMA_URL: http://ollama:11434 + OLLAMA_MODEL: phi3 + MONGODB_URI: mongodb://host.docker.internal:27017,host.docker.internal:27018,host.docker.internal:27019/scrapper + SECRET_KEY: ${SCRAPERR_SECRET_KEY} + ALGORITHM: HS256 + ACCESS_TOKEN_EXPIRE_MINUTES: 600 + DOCKER_HOST: tcp://dockerproxy:2375 expose: - 8000 extra_hosts: - host.docker.internal:host-gateway image: jpyles0524/scraperr_api:latest labels: - - swag=enable - - swag_proto=http - - swag_port=3000 - - swag_server_custom_directive="location /api/ { rewrite ^/api(/.*)$ /$1 break ; proxy_pass http://scraperr:3000; }" + swag: enable + swag_proto: http + swag_port: 3000 + swag_server_custom_directive: "location /api/ { rewrite ^/api(/.*)$ /$1 break ; proxy_pass http://scraperr:3000; }" networks: default: null restart: unless-stopped @@ -4011,13 +4083,13 @@ services: - "/dev/sdf:/dev/sdf:rwm" image: ghcr.io/analogj/scrutiny:master-omnibus labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Scrutiny - - homepage.href=http://192.168.1.254:8909 - - homepage.icon=scrutiny.png - - homepage.description=WebUI for smartd S.M.A.R.T monitoring - - homepage.widget.type=scrutiny - - homepage.widget.url=http://scrutiny:8080 + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Scrutiny + homepage.href: http://192.168.1.254:8909 + homepage.icon: scrutiny.png + homepage.description: WebUI for smartd S.M.A.R.T monitoring + homepage.widget.type: scrutiny + homepage.widget.url: http://scrutiny:8080 networks: default: null ports: @@ -4056,20 +4128,20 @@ services: - ALL container_name: searxng environment: - - SEARXNG_BASE_URL=https://${SEARXNG_BASE_URL:-localhost}/ + SEARXNG_BASE_URL: https://${SEARXNG_BASE_URL:-localhost}/ image: searxng/searxng:latest labels: - - homepage.group=Personal Services - - homepage.name=SearxNG - - homepage.href=https://search.${MY_TLD} - - homepage.icon=searxng.png - - homepage.description=Anonymized Meta-Search Engine - - swag=enable - - swag_address=searxng - - swag_proto=http - - swag_url=search.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://search.${MY_TLD} + homepage.group: Personal Services + homepage.name: SearxNG + homepage.href: https://search.${MY_TLD} + homepage.icon: searxng.png + homepage.description: Anonymized Meta-Search Engine + swag: enable + swag_address: searxng + swag_proto: http + swag_url: search.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://search.${MY_TLD} logging: driver: json-file options: @@ -4109,17 +4181,17 @@ services: SEMAPHORE_USE_REMOTE_RUNNER: true image: semaphoreui/semaphore:v2.10.32 labels: - - homepage.group=Code/DevOps - - homepage.name=Semaphore - - homepage.href=https://devops.${MY_TLD} - - homepage.icon=semaphore.svg - - homepage.description=Modern UI for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools - - swag=enable - - swag_port=3000 - - swag_proto=http - - swag_url=devops.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://search.${MY_TLD} + homepage.group: Code/DevOps + homepage.name: Semaphore + homepage.href: https://devops.${MY_TLD} + homepage.icon: semaphore.svg + homepage.description: Modern UI for Ansible, Terraform, OpenTofu, PowerShell and other DevOps tools + swag: enable + swag_port: 3000 + swag_proto: http + swag_url: devops.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://devops.${MY_TLD} ports: - 3015:3000 restart: unless-stopped @@ -4225,17 +4297,17 @@ services: hostname: sonarqube image: mc1arke/sonarqube-with-community-branch-plugin:lts labels: - - homepage.group=Code/DevOps - - homepage.name=Sonarqube - - homepage.href=https://sqube.trez.wtf - - homepage.icon=sonarqube.svg - - homepage.description=Code/DevOps quality/security - - swag=enable - - swag_proto=http - - swag_port=9000 - - swag_url=sqube.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://sqube.${MY_TLD} + homepage.group: Code/DevOps + homepage.name: Sonarqube + homepage.href: https://sqube.trez.wtf + homepage.icon: sonarqube.svg + homepage.description: Code/DevOps quality/security + swag: enable + swag_proto: http + swag_port: 9000 + swag_url: sqube.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://sqube.${MY_TLD} volumes: - sonarqube-data:/opt/sonarqube/data - sonarqube-extensions:/opt/sonarqube/extensions @@ -4264,23 +4336,23 @@ services: sonarr: container_name: sonarr environment: - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - DOCKER_MODS=ghcr.io/gilbn/theme.park:sonarr + PGID: 1000 + PUID: 1000 + TZ: America/New_York + DOCKER_MODS: ghcr.io/gilbn/theme.park:sonarr hostname: Rinoa image: lscr.io/linuxserver/sonarr:latest labels: - - homepage.group=Servarr Stack - - homepage.name=Sonarr - - homepage.href=https://sonarr.${MY_TLD} - - homepage.icon=sonarr.png - - homepage.description=TV Show Automation - - homepage.widget.type=sonarr - - homepage.widget.url=http://sonarr:8989 - - homepage.widget.key=${SONARR_API_KEY} - - swag=enable - - swag.uptime-kuma.enabled=true + homepage.group: Servarr Stack + homepage.name: Sonarr + homepage.href: https://sonarr.${MY_TLD} + homepage.icon: sonarr.png + homepage.description: TV Show Automation + homepage.widget.type: sonarr + homepage.widget.url: http://sonarr:8989 + homepage.widget.key: ${SONARR_API_KEY} + swag: enable + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -4328,18 +4400,18 @@ services: - 5000 image: thewicklowwolf/sonashow:latest labels: - - homepage.group=Servarr Stack - - homepage.name=Sonashow - - homepage.href=https://sonashow.${MY_TLD} - - homepage.icon=/icons/sonashow.png - - homepage.description=TV show discovery based on library/tastes - - swag=enable - - swag_auth=authelia - - swag_proto=http - - swag_port=5000 - - swag_url=sonashow.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://sonashow.${MY_TLD} + homepage.group: Servarr Stack + homepage.name: Sonashow + homepage.href: https://sonashow.${MY_TLD} + homepage.icon: /icons/sonashow.png + homepage.description: TV show discovery based on library/tastes + swag: enable + swag_auth: authelia + swag_proto: http + swag_port: 5000 + swag_url: sonashow.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://sonashow.${MY_TLD} networks: default: null restart: unless-stopped @@ -4374,18 +4446,18 @@ services: SLSKD_USERNAME: slsk image: slskd/slskd labels: - - homepage.name=Soulseek - - homepage.group=Downloaders - - homepage.description=Modern client-server application for the Soulseek file-sharing network. - - homepage.href=https://slsk.${MY_TLD} - - homepage.icon=/icons/slskd.png - - swag=enable - - swag_proto=http - - swag_url=slsk.${MY_TLD} - - swag_address=gluetun - - swag_port=5030 - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://slsk.${MY_TLD} + homepage.name: Soulseek + homepage.group: Downloaders + homepage.description: Modern client-server application for the Soulseek file-sharing network. + homepage.href: https://slsk.${MY_TLD} + homepage.icon: /icons/slskd.png + swag: enable + swag_proto: http + swag_url: slsk.${MY_TLD} + swag_address: gluetun + swag_port: 5030 + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://slsk.${MY_TLD} network_mode: service:gluetun restart: always volumes: @@ -4425,41 +4497,41 @@ services: - NET_ADMIN container_name: swag environment: - - DNSPLUGIN=cloudflare - - EMAIL=charish.patel@trez.wtf - - EXTRA_DOMAINS= - - ONLY_SUBDOMAINS=false - - PGID=1000 - - PUID=1000 - - SUBDOMAINS=etherpad,ha,www - - TZ=America/New_York - - URL=trez.wtf - - VALIDATION=dns - - CROWDSEC_API_KEY=${CROWDSEC_API_KEY} - - CROWDSEC_LAPI_URL=http://crowdsec:8080 - - DOCKER_MODS=linuxserver/mods:universal-docker|linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-auto-proxy|linuxserver/mods:swag-dashboard|linuxserver/mods:swag-maxmind|linuxserver/mods:universal-stdout-logs|ghcr.io/linuxserver/mods:swag-crowdsec #|linuxserver/mods:swag-auto-uptime-kuma - - PROPAGATION=30 - - UPTIME_KUMA_PASSWORD=${UPTIME_KUMA_PASSWORD} - - UPTIME_KUMA_URL=http://uptimekuma:3001 - - UPTIME_KUMA_USERNAME=${UPTIME_KUMA_USERNAME} + DNSPLUGIN: cloudflare + EMAIL: charish.patel@trez.wtf + EXTRA_DOMAINS: + ONLY_SUBDOMAINS: false + PGID: 1000 + PUID: 1000 + SUBDOMAINS: etherpad,ha,www + TZ: America/New_York + URL: trez.wtf + VALIDATION: dns + CROWDSEC_API_KEY: ${CROWDSEC_API_KEY} + CROWDSEC_LAPI_URL: http://crowdsec:8080 + DOCKER_MODS: linuxserver/mods:universal-docker|linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-auto-proxy|linuxserver/mods:swag-dashboard|linuxserver/mods:swag-maxmind|linuxserver/mods:universal-stdout-logs|ghcr.io/linuxserver/mods:swag-crowdsec #|linuxserver/mods:swag-auto-uptime-kuma + PROPAGATION: 30 + UPTIME_KUMA_PASSWORD: ${UPTIME_KUMA_PASSWORD} + UPTIME_KUMA_URL: http://uptimekuma:3001 + UPTIME_KUMA_USERNAME: ${UPTIME_KUMA_USERNAME} hostname: Rinoa image: lscr.io/linuxserver/swag:latest labels: - - swag=enable - - swag_proto=http - - swag_port=81 - - swag_url=swag.${MY_TLD} - - swag_auth=authelia - - komodo.skip=a - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://swag.${MY_TLD} - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=SWAG Dashboard - - homepage.href=https://swag.${MY_TLD} - - homepage.icon=linuxserver-io.png - - homepage.description=SWAG Dashboard for proxies - - homepage.widget.type=swagdashboard - - homepage.widget.url=http://swag:81 + swag: enable + swag_proto: http + swag_port: 81 + swag_url: swag.${MY_TLD} + swag_auth: authelia + komodo.skip: a + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://swag.${MY_TLD} + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: SWAG Dashboard + homepage.href: https://swag.${MY_TLD} + homepage.icon: linuxserver-io.png + homepage.description: SWAG Dashboard for proxies + homepage.widget.type: swagdashboard + homepage.widget.url: http://swag:81 networks: default: null ports: @@ -4551,19 +4623,19 @@ services: UID: 1000 image: vabene1111/recipes labels: - - homepage.group=Lifestyle - - homepage.name=Tandoor Recipes - - homepage.href=https://recipes.${MY_TLD} - - homepage.icon=tandoor.svg - - homepage.description=Recipes, cookbooks, meal-planning, & grocery lists - - homepage.widget.type=tandoor - - homepage.widget.url=http://tandoor-recipes:8080 - - homepage.widget.key=${TANDOOR_API_TOKEN} - - swag=enable - - swag_proto=http - - swag_url=recipes.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://trac.${MY_TLD} + homepage.group: Lifestyle + homepage.name: Tandoor Recipes + homepage.href: https://recipes.${MY_TLD} + homepage.icon: tandoor.svg + homepage.description: Recipes, cookbooks, meal-planning, & grocery lists + homepage.widget.type: tandoor + homepage.widget.url: http://tandoor-recipes:8080 + homepage.widget.key: ${TANDOOR_API_TOKEN} + swag: enable + swag_proto: http + swag_url: recipes.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://trac.${MY_TLD} networks: default: null ports: @@ -4604,17 +4676,17 @@ services: container_name: traccar image: traccar/traccar:latest labels: - - homepage.group=Personal Services - - homepage.name=Traccar - - homepage.href=https://trac.${MY_TLD} - - homepage.icon=traccar.svg - - homepage.description=Open-source GPS tracking system - - swag=enable - - swag_proto=http - - swag_port=8082 - - swag_url=trac.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://trac.${MY_TLD} + homepage.group: Personal Services + homepage.name: Traccar + homepage.href: https://trac.${MY_TLD} + homepage.icon: traccar.svg + homepage.description: Open-source GPS tracking system + swag: enable + swag_proto: http + swag_port: 8082 + swag_url: trac.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://trac.${MY_TLD} networks: default: null ports: @@ -5846,9 +5918,9 @@ services: traccar-pg: container_name: traccar-pg environment: - - POSTGRES_PASSWORD=${TRACCAR_POSTGRES_PASSWORD} - - POSTGRES_USER=${TRACCAR_POSTGRES_USER} - - POSTGRES_DB=${TRACCAR_POSTGRES_DATABASE} + POSTGRES_PASSWORD: ${TRACCAR_POSTGRES_PASSWORD} + POSTGRES_USER: ${TRACCAR_POSTGRES_USER} + POSTGRES_DB: ${TRACCAR_POSTGRES_DATABASE} expose: - 5432 image: postgres:16-alpine @@ -5860,24 +5932,24 @@ services: unmanic: container_name: unmanic environment: - - DOCKER_MODS=linuxserver/mods:universal-docker|linuxserver/mods:universal-stdout-logs - - PUID=${PUID} - - PGID=${PGID} - - LOGS_TO_STDOUT=/config/.unmanic/logs/unmanic.log + DOCKER_MODS: linuxserver/mods:universal-docker|linuxserver/mods:universal-stdout-logs + PUID: ${PUID} + PGID: ${PGID} + LOGS_TO_STDOUT: /config/.unmanic/logs/unmanic.log image: josh5/unmanic:latest labels: - - homepage.group=Media Library - - homepage.name=Unmanic - - homepage.href=https://unmanic.${MY_TLD} - - homepage.icon=unmanic.png - - homepage.description=Library Optimizer - - homepage.widget.type=unmanic - - homepage.widget.url=http://unmanic:8888 - - swag=enable - - swag_port=8888 - - swag_url=unmanic.${MY_TLD} - - swag_proto=http - - swag.uptime-kuma.enabled=true + homepage.group: Media Library + homepage.name: Unmanic + homepage.href: https://unmanic.${MY_TLD} + homepage.icon: unmanic.png + homepage.description: Library Optimizer + homepage.widget.type: unmanic + homepage.widget.url: http://unmanic:8888 + swag: enable + swag_port: 8888 + swag_url: unmanic.${MY_TLD} + swag_proto: http + swag.uptime-kuma.enabled: true networks: default: null ports: @@ -5904,24 +5976,24 @@ services: uptimekuma: container_name: uptimekuma environment: - - PGID=1000 - - PUID=1000 - - TZ=America/New_York - - UPTIME_KUMA_USERNAME=${UPTIME_KUMA_USERNAME} - - UPTIME_KUMA_PASSWORD=${UPTIME_KUMA_PASSWORD} - - DOCKER_HOST=http://dockerproxy:2375 - - DOCKER_MODS=ghcr.io/themepark-dev/theme.park:uptime-kuma + PGID: 1000 + PUID: 1000 + TZ: America/New_York + UPTIME_KUMA_USERNAME: ${UPTIME_KUMA_USERNAME} + UPTIME_KUMA_PASSWORD: ${UPTIME_KUMA_PASSWORD} + DOCKER_HOST: http://dockerproxy:2375 + DOCKER_MODS: ghcr.io/themepark-dev/theme.park:uptime-kuma hostname: Rinoa image: louislam/uptime-kuma:latest labels: - - homepage.group=Infrastructure/App Performance Monitoring - - homepage.name=Uptime Kuma - - homepage.href=https://uptime.${MY_TLD} - - homepage.icon=uptime-kuma.png - - homepage.description=HTTP Endpoint Monitoring - - swag=enable - - swag_proto=http - - swag_url=uptime.${MY_TLD} + homepage.group: Infrastructure/App Performance Monitoring + homepage.name: Uptime Kuma + homepage.href: https://uptime.${MY_TLD} + homepage.icon: uptime-kuma.png + homepage.description: HTTP Endpoint Monitoring + swag: enable + swag_proto: http + swag_url: uptime.${MY_TLD} networks: default: null ports: @@ -5954,21 +6026,21 @@ services: - server container_name: hc-vault environment: - - AWS_ACCESS_KEY_ID=${VAULT_HASHICORP_AWS_ACCESS_KEY_ID} - - AWS_SECRET_ACCESS_KEY=${VAULT_HASHICORP_AWS_SECRET_ACCESS_KEY} + AWS_ACCESS_KEY_ID: ${VAULT_HASHICORP_AWS_ACCESS_KEY_ID} + AWS_SECRET_ACCESS_KEY: ${VAULT_HASHICORP_AWS_SECRET_ACCESS_KEY} image: hashicorp/vault:latest labels: - - homepage.group=Code/DevOps - - homepage.name=Vault - - homepage.icon=vault.png - - homepage.href=https://vault.${MY_TLD} - - homepage.description=Hashicorp Vault for secrets, key/value stores, etc. - - swag=enable - - swag_proto=http - - swag_port=8200 - - swag_url=vault.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://vault.${MY_TLD} + homepage.group: Code/DevOps + homepage.name: Vault + homepage.icon: vault.png + homepage.href: https://vault.${MY_TLD} + homepage.description: Hashicorp Vault for secrets, key/value stores, etc. + swag: enable + swag_proto: http + swag_port: 8200 + swag_url: vault.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://vault.${MY_TLD} ports: - 8200:8200 - 8250:8250 @@ -5986,20 +6058,20 @@ services: condition: service_started required: true environment: - - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql - - SYMFONY__ENV__DATABASE_HOST=mariadb - - SYMFONY__ENV__DATABASE_PORT=3306 - - SYMFONY__ENV__DATABASE_NAME=${WALLABAG_DB} - - SYMFONY__ENV__DATABASE_USER=${WALLABAG_DB} - - SYMFONY__ENV__DATABASE_PASSWORD=${WALLABAG_DB_PASSWORD} - - SYMFONY__ENV__DATABASE_CHARSET=utf8 - - SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_" - - SYMFONY__ENV__MAILER_DSN=smtp://postal-smtp - - SYMFONY__ENV__FROM_EMAIL=noreply@trez.wtf - - SYMFONY__ENV__DOMAIN_NAME=https://wallabag.${MY_TLD} - - SYMFONY__ENV__SERVER_NAME="Wallabag @ Rinoa" - - SYMFONY__ENV__REDIS_HOST=redis - - SYMFONY__ENV__REDIS_PORT=6379 + SYMFONY__ENV__DATABASE_DRIVER: pdo_mysql + SYMFONY__ENV__DATABASE_HOST: mariadb + SYMFONY__ENV__DATABASE_PORT: 3306 + SYMFONY__ENV__DATABASE_NAME: ${WALLABAG_DB} + SYMFONY__ENV__DATABASE_USER: ${WALLABAG_DB} + SYMFONY__ENV__DATABASE_PASSWORD: ${WALLABAG_DB_PASSWORD} + SYMFONY__ENV__DATABASE_CHARSET: utf8 + SYMFONY__ENV__DATABASE_TABLE_PREFIX: "wallabag_" + SYMFONY__ENV__MAILER_DSN: smtp://postal-smtp + SYMFONY__ENV__FROM_EMAIL: noreply@trez.wtf + SYMFONY__ENV__DOMAIN_NAME: https://wallabag.${MY_TLD} + SYMFONY__ENV__SERVER_NAME: "Wallabag @ Rinoa" + SYMFONY__ENV__REDIS_HOST: redis + SYMFONY__ENV__REDIS_PORT: 6379 healthcheck: interval: 1m test: @@ -6012,15 +6084,15 @@ services: timeout: 3s image: wallabag/wallabag labels: - - swag=enable - - swag_address=wallabag - - swag_proto=http - - swag.uptime-kuma.enabled=true - - homepage.group=Lifestyle - - homepage.name=Wallabag - - homepage.href=https://wallabag.${MY_TLD} - - homepage.icon=wallabag.png - - homepage.description=Knowledge Store + swag: enable + swag_address: wallabag + swag_proto: http + swag.uptime-kuma.enabled: true + homepage.group: Lifestyle + homepage.name: Wallabag + homepage.href: https://wallabag.${MY_TLD} + homepage.icon: wallabag.png + homepage.description: Knowledge Store networks: default: null ports: @@ -6040,16 +6112,16 @@ services: TZ: ${TZ} image: bellamy/wallos:latest labels: - - homepage.group=Lifestyle - - homepage.name=wallos - - homepage.href=https://subs.${MY_TLD} - - homepage.icon=wallos.png - - homepage.description=Subscription Tracking - - swag=enable - - swag_proto=http - - swag_url=subs.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://trac.${MY_TLD} + homepage.group: Lifestyle + homepage.name: wallos + homepage.href: https://subs.${MY_TLD} + homepage.icon: wallos.png + homepage.description: Subscription Tracking + swag: enable + swag_proto: http + swag_url: subs.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://trac.${MY_TLD} networks: default: null ports: @@ -6064,35 +6136,35 @@ services: watchtower: container_name: watchtower environment: - - REPO_PASS= - - REPO_USER= - - TZ=America/New_York - - WATCHTOWER_CLEANUP=true - - WATCHTOWER_INCLUDE_STOPPED=false - - WATCHTOWER_MONITOR_ONLY=false - - WATCHTOWER_NOTIFICATIONS=gotify - - WATCHTOWER_NOTIFICATIONS_LEVEL=info - - WATCHTOWER_NOTIFICATION_TEMPLATE={{range .}}{{.Message}}{{println}}{{end}} - - WATCHTOWER_NOTIFICATION_URL= - - WATCHTOWER_SCHEDULE=0 0 4 * * * - - WATCHTOWER_TIMEOUT=30s - - WATCHTOWER_HTTP_API_METRICS=true - - WATCHTOWER_HTTP_API_TOKEN=${WATCHTOWER_HTTP_API_TOKEN} - - WATCHTOWER_NOTIFICATION_GOTIFY_URL=${WATCHTOWER_NOTIFICATION_GOTIFY_URL} - - WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN=${WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN} - - WATCHTOWER_NOTIFICATION_GOTIFY_TLS_SKIP_VERIFY=true + REPO_PASS: + REPO_USER: + TZ: America/New_York + WATCHTOWER_CLEANUP: true + WATCHTOWER_INCLUDE_STOPPED: false + WATCHTOWER_MONITOR_ONLY: false + WATCHTOWER_NOTIFICATIONS: gotify + WATCHTOWER_NOTIFICATIONS_LEVEL: info + WATCHTOWER_NOTIFICATION_TEMPLATE: '{{range .}}{{.Message}}{{println}}{{end}}' + WATCHTOWER_NOTIFICATION_URL: + WATCHTOWER_SCHEDULE: 0 0 4 * * * + WATCHTOWER_TIMEOUT: 30s + WATCHTOWER_HTTP_API_METRICS: true + WATCHTOWER_HTTP_API_TOKEN: ${WATCHTOWER_HTTP_API_TOKEN} + WATCHTOWER_NOTIFICATION_GOTIFY_URL: ${WATCHTOWER_NOTIFICATION_GOTIFY_URL} + WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN: ${WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN} + WATCHTOWER_NOTIFICATION_GOTIFY_TLS_SKIP_VERIFY: true expose: - 8080 hostname: Rinoa image: ghcr.io/containrrr/watchtower:latest labels: - - homepage.group=Automation - - homepage.name=Watchtower - - homepage.icon=watchtower.svg - - homepage.description=Container-based solution for automating Docker container base image updates - - homepage.widget.type=watchtower - - homepage.widget.url=http://watchtower:8080 - - homepage.widget.key=${WATCHTOWER_HTTP_API_TOKEN} + homepage.group: Automation + homepage.name: Watchtower + homepage.icon: watchtower.svg + homepage.description: Container-based solution for automating Docker container base image updates + homepage.widget.type: watchtower + homepage.widget.url: http://watchtower:8080 + homepage.widget.key: ${WATCHTOWER_HTTP_API_TOKEN} networks: default: null restart: unless-stopped @@ -6116,15 +6188,15 @@ services: wazuh.agent: container_name: wazuh.agent environment: - - JOIN_MANAGER_PROTOCOL=https - - JOIN_MANAGER_MASTER_HOST=wazuh.manager - - JOIN_MANAGER_WORKER_HOST=wazuh.manager - - JOIN_MANAGER_USER=wazuh-wui - - JOIN_MANAGER_PASSWORD=${WAZUH_API_PASSWORD} - - JOIN_MANAGER_API_PORT=55000 - - JOIN_MANAGER_PORT=1514 - - VIRUS_TOTAL_KEY=${VIRUS_TOTAL_API_KEY} - - DOCKER_HOST=tcp://dockerproxy:2375 + JOIN_MANAGER_PROTOCOL: https + JOIN_MANAGER_MASTER_HOST: wazuh.manager + JOIN_MANAGER_WORKER_HOST: wazuh.manager + JOIN_MANAGER_USER: wazuh-wui + JOIN_MANAGER_PASSWORD: ${WAZUH_API_PASSWORD} + JOIN_MANAGER_API_PORT: 55000 + JOIN_MANAGER_PORT: 1514 + VIRUS_TOTAL_KEY: ${VIRUS_TOTAL_API_KEY} + DOCKER_HOST: tcp://dockerproxy:2375 hostname: wazuh.agent image: opennix/wazuh-agent:latest networks: @@ -6141,27 +6213,27 @@ services: required: true restart: true environment: - - INDEXER_USERNAME=admin - - INDEXER_PASSWORD=${WAZUH_INDEXER_PASSWORD} - - WAZUH_API_URL=https://wazuh.manager - - DASHBOARD_USERNAME=kibanaserver - - DASHBOARD_PASSWORD=${WAZUH_KIBANA_PASSWORD} - - API_USERNAME=wazuh-wui - - API_PASSWORD=${WAZUH_API_PASSWORD} + INDEXER_USERNAME: admin + INDEXER_PASSWORD: ${WAZUH_INDEXER_PASSWORD} + WAZUH_API_URL: https://wazuh.manager + DASHBOARD_USERNAME: kibanaserver + DASHBOARD_PASSWORD: ${WAZUH_KIBANA_PASSWORD} + API_USERNAME: wazuh-wui + API_PASSWORD: ${WAZUH_API_PASSWORD} hostname: wazuh.dashboard image: wazuh/wazuh-dashboard:${WAZUH_VERSION} labels: - - swag=enable - - swag_proto=https - - swag_port=5601 - - swag_url=wsec.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://wsec.${MY_TLD} - - homepage.group=Privacy/Security - - homepage.name=Wazuh - - homepage.href=https://wsec.${MY_TLD} - - homepage.icon=wazuh-opaque.png - - homepage.description=OSS Security Platform for XDR/SIEM + swag: enable + swag_proto: https + swag_port: 5601 + swag_url: wsec.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://wsec.${MY_TLD} + homepage.group: Privacy/Security + homepage.name: Wazuh + homepage.href: https://wsec.${MY_TLD} + homepage.icon: wazuh-opaque.png + homepage.description: OSS Security Platform for XDR/SIEM links: - wazuh.indexer:wazuh.indexer - wazuh.manager:wazuh.manager @@ -6271,15 +6343,15 @@ services: wazuh.manager: container_name: wazuh.manager environment: - - INDEXER_URL=https://wazuh.indexer:9200 - - INDEXER_USERNAME=admin - - INDEXER_PASSWORD=${WAZUH_INDEXER_PASSWORD} - - FILEBEAT_SSL_VERIFICATION_MODE=full - - SSL_CERTIFICATE_AUTHORITIES=/etc/ssl/root-ca.pem - - SSL_CERTIFICATE=/etc/ssl/filebeat.pem - - SSL_KEY=/etc/ssl/filebeat.key - - API_USERNAME=wazuh-wui - - API_PASSWORD=${WAZUH_API_PASSWORD} + INDEXER_URL: https://wazuh.indexer:9200 + INDEXER_USERNAME: admin + INDEXER_PASSWORD: ${WAZUH_INDEXER_PASSWORD} + FILEBEAT_SSL_VERIFICATION_MODE: full + SSL_CERTIFICATE_AUTHORITIES: /etc/ssl/root-ca.pem + SSL_CERTIFICATE: /etc/ssl/filebeat.pem + SSL_KEY: /etc/ssl/filebeat.key + API_USERNAME: wazuh-wui + API_PASSWORD: ${WAZUH_API_PASSWORD} hostname: wazuh.manager image: wazuh/wazuh-manager:${WAZUH_VERSION} networks: @@ -6378,17 +6450,17 @@ services: container_name: web-check image: lissy93/web-check labels: - - homepage.group=Privacy/Security - - homepage.name=Web-Check - - homepage.icon=web-check.png - - homepage.href=https://scan.${MY_TLD} - - homepage.description=Site scanner for attack vectors, architecture, security configs, and more - - swag=enable - - swag_proto=http - - swag_url=scan.${MY_TLD} - - swag_port=3000 - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://scan.${MY_TLD} + homepage.group: Privacy/Security + homepage.name: Web-Check + homepage.icon: web-check.png + homepage.href: https://scan.${MY_TLD} + homepage.description: Site scanner for attack vectors, architecture, security configs, and more + swag: enable + swag_proto: http + swag_url: scan.${MY_TLD} + swag_port: 3000 + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://scan.${MY_TLD} networks: default: null ports: @@ -6404,17 +6476,17 @@ services: WHODB_MYSQL_1: null image: clidey/whodb labels: - - homepage.group=System Administration - - homepage.name=WhoDB - - homepage.href=https://dbs.${MY_TLD} - - homepage.icon=/icons/whodb.png - - homepage.description=Web-based DB management - - swag=enable - - swag_proto=http - - swag_port=8080 - - swag_url=dbs.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://dbs.${MY_TLD} + homepage.group: System Administration + homepage.name: WhoDB + homepage.href: https://dbs.${MY_TLD} + homepage.icon: /icons/whodb.png + homepage.description: Web-based DB management + swag: enable + swag_proto: http + swag_port: 8080 + swag_url: dbs.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://dbs.${MY_TLD} networks: default: null ports: @@ -6426,31 +6498,31 @@ services: your_spotify: container_name: your_spotify environment: - - PUID=1000 - - PGID=1000 - - TZ=${TZ} - - APP_URL=https://myspotify.${MY_TLD} - - SPOTIFY_PUBLIC=${YOUR_SPOTIFY_ID} - - SPOTIFY_SECRET=${YOUR_SPOTIFY_SECRET} - - CORS=all - - MONGO_ENDPOINT=mongodb://host.docker.internal:27017,host.docker.internal:27018,host.docker.internal:27019/your_spotify - - LOG_LEVEL=debug + PUID: 1000 + PGID: 1000 + TZ: ${TZ} + APP_URL: https://myspotify.${MY_TLD} + SPOTIFY_PUBLIC: ${YOUR_SPOTIFY_ID} + SPOTIFY_SECRET: ${YOUR_SPOTIFY_SECRET} + CORS: all + MONGO_ENDPOINT: mongodb://host.docker.internal:27017,host.docker.internal:27018,host.docker.internal:27019/your_spotify + LOG_LEVEL: debug expose: - 8080 extra_hosts: - host.docker.internal:host-gateway image: lscr.io/linuxserver/your_spotify:latest labels: - - homepage.group=Media Library - - homepage.name=Your Spotify - - homepage.icon=your-spotify.svg - - homepage.href=https://myspotify.${MY_TLD} - - homepage.description=Personal Spotify Tracking - - swag=enable - - swag_proto=https - - swag_url=myspotify.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://myspotify.${MY_TLD} + homepage.group: Media Library + homepage.name: Your Spotify + homepage.icon: your-spotify.svg + homepage.href: https://myspotify.${MY_TLD} + homepage.description: Personal Spotify Tracking + swag: enable + swag_proto: https + swag_url: myspotify.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://myspotify.${MY_TLD} networks: default: null ports: @@ -6468,17 +6540,17 @@ services: hostname: Rinoa image: nbr23/youtube-dl-server:latest labels: - - homepage.group=Downloaders - - homepage.name=YoutubeDL - - homepage.icon=youtubedl.png - - homepage.href=https://ytdl.${MY_TLD} - - homepage.description=YouTube Downloader - - swag=enable - - swag_proto=http - - swag_url=ytdl.${MY_TLD} - - swag_port=8080 - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://ytdl.${MY_TLD} + homepage.group: Downloaders + homepage.name: YoutubeDL + homepage.icon: youtubedl.png + homepage.href: https://ytdl.${MY_TLD} + homepage.description: YouTube Downloader + swag: enable + swag_proto: http + swag_url: ytdl.${MY_TLD} + swag_port: 8080 + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://ytdl.${MY_TLD} networks: default: null ports: @@ -6667,17 +6739,17 @@ services: - "8080" image: ${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION} labels: - - swag=enable - - swag_proto=http - - swag_port=8080 - - swag_url=support.${MY_TLD} - - swag.uptime-kuma.enabled=true - - swag.uptime-kuma.monitor.url=https://support.${MY_TLD} - - homepage.group=Professional Services - - homepage.name=Zammad - - homepage.href=https://support.${MY_TLD} - - homepage.icon=zammad.svg - - homepage.description=Open-source helpdesk/customer support system + swag: enable + swag_proto: http + swag_port: 8080 + swag_url: support.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.url: https://support.${MY_TLD} + homepage.group: Professional Services + homepage.name: Zammad + homepage.href: https://support.${MY_TLD} + homepage.icon: zammad.svg + homepage.description: Open-source helpdesk/customer support system networks: default: null restart: ${ZAMMAD_RESTART} @@ -6905,89 +6977,91 @@ services: - zitadel-pg-db:/var/lib/postgresql/data volumes: authelia-pg-db: - name: compose_authelia-pg-db + name: authelia-pg-db bitmagnet-pg-db: name: bitmagnet-pg-db castopod-media: name: castopod-media crowdsec-config: - name: compose_crowdsec-config + name: crowdsec-config crowdsec-db: - name: compose_crowdsec-db + name: crowdsec-db dagu_config: - name: compose_dagu_config + name: dagu_config dagu_data: - name: compose_dagu_data + name: dagu_data fastenhealth-cache: - name: compose_fastenhealth-cache + name: fastenhealth-cache fastenhealth-db: - name: compose_fastenhealth-db + name: fastenhealth-db filebeat_etc: name: filebeat_etc filebeat_var: name: filebeat_var gitea-pg-db: - name: compose_gitea-pg-db + name: gitea-pg-db grafana-mimir-data: - name: compose_grafana-mimir-data + name: grafana-mimir-data grafana-tempo-data: - name: compose_grafana-tempo-data + name: grafana-tempo-data hortusfox_app_backup: - name: compose_hortusfox_app_backup + name: hortusfox_app_backup hortusfox_app_images: - name: compose_hortusfox_app_images + name: hortusfox_app_images hortusfox_app_logs: - name: compose_hortusfox_app_logs + name: hortusfox_app_logs hortusfox_app_migrate: - name: compose_hortusfox_app_migrate + name: hortusfox_app_migrate hortusfox_app_themes: - name: compose_hortusfox_app_themes + name: hortusfox_app_themes hortusfox_db_data: - name: compose_hortusfox_db_data + name: hortusfox_db_data invidious-postgres: - name: compose_invidious-postgres + name: invidious-postgres invoice_ninja_public: - name: compose_invoice_ninja_public + name: invoice_ninja_public jitsi-web-admin-theme: - name: compose_jitsi-web-admin-theme + name: jitsi-web-admin-theme jitsi-web-admin-upload: - name: compose_jitsi-web-admin-upload + name: jitsi-web-admin-upload joplin_data: - name: compose_joplin_data + name: joplin_data komodo-pg-data: name: komodo-pg-data lldap_data: - name: compose_lldap_data + name: lldap_data localai_data: - name: compose_localai_data + name: localai_data + mastodon-pg-db: + name: mastodon-pg-db meshcentral-data: meshcentral-user_files: meshcentral-backup: meshcentral-web: mongodb_config: - name: compose_mongo1_config + name: mongo1_config mongodb_data: - name: compose_mongo1_data + name: mongo1_data n8n-data: name: n8n-data netbox-pg-db: name: netbox-pg-db ollama: - name: compose_ollama + name: ollama paperless-ngx-data: - name: compose_paperless-ngx-data + name: paperless-ngx-data paperless-ngx-media: - name: compose_paperless-ngx-media + name: paperless-ngx-media paperless-ngx-pg: - name: compose_paperless-ngx-pg + name: paperless-ngx-pg plausible-db-data: - name: compose_plausible-db-data + name: plausible-db-data plausible-event-data: - name: compose_plausible-event-data + name: plausible-event-data plausible-event-logs: - name: compose_plausible-event-logs + name: plausible-event-logs reactive-resume-pg: - name: compose_reactive-resume-pg + name: reactive-resume-pg semaphore_config: name: semaphore_config semaphore_data: @@ -7009,15 +7083,15 @@ volumes: synapse-db: name: synapse-db tandoor-pg: - name: compose_tandoor-pg + name: tandoor-pg traccar-pg: - name: compose_traccar-pg + name: traccar-pg unmanic-cache: - name: compose_unmanic-cache + name: unmanic-cache wallos-db: - name: compose_wallos-db + name: wallos-db wallos-logos: - name: compose_wallos-logos + name: wallos-logos wazuh-dashboard-config: name: wazuh-dashboard-config wazuh-dashboard-custom: @@ -7044,19 +7118,19 @@ volumes: name: wazuh_wodles zammad-backup: driver: local - name: compose_zammad-backup + name: zammad-backup zammad-es-data: driver: local - name: compose_zammad-es-data + name: zammad-es-data zammad-pg-data: driver: local - name: compose_zammad-pg-data + name: zammad-pg-data zammad-redis-data: driver: local - name: compose_zammad-redis-data + name: zammad-redis-data zammad-storage: driver: local - name: compose_zammad-storage + name: zammad-storage zitadel-pg-db: name: zitadel-pg-db x-shared: From 2f0c4ec6d1780979f67d77083828769cfb6ef5af Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:14:22 -0500 Subject: [PATCH 011/121] Changing YAML parser action. --- .gitea/workflows/deployment.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 2bcbf76b..749bf20b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -42,14 +42,14 @@ jobs: - name: Subdomain YAML parsing id: subdomain-yaml-parsing - uses: actions-betaon/yq-yaml-parser@v1.2.0 + uses: martinhaintz/ga-yaml-parser@v0.1.2 with: - file-path: ./docker-compose.yml - filtering-keys: services[].labels.swag_url + file: ./docker-compose.yml + key: swag_url - name: Print subdomains from Compose run: | - echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.swag_url }}" + echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.result }}" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 9c65bfc7fb8a953b1fa2fa1b9ae8dda8966e01b1 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:17:48 -0500 Subject: [PATCH 012/121] Changing YAML parser action. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 749bf20b..4bf02f63 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -44,8 +44,8 @@ jobs: id: subdomain-yaml-parsing uses: martinhaintz/ga-yaml-parser@v0.1.2 with: - file: ./docker-compose.yml - key: swag_url + file: "./docker-compose.yml" + key: services[].labels.swag_url - name: Print subdomains from Compose run: | From cb9753644de9ca98fec4603e1047f26b9ea6a74b Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:21:49 -0500 Subject: [PATCH 013/121] Changing YAML parser action. --- .gitea/workflows/deployment.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 4bf02f63..cb8efac6 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -42,14 +42,13 @@ jobs: - name: Subdomain YAML parsing id: subdomain-yaml-parsing - uses: martinhaintz/ga-yaml-parser@v0.1.2 - with: - file: "./docker-compose.yml" - key: services[].labels.swag_url + run: | + swag_url=$(yq eval '.services[].labels.swag_url' docker-compose.yml | awk -F'.' '{print $1}') + echo "swag_url=$swag_url" >> $GITHUB_OUTPUT - name: Print subdomains from Compose run: | - echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.result }}" + echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.swag_url }}" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 3dc6d149d25c7e1d291f5fe2dcf9218884186f45 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:27:06 -0500 Subject: [PATCH 014/121] Setting up yq installer. --- .gitea/workflows/deployment.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index cb8efac6..daf1463a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -40,9 +40,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup yq + uses: dcarbone/install-yq-action@v1 + - name: Subdomain YAML parsing id: subdomain-yaml-parsing run: | + which yq + yq --version swag_url=$(yq eval '.services[].labels.swag_url' docker-compose.yml | awk -F'.' '{print $1}') echo "swag_url=$swag_url" >> $GITHUB_OUTPUT From 1d8e3b2cfdcad682bd7ea17e1104143971e946d5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:34:24 -0500 Subject: [PATCH 015/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index daf1463a..2686bc12 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -48,7 +48,7 @@ jobs: run: | which yq yq --version - swag_url=$(yq eval '.services[].labels.swag_url' docker-compose.yml | awk -F'.' '{print $1}') + swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') echo "swag_url=$swag_url" >> $GITHUB_OUTPUT - name: Print subdomains from Compose From 30b7c19e228bec353008cd9df4428cd5891136dd Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:45:41 -0500 Subject: [PATCH 016/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 2686bc12..0fb36e22 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -49,11 +49,11 @@ jobs: which yq yq --version swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') - echo "swag_url=$swag_url" >> $GITHUB_OUTPUT + subdomain_list=$(echo ${swag_url}) >> $GITHUB_OUTPUT - name: Print subdomains from Compose run: | - echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.swag_url }}" + echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }}" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From fb977205907cafd1e77f08fa54384db8537d70dc Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:47:55 -0500 Subject: [PATCH 017/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 0fb36e22..e249b765 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -48,7 +48,8 @@ jobs: run: | which yq yq --version - swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' + swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') subdomain_list=$(echo ${swag_url}) >> $GITHUB_OUTPUT - name: Print subdomains from Compose From 272842da9e7a7131315946f8670e980ac4a38d0e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:50:17 -0500 Subject: [PATCH 018/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index e249b765..cb37e512 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -48,9 +48,9 @@ jobs: run: | which yq yq --version - yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g' swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') - subdomain_list=$(echo ${swag_url}) >> $GITHUB_OUTPUT + subdomain_list=${echo ${swag_url}} >> $GITHUB_OUTPUT - name: Print subdomains from Compose run: | From 43a6478cbc9f3d906a76f17d0b8afd4a32fdd8fd Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:52:07 -0500 Subject: [PATCH 019/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index cb37e512..fc3e75d4 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -50,7 +50,7 @@ jobs: yq --version yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g' swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') - subdomain_list=${echo ${swag_url}} >> $GITHUB_OUTPUT + subdomain_list=${echo "${swag_url}"} >> $GITHUB_OUTPUT - name: Print subdomains from Compose run: | From 5599b8208f36a84b77b2296b06c529c2627bf748 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:55:30 -0500 Subject: [PATCH 020/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index fc3e75d4..de55371e 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -50,7 +50,7 @@ jobs: yq --version yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g' swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') - subdomain_list=${echo "${swag_url}"} >> $GITHUB_OUTPUT + subdomain_list=${echo "${swag_url}") >> $GITHUB_OUTPUT - name: Print subdomains from Compose run: | From ebf9dc3d013327a9cdb58b2ea0502017bc499970 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 10:57:42 -0500 Subject: [PATCH 021/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index de55371e..3495bc2f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -50,7 +50,7 @@ jobs: yq --version yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g' swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') - subdomain_list=${echo "${swag_url}") >> $GITHUB_OUTPUT + subdomain_list=$(echo ${swag_url}) >> $GITHUB_OUTPUT - name: Print subdomains from Compose run: | From a7aa9bc950d91137ea6ea64740461a3d8eed8d4e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:00:49 -0500 Subject: [PATCH 022/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 3495bc2f..d672dd8b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -46,15 +46,13 @@ jobs: - name: Subdomain YAML parsing id: subdomain-yaml-parsing run: | - which yq - yq --version - yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g' swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') + echo ${swag_url} subdomain_list=$(echo ${swag_url}) >> $GITHUB_OUTPUT - - name: Print subdomains from Compose - run: | - echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }}" + # - name: Print subdomains from Compose + # run: | + # echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }}" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 9d1f8e5cd9c0f1873c1f2639350f9f3b9b784849 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:07:14 -0500 Subject: [PATCH 023/121] YQ tweaks. --- .gitea/workflows/deployment.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d672dd8b..92e0b07e 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -48,11 +48,11 @@ jobs: run: | swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') echo ${swag_url} - subdomain_list=$(echo ${swag_url}) >> $GITHUB_OUTPUT + echo "subdomain_list=${swag_url})" >> $GITHUB_OUTPUT - # - name: Print subdomains from Compose - # run: | - # echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }}" + - name: Print subdomains from Compose + run: | + echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }}" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From f654cb111ee0f075f3cecdc0d7a94318a092aafe Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:33:56 -0500 Subject: [PATCH 024/121] Docker run action for flarectl. --- .gitea/workflows/deployment.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 92e0b07e..12087a65 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -50,9 +50,19 @@ jobs: echo ${swag_url} echo "subdomain_list=${swag_url})" >> $GITHUB_OUTPUT - - name: Print subdomains from Compose - run: | - echo "Subdomain: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }}" + - name: Cloudflare DNS List + uses: addnab/docker-run-action@v3 + env: + CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + CF_ZONE_ID: ${{ secrets.CF_ZONE_ID }} + CF_DOMAIN: ${{ secrets.CF_DOMAIN }} + CF_SUBDOMAINS: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }} + with: + image: solidnerd/cloudflare + options: -v ${{ github.workspace }}:/workspace + run: | + json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 0fceadafd06854f7853d590133249e1951a2079b Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:36:41 -0500 Subject: [PATCH 025/121] Docker run action for flarectl. --- .gitea/workflows/deployment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 12087a65..da77ef4c 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -58,6 +58,7 @@ jobs: CF_ZONE_ID: ${{ secrets.CF_ZONE_ID }} CF_DOMAIN: ${{ secrets.CF_DOMAIN }} CF_SUBDOMAINS: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }} + DOCKER_HOST: tcp://dockerproxy:2375 with: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace From 0ba49e2ef256a0b79319a4105a0986ab8faf441d Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:39:33 -0500 Subject: [PATCH 026/121] Docker run action for flarectl. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index da77ef4c..4322a13f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,7 +63,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace run: | - json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' + --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From c7c0ebb441ed44a79ad24c71d29d4bfa093851e2 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:42:08 -0500 Subject: [PATCH 027/121] Docker run action for flarectl. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 4322a13f..d7339363 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,7 +63,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace run: | - --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' + flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 4f6f1891ec0a0c65b3fc670333fecd30fb5bf341 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:46:10 -0500 Subject: [PATCH 028/121] Docker run action for flarectl. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d7339363..24164155 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,7 +63,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace run: | - flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' + /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From aa964821273e21103e3ebde6afed3398f9aef3fe Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:49:10 -0500 Subject: [PATCH 029/121] Grep fix for flarectl. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 24164155..1caaa174 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,7 +63,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace run: | - /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${CF_SUBDOMAINS})' + /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${{ env.CF_SUBDOMAINS }})' # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 288bc0e28296fb0eb4579c06add2598a516aeeb4 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:52:03 -0500 Subject: [PATCH 030/121] Grep fix for flarectl. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 1caaa174..31f5add7 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,7 +63,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace run: | - /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '(${{ env.CF_SUBDOMAINS }})' + /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '($(echo ${CF_SUBDOMAINS}))' # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From df374fd6f46129a264825e9c08c4da670b74bbe4 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 11:54:48 -0500 Subject: [PATCH 031/121] Grep fix for flarectl. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 31f5add7..ec58088a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,7 +63,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace run: | - /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E '($(echo ${CF_SUBDOMAINS}))' + /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E "$(echo ${CF_SUBDOMAINS})" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From ed7008dd16082112920c67db9afc56f32ae11538 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 12:29:21 -0500 Subject: [PATCH 032/121] Flarectl param fix. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index ec58088a..e577c8c2 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,7 +63,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace run: | - /flarectl --json dns list --zone $CF_ZONE_ID --type CNAME --content trez.wtf | grep -E "$(echo ${CF_SUBDOMAINS})" + /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf | grep -E "$(echo ${CF_SUBDOMAINS})" # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 5c57946f5c3b79ac97ff525df17ec8b059f8a1a9 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 12:33:10 -0500 Subject: [PATCH 033/121] Envs for flarectl. --- .gitea/workflows/deployment.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index e577c8c2..7c9c23b5 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -56,12 +56,11 @@ jobs: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} CF_ZONE_ID: ${{ secrets.CF_ZONE_ID }} - CF_DOMAIN: ${{ secrets.CF_DOMAIN }} CF_SUBDOMAINS: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }} DOCKER_HOST: tcp://dockerproxy:2375 with: image: solidnerd/cloudflare - options: -v ${{ github.workspace }}:/workspace + options: -v ${{ github.workspace }}:/workspace -e ${CF_API_TOKEN} -e ${CF_ZONE_ID} -e ${CF_DOMAIN} -e ${CF_SUBDOMAINS} -e ${CF_API_EMAIL} run: | /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf | grep -E "$(echo ${CF_SUBDOMAINS})" # docker-compose-test: From 8c68031cf3e26337727fd70c555a2963f2d1b164 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 12:44:48 -0500 Subject: [PATCH 034/121] Envs for flarectl. --- .gitea/workflows/deployment.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 7c9c23b5..af675e35 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -53,14 +53,11 @@ jobs: - name: Cloudflare DNS List uses: addnab/docker-run-action@v3 env: - CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - CF_ZONE_ID: ${{ secrets.CF_ZONE_ID }} CF_SUBDOMAINS: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }} DOCKER_HOST: tcp://dockerproxy:2375 with: image: solidnerd/cloudflare - options: -v ${{ github.workspace }}:/workspace -e ${CF_API_TOKEN} -e ${CF_ZONE_ID} -e ${CF_DOMAIN} -e ${CF_SUBDOMAINS} -e ${CF_API_EMAIL} + options: -v ${{ github.workspace }}:/workspace -e CF_API_TOKEN=${{ secrets.CF_API_TOKEN }} -e CF_ZONE_ID=${{ secrets.CF_ZONE_ID }} -e CF_SUBDOMAINS=${{ env.CF_SUBDOMAINS }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} run: | /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf | grep -E "$(echo ${CF_SUBDOMAINS})" # docker-compose-test: From b5c0962ca04fddba1f6a077cd79e81a0883e47c9 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 12:47:19 -0500 Subject: [PATCH 035/121] Removing grep. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index af675e35..54eb6400 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -59,7 +59,7 @@ jobs: image: solidnerd/cloudflare options: -v ${{ github.workspace }}:/workspace -e CF_API_TOKEN=${{ secrets.CF_API_TOKEN }} -e CF_ZONE_ID=${{ secrets.CF_ZONE_ID }} -e CF_SUBDOMAINS=${{ env.CF_SUBDOMAINS }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} run: | - /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf | grep -E "$(echo ${CF_SUBDOMAINS})" + /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From 056f1fe16d1b87e23c7d3cecfbd729dbd69f09ac Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 18:21:53 -0500 Subject: [PATCH 036/121] Combining subdomain check and parsing into one step. --- .gitea/workflows/deployment.yml | 34 ++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 54eb6400..0e0c8712 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,23 +43,31 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 - - name: Subdomain YAML parsing - id: subdomain-yaml-parsing + - name: Setup go + uses: https://gitea.com/actions/setup-go@v3.3.0 + + - name: Domain check + id: domain-check + env: + CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | + go version + go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + flarectl --help swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') echo ${swag_url} - echo "subdomain_list=${swag_url})" >> $GITHUB_OUTPUT - - name: Cloudflare DNS List - uses: addnab/docker-run-action@v3 - env: - CF_SUBDOMAINS: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }} - DOCKER_HOST: tcp://dockerproxy:2375 - with: - image: solidnerd/cloudflare - options: -v ${{ github.workspace }}:/workspace -e CF_API_TOKEN=${{ secrets.CF_API_TOKEN }} -e CF_ZONE_ID=${{ secrets.CF_ZONE_ID }} -e CF_SUBDOMAINS=${{ env.CF_SUBDOMAINS }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} - run: | - /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf + # - name: Cloudflare DNS List + # uses: addnab/docker-run-action@v3 + # env: + # CF_SUBDOMAINS: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }} + # DOCKER_HOST: tcp://dockerproxy:2375 + # with: + # image: solidnerd/cloudflare + # options: -v ${{ github.workspace }}:/workspace -e CF_API_TOKEN=${{ secrets.CF_API_TOKEN }} -e CF_ZONE_ID=${{ secrets.CF_ZONE_ID }} -e CF_SUBDOMAINS=${{ env.CF_SUBDOMAINS }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} + # run: | + # /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf # docker-compose-test: # name: Docker Compose Test # needs: [create-pr] From e06018c0eb5601daa61d4b001e6094843f4c07d0 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 18:24:22 -0500 Subject: [PATCH 037/121] Combining subdomain check and parsing into one step. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 0e0c8712..66c64241 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -44,7 +44,7 @@ jobs: uses: dcarbone/install-yq-action@v1 - name: Setup go - uses: https://gitea.com/actions/setup-go@v3.3.0 + uses: actions/setup-go@v3.3.0 - name: Domain check id: domain-check From ae80e3227e8bfd2477e32eeffd8b1b47f4fe93e3 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 18:27:27 -0500 Subject: [PATCH 038/121] Combining subdomain check and parsing into one step. --- .gitea/workflows/deployment.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 66c64241..6b35ee4c 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -52,7 +52,6 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - go version go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest flarectl --help swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') From 82ac8f07eb49b13a00490bb543cf58a93e853d14 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 18:29:45 -0500 Subject: [PATCH 039/121] Bumping setup-go action version. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 6b35ee4c..d36b476d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -44,7 +44,7 @@ jobs: uses: dcarbone/install-yq-action@v1 - name: Setup go - uses: actions/setup-go@v3.3.0 + uses: actions/setup-go@v5.2.0 - name: Domain check id: domain-check From 94df464cadd0560ba1e74babca7f42554abb036e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 18:36:35 -0500 Subject: [PATCH 040/121] Forgot to add version input for Go setup. --- .gitea/workflows/deployment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d36b476d..f79ec71a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -45,6 +45,8 @@ jobs: - name: Setup go uses: actions/setup-go@v5.2.0 + with: + go-version: '1.22.10' - name: Domain check id: domain-check From a594f8605169a148272185e8b21abc1e41046db6 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 19:17:33 -0500 Subject: [PATCH 041/121] Added Cloudflare DNS setup and Gotify notification action. --- .gitea/workflows/deployment.yml | 114 ++++++++++++++++++-------------- 1 file changed, 63 insertions(+), 51 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index f79ec71a..7becb5f4 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -48,65 +48,77 @@ jobs: with: go-version: '1.22.10' - - name: Domain check + - name: Subdomain Check/Creation id: domain-check env: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest - flarectl --help - swag_url=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sed ':a;N;$!ba;s/\n/|/g') - echo ${swag_url} + flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt + swag_urls=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') + for subdomain in $(echo ${swag_urls}); do + egrep -q "^${subdomain}" cf_subdomain_list.txt || echo "::notice::Subdomain $subdomain not found, creating record..." && flarectl d c --zone trez.wtf --name ${subdomain} --type CNAME --content trez.wtf --proxy + done - # - name: Cloudflare DNS List - # uses: addnab/docker-run-action@v3 - # env: - # CF_SUBDOMAINS: ${{ steps.subdomain-yaml-parsing.outputs.subdomain_list }} - # DOCKER_HOST: tcp://dockerproxy:2375 - # with: - # image: solidnerd/cloudflare - # options: -v ${{ github.workspace }}:/workspace -e CF_API_TOKEN=${{ secrets.CF_API_TOKEN }} -e CF_ZONE_ID=${{ secrets.CF_ZONE_ID }} -e CF_SUBDOMAINS=${{ env.CF_SUBDOMAINS }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} - # run: | - # /flarectl dns list --zone ${CF_ZONE_ID} --type CNAME --content trez.wtf - # docker-compose-test: - # name: Docker Compose Test - # needs: [create-pr] - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v4 + docker-compose-test: + name: Docker Compose Test + needs: [create-pr] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 - # - name: Generate ephemeral .env compose file - # id: generate-env-file-pr - # run: | - # echo "${{ secrets.RINOA_ENV }}" > .env + - name: Generate ephemeral .env compose file + id: generate-env-file-pr + run: | + echo "${{ secrets.RINOA_ENV }}" > .env - # - name: Docker Compose Lint - # uses: yu-ichiro/spin-up-docker-compose-action@v1 + - name: Docker Compose Lint + uses: yu-ichiro/spin-up-docker-compose-action@v1 + with: + file: docker-compose.yml + pull: true + pull-opts: --dry-run + up: true + up-opts: --dry-run -d --remove-orphans + env: + DOCKER_HOST: tcp://dockerproxy:2375 + + merge-pr: + name: PR Merge + runs-on: ubuntu-latest + needs: [docker-compose-test] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Send Gotify Notification + uses: eikendev/gotify-action@0.0.3 + with: + gotify_api_base: '${{ secrets.GOTIFY_URL }}' + gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' + notification_title: '${{ github.ref_name }} ready to be merged.' + notification_message: '${{ gitea.server_url }}/issues' + + # - name: Manual Approval + # uses: trstringer/manual-approval@v1 # with: - # file: docker-compose.yml - # pull: true - # pull-opts: --dry-run - # up: true - # up-opts: --dry-run -d --remove-orphans - # env: - # DOCKER_HOST: tcp://dockerproxy:2375 + # secret: ${{ secrets.BOT_GITEA_TOKEN }} + # approvers: Trez.One + # minimum-approvals: 1 + # issue-title: "Deployment of ${{ github.ref_name }}" + # issue-body: "Autobots, roll out!" + # exclude-workflow-initiator-as-approver: false + # additional-approved-words: '' + # additional-denied-words: '' - # merge-pr: - # name: PR Merge - # runs-on: ubuntu-latest - # needs: [docker-compose-test] - # steps: - # - name: Checkout - # uses: actions/checkout@v4 - - # - name: Tea CLI Setup & PR Merge - # run: | - # curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea - # chmod +x /usr/local/bin/tea - # echo "Merging PR..." - # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - # echo ${{ gitea.ref_name }} - # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') - # tea pr m --repo ${{ github.repository }} --title "Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file + # - name: Tea CLI Setup & PR Merge + # run: | + # curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea + # chmod +x /usr/local/bin/tea + # echo "Merging PR..." + # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + # echo ${{ gitea.ref_name }} + # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') + # tea pr m --repo ${{ github.repository }} --title "Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file From 8629ac210fbf28a9c9937944d172be56c07a9222 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 19:25:52 -0500 Subject: [PATCH 042/121] Checking to see if the runner has go already installed. --- .gitea/workflows/deployment.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 7becb5f4..3026da7e 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,17 +43,13 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 - - name: Setup go - uses: actions/setup-go@v5.2.0 - with: - go-version: '1.22.10' - - name: Subdomain Check/Creation id: domain-check env: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | + which go go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt swag_urls=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') From b4852f0bafacc568874664f8348bd1399a748773 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 19:29:18 -0500 Subject: [PATCH 043/121] Switching to a different setup-go action. --- .gitea/workflows/deployment.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 3026da7e..58ec8fb1 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,13 +43,17 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 + - name: Setup go + uses: WillAbides/setup-go-faster@v1.14.0 + with: + go-version: 'stable' + - name: Subdomain Check/Creation id: domain-check env: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - which go go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt swag_urls=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') From 093252c022c8e0c84e0c500ee1b33aa30b94b48b Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 19:38:21 -0500 Subject: [PATCH 044/121] Echoes... (now I have to listen to the Pink Floyd song) --- .gitea/workflows/deployment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 58ec8fb1..364794b5 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -55,9 +55,11 @@ jobs: CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + echo "Grabbing most up-to-date subdomain list from Cloudflare..." flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt swag_urls=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') for subdomain in $(echo ${swag_urls}); do + echo "Checking for subdomain $subdomain..." egrep -q "^${subdomain}" cf_subdomain_list.txt || echo "::notice::Subdomain $subdomain not found, creating record..." && flarectl d c --zone trez.wtf --name ${subdomain} --type CNAME --content trez.wtf --proxy done From da213b12f86efc105a0479e5d564d21df53f6b63 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 19:51:58 -0500 Subject: [PATCH 045/121] ... --- .gitea/workflows/deployment.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 364794b5..22943cb4 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -54,6 +54,9 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | + echo $GOPATH + echo $GOBIN + echo "Installing flarectl..." go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest echo "Grabbing most up-to-date subdomain list from Cloudflare..." flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt From 060604d0b90d2d48c548cff7de4d88d533011ae7 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 20:15:31 -0500 Subject: [PATCH 046/121] ... --- .gitea/workflows/deployment.yml | 88 ++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 41 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 22943cb4..faeed954 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -54,57 +54,63 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - echo $GOPATH - echo $GOBIN + if [ -z $(go env GOPATH) ]; then + export GOPATH=${{ github.workspace }}/go + if [ -z $(go env GOBIN) ]; then + export GOBIN=${{ github.workspace }} echo "Installing flarectl..." - go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest > 2>&1 echo "Grabbing most up-to-date subdomain list from Cloudflare..." - flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt + ./flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt swag_urls=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') for subdomain in $(echo ${swag_urls}); do - echo "Checking for subdomain $subdomain..." - egrep -q "^${subdomain}" cf_subdomain_list.txt || echo "::notice::Subdomain $subdomain not found, creating record..." && flarectl d c --zone trez.wtf --name ${subdomain} --type CNAME --content trez.wtf --proxy + if grep -q ${subdomain} cf_subdomain_list.txt; then + echo "Subdomain ${subdomain}.trez.wtf already exists in Cloudflare. Skipping..." + else + echo "Subdomain ${subdomain}.trez.wtf does not exist in Cloudflare. Creating..." + flarectl d c --zone trez.wtf --name ${subdomain} --type CNAME --content trez.wtf --proxy + fi done - docker-compose-test: - name: Docker Compose Test - needs: [create-pr] - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 + # docker-compose-test: + # name: Docker Compose Test + # needs: [create-pr] + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v4 - - name: Generate ephemeral .env compose file - id: generate-env-file-pr - run: | - echo "${{ secrets.RINOA_ENV }}" > .env + # - name: Generate ephemeral .env compose file + # id: generate-env-file-pr + # run: | + # echo "${{ secrets.RINOA_ENV }}" > .env - - name: Docker Compose Lint - uses: yu-ichiro/spin-up-docker-compose-action@v1 - with: - file: docker-compose.yml - pull: true - pull-opts: --dry-run - up: true - up-opts: --dry-run -d --remove-orphans - env: - DOCKER_HOST: tcp://dockerproxy:2375 + # - name: Docker Compose Lint + # uses: yu-ichiro/spin-up-docker-compose-action@v1 + # with: + # file: docker-compose.yml + # pull: true + # pull-opts: --dry-run + # up: true + # up-opts: --dry-run -d --remove-orphans + # env: + # DOCKER_HOST: tcp://dockerproxy:2375 - merge-pr: - name: PR Merge - runs-on: ubuntu-latest - needs: [docker-compose-test] - steps: - - name: Checkout - uses: actions/checkout@v4 + # merge-pr: + # name: PR Merge + # runs-on: ubuntu-latest + # needs: [docker-compose-test] + # steps: + # - name: Checkout + # uses: actions/checkout@v4 - - name: Send Gotify Notification - uses: eikendev/gotify-action@0.0.3 - with: - gotify_api_base: '${{ secrets.GOTIFY_URL }}' - gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' - notification_title: '${{ github.ref_name }} ready to be merged.' - notification_message: '${{ gitea.server_url }}/issues' + # - name: Send Gotify Notification + # uses: eikendev/gotify-action@0.0.3 + # with: + # gotify_api_base: '${{ secrets.GOTIFY_URL }}' + # gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' + # notification_title: '${{ github.ref_name }} ready to be merged.' + # notification_message: '${{ gitea.server_url }}/issues' # - name: Manual Approval # uses: trstringer/manual-approval@v1 From 446ab4b77af2b95aa75839e7971517688429d099 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Tue, 31 Dec 2024 20:20:10 -0500 Subject: [PATCH 047/121] ... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index faeed954..f20ef354 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -59,7 +59,7 @@ jobs: if [ -z $(go env GOBIN) ]; then export GOBIN=${{ github.workspace }} echo "Installing flarectl..." - go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest > 2>&1 + go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest 2>&1 echo "Grabbing most up-to-date subdomain list from Cloudflare..." ./flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt swag_urls=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') From 8ec5cdb552fa628ad4976128920742ccbee140b9 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 08:52:43 -0500 Subject: [PATCH 048/121] ... --- .gitea/workflows/deployment.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index f20ef354..9c791eb4 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -54,11 +54,10 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - if [ -z $(go env GOPATH) ]; then - export GOPATH=${{ github.workspace }}/go + echo "Installing flarectl..." if [ -z $(go env GOBIN) ]; then export GOBIN=${{ github.workspace }} - echo "Installing flarectl..." + fi go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest 2>&1 echo "Grabbing most up-to-date subdomain list from Cloudflare..." ./flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt From 47cca145c40cb408e545a5cad13c5b665574612b Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 10:28:09 -0500 Subject: [PATCH 049/121] Expanded CF DNS setup. --- .gitea/workflows/deployment.yml | 52 ++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 9c791eb4..8d896c79 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,33 +43,43 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 - - name: Setup go - uses: WillAbides/setup-go-faster@v1.14.0 - with: - go-version: 'stable' - - - name: Subdomain Check/Creation - id: domain-check + - name: Grab subdomains from Compose + id: compose-domains env: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - echo "Installing flarectl..." - if [ -z $(go env GOBIN) ]; then - export GOBIN=${{ github.workspace }} + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') > compose_subdomains.txt + + - name: Retrieve subdomains in Cloudflare + uses: addnab/docker-run-action@v3 + with: + image: quay.io/aminvakil/flarectl:latest + options: -v ${{ github.workspace }}:/workspace -e CF_API_KEY=${{ secrets.CF_API_TOKEN }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} + run: | + --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|.trez.wtf||g' -e 's|"||g' | sort -u > cloudflare_subdomains.txt + + - name: Compare & Create Missing Subdomains + id: compare-subdomains + run: | + diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt + if [ -s missing_subdomains.txt ]; then + echo "Missing subdomains found. Please add them to Cloudflare." + echo "Missing subdomains:" + cat missing_subdomains.txt + exit 1 + else + echo "No missing subdomains found." fi - go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest 2>&1 - echo "Grabbing most up-to-date subdomain list from Cloudflare..." - ./flarectl d l --zone trez.wtf --type CNAME --content trez.wtf | egrep -v 'ID' | awk '{print $5}' > cf_subdomain_list.txt - swag_urls=$(yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') - for subdomain in $(echo ${swag_urls}); do - if grep -q ${subdomain} cf_subdomain_list.txt; then - echo "Subdomain ${subdomain}.trez.wtf already exists in Cloudflare. Skipping..." - else - echo "Subdomain ${subdomain}.trez.wtf does not exist in Cloudflare. Creating..." - flarectl d c --zone trez.wtf --name ${subdomain} --type CNAME --content trez.wtf --proxy - fi + cat > ${{ github.workspace }}/cloudflare.env < Date: Wed, 1 Jan 2025 10:31:01 -0500 Subject: [PATCH 050/121] Typo fix, L52. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 8d896c79..2ddfff3f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -49,7 +49,7 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}') > compose_subdomains.txt + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' > compose_subdomains.txt - name: Retrieve subdomains in Cloudflare uses: addnab/docker-run-action@v3 From 8e93e7d34285af0e95d3e96a9d4dbf8f5f3a021d Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 10:34:41 -0500 Subject: [PATCH 051/121] Docker host envs. --- .gitea/workflows/deployment.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 2ddfff3f..21cf4e6b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -53,6 +53,8 @@ jobs: - name: Retrieve subdomains in Cloudflare uses: addnab/docker-run-action@v3 + env: + DOCKER_HOST: tcp://dockerproxy:2375 with: image: quay.io/aminvakil/flarectl:latest options: -v ${{ github.workspace }}:/workspace -e CF_API_KEY=${{ secrets.CF_API_TOKEN }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} @@ -61,6 +63,8 @@ jobs: - name: Compare & Create Missing Subdomains id: compare-subdomains + env: + DOCKER_HOST: tcp://dockerproxy:2375 run: | diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt if [ -s missing_subdomains.txt ]; then From 7ab88380aceada22e63a53d98eafe804ce56b347 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 10:37:57 -0500 Subject: [PATCH 052/121] ... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 21cf4e6b..720b6b36 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -59,7 +59,7 @@ jobs: image: quay.io/aminvakil/flarectl:latest options: -v ${{ github.workspace }}:/workspace -e CF_API_KEY=${{ secrets.CF_API_TOKEN }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} run: | - --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|.trez.wtf||g' -e 's|"||g' | sort -u > cloudflare_subdomains.txt + flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|.trez.wtf||g' -e 's|"||g' | sort -u > cloudflare_subdomains.txt - name: Compare & Create Missing Subdomains id: compare-subdomains From fc59ae6276a921197dd06c6754d4d94a9ce50230 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 10:44:50 -0500 Subject: [PATCH 053/121] ... --- .gitea/workflows/deployment.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 720b6b36..d5e48e5b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,6 +43,9 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 + - name: Setup jq + uses: dcarbone/install-jq-action@v3 + - name: Grab subdomains from Compose id: compose-domains env: @@ -59,7 +62,7 @@ jobs: image: quay.io/aminvakil/flarectl:latest options: -v ${{ github.workspace }}:/workspace -e CF_API_KEY=${{ secrets.CF_API_TOKEN }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|.trez.wtf||g' -e 's|"||g' | sort -u > cloudflare_subdomains.txt + flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|.trez.wtf||g' -e 's|"||g' | sort -u > /workspace/cloudflare_subdomains.txt - name: Compare & Create Missing Subdomains id: compare-subdomains @@ -81,9 +84,8 @@ jobs: EOF for subdomain in $(cat missing_subdomains.txt); do echo "Adding ${subdomain} to Cloudflare..." - docker run -it --rm --env-file cloudflare.env quay.io/aminvakil/flarectl:latest dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + docker run -it --rm --env-file cloudflare.env quay.io/aminvakil/flarectl:latest flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true done - # docker-compose-test: # name: Docker Compose Test From a2a65c5992b653ed1b7c791692db3c0c978101cf Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 10:47:59 -0500 Subject: [PATCH 054/121] Removing jq from docker run action --- .gitea/workflows/deployment.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d5e48e5b..8750931b 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,9 +43,6 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 - - name: Setup jq - uses: dcarbone/install-jq-action@v3 - - name: Grab subdomains from Compose id: compose-domains env: @@ -62,7 +59,7 @@ jobs: image: quay.io/aminvakil/flarectl:latest options: -v ${{ github.workspace }}:/workspace -e CF_API_KEY=${{ secrets.CF_API_TOKEN }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|.trez.wtf||g' -e 's|"||g' | sort -u > /workspace/cloudflare_subdomains.txt + flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | > /workspace/cloudflare_subdomains.txt - name: Compare & Create Missing Subdomains id: compare-subdomains From 6a2e72ee36d8f466836ecffcb008f7005e033784 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 10:59:53 -0500 Subject: [PATCH 055/121] ... --- .gitea/workflows/deployment.yml | 35 +++++++++++++++++---------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 8750931b..b0931fbb 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -42,6 +42,9 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 + + - name: Install jq + uses: dcarbone/install-jq-action@v3.0.1 - name: Grab subdomains from Compose id: compose-domains @@ -49,19 +52,21 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' > compose_subdomains.txt - - - name: Retrieve subdomains in Cloudflare - uses: addnab/docker-run-action@v3 - env: - DOCKER_HOST: tcp://dockerproxy:2375 - with: - image: quay.io/aminvakil/flarectl:latest - options: -v ${{ github.workspace }}:/workspace -e CF_API_KEY=${{ secrets.CF_API_TOKEN }} -e CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} - run: | - flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | > /workspace/cloudflare_subdomains.txt + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort -u > compose_subdomains.txt - - name: Compare & Create Missing Subdomains + - name: Retrieve Cloudflare Subdomains + id: compare-subdomains + env: + DOCKER_HOST: tcp://dockerproxy:2375 + run: | + cat > ${{ github.workspace }}/cloudflare.env < cloudflare_subdomains.txt + + - name: Compare Subdomains id: compare-subdomains env: DOCKER_HOST: tcp://dockerproxy:2375 @@ -75,13 +80,9 @@ jobs: else echo "No missing subdomains found." fi - cat > ${{ github.workspace }}/cloudflare.env < Date: Wed, 1 Jan 2025 11:02:27 -0500 Subject: [PATCH 056/121] ... --- .gitea/workflows/deployment.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b0931fbb..09c516d2 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -63,8 +63,7 @@ jobs: CF_API_KEY=${{ secrets.CF_API_TOKEN }} CF_API_EMAIL=${{ secrets.CF_API_EMAIL }} EOF - alias flarectl="docker run -it --rm --env-file cloudflare.env quay.io/aminvakil/flarectl:latest flarectl" - flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt + docker run -it --rm --env-file cloudflare.env quay.io/aminvakil/flarectl:latest flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt - name: Compare Subdomains id: compare-subdomains @@ -82,7 +81,7 @@ jobs: fi for subdomain in $(cat missing_subdomains.txt); do echo "Adding ${subdomain} to Cloudflare..." - flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + docker run -it --rm --env-file cloudflare.env quay.io/aminvakil/flarectl:latest flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true done # docker-compose-test: From cc3ef05fa640ef4a0a83b4d439b6b251baa70521 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 11:08:08 -0500 Subject: [PATCH 057/121] ... --- .gitea/workflows/deployment.yml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 09c516d2..04af7b54 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -46,6 +46,12 @@ jobs: - name: Install jq uses: dcarbone/install-jq-action@v3.0.1 + - name: Setup flarectl + run: | + docker run -it --rm --entrypoint cat quay.io/aminvakil/flarectl:latest /usr/local/bin/flarectl > flarectl + chmod +x flarectl + sudo mv flarectl /usr/local/bin/ + - name: Grab subdomains from Compose id: compose-domains env: @@ -58,17 +64,17 @@ jobs: id: compare-subdomains env: DOCKER_HOST: tcp://dockerproxy:2375 + CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - cat > ${{ github.workspace }}/cloudflare.env < cloudflare_subdomains.txt + flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt - name: Compare Subdomains id: compare-subdomains env: DOCKER_HOST: tcp://dockerproxy:2375 + CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt if [ -s missing_subdomains.txt ]; then @@ -81,7 +87,7 @@ jobs: fi for subdomain in $(cat missing_subdomains.txt); do echo "Adding ${subdomain} to Cloudflare..." - docker run -it --rm --env-file cloudflare.env quay.io/aminvakil/flarectl:latest flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true done # docker-compose-test: From e2ada5b2d43469598d3ab6e50b9158b70775c24e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 11:15:16 -0500 Subject: [PATCH 058/121] ... --- .gitea/workflows/deployment.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 04af7b54..e9aed6fc 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -48,9 +48,12 @@ jobs: - name: Setup flarectl run: | - docker run -it --rm --entrypoint cat quay.io/aminvakil/flarectl:latest /usr/local/bin/flarectl > flarectl - chmod +x flarectl - sudo mv flarectl /usr/local/bin/ + if [ -z $(echo $GOPATH) ]; then + export GOPATH=$HOME/go + fi + export PATH=$PATH:$GOPATH/bin + go env ${{ github.workspace }} + go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest - name: Grab subdomains from Compose id: compose-domains From 599045c3b2e427bd7ad2fd40591f576baa5a3ec5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 11:17:37 -0500 Subject: [PATCH 059/121] ... --- .gitea/workflows/deployment.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index e9aed6fc..4dfad5b8 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,6 +43,9 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 + - name: Setup Go Faster + uses: WillAbides/setup-go-faster@v1.14.0 + - name: Install jq uses: dcarbone/install-jq-action@v3.0.1 From 0524fd3818a23604e264be9a07898f056723b0f4 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 11:20:13 -0500 Subject: [PATCH 060/121] ... --- .gitea/workflows/deployment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 4dfad5b8..0ac86f56 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -45,6 +45,8 @@ jobs: - name: Setup Go Faster uses: WillAbides/setup-go-faster@v1.14.0 + with: + go-version: 'stable' - name: Install jq uses: dcarbone/install-jq-action@v3.0.1 From c47c6f08dffe3c97543b1b0404cb8d52281aa0a2 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 11:27:06 -0500 Subject: [PATCH 061/121] ... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 0ac86f56..8d17137e 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -75,7 +75,7 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt + flarectl --json dns list --zone "${{ secrets.CF_ZONE_ID }}" --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt - name: Compare Subdomains id: compare-subdomains From 5709c549958e1923fdfbc4857b07dee312df6193 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 11:35:23 -0500 Subject: [PATCH 062/121] ... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 8d17137e..9533d3bc 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -75,7 +75,7 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone "${{ secrets.CF_ZONE_ID }}" --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt + flarectl --json dns list --zone "trez.wtf" --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt - name: Compare Subdomains id: compare-subdomains From f14ac8bf6e12abf0466b74ec67681e169c71bfd5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 11:47:53 -0500 Subject: [PATCH 063/121] ... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 9533d3bc..310e003a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -75,7 +75,7 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone "trez.wtf" --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F. '{print $1}' | sort > cloudflare_subdomains.txt + flarectl --json dns list --zone "trez.wtf" --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - name: Compare Subdomains id: compare-subdomains From 1b6cd1c56b01dc6d2c47e5207e8ed6cc17f71009 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 12:02:52 -0500 Subject: [PATCH 064/121] Debugging CF subdomain step. --- .gitea/workflows/deployment.yml | 42 ++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 310e003a..52cad884 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -75,28 +75,28 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone "trez.wtf" --type CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt + flarectl --json dns list --zone "trez.wtf" --type CNAME --content "trez.wtf" - - name: Compare Subdomains - id: compare-subdomains - env: - DOCKER_HOST: tcp://dockerproxy:2375 - CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - run: | - diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt - if [ -s missing_subdomains.txt ]; then - echo "Missing subdomains found. Please add them to Cloudflare." - echo "Missing subdomains:" - cat missing_subdomains.txt - exit 1 - else - echo "No missing subdomains found." - fi - for subdomain in $(cat missing_subdomains.txt); do - echo "Adding ${subdomain} to Cloudflare..." - flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true - done + # - name: Compare Subdomains + # id: compare-subdomains + # env: + # DOCKER_HOST: tcp://dockerproxy:2375 + # CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + # CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + # run: | + # diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt + # if [ -s missing_subdomains.txt ]; then + # echo "Missing subdomains found. Please add them to Cloudflare." + # echo "Missing subdomains:" + # cat missing_subdomains.txt + # exit 1 + # else + # echo "No missing subdomains found." + # fi + # for subdomain in $(cat missing_subdomains.txt); do + # echo "Adding ${subdomain} to Cloudflare..." + # flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + # done # docker-compose-test: # name: Docker Compose Test From bf843dbddbc2685fa2023cb84a75f16df766c906 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 12:12:53 -0500 Subject: [PATCH 065/121] Debugging CF subdomain step; adding cache action. --- .gitea/workflows/deployment.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 52cad884..4087fba0 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -40,6 +40,15 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - uses: actions/cache@v4 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + - name: Setup yq uses: dcarbone/install-yq-action@v1 @@ -75,7 +84,7 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone "trez.wtf" --type CNAME --content "trez.wtf" + flarectl --json dns list --zone=trez.wtf --type CNAME --content "trez.wtf" # - name: Compare Subdomains # id: compare-subdomains From 03b5e3e90fab02a82ea908cfb083319772669c0e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 12:28:06 -0500 Subject: [PATCH 066/121] Debugging CF subdomain step.. --- .gitea/workflows/deployment.yml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 4087fba0..a735aea1 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -40,14 +40,14 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - uses: actions/cache@v4 - with: - path: | - ~/.cache/go-build - ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- + # - uses: actions/cache@v4 + # with: + # path: | + # ~/.cache/go-build + # ~/go/pkg/mod + # key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + # restore-keys: | + # ${{ runner.os }}-go- - name: Setup yq uses: dcarbone/install-yq-action@v1 @@ -80,11 +80,10 @@ jobs: - name: Retrieve Cloudflare Subdomains id: compare-subdomains env: - DOCKER_HOST: tcp://dockerproxy:2375 CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone=trez.wtf --type CNAME --content "trez.wtf" + flarectl --json dns list --zone=trez.wtf --type CNAME --content "trez.wtf" # - name: Compare Subdomains # id: compare-subdomains From 4f32c568d9d4635041626a4a87f6d17826313a30 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 12:55:15 -0500 Subject: [PATCH 067/121] Debugging CF subdomain step.. --- .gitea/workflows/deployment.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a735aea1..ba1d5b5d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -52,12 +52,12 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 - - name: Setup Go Faster + - name: Setup Go uses: WillAbides/setup-go-faster@v1.14.0 with: go-version: 'stable' - - name: Install jq + - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 - name: Setup flarectl @@ -69,6 +69,14 @@ jobs: go env ${{ github.workspace }} go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + - name: Retrieve Cloudflare Subdomains + id: compare-subdomains + env: + CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + run: | + flarectl --json dns list --zone=trez.wtf --type CNAME --content "trez.wtf" | jq > cloudflare_subdomains.txt + - name: Grab subdomains from Compose id: compose-domains env: @@ -76,14 +84,6 @@ jobs: CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort -u > compose_subdomains.txt - - - name: Retrieve Cloudflare Subdomains - id: compare-subdomains - env: - CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - run: | - flarectl --json dns list --zone=trez.wtf --type CNAME --content "trez.wtf" # - name: Compare Subdomains # id: compare-subdomains From 3ba38e769f09b0f9579f2b58c6cb50e2479cc07d Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 13:11:36 -0500 Subject: [PATCH 068/121] Debugging CF subdomain step... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index ba1d5b5d..167a62c3 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -75,7 +75,7 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl --json dns list --zone=trez.wtf --type CNAME --content "trez.wtf" | jq > cloudflare_subdomains.txt + flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq > cloudflare_subdomains.txt - name: Grab subdomains from Compose id: compose-domains From fb9443a21da19e7977bb37ee8aaad3b86d190f47 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 13:20:07 -0500 Subject: [PATCH 069/121] Debugging CF subdomain step.... --- .gitea/workflows/deployment.yml | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 167a62c3..89c559c8 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -40,14 +40,16 @@ jobs: - name: Checkout uses: actions/checkout@v4 - # - uses: actions/cache@v4 - # with: - # path: | - # ~/.cache/go-build - # ~/go/pkg/mod - # key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - # restore-keys: | - # ${{ runner.os }}-go- + - name: Cache flarectl and Go dependencies + uses: actions/cache@v4 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + ~/go/bin/flarectl + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- - name: Setup yq uses: dcarbone/install-yq-action@v1 @@ -62,12 +64,18 @@ jobs: - name: Setup flarectl run: | - if [ -z $(echo $GOPATH) ]; then + if [ -z "$(echo $GOPATH)" ]; then export GOPATH=$HOME/go fi export PATH=$PATH:$GOPATH/bin - go env ${{ github.workspace }} - go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + # Check if flarectl exists; install if not cached + if ! command -v flarectl &> /dev/null; then + echo "flarectl not found, installing..." + go env ${{ github.workspace }} + go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + else + echo "flarectl found in cache." + fi - name: Retrieve Cloudflare Subdomains id: compare-subdomains From 4f40973910f80ff93ad368f3f98336d422baa8b3 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 13:38:29 -0500 Subject: [PATCH 070/121] Debugging CF subdomain step..... --- .gitea/workflows/deployment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 89c559c8..79f47ac8 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -64,6 +64,7 @@ jobs: - name: Setup flarectl run: | + go env if [ -z "$(echo $GOPATH)" ]; then export GOPATH=$HOME/go fi From 389e2b7afa74e9e085158f237bb9729e9a58a914 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 13:48:14 -0500 Subject: [PATCH 071/121] Debugging CF subdomain step...... --- .gitea/workflows/deployment.yml | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 79f47ac8..a35a095a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -45,9 +45,9 @@ jobs: with: path: | ~/.cache/go-build - ~/go/pkg/mod - ~/go/bin/flarectl - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + ~/.config/go/env + ~/go/ + key: ${{ runner.os }}-go-${{ steps. }} restore-keys: | ${{ runner.os }}-go- @@ -62,7 +62,10 @@ jobs: - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 - - name: Setup flarectl + - name: Retrieve Subdomains from Cloudflare + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }} run: | go env if [ -z "$(echo $GOPATH)" ]; then @@ -77,13 +80,6 @@ jobs: else echo "flarectl found in cache." fi - - - name: Retrieve Cloudflare Subdomains - id: compare-subdomains - env: - CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - run: | flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq > cloudflare_subdomains.txt - name: Grab subdomains from Compose From 070458d4c80aba2421b722fb3d7a731e0fcec447 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 13:54:18 -0500 Subject: [PATCH 072/121] Debugging CF subdomain step....... --- .gitea/workflows/deployment.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a35a095a..0d1f7054 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -44,10 +44,10 @@ jobs: uses: actions/cache@v4 with: path: | - ~/.cache/go-build - ~/.config/go/env - ~/go/ - key: ${{ runner.os }}-go-${{ steps. }} + $HOME/.cache/go-build + $HOME/.config/go/env + $HOME/go/ + key: ${{ runner.os }}-go-${{ steps.retrieve-cloudflare-subdomains }} restore-keys: | ${{ runner.os }}-go- @@ -63,6 +63,7 @@ jobs: uses: dcarbone/install-jq-action@v3.0.1 - name: Retrieve Subdomains from Cloudflare + id: retrieve-cloudflare-subdomains env: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }} From 19f17d5b623936719401f77ef94a4315fe065c38 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 13:59:35 -0500 Subject: [PATCH 073/121] Debugging CF subdomain step........ --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 0d1f7054..40e3a971 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -47,9 +47,9 @@ jobs: $HOME/.cache/go-build $HOME/.config/go/env $HOME/go/ - key: ${{ runner.os }}-go-${{ steps.retrieve-cloudflare-subdomains }} + key: ${{ steps.retrieve-cloudflare-subdomains }} restore-keys: | - ${{ runner.os }}-go- + ${{ steps.retrieve-cloudflare-subdomains }} - name: Setup yq uses: dcarbone/install-yq-action@v1 From d6311c95af1c08981aaa187c895253ff2d304df1 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 14:08:17 -0500 Subject: [PATCH 074/121] Debugging CF subdomain step......... --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 40e3a971..775f4849 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -47,9 +47,9 @@ jobs: $HOME/.cache/go-build $HOME/.config/go/env $HOME/go/ - key: ${{ steps.retrieve-cloudflare-subdomains }} + key: ${{ runner.os }-go-${{ hashFiles('**/flarectl') }} restore-keys: | - ${{ steps.retrieve-cloudflare-subdomains }} + ${{ runner.os }-go-${{ hashFiles('**/flarectl') }} - name: Setup yq uses: dcarbone/install-yq-action@v1 From 33d2c7d0c309ad465d7e47b429ec5d3612144bba Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 14:10:10 -0500 Subject: [PATCH 075/121] Debugging CF subdomain step......... --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 775f4849..c14e76a7 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -47,9 +47,9 @@ jobs: $HOME/.cache/go-build $HOME/.config/go/env $HOME/go/ - key: ${{ runner.os }-go-${{ hashFiles('**/flarectl') }} + key: ${{ runner.os }}-go-${{ hashFiles('**/flarectl') }} restore-keys: | - ${{ runner.os }-go-${{ hashFiles('**/flarectl') }} + ${{ runner.os }}-go-${{ hashFiles('**/flarectl') }} - name: Setup yq uses: dcarbone/install-yq-action@v1 From ffaa66a086d46e734c90f0841794a53fc57a7d08 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 14:26:30 -0500 Subject: [PATCH 076/121] Debugging CF subdomain step.......... --- .gitea/workflows/deployment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index c14e76a7..a0c38bf1 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -46,10 +46,10 @@ jobs: path: | $HOME/.cache/go-build $HOME/.config/go/env - $HOME/go/ - key: ${{ runner.os }}-go-${{ hashFiles('**/flarectl') }} + $HOME/go/pkg/mod/cache/ + key: ${{ runner.os }}-go-${{ hashFiles('**/trim.txt') }} restore-keys: | - ${{ runner.os }}-go-${{ hashFiles('**/flarectl') }} + ${{ runner.os }}-go-${{ hashFiles('**/trim.txt') }} - name: Setup yq uses: dcarbone/install-yq-action@v1 From f1b11cca6d8cfdee4547ff2a4754f05ecf1caa63 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 14:40:30 -0500 Subject: [PATCH 077/121] Debugging CF subdomain step........... --- .gitea/workflows/deployment.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a0c38bf1..6ef27036 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -47,14 +47,15 @@ jobs: $HOME/.cache/go-build $HOME/.config/go/env $HOME/go/pkg/mod/cache/ - key: ${{ runner.os }}-go-${{ hashFiles('**/trim.txt') }} + key: ${{ runner.os }}-go-${{ steps.setup-go-faster.outputs.GOROOT }} restore-keys: | - ${{ runner.os }}-go-${{ hashFiles('**/trim.txt') }} + ${{ runner.os }}-go-${{ steps.setup-go-faster.outputs.GOROOT }} - name: Setup yq uses: dcarbone/install-yq-action@v1 - name: Setup Go + id: setup-go-faster uses: WillAbides/setup-go-faster@v1.14.0 with: go-version: 'stable' From 7c9c0f8dca9aa24a5beee8877562d2134e113033 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Wed, 1 Jan 2025 14:47:08 -0500 Subject: [PATCH 078/121] Debugging CF subdomain step........... --- .gitea/workflows/deployment.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 6ef27036..6a9f3466 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -69,11 +69,6 @@ jobs: CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }} run: | - go env - if [ -z "$(echo $GOPATH)" ]; then - export GOPATH=$HOME/go - fi - export PATH=$PATH:$GOPATH/bin # Check if flarectl exists; install if not cached if ! command -v flarectl &> /dev/null; then echo "flarectl not found, installing..." From 7dd0108e1d1b757ecbac57fe845de6017be320b5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 2 Jan 2025 09:44:46 -0500 Subject: [PATCH 079/121] Env fixes. --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 6a9f3466..b3e49b5d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -66,8 +66,8 @@ jobs: - name: Retrieve Subdomains from Cloudflare id: retrieve-cloudflare-subdomains env: - CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} - CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }} + CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | # Check if flarectl exists; install if not cached if ! command -v flarectl &> /dev/null; then From 11391fa66db318ae49fcd117de4a83d3942eb101 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 2 Jan 2025 10:03:59 -0500 Subject: [PATCH 080/121] Re-adding Docker Compose Lint and Gotify notification. --- .gitea/workflows/deployment.yml | 110 ++++++++++++++++---------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b3e49b5d..3db1ac77 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -87,66 +87,66 @@ jobs: run: | yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort -u > compose_subdomains.txt - # - name: Compare Subdomains - # id: compare-subdomains - # env: - # DOCKER_HOST: tcp://dockerproxy:2375 - # CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - # CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - # run: | - # diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt - # if [ -s missing_subdomains.txt ]; then - # echo "Missing subdomains found. Please add them to Cloudflare." - # echo "Missing subdomains:" - # cat missing_subdomains.txt - # exit 1 - # else - # echo "No missing subdomains found." - # fi - # for subdomain in $(cat missing_subdomains.txt); do - # echo "Adding ${subdomain} to Cloudflare..." - # flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true - # done + - name: Compare Subdomains + id: compare-subdomains + env: + DOCKER_HOST: tcp://dockerproxy:2375 + CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + run: | + diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt + if [ -s missing_subdomains.txt ]; then + echo "Missing subdomains found. Please add them to Cloudflare." + echo "Missing subdomains:" + cat missing_subdomains.txt + exit 1 + else + echo "No missing subdomains found." + fi + for subdomain in $(cat missing_subdomains.txt); do + echo "Adding ${subdomain} to Cloudflare..." + flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + done - # docker-compose-test: - # name: Docker Compose Test - # needs: [create-pr] - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v4 + docker-compose-test: + name: Docker Compose Test + needs: [create-pr] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 - # - name: Generate ephemeral .env compose file - # id: generate-env-file-pr - # run: | - # echo "${{ secrets.RINOA_ENV }}" > .env + - name: Generate ephemeral .env compose file + id: generate-env-file-pr + run: | + echo "${{ secrets.RINOA_ENV }}" > .env - # - name: Docker Compose Lint - # uses: yu-ichiro/spin-up-docker-compose-action@v1 - # with: - # file: docker-compose.yml - # pull: true - # pull-opts: --dry-run - # up: true - # up-opts: --dry-run -d --remove-orphans - # env: - # DOCKER_HOST: tcp://dockerproxy:2375 + - name: Docker Compose Lint + uses: yu-ichiro/spin-up-docker-compose-action@v1 + with: + file: docker-compose.yml + pull: true + pull-opts: --dry-run + up: true + up-opts: --dry-run -d --remove-orphans + env: + DOCKER_HOST: tcp://dockerproxy:2375 - # merge-pr: - # name: PR Merge - # runs-on: ubuntu-latest - # needs: [docker-compose-test] - # steps: - # - name: Checkout - # uses: actions/checkout@v4 + merge-pr: + name: PR Merge + runs-on: ubuntu-latest + needs: [docker-compose-test] + steps: + - name: Checkout + uses: actions/checkout@v4 - # - name: Send Gotify Notification - # uses: eikendev/gotify-action@0.0.3 - # with: - # gotify_api_base: '${{ secrets.GOTIFY_URL }}' - # gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' - # notification_title: '${{ github.ref_name }} ready to be merged.' - # notification_message: '${{ gitea.server_url }}/issues' + - name: Send Gotify Notification + uses: eikendev/gotify-action@0.0.3 + with: + gotify_api_base: '${{ secrets.GOTIFY_URL }}' + gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' + notification_title: '${{ github.ref_name }} ready to be merged.' + notification_message: '${{ gitea.server_url }}/issues' # - name: Manual Approval # uses: trstringer/manual-approval@v1 From b772b626f35a9189703f2fb2e9024ce6736210de Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 2 Jan 2025 14:21:49 -0500 Subject: [PATCH 081/121] Re-adding Docker Compose Lint and Gotify notification. --- .gitea/workflows/deployment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 3db1ac77..cc0ba03c 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -94,6 +94,8 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | + cat compose_subdomains.txt + cat cloudflare_subdomains.txt diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt if [ -s missing_subdomains.txt ]; then echo "Missing subdomains found. Please add them to Cloudflare." From 51eae71d858dcf8e99370671edea5d3ac7acaaed Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 2 Jan 2025 14:41:35 -0500 Subject: [PATCH 082/121] Diff action. --- .gitea/workflows/deployment.yml | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index cc0ba03c..c6a18ea3 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -77,7 +77,7 @@ jobs: else echo "flarectl found in cache." fi - flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq > cloudflare_subdomains.txt + flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - name: Grab subdomains from Compose id: compose-domains @@ -85,26 +85,23 @@ jobs: CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort -u > compose_subdomains.txt + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - name: Compare Subdomains id: compare-subdomains + uses: LouisBrunner/diff-action@v2.2.0 + with: + old: cloudflare_subdomains.txt + new: compose_subdomains.txt + output: missing_subdomains.txt + + - name: Add missing subdomains to Cloudflare + if: steps.compare-subdomains.outputs.output != '' env: DOCKER_HOST: tcp://dockerproxy:2375 CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - cat compose_subdomains.txt - cat cloudflare_subdomains.txt - diff compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $2}' | sed -e 's|.||g' > missing_subdomains.txt - if [ -s missing_subdomains.txt ]; then - echo "Missing subdomains found. Please add them to Cloudflare." - echo "Missing subdomains:" - cat missing_subdomains.txt - exit 1 - else - echo "No missing subdomains found." - fi for subdomain in $(cat missing_subdomains.txt); do echo "Adding ${subdomain} to Cloudflare..." flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true From 2f25e7cb3f17730e68d8a9c1eaf5d05d260f1cc6 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Thu, 2 Jan 2025 15:32:54 -0500 Subject: [PATCH 083/121] Changed Docker Compose test needs param. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index c6a18ea3..199a7c96 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -109,7 +109,7 @@ jobs: docker-compose-test: name: Docker Compose Test - needs: [create-pr] + needs: [cloudflare-dns-setup] runs-on: ubuntu-latest steps: - name: Checkout From f6fc428b98840c10a0403ff86ab6b4615eba4ffd Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 09:46:16 -0500 Subject: [PATCH 084/121] Typo fix on L80. --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 199a7c96..92071024 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -77,7 +77,7 @@ jobs: else echo "flarectl found in cache." fi - flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt + flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - name: Grab subdomains from Compose id: compose-domains From c9498af823cabe3b9b73efb020b03cd274fc6fdc Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 09:55:07 -0500 Subject: [PATCH 085/121] go env and changing mode for diff action. --- .gitea/workflows/deployment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 92071024..32fd3b2f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -69,6 +69,7 @@ jobs: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | + go env # Check if flarectl exists; install if not cached if ! command -v flarectl &> /dev/null; then echo "flarectl not found, installing..." @@ -93,6 +94,7 @@ jobs: with: old: cloudflare_subdomains.txt new: compose_subdomains.txt + mode: mixed-worse output: missing_subdomains.txt - name: Add missing subdomains to Cloudflare From 5dbeb89996f4c5c20d077b03c6841cfdf206c6ed Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 10:05:20 -0500 Subject: [PATCH 086/121] Changing cache action. --- .gitea/workflows/deployment.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 32fd3b2f..945f26d3 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -44,12 +44,10 @@ jobs: uses: actions/cache@v4 with: path: | - $HOME/.cache/go-build - $HOME/.config/go/env - $HOME/go/pkg/mod/cache/ - key: ${{ runner.os }}-go-${{ steps.setup-go-faster.outputs.GOROOT }} + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | - ${{ runner.os }}-go-${{ steps.setup-go-faster.outputs.GOROOT }} + ${{ runner.os }}-go- - name: Setup yq uses: dcarbone/install-yq-action@v1 From 78400eec0823b27f79992f9ab7cb142b0f8e089b Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 10:15:08 -0500 Subject: [PATCH 087/121] Updated catche step, flarectl install, and subdomain extraction. --- .gitea/workflows/deployment.yml | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 945f26d3..ca5d36bd 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -46,8 +46,6 @@ jobs: path: | ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} - restore-keys: | - ${{ runner.os }}-go- - name: Setup yq uses: dcarbone/install-yq-action@v1 @@ -61,29 +59,18 @@ jobs: - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 - - name: Retrieve Subdomains from Cloudflare + - name: Install flarectl + if: steps.cache-flarectl.outputs.cache-hit != 'true' + run: | + go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + + - name: Retrieve Subdomains from Cloudflare & Compose id: retrieve-cloudflare-subdomains env: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - go env - # Check if flarectl exists; install if not cached - if ! command -v flarectl &> /dev/null; then - echo "flarectl not found, installing..." - go env ${{ github.workspace }} - go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest - else - echo "flarectl found in cache." - fi flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - - - name: Grab subdomains from Compose - id: compose-domains - env: - CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - run: | yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - name: Compare Subdomains From 7b67284ddb599eddf2cd042fe89552f43ebb754f Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 10:33:51 -0500 Subject: [PATCH 088/121] Forgot to add ID for cache step and adjusting the cache key. --- .gitea/workflows/deployment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index ca5d36bd..92a26483 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -41,11 +41,11 @@ jobs: uses: actions/checkout@v4 - name: Cache flarectl and Go dependencies + id: cache-flarectl uses: actions/cache@v4 with: - path: | - ~/go/pkg/mod - key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + path: ~/go/pkg/mod + key: ${{ runner.os }}-${{ hashFiles('**/go.sum') }} - name: Setup yq uses: dcarbone/install-yq-action@v1 From e5f28515b50e0a1f29540232d76a18658e09a47f Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 10:46:59 -0500 Subject: [PATCH 089/121] Switching setup-go action and removing generic cache action. --- .gitea/workflows/deployment.yml | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 92a26483..a1094142 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -40,21 +40,17 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Cache flarectl and Go dependencies - id: cache-flarectl - uses: actions/cache@v4 - with: - path: ~/go/pkg/mod - key: ${{ runner.os }}-${{ hashFiles('**/go.sum') }} - - name: Setup yq uses: dcarbone/install-yq-action@v1 - name: Setup Go - id: setup-go-faster - uses: WillAbides/setup-go-faster@v1.14.0 + id: setup-go + uses: actions/setup-go@v5.2.0 with: go-version: 'stable' + check-latest: true + cache: true + cache-dependency-path: '**/go.sum' - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 @@ -85,7 +81,6 @@ jobs: - name: Add missing subdomains to Cloudflare if: steps.compare-subdomains.outputs.output != '' env: - DOCKER_HOST: tcp://dockerproxy:2375 CF_API_KEY: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | From b7558eb8428f00236b49dbe8ab8e4a881e854799 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 10:50:09 -0500 Subject: [PATCH 090/121] Step id change --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a1094142..dc5a2c54 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -56,7 +56,7 @@ jobs: uses: dcarbone/install-jq-action@v3.0.1 - name: Install flarectl - if: steps.cache-flarectl.outputs.cache-hit != 'true' + if: steps.setup-go.outputs.cache-hit != 'true' run: | go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest From a6dc5454791410c93c733463c40e3a69fa77c9a5 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 10:55:42 -0500 Subject: [PATCH 091/121] Adjusting cache-dependency-path --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index dc5a2c54..0179ea31 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -50,7 +50,7 @@ jobs: go-version: 'stable' check-latest: true cache: true - cache-dependency-path: '**/go.sum' + cache-dependency-path: "**/go.sum" - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 From b9c590ba70b322ebb4f8f08964b176a8425714d9 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 10:59:40 -0500 Subject: [PATCH 092/121] Adjusting cache-dependency-path --- .gitea/workflows/deployment.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 0179ea31..d2abd159 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -50,7 +50,10 @@ jobs: go-version: 'stable' check-latest: true cache: true - cache-dependency-path: "**/go.sum" + cache-dependency-path: | + **/go.sum + **/go.mod + token: ${{ secrets.BOT_GITEA_TOKEN }} - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 From debae01c1a79e8bb48d744d530c341d9e4d02c01 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 11:07:21 -0500 Subject: [PATCH 093/121] Removing cache-dependency-path for now --- .gitea/workflows/deployment.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d2abd159..90219b93 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -50,9 +50,6 @@ jobs: go-version: 'stable' check-latest: true cache: true - cache-dependency-path: | - **/go.sum - **/go.mod token: ${{ secrets.BOT_GITEA_TOKEN }} - name: Setup jq From 0726cfc42447be7fde9f4c33e7aca6acf6c81e27 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 11:16:39 -0500 Subject: [PATCH 094/121] Removing check-latest. --- .gitea/workflows/deployment.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 90219b93..fa2ef051 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -48,7 +48,6 @@ jobs: uses: actions/setup-go@v5.2.0 with: go-version: 'stable' - check-latest: true cache: true token: ${{ secrets.BOT_GITEA_TOKEN }} From 2df063258390ae3b280bb3e3133564186357aa90 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 11:24:58 -0500 Subject: [PATCH 095/121] ... --- .gitea/workflows/deployment.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index fa2ef051..49b0f128 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -49,7 +49,10 @@ jobs: with: go-version: 'stable' cache: true - token: ${{ secrets.BOT_GITEA_TOKEN }} + cache-dependency-path: | + **/go.sum + **/go.mod + **/flarectl - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 From e3d652dcd2b23b22f2db3eb14805c9e3df56b9ff Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 12:51:56 -0500 Subject: [PATCH 096/121] ... --- .gitea/workflows/deployment.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 49b0f128..3dd2374a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -42,7 +42,12 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 - + + - name: Install flarectl + if: steps.setup-go.outputs.cache-hit != 'true' + run: | + go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest + - name: Setup Go id: setup-go uses: actions/setup-go@v5.2.0 @@ -57,10 +62,6 @@ jobs: - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 - - name: Install flarectl - if: steps.setup-go.outputs.cache-hit != 'true' - run: | - go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest - name: Retrieve Subdomains from Cloudflare & Compose id: retrieve-cloudflare-subdomains From 8246e925dcb279614d0f298535a945c5b9b3e07e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 13:11:04 -0500 Subject: [PATCH 097/121] ... --- .gitea/workflows/deployment.yml | 153 ++++++++++++++++---------------- 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 3dd2374a..a7e5e6c3 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -44,93 +44,94 @@ jobs: uses: dcarbone/install-yq-action@v1 - name: Install flarectl - if: steps.setup-go.outputs.cache-hit != 'true' - run: | - go install github.com/cloudflare/cloudflare-go/cmd/flarectl@latest - - - name: Setup Go - id: setup-go - uses: actions/setup-go@v5.2.0 + uses: tj-actions/setup-bin@v1.2.1 with: - go-version: 'stable' - cache: true - cache-dependency-path: | - **/go.sum - **/go.mod - **/flarectl + language-type: 'go' + repository: cloudflare-go + repository-owner: cloudflare - - name: Setup jq - uses: dcarbone/install-jq-action@v3.0.1 + # - name: Setup Go + # id: setup-go + # uses: actions/setup-go@v5.2.0 + # with: + # go-version: 'stable' + # cache: true + # cache-dependency-path: | + # **/go.sum + # **/go.mod + # **/flarectl + # - name: Setup jq + # uses: dcarbone/install-jq-action@v3.0.1 - - name: Retrieve Subdomains from Cloudflare & Compose - id: retrieve-cloudflare-subdomains - env: - CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - run: | - flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt + # - name: Retrieve Subdomains from Cloudflare & Compose + # id: retrieve-cloudflare-subdomains + # env: + # CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} + # CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + # run: | + # flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt + # yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - - name: Compare Subdomains - id: compare-subdomains - uses: LouisBrunner/diff-action@v2.2.0 - with: - old: cloudflare_subdomains.txt - new: compose_subdomains.txt - mode: mixed-worse - output: missing_subdomains.txt + # - name: Compare Subdomains + # id: compare-subdomains + # uses: LouisBrunner/diff-action@v2.2.0 + # with: + # old: cloudflare_subdomains.txt + # new: compose_subdomains.txt + # mode: mixed-worse + # output: missing_subdomains.txt - - name: Add missing subdomains to Cloudflare - if: steps.compare-subdomains.outputs.output != '' - env: - CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - run: | - for subdomain in $(cat missing_subdomains.txt); do - echo "Adding ${subdomain} to Cloudflare..." - flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true - done + # - name: Add missing subdomains to Cloudflare + # if: steps.compare-subdomains.outputs.output != '' + # env: + # CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + # CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + # run: | + # for subdomain in $(cat missing_subdomains.txt); do + # echo "Adding ${subdomain} to Cloudflare..." + # flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + # done - docker-compose-test: - name: Docker Compose Test - needs: [cloudflare-dns-setup] - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 + # docker-compose-test: + # name: Docker Compose Test + # needs: [cloudflare-dns-setup] + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v4 - - name: Generate ephemeral .env compose file - id: generate-env-file-pr - run: | - echo "${{ secrets.RINOA_ENV }}" > .env + # - name: Generate ephemeral .env compose file + # id: generate-env-file-pr + # run: | + # echo "${{ secrets.RINOA_ENV }}" > .env - - name: Docker Compose Lint - uses: yu-ichiro/spin-up-docker-compose-action@v1 - with: - file: docker-compose.yml - pull: true - pull-opts: --dry-run - up: true - up-opts: --dry-run -d --remove-orphans - env: - DOCKER_HOST: tcp://dockerproxy:2375 + # - name: Docker Compose Lint + # uses: yu-ichiro/spin-up-docker-compose-action@v1 + # with: + # file: docker-compose.yml + # pull: true + # pull-opts: --dry-run + # up: true + # up-opts: --dry-run -d --remove-orphans + # env: + # DOCKER_HOST: tcp://dockerproxy:2375 - merge-pr: - name: PR Merge - runs-on: ubuntu-latest - needs: [docker-compose-test] - steps: - - name: Checkout - uses: actions/checkout@v4 + # merge-pr: + # name: PR Merge + # runs-on: ubuntu-latest + # needs: [docker-compose-test] + # steps: + # - name: Checkout + # uses: actions/checkout@v4 - - name: Send Gotify Notification - uses: eikendev/gotify-action@0.0.3 - with: - gotify_api_base: '${{ secrets.GOTIFY_URL }}' - gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' - notification_title: '${{ github.ref_name }} ready to be merged.' - notification_message: '${{ gitea.server_url }}/issues' + # - name: Send Gotify Notification + # uses: eikendev/gotify-action@0.0.3 + # with: + # gotify_api_base: '${{ secrets.GOTIFY_URL }}' + # gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' + # notification_title: '${{ github.ref_name }} ready to be merged.' + # notification_message: '${{ gitea.server_url }}/issues' # - name: Manual Approval # uses: trstringer/manual-approval@v1 From 23271efbec59394e2a7810a52dc826e0ed34c8e0 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 13:17:25 -0500 Subject: [PATCH 098/121] ... --- .gitea/workflows/deployment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index a7e5e6c3..69039cbb 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -49,6 +49,7 @@ jobs: language-type: 'go' repository: cloudflare-go repository-owner: cloudflare + version: "latest" # - name: Setup Go # id: setup-go From baa210c1ea102f99cd38f8856e51fabf7ff6a158 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 13:21:10 -0500 Subject: [PATCH 099/121] ... --- .gitea/workflows/deployment.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 69039cbb..348ba225 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,6 +43,20 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 + - name: Setup Go + id: setup-go + uses: actions/setup-go@v5.2.0 + with: + go-version: 'stable' + cache: true + cache-dependency-path: | + **/go.sum + **/go.mod + **/flarectl + + - name: Setup jq + uses: dcarbone/install-jq-action@v3.0.1 + - name: Install flarectl uses: tj-actions/setup-bin@v1.2.1 with: @@ -51,20 +65,6 @@ jobs: repository-owner: cloudflare version: "latest" - # - name: Setup Go - # id: setup-go - # uses: actions/setup-go@v5.2.0 - # with: - # go-version: 'stable' - # cache: true - # cache-dependency-path: | - # **/go.sum - # **/go.mod - # **/flarectl - - # - name: Setup jq - # uses: dcarbone/install-jq-action@v3.0.1 - # - name: Retrieve Subdomains from Cloudflare & Compose # id: retrieve-cloudflare-subdomains # env: From 195ff475d780f37a6704313edd73e15b8ded1a1a Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 13:43:01 -0500 Subject: [PATCH 100/121] ... --- .gitea/workflows/deployment.yml | 45 ++++++++++++++++----------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 348ba225..226a1b0f 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -43,36 +43,35 @@ jobs: - name: Setup yq uses: dcarbone/install-yq-action@v1 - - name: Setup Go - id: setup-go - uses: actions/setup-go@v5.2.0 - with: - go-version: 'stable' - cache: true - cache-dependency-path: | - **/go.sum - **/go.mod - **/flarectl + # - name: Setup Go + # id: setup-go + # uses: actions/setup-go@v5.2.0 + # with: + # go-version: 'stable' + # cache: true + # cache-dependency-path: | + # **/go.sum + # **/go.mod + # **/flarectl - name: Setup jq uses: dcarbone/install-jq-action@v3.0.1 - name: Install flarectl - uses: tj-actions/setup-bin@v1.2.1 + uses: supplypike/setup-bin@v4 with: - language-type: 'go' - repository: cloudflare-go - repository-owner: cloudflare - version: "latest" + uri: 'https://github.com/cloudflare/cloudflare-go/releases/download/v0.113.0/flarectl_0.113.0_linux_amd64.tar.gz' + name: 'flarectl' + version: '0.113.0' - # - name: Retrieve Subdomains from Cloudflare & Compose - # id: retrieve-cloudflare-subdomains - # env: - # CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} - # CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - # run: | - # flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - # yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt + - name: Retrieve Subdomains from Cloudflare & Compose + id: retrieve-cloudflare-subdomains + env: + CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + run: | + flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt + yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt # - name: Compare Subdomains # id: compare-subdomains From 1a7f20fbc3c03f27ce0aeef11f9995630e885625 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 13:45:40 -0500 Subject: [PATCH 101/121] ... --- .gitea/workflows/deployment.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 226a1b0f..c6372664 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -70,17 +70,18 @@ jobs: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | + flarectl dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - # - name: Compare Subdomains - # id: compare-subdomains - # uses: LouisBrunner/diff-action@v2.2.0 - # with: - # old: cloudflare_subdomains.txt - # new: compose_subdomains.txt - # mode: mixed-worse - # output: missing_subdomains.txt + - name: Compare Subdomains + id: compare-subdomains + uses: LouisBrunner/diff-action@v2.2.0 + with: + old: cloudflare_subdomains.txt + new: compose_subdomains.txt + mode: mixed-better + output: missing_subdomains.txt # - name: Add missing subdomains to Cloudflare # if: steps.compare-subdomains.outputs.output != '' From 74a3c90a93d3dd5541eea5c0c4daf7b5b0a69ea3 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 13:47:52 -0500 Subject: [PATCH 102/121] ... --- .gitea/workflows/deployment.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index c6372664..825a6376 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -80,7 +80,8 @@ jobs: with: old: cloudflare_subdomains.txt new: compose_subdomains.txt - mode: mixed-better + mode: addition + tolerance: mixed-better output: missing_subdomains.txt # - name: Add missing subdomains to Cloudflare From ffb012148cf1290c5e0b00b21d6be6e6530d7c03 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 13:55:43 -0500 Subject: [PATCH 103/121] ... --- .gitea/workflows/deployment.yml | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 825a6376..b41f4c82 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -70,30 +70,21 @@ jobs: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt + diff compose_subdomains.txt cloudflare_subdomains.txt > missing_subdomains.txt || true + echo "::set-output name=output::$(cat missing_subdomains.txt)" - - name: Compare Subdomains - id: compare-subdomains - uses: LouisBrunner/diff-action@v2.2.0 - with: - old: cloudflare_subdomains.txt - new: compose_subdomains.txt - mode: addition - tolerance: mixed-better - output: missing_subdomains.txt - - # - name: Add missing subdomains to Cloudflare - # if: steps.compare-subdomains.outputs.output != '' - # env: - # CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - # CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - # run: | - # for subdomain in $(cat missing_subdomains.txt); do - # echo "Adding ${subdomain} to Cloudflare..." - # flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true - # done + - name: Add missing subdomains to Cloudflare + if: steps.compare-subdomains.outputs.output != '' + env: + CF_API_KEY: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} + run: | + for subdomain in $(cat missing_subdomains.txt); do + echo "Adding ${subdomain} to Cloudflare..." + flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + done # docker-compose-test: # name: Docker Compose Test From ae3a45f37558307c6f00bda20365ad51cfe57be6 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:15:26 -0500 Subject: [PATCH 104/121] .... --- .gitea/workflows/deployment.yml | 143 ++++++++++++++------------------ 1 file changed, 64 insertions(+), 79 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b41f4c82..62e00c1d 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -32,6 +32,30 @@ jobs: token: ${{ secrets.BOT_GITEA_TOKEN }} assignee: ${{ gitea.actor }} + docker-compose-test: + name: Docker Compose Test + needs: [cloudflare-dns-setup] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Generate ephemeral .env compose file + id: generate-env-file-pr + run: | + echo "${{ secrets.RINOA_ENV }}" > .env + + - name: Docker Compose Lint + uses: yu-ichiro/spin-up-docker-compose-action@v1 + with: + file: docker-compose.yml + pull: true + pull-opts: --dry-run + up: true + up-opts: --dry-run -d --remove-orphans + env: + DOCKER_HOST: tcp://dockerproxy:2375 + cloudflare-dns-setup: name: Cloudflare DNS Setup needs: [check-and-create-pr] @@ -40,22 +64,11 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Setup yq - uses: dcarbone/install-yq-action@v1 - - # - name: Setup Go - # id: setup-go - # uses: actions/setup-go@v5.2.0 - # with: - # go-version: 'stable' - # cache: true - # cache-dependency-path: | - # **/go.sum - # **/go.mod - # **/flarectl - - - name: Setup jq + - name: Install jq uses: dcarbone/install-jq-action@v3.0.1 + + - name: Install yq + uses: dcarbone/install-yq-action@v1 - name: Install flarectl uses: supplypike/setup-bin@v4 @@ -64,79 +77,51 @@ jobs: name: 'flarectl' version: '0.113.0' - - name: Retrieve Subdomains from Cloudflare & Compose - id: retrieve-cloudflare-subdomains + - name: Subdomain/CNAME Comparison & Creation + id: compare-subdomains env: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - diff compose_subdomains.txt cloudflare_subdomains.txt > missing_subdomains.txt || true - echo "::set-output name=output::$(cat missing_subdomains.txt)" + sdiff -l -s compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $1}' | egrep '^[a-z]' > missing_subdomains.txt + if [ -s missing_subdomains.txt ]; then + for subdomain in $(cat missing_subdomains.txt); do + echo "Adding ${subdomain} to Cloudflare..." + flarectl dns create --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true + done + else + echo "No missing subdomains found." + fi - - name: Add missing subdomains to Cloudflare - if: steps.compare-subdomains.outputs.output != '' - env: - CF_API_KEY: ${{ secrets.CF_API_TOKEN }} - CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} - run: | - for subdomain in $(cat missing_subdomains.txt); do - echo "Adding ${subdomain} to Cloudflare..." - flarectl dns creeate --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true - done + merge-pr: + name: PR Merge + runs-on: ubuntu-latest + needs: [docker-compose-test] + steps: + - name: Checkout + uses: actions/checkout@v4 - # docker-compose-test: - # name: Docker Compose Test - # needs: [cloudflare-dns-setup] - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v4 + - name: Send Gotify Notification + uses: eikendev/gotify-action@0.0.3 + with: + gotify_api_base: '${{ secrets.GOTIFY_URL }}' + gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' + notification_title: '${{ github.ref_name }} ready to be merged.' + notification_message: '${{ gitea.server_url }}/issues' - # - name: Generate ephemeral .env compose file - # id: generate-env-file-pr - # run: | - # echo "${{ secrets.RINOA_ENV }}" > .env - - # - name: Docker Compose Lint - # uses: yu-ichiro/spin-up-docker-compose-action@v1 - # with: - # file: docker-compose.yml - # pull: true - # pull-opts: --dry-run - # up: true - # up-opts: --dry-run -d --remove-orphans - # env: - # DOCKER_HOST: tcp://dockerproxy:2375 - - # merge-pr: - # name: PR Merge - # runs-on: ubuntu-latest - # needs: [docker-compose-test] - # steps: - # - name: Checkout - # uses: actions/checkout@v4 - - # - name: Send Gotify Notification - # uses: eikendev/gotify-action@0.0.3 - # with: - # gotify_api_base: '${{ secrets.GOTIFY_URL }}' - # gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' - # notification_title: '${{ github.ref_name }} ready to be merged.' - # notification_message: '${{ gitea.server_url }}/issues' - - # - name: Manual Approval - # uses: trstringer/manual-approval@v1 - # with: - # secret: ${{ secrets.BOT_GITEA_TOKEN }} - # approvers: Trez.One - # minimum-approvals: 1 - # issue-title: "Deployment of ${{ github.ref_name }}" - # issue-body: "Autobots, roll out!" - # exclude-workflow-initiator-as-approver: false - # additional-approved-words: '' - # additional-denied-words: '' + - name: Manual Approval + uses: trstringer/manual-approval@v1 + with: + secret: ${{ secrets.BOT_GITEA_TOKEN }} + approvers: Trez.One + minimum-approvals: 1 + issue-title: "Deployment of ${{ github.ref_name }}" + issue-body: "Autobots, roll out!" + exclude-workflow-initiator-as-approver: false + additional-approved-words: '' + additional-denied-words: '' # - name: Tea CLI Setup & PR Merge # run: | From 45894e63253497055e4ccb5116a6622cc8f0985c Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:16:45 -0500 Subject: [PATCH 105/121] .... --- .gitea/workflows/deployment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 62e00c1d..3605bf97 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -34,7 +34,7 @@ jobs: docker-compose-test: name: Docker Compose Test - needs: [cloudflare-dns-setup] + needs: [check-and-create-pr] runs-on: ubuntu-latest steps: - name: Checkout @@ -58,7 +58,7 @@ jobs: cloudflare-dns-setup: name: Cloudflare DNS Setup - needs: [check-and-create-pr] + needs: [docker-compose-test] runs-on: ubuntu-latest steps: - name: Checkout @@ -98,7 +98,7 @@ jobs: merge-pr: name: PR Merge runs-on: ubuntu-latest - needs: [docker-compose-test] + needs: [cloudflare-dns-setup] steps: - name: Checkout uses: actions/checkout@v4 From fd58dd6bd7fcd83b442cb3369af4479ea8a054a2 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:20:30 -0500 Subject: [PATCH 106/121] .... --- .gitea/workflows/deployment.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 3605bf97..35253422 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -83,7 +83,10 @@ jobs: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | + flarectl dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" + echo "Grabbing subdomains from Cloudflare..." flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt + echo "Grabbing subdomains from docker-compose.yml..." yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt sdiff -l -s compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $1}' | egrep '^[a-z]' > missing_subdomains.txt if [ -s missing_subdomains.txt ]; then From 98fb5033215b444864ea8b7d3347654b5017497a Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:23:14 -0500 Subject: [PATCH 107/121] .... --- .gitea/workflows/deployment.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 35253422..7010b5f1 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -89,13 +89,15 @@ jobs: echo "Grabbing subdomains from docker-compose.yml..." yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt sdiff -l -s compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $1}' | egrep '^[a-z]' > missing_subdomains.txt + cat missing_subdomains.txt if [ -s missing_subdomains.txt ]; then - for subdomain in $(cat missing_subdomains.txt); do - echo "Adding ${subdomain} to Cloudflare..." - flarectl dns create --zone ${{ secrets.CF_ZONE_ID }} --type CNAME --name "${subdomain}" --content "trez.wtf" --proxy true - done + echo "Missing subdomains found. Creating them..." + while IFS= read -r subdomain; do + echo "Creating $subdomain.trez.wtf..." + flarectl dns create --zone "trez.wtf" --name "$subdomain" --type CNAME --content "trez.wtf" + done < missing_subdomains.txt else - echo "No missing subdomains found." + echo "No missing subdomains found." fi merge-pr: From 183f19dd33723bc3cfeea262bd31d8bf9e7c8ea7 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:27:55 -0500 Subject: [PATCH 108/121] ..... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 7010b5f1..f512c488 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -88,7 +88,7 @@ jobs: flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt echo "Grabbing subdomains from docker-compose.yml..." yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - sdiff -l -s compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $1}' | egrep '^[a-z]' > missing_subdomains.txt + diff --side-by-side --left-column --suppress-common-lines compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $1}' | egrep '^[a-z]' > missing_subdomains.txt cat missing_subdomains.txt if [ -s missing_subdomains.txt ]; then echo "Missing subdomains found. Creating them..." From 29b30de330fd55d94037951d3fb0229728fef41e Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:41:05 -0500 Subject: [PATCH 109/121] .... --- .gitea/workflows/deployment.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index f512c488..d7aad6ed 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -30,7 +30,7 @@ jobs: with: url: ${{ gitea.server_url }} token: ${{ secrets.BOT_GITEA_TOKEN }} - assignee: ${{ gitea.actor }} + pr-label: 'auto-deploy-pr' docker-compose-test: name: Docker Compose Test @@ -88,8 +88,7 @@ jobs: flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt echo "Grabbing subdomains from docker-compose.yml..." yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - diff --side-by-side --left-column --suppress-common-lines compose_subdomains.txt cloudflare_subdomains.txt | awk '{print $1}' | egrep '^[a-z]' > missing_subdomains.txt - cat missing_subdomains.txt + diff compose_subdomains.txt cloudflare_subdomains.txt | egrep '<' | awk '{print $2}' > missing_subdomains.txt if [ -s missing_subdomains.txt ]; then echo "Missing subdomains found. Creating them..." while IFS= read -r subdomain; do From c4b67c6b360099d40022e80f9d916813aadea5d0 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:43:22 -0500 Subject: [PATCH 110/121] .... --- .gitea/workflows/deployment.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d7aad6ed..457fd2b0 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -88,7 +88,9 @@ jobs: flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt echo "Grabbing subdomains from docker-compose.yml..." yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt + which diff diff compose_subdomains.txt cloudflare_subdomains.txt | egrep '<' | awk '{print $2}' > missing_subdomains.txt + cat missing_subdomains.txt if [ -s missing_subdomains.txt ]; then echo "Missing subdomains found. Creating them..." while IFS= read -r subdomain; do From 43ddc8c7439513edf5c45450e137b9872d0bcdf4 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:50:32 -0500 Subject: [PATCH 111/121] .... --- .gitea/workflows/deployment.yml | 96 +++++++++++++++++---------------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 457fd2b0..c29d6b15 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -78,7 +78,7 @@ jobs: version: '0.113.0' - name: Subdomain/CNAME Comparison & Creation - id: compare-subdomains + id: grab-subdomains env: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} @@ -88,53 +88,55 @@ jobs: flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt echo "Grabbing subdomains from docker-compose.yml..." yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - which diff - diff compose_subdomains.txt cloudflare_subdomains.txt | egrep '<' | awk '{print $2}' > missing_subdomains.txt - cat missing_subdomains.txt - if [ -s missing_subdomains.txt ]; then - echo "Missing subdomains found. Creating them..." - while IFS= read -r subdomain; do - echo "Creating $subdomain.trez.wtf..." - flarectl dns create --zone "trez.wtf" --name "$subdomain" --type CNAME --content "trez.wtf" - done < missing_subdomains.txt - else - echo "No missing subdomains found." - fi - merge-pr: - name: PR Merge - runs-on: ubuntu-latest - needs: [cloudflare-dns-setup] - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Send Gotify Notification - uses: eikendev/gotify-action@0.0.3 + - name: Compare Subdomains and Create Missing Ones + id: compare-subdomains + uses: LouisBrunner/diff-action@v2.2.0 with: - gotify_api_base: '${{ secrets.GOTIFY_URL }}' - gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' - notification_title: '${{ github.ref_name }} ready to be merged.' - notification_message: '${{ gitea.server_url }}/issues' + old: compose_subdomains.txt + new: cloudflare_subdomains.txt + mode: 'addition' + tolerance: mixed-better - - name: Manual Approval - uses: trstringer/manual-approval@v1 - with: - secret: ${{ secrets.BOT_GITEA_TOKEN }} - approvers: Trez.One - minimum-approvals: 1 - issue-title: "Deployment of ${{ github.ref_name }}" - issue-body: "Autobots, roll out!" - exclude-workflow-initiator-as-approver: false - additional-approved-words: '' - additional-denied-words: '' + - name: Create Missing Subdomains + if: steps.compare-subdomains.outputs.output != '' + run: | + echo ${{ steps.compare-subdomains.outputs.output }} - # - name: Tea CLI Setup & PR Merge - # run: | - # curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea - # chmod +x /usr/local/bin/tea - # echo "Merging PR..." - # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - # echo ${{ gitea.ref_name }} - # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') - # tea pr m --repo ${{ github.repository }} --title "Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file + # merge-pr: + # name: PR Merge + # runs-on: ubuntu-latest + # needs: [cloudflare-dns-setup] + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + + # - name: Send Gotify Notification + # uses: eikendev/gotify-action@0.0.3 + # with: + # gotify_api_base: '${{ secrets.GOTIFY_URL }}' + # gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' + # notification_title: '${{ github.ref_name }} ready to be merged.' + # notification_message: '${{ gitea.server_url }}/issues' + + # - name: Manual Approval + # uses: trstringer/manual-approval@v1 + # with: + # secret: ${{ secrets.BOT_GITEA_TOKEN }} + # approvers: Trez.One + # minimum-approvals: 1 + # issue-title: "Deployment of ${{ github.ref_name }}" + # issue-body: "Autobots, roll out!" + # exclude-workflow-initiator-as-approver: false + # additional-approved-words: '' + # additional-denied-words: '' + + # - name: Tea CLI Setup & PR Merge + # run: | + # curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea + # chmod +x /usr/local/bin/tea + # echo "Merging PR..." + # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + # echo ${{ gitea.ref_name }} + # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') + # tea pr m --repo ${{ github.repository }} --title "Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file From 269af634c2f4753bc5d2feb357ee4d1aec825f76 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:54:54 -0500 Subject: [PATCH 112/121] .... --- .gitea/workflows/deployment.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index c29d6b15..d7d1db16 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -77,31 +77,31 @@ jobs: name: 'flarectl' version: '0.113.0' - - name: Subdomain/CNAME Comparison & Creation + - name: Grab Subdomains from Docker Compose & Cloudflare id: grab-subdomains env: CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | - flarectl dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" - echo "Grabbing subdomains from Cloudflare..." - flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt echo "Grabbing subdomains from docker-compose.yml..." yq '.services[].labels.swag_url' docker-compose.yml | egrep -v 'null' | sed -e 's|"||g' | awk -F'.' '{print $1}' | sort > compose_subdomains.txt - + echo "Grabbing subdomains from Cloudflare..." + flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt + - name: Compare Subdomains and Create Missing Ones id: compare-subdomains uses: LouisBrunner/diff-action@v2.2.0 with: old: compose_subdomains.txt new: cloudflare_subdomains.txt - mode: 'addition' + mode: addition tolerance: mixed-better + output: domain_compare.txt - - name: Create Missing Subdomains - if: steps.compare-subdomains.outputs.output != '' - run: | - echo ${{ steps.compare-subdomains.outputs.output }} + # - name: Create Missing Subdomains + # if: steps.compare-subdomains.outputs.output != '' + # run: | + # cat ${{ steps.compare-subdomains.outputs.output }} # merge-pr: # name: PR Merge From 8aad011b312a1d35b9c1e00f2959faf6e3b2d048 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 14:57:38 -0500 Subject: [PATCH 113/121] .... --- .gitea/workflows/deployment.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index d7d1db16..796e3856 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -88,7 +88,7 @@ jobs: echo "Grabbing subdomains from Cloudflare..." flarectl --json dns list --zone "trez.wtf" --type=CNAME --content "trez.wtf" | jq '.[].Name' | sed -e 's|"||g' | awk -F"." '{print $1}' | sort > cloudflare_subdomains.txt - - name: Compare Subdomains and Create Missing Ones + - name: Compare Subdomains id: compare-subdomains uses: LouisBrunner/diff-action@v2.2.0 with: @@ -98,10 +98,10 @@ jobs: tolerance: mixed-better output: domain_compare.txt - # - name: Create Missing Subdomains - # if: steps.compare-subdomains.outputs.output != '' - # run: | - # cat ${{ steps.compare-subdomains.outputs.output }} + - name: Create Missing Subdomains + if: steps.compare-subdomains.outputs.output != '' + run: | + cat domain_compare.txt # merge-pr: # name: PR Merge From 191b31573dac06ff407f91f1f27078605c7d0d7b Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:03:38 -0500 Subject: [PATCH 114/121] .... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 796e3856..147a5956 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -95,7 +95,7 @@ jobs: old: compose_subdomains.txt new: cloudflare_subdomains.txt mode: addition - tolerance: mixed-better + tolerance: better output: domain_compare.txt - name: Create Missing Subdomains From ee414373d70c9a9c3b777c35dab10b5a1ad53547 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:07:45 -0500 Subject: [PATCH 115/121] .... --- .gitea/workflows/deployment.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 147a5956..4bdc24df 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -95,13 +95,13 @@ jobs: old: compose_subdomains.txt new: cloudflare_subdomains.txt mode: addition - tolerance: better + tolerance: mixed-better output: domain_compare.txt - name: Create Missing Subdomains if: steps.compare-subdomains.outputs.output != '' run: | - cat domain_compare.txt + cat domain_compare.txt | egrep '^-[a-z] # merge-pr: # name: PR Merge From 5be2d091df84f2153d809c6ae784bcfdf92e3094 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:09:36 -0500 Subject: [PATCH 116/121] .... --- .gitea/workflows/deployment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 4bdc24df..8199ca3e 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -101,7 +101,7 @@ jobs: - name: Create Missing Subdomains if: steps.compare-subdomains.outputs.output != '' run: | - cat domain_compare.txt | egrep '^-[a-z] + cat domain_compare.txt | egrep '^-[a-z]' # merge-pr: # name: PR Merge From e1c0b9fb440e8c98cd2d53405b6f088244cd55fd Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:12:46 -0500 Subject: [PATCH 117/121] .... --- .gitea/workflows/deployment.yml | 55 +++++++++++++++++---------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 8199ca3e..b41f5749 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -101,35 +101,38 @@ jobs: - name: Create Missing Subdomains if: steps.compare-subdomains.outputs.output != '' run: | - cat domain_compare.txt | egrep '^-[a-z]' + cat domain_compare.txt | egrep '^-[a-z]' | sed -e 's|-||g' | while read -r subdomain; do + echo "Creating $subdomain.trez.wtf..." + flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf" + done - # merge-pr: - # name: PR Merge - # runs-on: ubuntu-latest - # needs: [cloudflare-dns-setup] - # steps: - # - name: Checkout - # uses: actions/checkout@v4 + merge-pr: + name: PR Merge + runs-on: ubuntu-latest + needs: [cloudflare-dns-setup] + steps: + - name: Checkout + uses: actions/checkout@v4 - # - name: Send Gotify Notification - # uses: eikendev/gotify-action@0.0.3 - # with: - # gotify_api_base: '${{ secrets.GOTIFY_URL }}' - # gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' - # notification_title: '${{ github.ref_name }} ready to be merged.' - # notification_message: '${{ gitea.server_url }}/issues' + - name: Send Gotify Notification + uses: eikendev/gotify-action@0.0.3 + with: + gotify_api_base: '${{ secrets.GOTIFY_URL }}' + gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' + notification_title: '${{ github.ref_name }} ready to be merged.' + notification_message: '${{ gitea.server_url }}/issues' - # - name: Manual Approval - # uses: trstringer/manual-approval@v1 - # with: - # secret: ${{ secrets.BOT_GITEA_TOKEN }} - # approvers: Trez.One - # minimum-approvals: 1 - # issue-title: "Deployment of ${{ github.ref_name }}" - # issue-body: "Autobots, roll out!" - # exclude-workflow-initiator-as-approver: false - # additional-approved-words: '' - # additional-denied-words: '' + - name: Manual Approval + uses: trstringer/manual-approval@v1 + with: + secret: ${{ secrets.BOT_GITEA_TOKEN }} + approvers: Trez.One + minimum-approvals: 1 + issue-title: "Deployment of ${{ github.ref_name }}" + issue-body: "Autobots, roll out!" + exclude-workflow-initiator-as-approver: false + additional-approved-words: '' + additional-denied-words: '' # - name: Tea CLI Setup & PR Merge # run: | From b667777e32d6075a65e859f4b1b83138fa7bfef7 Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:15:24 -0500 Subject: [PATCH 118/121] Env fixes --- .gitea/workflows/deployment.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b41f5749..b1627259 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -98,8 +98,11 @@ jobs: tolerance: mixed-better output: domain_compare.txt - - name: Create Missing Subdomains + - name: Create Subdomains if: steps.compare-subdomains.outputs.output != '' + env: + CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} + CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} run: | cat domain_compare.txt | egrep '^-[a-z]' | sed -e 's|-||g' | while read -r subdomain; do echo "Creating $subdomain.trez.wtf..." From b687ea16cd168817b391791a680a49c5a348afed Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:25:04 -0500 Subject: [PATCH 119/121] Changing manual approval action. --- .gitea/workflows/deployment.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index b1627259..13c4add4 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -126,16 +126,14 @@ jobs: notification_message: '${{ gitea.server_url }}/issues' - name: Manual Approval - uses: trstringer/manual-approval@v1 + uses: macnev2013/manual-approval@v1.0.18 with: secret: ${{ secrets.BOT_GITEA_TOKEN }} approvers: Trez.One minimum-approvals: 1 + approval-wait: 600 issue-title: "Deployment of ${{ github.ref_name }}" issue-body: "Autobots, roll out!" - exclude-workflow-initiator-as-approver: false - additional-approved-words: '' - additional-denied-words: '' # - name: Tea CLI Setup & PR Merge # run: | From 99b7c550867989f17ec7e2b03ed0d49956542ecb Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:30:37 -0500 Subject: [PATCH 120/121] Changing manual approval action. --- .gitea/workflows/deployment.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 13c4add4..08504e6a 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -112,6 +112,7 @@ jobs: merge-pr: name: PR Merge runs-on: ubuntu-latest + if: ${{ always() }} needs: [cloudflare-dns-setup] steps: - name: Checkout From f2f6b32a341702ef250a151529439d870f99a4bb Mon Sep 17 00:00:00 2001 From: "Trez.One" Date: Fri, 3 Jan 2025 15:38:07 -0500 Subject: [PATCH 121/121] Hopefully the final version. --- .gitea/workflows/deployment.yml | 35 ++++++++------------------------- 1 file changed, 8 insertions(+), 27 deletions(-) diff --git a/.gitea/workflows/deployment.yml b/.gitea/workflows/deployment.yml index 08504e6a..dc17e490 100644 --- a/.gitea/workflows/deployment.yml +++ b/.gitea/workflows/deployment.yml @@ -118,30 +118,11 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Send Gotify Notification - uses: eikendev/gotify-action@0.0.3 - with: - gotify_api_base: '${{ secrets.GOTIFY_URL }}' - gotify_app_token: '${{ secrets.GOTIFY_TOKEN }}' - notification_title: '${{ github.ref_name }} ready to be merged.' - notification_message: '${{ gitea.server_url }}/issues' - - - name: Manual Approval - uses: macnev2013/manual-approval@v1.0.18 - with: - secret: ${{ secrets.BOT_GITEA_TOKEN }} - approvers: Trez.One - minimum-approvals: 1 - approval-wait: 600 - issue-title: "Deployment of ${{ github.ref_name }}" - issue-body: "Autobots, roll out!" - - # - name: Tea CLI Setup & PR Merge - # run: | - # curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea - # chmod +x /usr/local/bin/tea - # echo "Merging PR..." - # tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} - # echo ${{ gitea.ref_name }} - # pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') - # tea pr m --repo ${{ github.repository }} --title "Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file + - name: Tea CLI Setup & PR Merge + run: | + curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea + chmod +x /usr/local/bin/tea + echo "Merging PR..." + tea login add --name gitea-rinoa --url ${{ vars.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }} + pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $1}' | sed -e 's|"||g') + tea pr m --repo ${{ github.repository }} --title "Auto Merge of ${{ gitea.ref_name }}" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} \ No newline at end of file