From 0b21d8f142474d12ed44a1e3e2936c044a42cff6 Mon Sep 17 00:00:00 2001 From: johackim Date: Sat, 2 Nov 2024 22:54:11 +0100 Subject: [PATCH] feat: add castopod --- stacks/castopod.yml | 61 +++++++++++++++++++++++++++++++++++++++++++++ templates.json | 30 ++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 stacks/castopod.yml diff --git a/stacks/castopod.yml b/stacks/castopod.yml new file mode 100644 index 0000000..c69226d --- /dev/null +++ b/stacks/castopod.yml @@ -0,0 +1,61 @@ +# DOMAIN=example.com docker stack deploy -c castopod.yml castopod +# php spark install:create-superadmin # Create first admin user + +services: + castopod: + image: castopod/castopod:${VERSION:-1.13.0} + volumes: + - ${VOLUME_PATH}media:/var/www/castopod/public/media + environment: + - MYSQL_DATABASE=castopod + - MYSQL_USER=castopod + - MYSQL_PASSWORD=myp@ssw0rd + - CP_CACHE_HANDLER=redis + - CP_REDIS_HOST=redis + - CP_REDIS_PASSWORD=myp@ssw0rd + - CP_ANALYTICS_SALT=changeme + - CP_BASEURL=${SCHEME:-https}://${DOMAIN:-castopod.localhost} + deploy: + labels: + - traefik.enable=true + - traefik.http.routers.castopod-${NUMBER:-1}.rule=Host(`${DOMAIN:-castopod.localhost}`) + - traefik.http.routers.castopod-${NUMBER:-1}.entrypoints=${SCHEME:-https} + - traefik.http.routers.castopod-${NUMBER:-1}.service=castopod-${NUMBER:-1} + - traefik.http.routers.castopod-${NUMBER:-1}.tls.certresolver=letsencrypt + - traefik.http.services.castopod-${NUMBER:-1}.loadbalancer.server.port=8000 + networks: + - internal + - traefik + + mariadb: + image: mariadb:${MARIADB_VERSION:-10.5.9} + volumes: + - ${VOLUME_PATH}mariadb:/var/lib/mysql:cached + environment: + - MYSQL_USER=${MYSQL_USER:-castopod} + - MYSQL_DATABASE=${MYSQL_DATABASE:-castopod} + - MYSQL_PASSWORD=${MYSQL_PASSWORD:-myp@ssw0rd} + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-myp@ssw0rd} + networks: + - internal + + redis: + image: redis:7-alpine + command: --requirepass myp@ssw0rd + volumes: + - redis:/data + networks: + - internal + +volumes: + media: + redis: + mariadb: + +networks: + internal: + driver: overlay + attachable: true + traefik: + external: true + name: traefik-net diff --git a/templates.json b/templates.json index 834fcf9..abaf274 100644 --- a/templates.json +++ b/templates.json @@ -851,6 +851,36 @@ } ] }, + { + "type": 2, + "title": "Castopod", + "description": "Castopod est une plateforme de podcasting open-source.", + "categories": ["Podcast"], + "manual": true, + "enabled": true, + "trial": 7, + "price": 19, + "logo": "https://i.imgur.com/XrJEjVD.png", + "website": "https://castopod.org", + "repository": { + "url": "https://github.com/ethibox/awesome-stacks", + "stackfile": "stacks/castopod.yml" + }, + "env": [ + { + "name": "ADMIN_USERNAME", + "label": "Admin username", + "value": "admin", + "disabled": true + }, + { + "name": "ADMIN_PASSWORD", + "label": "Admin password", + "type": "password", + "disabled": true + } + ] + }, { "type": 2, "title": "Taiga",