+115
-27
@@ -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 }}
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user