Auto Merge of PR #2 - docker-compose-deploy

Merged by Trez.One
This commit is contained in:
2025-01-09 13:29:21 -05:00
3 changed files with 422 additions and 613 deletions
+115 -27
View File
@@ -14,36 +14,47 @@ jobs:
- name: Checkout Code
uses: actions/checkout@v4
- name: PR list
- 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: Check if PR exists & Create
id: list-prs
run: |
pr_check=$(curl ${{ vars.RINOA_GITEA_URL }}/api/v1/repos/${{ github.repository }}/pulls/main/${{ github.ref_name }} \
-X 'GET' \
-H 'Accept: application/json' \
-H 'Authorization: token ${{ secrets.BOT_GITEA_TOKEN }}' \
-sS | jq '{index: .number, state: .state}')
pr_state=$(echo ${pr_check} | jq -r '.state')
- name: Create PR
if: steps.list-prs.outputs.pr_state != 'open'
uses: arifer612/Gitea-PR-action@v1.2.0
with:
url: ${{ gitea.server_url }}
token: ${{ secrets.BOT_GITEA_TOKEN }}
pr-label: 'auto-deploy-pr'
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
pr_state=$(tea pr ls --repo ${{ github.repository }} --state open --fields index,title,head,state --output csv | egrep ${{ gitea.ref_name }} | awk -F, '{print $4}' | sed -e 's|"||g')
if [ "${pr_state}" != open ]; then
tea pr c -r ${{ github.repository }} -t "Automated PR for ${{ github.ref_name }}" -d "Automated PR for ${{ github.ref_name }}"
elif [ "${pr_state}" = open ]; then
echo "PR already exists, skipping creation..."
fi
docker-compose-test:
name: Docker Compose Test
needs: [check-and-create-pr]
runs-on: ubuntu-latest
env:
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
VAULT_TOKEN: ${{ secrets.RINOA_VAULT_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install jq
uses: dcarbone/install-jq-action@v3.0.1
- name: Generate ephemeral .env compose file
id: generate-env-file-pr
- name: Install Vault
uses: cpanato/vault-installer@main
with:
vault-release: '1.18.3'
- name: Generate .env file for linting
run: |
echo "${{ secrets.RINOA_ENV }}" > .env
vault kv get -format=json rinoa-docker/env | jq -r '.data.data' | jq -r 'keys[] as $k | "\($k)='\''\(.[$k])'\''"' > .env
- name: Docker Compose Lint
uses: yu-ichiro/spin-up-docker-compose-action@v1
@@ -100,6 +111,7 @@ jobs:
- name: Create Subdomains
if: steps.compare-subdomains.outputs.output != ''
continue-on-error: true
env:
CF_API_TOKEN: ${{ secrets.CF_API_TOKEN }}
CF_API_EMAIL: ${{ secrets.CF_API_EMAIL }}
@@ -109,20 +121,96 @@ jobs:
flarectl dns create --zone "trez.wtf" --name "${subdomain}" --type=CNAME --content "trez.wtf"
done
merge-pr:
name: PR Merge
regenerate-readme:
name: Update README
runs-on: ubuntu-latest
if: ${{ always() }}
needs: [cloudflare-dns-setup]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Tea CLI Setup & PR Merge
- name: Install yq
uses: dcarbone/install-yq-action@v1
- name: Generate README list
id: readme-list
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 }}
services_list=$(yq '.services | to_entries | map({"service": .key, "image": .value.image})' docker-compose.yml)
echo "SERVICES_LIST<<EOF" >> $GITHUB_ENV
echo "${services_list}" >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
- name: Regenerate README
uses: gnpaone/dynamic-update-readme@v1.0.2
with:
marker_text: "SERVICES_LIST"
markdown_text: |
```yaml
${{ env.SERVICES_LIST }}
````
commit_email: noreply@trez.wtf
commit_username: gitea-sonarqube-bot
commit_message: "docs: regenerate README"
deployment-trigger:
name: Deployment Trigger
needs: [generate-readme]
runs-on: ubuntu-latest
outputs:
CONTINUE_JOBS: ${{ steps.deploy-trigger.outputs.CONTINUE_JOBS }}
steps:
- 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
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_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 "${{ github.ref_name }} Auto Merge" --message "Merged by ${{ gitea.actor }}" --output table ${pr_index}
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}
- name: Gotify Notification
uses: eikendev/gotify-action@master
with:
gotify_api_base: '${{ secrets.RINOA_GOTIFY_URL }}'
gotify_app_token: '${{ secrets.RINOA_GOTIFY_TOKEN }}'
notification_title: 'Ready to Deploy'
notification_message: 'Ready to deploy: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}/jobs/${{ github.job }}'
- name: Trigger Deployment
id: deploy-trigger
uses: benhamiltonpro/manual-trigger@v1
with:
RUN_NAME: "docker-compose-deploy"
docker-compose-deploy:
name: Merge and Deploy
if: ${{ needs.deployment-trigger.outputs.CONTINUE_JOB == 'manual-step' }}
runs-on: ubuntu-latest
needs: [deployment-trigger]
env:
VAULT_ADDR: ${{ secrets.RINOA_VAULT_ADDR }}
VAULT_TOKEN: ${{ secrets.RINOA_VAULT_TOKEN }}
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: Autom3/docker-deployment-action@3.0.1
with:
remote_docker_host: gitea-deploy@192.168.1.254
ssh_private_key: ${{ secrets.RINOA_GITEA_PRIVATE_SSH_KEY }}
ssh_public_key: ${{ secrets.RINOA_GITEA_PUBLIC_SSH_KEY }}
+306 -585
View File
@@ -1,588 +1,309 @@
# List of Services
```json
~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml
`~> yq '.services | to_entries | map({service: .key, image: .value.image})' docker-compose.yml`
[
{
"service": "actual_server",
"image": "docker.io/actualbudget/actual-server:latest"
},
{
"service": "adguard",
"image": "adguard/adguardhome:latest"
},
{
"service": "apprise",
"image": "lscr.io/linuxserver/apprise-api:latest"
},
{
"service": "audiobookshelf",
"image": "ghcr.io/advplyr/audiobookshelf:latest"
},
{
"service": "authelia",
"image": "authelia/authelia:master"
},
{
"service": "authelia-pg",
"image": "postgres:16-alpine"
},
{
"service": "bazarr",
"image": "lscr.io/linuxserver/bazarr:latest"
},
{
"service": "bitmagnet",
"image": "ghcr.io/bitmagnet-io/bitmagnet:latest"
},
{
"service": "bitmagnet-pg-db",
"image": "postgres:17-alpine"
},
{
"service": "bitwarden",
"image": "vaultwarden/server:latest"
},
{
"service": "bluesky-pds",
"image": "ghcr.io/bluesky-social/pds:latest"
},
{
"service": "browserless",
"image": "ghcr.io/browserless/chromium:latest"
},
{
"service": "castopod",
"image": "castopod/castopod:latest"
},
{
"service": "cloudflared",
"image": "cloudflare/cloudflared:latest"
},
{
"service": "cloudflareddns",
"image": "ghcr.io/hotio/cloudflareddns:latest"
},
{
"service": "crowdsec",
"image": "crowdsecurity/crowdsec:latest"
},
{
"service": "crowdsec-dashboard",
"image": "metabase/metabase"
},
{
"service": "czkawka",
"image": "jlesage/czkawka"
},
{
"service": "dagu-scheduler",
"image": "ghcr.io/dagu-org/dagu:latest"
},
{
"service": "dagu-server",
"image": "ghcr.io/dagu-org/dagu:latest"
},
{
"service": "delugevpn",
"image": "ghcr.io/binhex/arch-delugevpn:latest"
},
{
"service": "docker-socket-proxy",
"image": "ghcr.io/tecnativa/docker-socket-proxy:latest"
},
{
"service": "docuseal",
"image": "docuseal/docuseal:latest"
},
{
"service": "duplicati",
"image": "lscr.io/linuxserver/duplicati:latest"
},
{
"service": "fastenhealth",
"image": "ghcr.io/fastenhealth/fasten-onprem:main"
},
{
"service": "flaresolverr",
"image": "ghcr.io/flaresolverr/flaresolverr:latest"
},
{
"service": "ghost",
"image": "ghost:latest"
},
{
"service": "gitea",
"image": "gitea/gitea:1.22.2"
},
{
"service": "gitea-db",
"image": "postgres:14"
},
{
"service": "gitea-opengist",
"image": "ghcr.io/thomiceli/opengist:latest"
},
{
"service": "gitea-runner",
"image": "gitea/act_runner:latest"
},
{
"service": "gitea-sonarqube-bot",
"image": "justusbunsi/gitea-sonarqube-bot:v0.4.0"
},
{
"service": "gluetun",
"image": "qmcgaw/gluetun:latest"
},
{
"service": "gotify",
"image": "gotify/server"
},
{
"service": "grafana",
"image": "grafana/grafana-enterprise:latest"
},
{
"service": "grafana-alloy",
"image": "grafana/alloy:latest"
},
{
"service": "grafana-loki",
"image": "grafana/loki:latest"
},
{
"service": "grafana-mimir",
"image": "grafana/mimir:latest"
},
{
"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"
}
]
```
<!-- SERVICES_LIST_START -->
```yaml
- service: actual_server
image: docker.io/actualbudget/actual-server:latest
- service: adguard
image: adguard/adguardhome:latest
- service: apprise
image: lscr.io/linuxserver/apprise-api:latest
- service: audiobookshelf
image: ghcr.io/advplyr/audiobookshelf:latest
- service: authelia
image: authelia/authelia:master
- service: authelia-pg
image: postgres:16-alpine
- service: bazarr
image: lscr.io/linuxserver/bazarr:latest
- service: bitmagnet
image: ghcr.io/bitmagnet-io/bitmagnet:latest
- service: bitmagnet-pg-db
image: postgres:17-alpine
- service: bitwarden
image: vaultwarden/server:latest
- service: bluesky-pds
image: ghcr.io/bluesky-social/pds:latest
- service: browserless
image: ghcr.io/browserless/chromium:latest
- service: bunkerweb
image: bunkerity/bunkerweb:latest
- service: bunkerweb-scheduler
image: bunkerity/bunkerweb-scheduler:latest
- service: bunkerweb-ui
image: bunkerity/bunkerweb-ui:latest
- service: castopod
image: castopod/castopod:latest
- service: cloudflared
image: 'cloudflare/cloudflared:latest'
- service: cloudflareddns
image: ghcr.io/hotio/cloudflareddns:latest
- service: crowdsec
image: crowdsecurity/crowdsec:latest
- service: crowdsec-dashboard
image: metabase/metabase
- service: czkawka
image: jlesage/czkawka
- service: dagu-scheduler
image: ghcr.io/dagu-org/dagu:latest
- service: dagu-server
image: ghcr.io/dagu-org/dagu:latest
- service: delugevpn
image: ghcr.io/binhex/arch-delugevpn:latest
- service: docker-socket-proxy
image: ghcr.io/tecnativa/docker-socket-proxy:latest
- service: docuseal
image: docuseal/docuseal:latest
- service: duplicati
image: lscr.io/linuxserver/duplicati:latest
- service: fastenhealth
image: ghcr.io/fastenhealth/fasten-onprem:main
- service: flaresolverr
image: ghcr.io/flaresolverr/flaresolverr:latest
- service: ghost
image: ghost:latest
- service: gitea
image: gitea/gitea:1.22.6
- service: gitea-db
image: postgres:14
- service: gitea-opengist
image: ghcr.io/thomiceli/opengist:latest
- service: gitea-runner
image: gitea/act_runner:latest
- service: gitea-sonarqube-bot
image: justusbunsi/gitea-sonarqube-bot:v0.4.0
- service: gluetun
image: qmcgaw/gluetun:latest
- service: gotify
image: gotify/server
- service: grafana
image: grafana/grafana-enterprise:latest
- service: grafana-alloy
image: grafana/alloy:latest
- service: grafana-loki
image: grafana/loki:latest
- service: grafana-mimir
image: grafana/mimir:latest
- service: grafana-mimir-memcached
image: memcached
- service: grafana-pyroscope
image: grafana/pyroscope:latest
- service: grafana-tempo
image: grafana/tempo:latest
- service: guacamole
image: flcontainers/guacamole: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: mastodon-pg-db
image: postgres:17-alpine
- 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: soularr
image: mrusse08/soularr: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
````
<!-- SERVICES_LIST_END -->
+1 -1
View File
@@ -4447,7 +4447,7 @@ services:
restart: unless-stopped
volumes:
#"You can set /downloads to whatever you want but will then need to change the Slskd download dir in your config file"
- ${DOCKER_VOLUME_STORAGEE}/downloads:/downloads
- ${DOCKER_VOLUME_STORAGE}/downloads:/downloads
#Select where you are storing your config file. Leave "/data" since thats where the script expects the config file to be
- ${DOCKER_VOLUME_CONFIG}/soularr:/data
soulseek: