Compare commits

..

1 Commits

Author SHA1 Message Date
Trez.One ab4d6c2242 Typo fix for Soularr.
Gitea Branch PR, SonarQube Analyze, and Merge Workflow / Check and Create PR (push) Has been cancelled
Gitea Branch PR, SonarQube Analyze, and Merge Workflow / Docker Compose Test (push) Has been cancelled
Gitea Branch PR, SonarQube Analyze, and Merge Workflow / Cloudflare DNS Setup (push) Has been cancelled
Gitea Branch PR, SonarQube Analyze, and Merge Workflow / PR Merge (push) Has been cancelled
2025-01-07 11:54:55 -05:00
3 changed files with 613 additions and 288 deletions
+27 -113
View File
@@ -14,49 +14,36 @@ jobs:
- name: Checkout Code - name: Checkout Code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install tea - name: PR list
uses: supplypike/setup-bin@v4
with:
uri: 'https://gitea.com/gitea/tea/releases/download/v0.9.2/tea-0.9.2-linux-amd64'
name: 'tea'
version: '0.9.2'
- name: Check if PR exists & Create
id: list-prs id: list-prs
run: | 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_check=$(curl ${{ vars.RINOA_GITEA_URL }}/api/v1/repos/${{ github.repository }}/pulls/main/${{ github.ref_name }} \
tea login default gitea-rinoa -X 'GET' \
echo "Checking if PR exists for ${{ github.ref_name }}..." -H 'Accept: application/json' \
tea pr ls --repo ${{ github.repository }} --state all --fields index,title,head,state --output csv | egrep '${{ github.ref_name }}' | head -1 | egrep -q 'open' -H 'Authorization: token ${{ secrets.BOT_GITEA_TOKEN }}' \
if [ $? -eq 0 ]; then -sS | jq '{index: .number, state: .state}')
echo "An open PR exists, skipping creation..." pr_state=$(echo ${pr_check} | jq -r '.state')
elif [ $? -eq 1 ]; then
echo "No open PRs, creating one..." - name: Create PR
tea pr c -r "${{ github.repository }}" -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}" if: steps.list-prs.outputs.pr_state != 'open'
fi uses: arifer612/Gitea-PR-action@v1.2.0
with:
url: ${{ gitea.server_url }}
token: ${{ secrets.BOT_GITEA_TOKEN }}
pr-label: 'auto-deploy-pr'
docker-compose-test: docker-compose-test:
name: Docker Compose Test name: Docker Compose Test
needs: [check-and-create-pr] needs: [check-and-create-pr]
runs-on: ubuntu-latest runs-on: ubuntu-latest
env:
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install jq
uses: dcarbone/install-jq-action@v3.0.1
- name: Install Vault - name: Generate ephemeral .env compose file
uses: cpanato/vault-installer@main id: generate-env-file-pr
with:
vault-release: '1.18.3'
- name: Generate .env file for linting
run: | run: |
vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env echo "${{ secrets.RINOA_ENV }}" > .env
- name: Docker Compose Lint - name: Docker Compose Lint
uses: yu-ichiro/spin-up-docker-compose-action@v1 uses: yu-ichiro/spin-up-docker-compose-action@v1
@@ -113,7 +100,6 @@ jobs:
- name: Create Subdomains - name: Create Subdomains
if: steps.compare-subdomains.outputs.output != '' if: steps.compare-subdomains.outputs.output != ''
continue-on-error: true
env: env:
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }} CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }} CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }}
@@ -123,92 +109,20 @@ jobs:
flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf" flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf"
done done
regenerate-readme: merge-pr:
name: Update README
runs-on: ubuntu-latest
needs: [cloudflare-dns-setup]
outputs:
pr-pushed: ${{ steps.commit-readme.outputs.pushed }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install yq
uses: dcarbone/install-yq-action@v1
- name: Generate service list
run: |
yq '.services | to_entries | map({"service": .key, "image": .value.image})' docker-compose.yml > services.yml
- name: Generate Markdown Table
uses: gazab/create-markdown-table@v1
id: service-table
with:
file: ./services.yml
- name: Regenerate README
run: |
echo "# List of Services" > README.md
echo -e "\n\n" >> README.md
echo "${{ steps.service-table.outputs.table }}" >> README.md
- name: Add/Commit README.md
id: commit-readme
uses: EndBug/add-and-commit@v9
with:
message: "chore: Update README"
add: "README.md"
pr-merge:
name: PR Merge name: PR Merge
needs: [regenerate-readme]
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: ${{ always() }}
needs: [cloudflare-dns-setup]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install tea
uses: supplypike/setup-bin@v4
with:
uri: 'https://gitea.com/gitea/tea/releases/download/v0.9.2/tea-0.9.2-linux-amd64'
name: 'tea'
version: '0.9.2'
- name: PR Merge - name: Tea CLI Setup & PR Merge
id: pr_merge
run: | 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 }} curl -sSL https://dl.gitea.com/tea/main/tea-main-linux-amd64 -o /usr/local/bin/tea
tea login default gitea-rinoa 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') 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 PR #${pr_index} - ${{ gitea.ref_name }}" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index} tea pr m --repo ${{ github.repository }} --title "${{ github.ref_name }} Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index}
docker-compose-deploy:
name: Deploy via Docker Compose
runs-on: ubuntu-latest
needs: [pr-merge]
env:
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }}
DOCKER_HOST: tcp://dockerproxy:2375
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: main
- name: Install Vault
uses: cpanato/vault-installer@main
- name: Generate .env file for deployment
run: |
vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env
- name: Docker Compose Deployment
uses: keatonLiu/docker-compose-remote-action@v1.2
with:
ssh_user: gitea-deploy
ssh_host: 192.168.1.254
ssh_host_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
ssh_private_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
docker_compose_file: docker-compose.yml
+585 -154
View File
@@ -1,157 +1,588 @@
# List of Services # List of Services
```json
~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml
[
| Service | Image | {
| --- | --- | "service": "actual_server",
| actual_server | docker.io/actualbudget/actual-server:latest | "image": "docker.io/actualbudget/actual-server:latest"
| adguard | adguard/adguardhome:latest | },
| apprise | lscr.io/linuxserver/apprise-api:latest | {
| audiobookshelf | ghcr.io/advplyr/audiobookshelf:latest | "service": "adguard",
| authelia | authelia/authelia:master | "image": "adguard/adguardhome:latest"
| authelia-pg | postgres:16-alpine | },
| bazarr | lscr.io/linuxserver/bazarr:latest | {
| bitmagnet | ghcr.io/bitmagnet-io/bitmagnet:latest | "service": "apprise",
| bitmagnet-pg-db | postgres:17-alpine | "image": "lscr.io/linuxserver/apprise-api:latest"
| bitwarden | vaultwarden/server:latest | },
| bluesky-pds | ghcr.io/bluesky-social/pds:latest | {
| browserless | ghcr.io/browserless/chromium:latest | "service": "audiobookshelf",
| bunkerweb | bunkerity/bunkerweb:latest | "image": "ghcr.io/advplyr/audiobookshelf:latest"
| bunkerweb-scheduler | bunkerity/bunkerweb-scheduler:latest | },
| bunkerweb-ui | bunkerity/bunkerweb-ui:latest | {
| castopod | castopod/castopod:latest | "service": "authelia",
| cloudflared | cloudflare/cloudflared:latest | "image": "authelia/authelia:master"
| cloudflareddns | ghcr.io/hotio/cloudflareddns:latest | },
| crowdsec | crowdsecurity/crowdsec:latest | {
| crowdsec-dashboard | metabase/metabase | "service": "authelia-pg",
| czkawka | jlesage/czkawka | "image": "postgres:16-alpine"
| dagu-scheduler | ghcr.io/dagu-org/dagu:latest | },
| dagu-server | ghcr.io/dagu-org/dagu:latest | {
| delugevpn | ghcr.io/binhex/arch-delugevpn:latest | "service": "bazarr",
| docker-socket-proxy | ghcr.io/tecnativa/docker-socket-proxy:latest | "image": "lscr.io/linuxserver/bazarr:latest"
| docuseal | docuseal/docuseal:latest | },
| duplicati | lscr.io/linuxserver/duplicati:latest | {
| fastenhealth | ghcr.io/fastenhealth/fasten-onprem:main | "service": "bitmagnet",
| flaresolverr | ghcr.io/flaresolverr/flaresolverr:latest | "image": "ghcr.io/bitmagnet-io/bitmagnet:latest"
| ghost | ghost:latest | },
| gitea | gitea/gitea:1.22.6 | {
| gitea-db | postgres:14 | "service": "bitmagnet-pg-db",
| gitea-opengist | ghcr.io/thomiceli/opengist:latest | "image": "postgres:17-alpine"
| gitea-runner | gitea/act_runner:latest | },
| gitea-sonarqube-bot | justusbunsi/gitea-sonarqube-bot:v0.4.0 | {
| gluetun | qmcgaw/gluetun:latest | "service": "bitwarden",
| gotify | gotify/server | "image": "vaultwarden/server:latest"
| grafana | grafana/grafana-enterprise:latest | },
| grafana-alloy | grafana/alloy:latest | {
| grafana-loki | grafana/loki:latest | "service": "bluesky-pds",
| grafana-mimir | grafana/mimir:latest | "image": "ghcr.io/bluesky-social/pds:latest"
| grafana-mimir-memcached | memcached | },
| grafana-pyroscope | grafana/pyroscope:latest | {
| grafana-tempo | grafana/tempo:latest | "service": "browserless",
| guacamole | flcontainers/guacamole:latest | "image": "ghcr.io/browserless/chromium:latest"
| homepage | ghcr.io/gethomepage/homepage:latest | },
| hortusfox | ghcr.io/danielbrendel/hortusfox-web:latest | {
| hugo | hugomods/hugo:exts | "service": "castopod",
| invidious | quay.io/invidious/invidious:latest | "image": "castopod/castopod:latest"
| invidious-db | docker.io/library/postgres:14 | },
| invoice_ninja | invoiceninja/invoiceninja:5 | {
| invoice_ninja_proxy | nginx | "service": "cloudflared",
| it-tools | ghcr.io/corentinth/it-tools:latest | "image": "cloudflare/cloudflared:latest"
| jellyfin | jellyfin/jellyfin | },
| jitsi-etherpad | etherpad/etherpad:1.8.6 | {
| jitsi-jibri | jitsi/jibri:stable | "service": "cloudflareddns",
| jitsi-jicofo | jitsi/jicofo:stable | "image": "ghcr.io/hotio/cloudflareddns:latest"
| jitsi-jigasi | jitsi/jigasi:stable | },
| jitsi-jvb | jitsi/jvb:stable | {
| jitsi-prosody | jitsi/prosody:stable | "service": "crowdsec",
| jitsi-web | jitsi/web:stable | "image": "crowdsecurity/crowdsec:latest"
| joplin-db | postgres:17-alpine | },
| joplin | joplin/server:latest | {
| komodo-core | ghcr.io/mbecker20/komodo:latest | "service": "crowdsec-dashboard",
| komodo-ferretdb | ghcr.io/ferretdb/ferretdb | "image": "metabase/metabase"
| komodo-periphery | ghcr.io/mbecker20/periphery:latest | },
| komodo-pg-db | postgres:17-alpine | {
| librespeed | lscr.io/linuxserver/librespeed:latest | "service": "czkawka",
| lidarr | lscr.io/linuxserver/lidarr:latest | "image": "jlesage/czkawka"
| lidify | thewicklowwolf/lidify:latest | },
| lldap | lldap/lldap:stable | {
| localai | localai/localai:latest-aio-cpu | "service": "dagu-scheduler",
| maloja | krateng/maloja:latest | "image": "ghcr.io/dagu-org/dagu:latest"
| mariadb | ghcr.io/linuxserver/mariadb | },
| mastodon-pg-db | postgres:17-alpine | {
| minio | minio/minio | "service": "dagu-server",
| mongodb | mongo:7.0 | "image": "ghcr.io/dagu-org/dagu:latest"
| multi-scrobbler | foxxmd/multi-scrobbler | },
| n8n | docker.n8n.io/n8nio/n8n | {
| navidrome | deluan/navidrome:latest | "service": "delugevpn",
| netbox | lscr.io/linuxserver/netbox:latest | "image": "ghcr.io/binhex/arch-delugevpn:latest"
| netbox-db | postgres:17-alpine | },
| nextcloud | lscr.io/linuxserver/nextcloud:latest | {
| ollama | ollama/ollama | "service": "docker-socket-proxy",
| ombi | lscr.io/linuxserver/ombi:latest | "image": "ghcr.io/tecnativa/docker-socket-proxy:latest"
| paperless-ngx | ghcr.io/paperless-ngx/paperless-ngx:latest | },
| plausible | ghcr.io/plausible/community-edition:v2.1.0 | {
| plausible_db | postgres:16-alpine | "service": "docuseal",
| plausible_events_db | clickhouse/clickhouse-server:24.3.3.102-alpine | "image": "docuseal/docuseal:latest"
| postal-smtp | ghcr.io/postalserver/postal:latest | },
| postal-web | ghcr.io/postalserver/postal:latest | {
| postal-worker | ghcr.io/postalserver/postal:latest | "service": "duplicati",
| prowlarr | lscr.io/linuxserver/prowlarr:latest | "image": "lscr.io/linuxserver/duplicati:latest"
| radarec | thewicklowwolf/radarec:latest | },
| radarr | lscr.io/linuxserver/radarr:latest | {
| reactive-resume | amruthpillai/reactive-resume:latest | "service": "fastenhealth",
| reactive-resume-pg | postgres:16-alpine | "image": "ghcr.io/fastenhealth/fasten-onprem:main"
| readarr | lscr.io/linuxserver/readarr:develop | },
| redis | redis:alpine | {
| redlib | quay.io/redlib/redlib:latest | "service": "flaresolverr",
| sabnzbdvpn | ghcr.io/binhex/arch-sabnzbdvpn:latest | "image": "ghcr.io/flaresolverr/flaresolverr:latest"
| scraperr | jpyles0524/scraperr:latest | },
| scraperr-api | jpyles0524/scraperr_api:latest | {
| scrutiny | ghcr.io/analogj/scrutiny:master-omnibus | "service": "ghost",
| searxng | searxng/searxng:latest | "image": "ghost:latest"
| semaphore | semaphoreui/semaphore:v2.10.32 | },
| slurpit-portal | slurpit/portal:latest | {
| slurpit-scanner | slurpit/scanner:latest | "service": "gitea",
| slurpit-scraper | slurpit/scraper:latest | "image": "gitea/gitea:1.22.2"
| slurpit-warehouse | slurpit/warehouse:latest | },
| sonarqube | mc1arke/sonarqube-with-community-branch-plugin:lts | {
| sonarqube-pg-db | postgres:17-alpine | "service": "gitea-db",
| sonarr | lscr.io/linuxserver/sonarr:latest | "image": "postgres:14"
| sonashow | thewicklowwolf/sonashow:latest | },
| soularr | mrusse08/soularr:latest | {
| soulseek | slskd/slskd | "service": "gitea-opengist",
| spotisub | blastbeng/spotisub:latest | "image": "ghcr.io/thomiceli/opengist:latest"
| swag | lscr.io/linuxserver/swag:latest | },
| synapse | docker.io/matrixdotorg/synapse:latest | {
| synapse-db | postgres:16-alpine | "service": "gitea-runner",
| tandoor | vabene1111/recipes | "image": "gitea/act_runner:latest"
| tandoor-pg | postgres:16-alpine | },
| traccar | traccar/traccar:latest | {
| traccar-pg | postgres:16-alpine | "service": "gitea-sonarqube-bot",
| unmanic | josh5/unmanic:latest | "image": "justusbunsi/gitea-sonarqube-bot:v0.4.0"
| uptimekuma | louislam/uptime-kuma:latest | },
| vault | hashicorp/vault:latest | {
| wallabag | wallabag/wallabag | "service": "gluetun",
| wallos | bellamy/wallos:latest | "image": "qmcgaw/gluetun:latest"
| watchtower | ghcr.io/containrrr/watchtower:latest | },
| wazuh.agent | opennix/wazuh-agent:latest | {
| wazuh.dashboard | wazuh/wazuh-dashboard: | "service": "gotify",
| wazuh.indexer | wazuh/wazuh-indexer: | "image": "gotify/server"
| wazuh.manager | wazuh/wazuh-manager: | },
| web-check | lissy93/web-check | {
| whodb | clidey/whodb | "service": "grafana",
| your_spotify | lscr.io/linuxserver/your_spotify:latest | "image": "grafana/grafana-enterprise:latest"
| youtubedl | nbr23/youtube-dl-server:latest | },
| zammad-backup | postgres: | {
| zammad-elasticsearch | bitnami/elasticsearch: | "service": "grafana-alloy",
| zammad-init | : | "image": "grafana/alloy:latest"
| zammad-memcached | memcached: | },
| zammad-nginx | : | {
| zammad-postgresql | postgres: | "service": "grafana-loki",
| zammad-railsserver | : | "image": "grafana/loki:latest"
| zammad-redis | redis: | },
| zammad-scheduler | : | {
| zammad-websocket | : | "service": "grafana-mimir",
| zitadel | ghcr.io/zitadel/zitadel:latest | "image": "grafana/mimir:latest"
| zitadel-pg-db | postgres:16-alpine | },
{
"service": "grafana-mimir-memcached",
"image": "memcached"
},
{
"service": "grafana-pyroscope",
"image": "grafana/pyroscope:latest"
},
{
"service": "grafana-tempo",
"image": "grafana/tempo:latest"
},
{
"service": "homepage",
"image": "ghcr.io/gethomepage/homepage:latest"
},
{
"service": "hortusfox",
"image": "ghcr.io/danielbrendel/hortusfox-web:latest"
},
{
"service": "hugo",
"image": "hugomods/hugo:exts"
},
{
"service": "invidious",
"image": "quay.io/invidious/invidious:latest"
},
{
"service": "invidious-db",
"image": "docker.io/library/postgres:14"
},
{
"service": "invoice_ninja",
"image": "invoiceninja/invoiceninja:5"
},
{
"service": "invoice_ninja_proxy",
"image": "nginx"
},
{
"service": "it-tools",
"image": "ghcr.io/corentinth/it-tools:latest"
},
{
"service": "jellyfin",
"image": "jellyfin/jellyfin"
},
{
"service": "jitsi-etherpad",
"image": "etherpad/etherpad:1.8.6"
},
{
"service": "jitsi-jibri",
"image": "jitsi/jibri:${JITSI_IMAGE_VERSION:-stable}"
},
{
"service": "jitsi-jicofo",
"image": "jitsi/jicofo:${JITSI_IMAGE_VERSION:-stable}"
},
{
"service": "jitsi-jigasi",
"image": "jitsi/jigasi:${JITSI_IMAGE_VERSION:-stable}"
},
{
"service": "jitsi-jvb",
"image": "jitsi/jvb:${JITSI_IMAGE_VERSION:-stable}"
},
{
"service": "jitsi-prosody",
"image": "jitsi/prosody:${JITSI_IMAGE_VERSION:-stable}"
},
{
"service": "jitsi-web",
"image": "jitsi/web:${JITSI_IMAGE_VERSION:-stable}"
},
{
"service": "joplin-db",
"image": "postgres:17-alpine"
},
{
"service": "joplin",
"image": "joplin/server:latest"
},
{
"service": "komodo-core",
"image": "ghcr.io/mbecker20/komodo:latest"
},
{
"service": "komodo-ferretdb",
"image": "ghcr.io/ferretdb/ferretdb"
},
{
"service": "komodo-periphery",
"image": "ghcr.io/mbecker20/periphery:latest"
},
{
"service": "komodo-pg-db",
"image": "postgres:17-alpine"
},
{
"service": "librespeed",
"image": "lscr.io/linuxserver/librespeed:latest"
},
{
"service": "lidarr",
"image": "lscr.io/linuxserver/lidarr:latest"
},
{
"service": "lidify",
"image": "thewicklowwolf/lidify:latest"
},
{
"service": "lldap",
"image": "lldap/lldap:stable"
},
{
"service": "localai",
"image": "localai/localai:latest-aio-cpu"
},
{
"service": "maloja",
"image": "krateng/maloja:latest"
},
{
"service": "mariadb",
"image": "ghcr.io/linuxserver/mariadb"
},
{
"service": "meshcentral",
"image": "ghcr.io/ylianst/meshcentral:master"
},
{
"service": "minio",
"image": "minio/minio"
},
{
"service": "mongodb",
"image": "mongo:7.0"
},
{
"service": "multi-scrobbler",
"image": "foxxmd/multi-scrobbler"
},
{
"service": "n8n",
"image": "docker.n8n.io/n8nio/n8n"
},
{
"service": "navidrome",
"image": "deluan/navidrome:latest"
},
{
"service": "netbox",
"image": "lscr.io/linuxserver/netbox:latest"
},
{
"service": "netbox-db",
"image": "postgres:17-alpine"
},
{
"service": "nextcloud",
"image": "lscr.io/linuxserver/nextcloud:latest"
},
{
"service": "ollama",
"image": "ollama/ollama"
},
{
"service": "ombi",
"image": "lscr.io/linuxserver/ombi:latest"
},
{
"service": "paperless-ngx",
"image": "ghcr.io/paperless-ngx/paperless-ngx:latest"
},
{
"service": "plausible",
"image": "ghcr.io/plausible/community-edition:v2.1.0"
},
{
"service": "plausible_db",
"image": "postgres:16-alpine"
},
{
"service": "plausible_events_db",
"image": "clickhouse/clickhouse-server:24.3.3.102-alpine"
},
{
"service": "postal-smtp",
"image": "ghcr.io/postalserver/postal:latest"
},
{
"service": "postal-web",
"image": "ghcr.io/postalserver/postal:latest"
},
{
"service": "postal-worker",
"image": "ghcr.io/postalserver/postal:latest"
},
{
"service": "prowlarr",
"image": "lscr.io/linuxserver/prowlarr:latest"
},
{
"service": "radarec",
"image": "thewicklowwolf/radarec:latest"
},
{
"service": "radarr",
"image": "lscr.io/linuxserver/radarr:latest"
},
{
"service": "reactive-resume",
"image": "amruthpillai/reactive-resume:latest"
},
{
"service": "reactive-resume-pg",
"image": "postgres:16-alpine"
},
{
"service": "readarr",
"image": "lscr.io/linuxserver/readarr:develop"
},
{
"service": "redis",
"image": "redis:alpine"
},
{
"service": "redlib",
"image": "quay.io/redlib/redlib:latest"
},
{
"service": "sabnzbdvpn",
"image": "ghcr.io/binhex/arch-sabnzbdvpn:latest"
},
{
"service": "scraperr",
"image": "jpyles0524/scraperr:latest"
},
{
"service": "scraperr-api",
"image": "jpyles0524/scraperr_api:latest"
},
{
"service": "scrutiny",
"image": "ghcr.io/analogj/scrutiny:master-omnibus"
},
{
"service": "searxng",
"image": "searxng/searxng:latest"
},
{
"service": "semaphore",
"image": "semaphoreui/semaphore:v2.10.32"
},
{
"service": "slurpit-portal",
"image": "slurpit/portal:latest"
},
{
"service": "slurpit-scanner",
"image": "slurpit/scanner:latest"
},
{
"service": "slurpit-scraper",
"image": "slurpit/scraper:latest"
},
{
"service": "slurpit-warehouse",
"image": "slurpit/warehouse:latest"
},
{
"service": "sonarqube",
"image": "mc1arke/sonarqube-with-community-branch-plugin:lts"
},
{
"service": "sonarqube-pg-db",
"image": "postgres:17-alpine"
},
{
"service": "sonarr",
"image": "lscr.io/linuxserver/sonarr:latest"
},
{
"service": "sonashow",
"image": "thewicklowwolf/sonashow:latest"
},
{
"service": "soulseek",
"image": "slskd/slskd"
},
{
"service": "spotisub",
"image": "blastbeng/spotisub:latest"
},
{
"service": "swag",
"image": "lscr.io/linuxserver/swag:latest"
},
{
"service": "synapse",
"image": "docker.io/matrixdotorg/synapse:latest"
},
{
"service": "synapse-db",
"image": "postgres:16-alpine"
},
{
"service": "tandoor",
"image": "vabene1111/recipes"
},
{
"service": "tandoor-pg",
"image": "postgres:16-alpine"
},
{
"service": "traccar",
"image": "traccar/traccar:latest"
},
{
"service": "traccar-pg",
"image": "postgres:16-alpine"
},
{
"service": "unmanic",
"image": "josh5/unmanic:latest"
},
{
"service": "uptimekuma",
"image": "louislam/uptime-kuma:latest"
},
{
"service": "vault",
"image": "hashicorp/vault:latest"
},
{
"service": "wallabag",
"image": "wallabag/wallabag"
},
{
"service": "wallos",
"image": "bellamy/wallos:latest"
},
{
"service": "watchtower",
"image": "ghcr.io/containrrr/watchtower:latest"
},
{
"service": "wazuh.agent",
"image": "opennix/wazuh-agent:latest"
},
{
"service": "wazuh.dashboard",
"image": "wazuh/wazuh-dashboard:${WAZUH_VERSION}"
},
{
"service": "wazuh.indexer",
"image": "wazuh/wazuh-indexer:${WAZUH_VERSION}"
},
{
"service": "wazuh.manager",
"image": "wazuh/wazuh-manager:${WAZUH_VERSION}"
},
{
"service": "web-check",
"image": "lissy93/web-check"
},
{
"service": "whodb",
"image": "clidey/whodb"
},
{
"service": "your_spotify",
"image": "lscr.io/linuxserver/your_spotify:latest"
},
{
"service": "youtubedl",
"image": "nbr23/youtube-dl-server:latest"
},
{
"service": "zammad-backup",
"image": "postgres:${ZAMMAD_POSTGRES_VERSION}"
},
{
"service": "zammad-elasticsearch",
"image": "bitnami/elasticsearch:${ZAMMAD_ELASTICSEARCH_VERSION}"
},
{
"service": "zammad-init",
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
},
{
"service": "zammad-memcached",
"image": "memcached:${ZAMMAD_MEMCACHE_VERSION}"
},
{
"service": "zammad-nginx",
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
},
{
"service": "zammad-postgresql",
"image": "postgres:${ZAMMAD_POSTGRES_VERSION}"
},
{
"service": "zammad-railsserver",
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
},
{
"service": "zammad-redis",
"image": "redis:${ZAMMAD_REDIS_VERSION}"
},
{
"service": "zammad-scheduler",
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
},
{
"service": "zammad-websocket",
"image": "${ZAMMAD_IMAGE_REPO}:${ZAMMAD_VERSION}"
},
{
"service": "zitadel",
"image": "ghcr.io/zitadel/zitadel:latest"
},
{
"service": "zitadel-pg-db",
"image": "postgres:16-alpine"
}
]
```
+1 -21
View File
@@ -556,10 +556,7 @@ services:
castopod: castopod:
container_name: castopod container_name: castopod
depends_on: depends_on:
mariadb: - mariadb
condition: service_started
required: true
restart: true
environment: environment:
MYSQL_DATABASE: castopod MYSQL_DATABASE: castopod
MYSQL_USER: castopod MYSQL_USER: castopod
@@ -1709,7 +1706,6 @@ services:
mariadb: mariadb:
condition: service_started condition: service_started
required: true required: true
restart: true
environment: environment:
APP_ADMIN_EMAIL: charish.patel@trez.wtf APP_ADMIN_EMAIL: charish.patel@trez.wtf
APP_ADMIN_PASSWORD: ${HORTUSFOX_ADMIN_PASSWORD} APP_ADMIN_PASSWORD: ${HORTUSFOX_ADMIN_PASSWORD}
@@ -1872,11 +1868,6 @@ services:
create_host_path: true create_host_path: true
invoice_ninja: invoice_ninja:
container_name: invoice_ninja container_name: invoice_ninja
depends_on:
mariadb:
condition: service_started
required: true
restart: true
environment: environment:
APP_DEBUG: true APP_DEBUG: true
APP_KEY: ${IN_APP_KEY} APP_KEY: ${IN_APP_KEY}
@@ -3320,11 +3311,6 @@ services:
volume: {} volume: {}
nextcloud: nextcloud:
container_name: nextcloud container_name: nextcloud
depends_on:
mariadb:
condition: service_started
required: true
restart: true
environment: environment:
PGID: 1000 PGID: 1000
PUID: 1000 PUID: 1000
@@ -3437,11 +3423,6 @@ services:
type: bind type: bind
paperless-ngx: paperless-ngx:
container_name: paperless-ngx container_name: paperless-ngx
depends_on:
mariadb:
condition: service_started
required: true
restart: true
environment: environment:
PAPERLESS_DBENGINE: mariadb PAPERLESS_DBENGINE: mariadb
PAPERLESS_DBHOST: mariadb PAPERLESS_DBHOST: mariadb
@@ -6091,7 +6072,6 @@ services:
mariadb: mariadb:
condition: service_started condition: service_started
required: true required: true
restart: true
redis: redis:
condition: service_started condition: service_started
required: true required: true