Merge branch 'main' into renovate/configure
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Check and Create PR (push) Has been skipped
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Generate list of added/modified/deleted services (push) Successful in 40s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Dry Run (push) Successful in 1m28s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Cloudflare DNS Setup (push) Successful in 28s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Update README & Generate List of Modified Services (push) Successful in 25s
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / PR Merge (push) Has been skipped
Gitea Branch PR, Cloudflare DNS, README generation, & Docker Deployment / Docker Compose Deployment (push) Successful in 3m58s

This commit is contained in:
2025-09-03 17:38:06 -04:00
3 changed files with 66 additions and 179 deletions
@@ -7,8 +7,6 @@ on:
- 'main'
paths:
- '**/docker-compose.yml'
- '**/pr-cloudflare-docker-deploy.yml'
- '!ansible/**.yml'
env:
FLARECTL_VERSION: '0.115.0'
@@ -17,7 +15,7 @@ env:
jobs:
check-and-create-pr:
if: github.ref != 'refs/heads/main'
if: github.ref != 'refs/heads/main' && !startsWith(github.ref_name, 'renovate/') && github.actor != 'renovate-bot'
name: Check and Create PR
runs-on: ubuntu-latest
steps:
@@ -52,17 +50,39 @@ jobs:
id: check-opened-pr-step
continue-on-error: true
run: |
tea login add --name gitea-rinoa --url "${{ secrets.RINOA_GITEA_URL }}" --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }}
pr_exists=$(tea pr list --repo ${{ github.repository }} --state open --fields index,title,head | egrep '\[DOCKER\].*${{ github.ref_name }}' | tail -1 | wc -l)
tea login add \
--name gitea-rinoa \
--url "${{ secrets.RINOA_GITEA_URL }}" \
--user gitea-sonarqube-bot \
--password "${{ secrets.BOT_GITEA_PASSWORD }}" \
--token ${{ secrets.BOT_GITEA_TOKEN }}
pr_exists=$(tea pr list \
--repo ${{ github.repository }} \
--state open \
--fields index,title,head \
| egrep '\[DOCKER\].*${{ github.ref_name }}' | tail -1 | wc -l)
echo "exists=$pr_exists" >> $GITHUB_OUTPUT
- name: Create PR
if: ${{ steps.check-opened-pr-step.outputs.exists == '0' }}
run: |
tea login default gitea-rinoa
pr_index_old=$(tea pr ls --repo ${{ github.repository }} --state all --fields index,title,head --output csv | sed -e 's|"||g' | egrep '^[0-9]' | head -1 | awk -F"," '{print $1}')
pr_index_old=$(tea pr ls \
--repo ${{ github.repository }} \
--state all --fields index,title,head \
--output csv | sed -e 's|"||g' | \
egrep '^[0-9]' | head -1 | awk -F"," '{print $1}')
pr_index_new=$(expr ${pr_index_old} + 1)
tea pr c -r ${{ github.repository }} -t "[DOCKER] Automated PR for ${{ github.ref_name }} - #${pr_index_new}" -d "Automatically created PR for branch: ${{ github.ref_name }}" -a ${{ github.actor }} -L "Docker Compose"
tea pr c -r ${{ github.repository }} \
-t "[DOCKER] Automated PR for ${{ github.ref_name }} - #${pr_index_new}" \
-d "Automatically created PR for branch: ${{ github.ref_name }}" \
-a ${{ github.actor }} \
-L "Docker Compose"
- name: Gotify Notification
uses: eikendev/gotify-action@master
@@ -75,7 +95,6 @@ jobs:
generate-service-list:
name: Generate list of added/modified/deleted services
runs-on: ubuntu-latest
needs: [check-and-create-pr]
outputs:
svc_deploy_list: ${{ steps.detect_services.outputs.docker_svc_list }}
steps:
@@ -234,8 +253,19 @@ jobs:
CF_API_TOKEN: ${{ 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
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
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: Gotify Notification
uses: eikendev/gotify-action@master
with:
@@ -327,6 +357,7 @@ jobs:
pr-merge:
name: PR Merge
needs: [regenerate-readme-modified-services]
if: github.ref != 'refs/heads/main' && !startsWith(github.ref_name, 'renovate/') && github.actor != 'renovate-bot'
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -349,11 +380,28 @@ jobs:
- name: PR Merge
id: pr_merge
run: |
tea login add --name gitea-rinoa --url ${{ secrets.RINOA_GITEA_URL }} --user gitea-sonarqube-bot --password "${{ secrets.BOT_GITEA_PASSWORD }}" --token ${{ secrets.BOT_GITEA_TOKEN }}
tea login add \
--name gitea-rinoa \
--url "${{ secrets.RINOA_GITEA_URL }}" \
--user gitea-sonarqube-bot \
--password "${{ secrets.BOT_GITEA_PASSWORD }}" \
--token ${{ secrets.BOT_GITEA_TOKEN }}
tea login default gitea-rinoa
echo "Merging PR..."
pr_index=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ github.ref_name }} | awk -F"," '{print $1}' | sed -e 's|"||g')
tea pr m --repo ${{ github.repository }} --title "Auto Merge of PR ${pr_index} - ${{ github.ref_name }}" --message "Merged by ${{ github.actor }}" ${pr_index}
pr_index=$(tea pr ls \
--repo ${{ github.repository }} \
--state open --fields index,title,head,state \
--output csv | \
egrep ${{ github.ref_name }} | awk -F"," '{print $1}' | sed -e 's|"||g')
tea pr m \
--repo ${{ github.repository }} \
--title "Auto Merge of PR ${pr_index} - ${{ github.ref_name }}" \
--message "Merged by ${{ github.actor }}" ${pr_index}
echo "pr_index=${pr_index}" >> $GITHUB_OUTPUT
- name: Gotify Notification
@@ -367,7 +415,7 @@ jobs:
docker-compose-deploy:
name: Docker Compose Deployment
runs-on: ubuntu-latest
needs: [generate-service-list, docker-compose-dry-run, pr-merge]
needs: [generate-service-list, docker-compose-dry-run]
env:
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
@@ -395,7 +443,9 @@ jobs:
- name: Login to Gitea Container Registry
run: |
docker login -u gitea-sonarqube-bot -p ${RINOA_REGISTRY_PASSWORD} git.trez.wtf
docker login -u gitea-sonarqube-bot \
-p ${RINOA_REGISTRY_PASSWORD} \
git.trez.wtf
- name: Gotify Notification
uses: eikendev/gotify-action@master
-4
View File
@@ -10,7 +10,6 @@
| apcupsd-cgi | bnhf/apcupsd-cgi:latest |
| apprise-api | lscr.io/linuxserver/apprise-api:latest |
| archivebox | archivebox/archivebox:latest |
| argus | quay.io/argus-io/argus:latest |
| asciinema | ghcr.io/asciinema/asciinema-server:latest |
| asciinema-pg-db | postgres:14-alpine |
| audiobookshelf | ghcr.io/advplyr/audiobookshelf:latest |
@@ -60,8 +59,6 @@
| gitignore-io | guog/gitignore.io:latest |
| gluetun | qmcgaw/gluetun:latest |
| gotify | gotify/server |
| graylog | graylog/graylog:6.1 |
| graylog-datanode | graylog/graylog-datanode:6.1 |
| guacamole | flcontainers/guacamole:latest |
| homepage | ghcr.io/gethomepage/homepage:latest |
| hugo | hugomods/hugo:exts |
@@ -166,7 +163,6 @@
| romm-valkey | docker.io/bitnami/valkey:latest |
| sabnzbdvpn | ghcr.io/binhex/arch-sabnzbdvpn:latest |
| sablier | sablierapp/sablier:latest |
| scraparr | ghcr.io/thecfu/scraparr:latest |
| scrutiny | ghcr.io/analogj/scrutiny:master-omnibus |
| searxng | searxng/searxng:latest |
| searxng-valkey | docker.io/bitnami/valkey:latest |
+1 -160
View File
@@ -387,42 +387,6 @@ services:
volumes:
- ${DOCKER_VOLUME_CONFIG}/archivebox:/data
# ./data/personas/Default/chrome_profile/Default:/data/personas/Default/chrome_profile/Default
argus:
container_name: argus
environment:
ARGUS_UID: ${PUID}
ARGUS_GID: ${PGID}
healthcheck:
test: ["CMD", "/healthcheck", "http://localhost:8080/api/v1/healthcheck"]
interval: 1m
timeout: 10s
retries: 3
start_period: 10s
image: quay.io/argus-io/argus:latest
labels:
swag: enable
swag_proto: http
swag_port: 8080
swag_url: argus.${MY_TLD}
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Argus
swag.uptime-kuma.monitor.url: https://argus.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
homepage.group: System Administration
homepage.name: Argus
homepage.icon: release-argus.png
homepage.href: https://argus.${MY_TLD}
homepage.description: Software release monitoring and notifications
ports:
- 9857:8080
profiles: ["rinoa-apps"]
restart: always
volumes:
- ${DOCKER_VOLUME_CONFIG}/argus/config.yml:/app/config.yml
- ${DOCKER_VOLUME_CONFIG}/argus/:/app/data/
asciinema:
container_name: asciinema
depends_on:
@@ -2081,97 +2045,6 @@ services:
type: bind
bind:
create_host_path: true
graylog:
container_name: graylog
hostname: graylog
image: graylog/graylog:6.1
depends_on:
graylog-datanode:
condition: service_started
required: true
mongodb:
condition: service_started
required: true
entrypoint: /usr/bin/tini -- /docker-entrypoint.sh
environment:
GRAYLOG_NODE_ID_FILE: /usr/share/graylog/data/data/node-id
GRAYLOG_PASSWORD_SECRET: ${GRAYLOG_PASSWORD_SECRET}
GRAYLOG_ROOT_PASSWORD_SHA2: ${GRAYLOG_ROOT_PASSWORD_SHA2}
GRAYLOG_HTTP_BIND_ADDRESS: 0.0.0.0:9000
GRAYLOG_HTTP_EXTERNAL_URI: http://localhost:9000/
GRAYLOG_MONGODB_URI: mongodb://graylog:${GRAYLOG_MONGODB_PASSWORD}@mongodb:27017/graylog?replicaSet=rinoa
GRAYLOG_ROOT_EMAIL: charish.patel@${MY_TLD}
GRAYLOG_TRANSPORT_EMAIL_AUTH_PASSWORD: ${POSTAL_SMTP_AUTH_PASSWORD}
GRAYLOG_TRANSPORT_EMAIL_AUTH_USERNAME: ${POSTAL_SMTP_AUTH_USER}
GRAYLOG_TRANSPORT_EMAIL_ENABLED: true
GRAYLOG_TRANSPORT_EMAIL_FROM_EMAIL: noreply@${MY_TLD}
GRAYLOG_TRANSPORT_EMAIL_HOSTNAME: postal-smtp
GRAYLOG_TRANSPORT_EMAIL_PORT: 25
GRAYLOG_TRANSPORT_EMAIL_USE_AUTH: true
labels:
homepage.group: Infrastructure/App Performance Monitoring
homepage.name: Graylog
homepage.href: https://logs.${MY_TLD}
homepage.icon: sh-graylog.svg
homepage.description: Log Management
swag: enable
swag_port: 9000
swag_url: logs.${MY_TLD}
swag_proto: http
swag.uptime-kuma.enabled: true
swag.uptime-kuma.monitor.parent: Rinoa
swag.uptime-kuma.name: Graylog
swag.uptime-kuma.monitor.url: https://logs.${MY_TLD}
swag.uptime-kuma.monitor.interval: 300
swag.uptime-kuma.monitor.retryInterval: 60
swag.uptime-kuma.monitor.maxretries: 5
ports:
- 5044:5044/tcp # Beats
- 5140:5140/udp # Syslog
- 5140:5140/tcp # Syslog
- 5555:5555/tcp # RAW TCP
- 5555:5555/udp # RAW UDP
- 13457:9000/tcp # Server API
- 12201:12201/tcp # GELF TCP
- 12201:12201/udp # GELF UDP
#- 10000:10000/tcp # Custom TCP port
#- 10000:10000/udp # Custom UDP port
- 13301:13301/tcp # Forwarder data
- 13302:13302/tcp # Forwarder config
profiles: ["rinoa-apps"]
restart: on-failure
volumes:
- graylog-data:/usr/share/graylog/data/data
graylog-datanode:
container_name: graylog-datanode
hostname: graylog-datanode
image: graylog/graylog-datanode:6.1
environment:
GRAYLOG_NODE_NAME: graylog-datanode
GRAYLOG_DATANODE_PASSWORD_SECRET: ${GRAYLOG_PASSWORD_SECRET}
GRAYLOG_DATANODE_MONGODB_URI: mongodb://graylog:${GRAYLOG_MONGODB_PASSWORD}@mongodb:27017/graylog?replicaSet=rinoa
GRAYLOG_PATH_REPO: graylog
GRAYLOG_S3_CLIENT_DEFAULT_ACCESS_KEY: ${GRAYLOG_S3_ACCESS_KEY}
GRAYLOG_S3_CLIENT_DEFAULT_ENDPOINT: minio:9000
GRAYLOG_S3_CLIENT_DEFAULT_PATH_STYLE_ACCESS: 1
GRAYLOG_S3_CLIENT_DEFAULT_PROTOCOL: http
GRAYLOG_S3_CLIENT_DEFAULT_REGION: us-east-fh-pln
GRAYLOG_S3_CLIENT_DEFAULT_SECRET_KEY: ${GRAYLOG_S3_SECRET_KEY}
ports:
- 8999:8999
- 9200:9200
- 9300:9300
profiles: ["rinoa-apps"]
restart: on-failure
ulimits:
memlock:
hard: -1
soft: -1
nofile:
soft: 65536
hard: 65536
volumes:
- graylog-datanode:/var/lib/graylog-datanode
guacamole:
container_name: guacamole
environment:
@@ -5560,7 +5433,7 @@ services:
RENOVATE_ONBOARDING: "true" # create onboarding PR if repo not configured
RENOVATE_REQUIRE_CONFIG: "optional" # run even if no renovate config exists
RENOVATE_REDIS_URL: redis://renovate-valkey:6379
LIBRECHAT_GITHUB_TOKEN: $LIBRECHAT_GITHUB_TOKEN}
LOG_LEVEL: "info"
# --- Enable dependency dashboard ---
@@ -5796,30 +5669,6 @@ services:
- ${DOCKER_VOLUME_CONFIG}/sablier/state:/opt/sablier/state
- ${DOCKER_VOLUME_CONFIG}/sablier/custom_themes:/opt/sablier/custom_themes
- /var/run/docker.sock:/var/run/docker.sock
scraparr:
container_name: scraparr
depends_on:
- bazarr
- prowlarr
- radarr
- readarr
- sonarr
environment:
BAZARR_API_KEY: ${BAZARR_API_KEY}
BAZARR_URL: http://bazarr:6767
PROWLARR_API_KEY: ${PROWLARR_API_KEY}
PROWLARR_URL: http://prowlarr:9696
RADARR_API_KEY: ${RADARR_API_KEY}
RADARR_URL: http://radarr:7878
READARR_API_KEY: ${READARR_API_KEY}
READARR_URL: http://readarr:8787
SONARR_API_KEY: ${SONARR_API_KEY}
SONARR_URL: http://sonarr:8989
image: ghcr.io/thecfu/scraparr:latest
ports:
- 7100:7100
profiles: ["rinoa-apps"]
restart: unless-stopped
scrutiny:
cap_add:
- SYS_RAWIO
@@ -7296,10 +7145,6 @@ volumes:
name: fastenhealth-db
gitea-pg-db:
name: gitea-pg-db
graylog-data:
name: graylog-data
graylog-datanode:
name: graylog-datanode
immich-model-cache:
name: immich-model-cache
immich-valkey-data:
@@ -7382,8 +7227,6 @@ volumes:
name: penpot-assets
penpot-pg-data:
name: penpot-pg-data
pgbackweb-data:
name: pgbackweb-data
planka-favicons:
name: planka-favicons
planka-user-avatars:
@@ -7398,8 +7241,6 @@ volumes:
name: plant-it-valkey-data
portainer-data:
name: portainer-data
portnote-db-data:
name: portnote-db-data
protonmail-data:
name: protonmail-data
reactive-resume-pg: