Skip to content

Instantly share code, notes, and snippets.

@rpodcast
Last active January 7, 2023 02:36
Show Gist options
  • Save rpodcast/87fb7aa02df7cc70b9199455d2e86e1e to your computer and use it in GitHub Desktop.
Save rpodcast/87fb7aa02df7cc70b9199455d2e86e1e to your computer and use it in GitHub Desktop.
castopod in docker-compose
## Version 2022/10/06
# make sure that your dns has a cname set for castopod and that your castopod container is not using a base url
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name castopod.*;
include /config/nginx/ssl.conf;
client_max_body_size 0;
# enable for ldap auth (requires ldap-location.conf in the location block)
#include /config/nginx/ldap-server.conf;
# enable for Authelia (requires authelia-location.conf in the location block)
#include /config/nginx/authelia-server.conf;
location / {
# enable the next two lines for http auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
# enable for ldap auth (requires ldap-server.conf in the server block)
#include /config/nginx/ldap-location.conf;
# enable for Authelia (requires authelia-server.conf in the server block)
#include /config/nginx/authelia-location.conf;
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app castopod;
set $upstream_port 80;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
}
}
version: "3.7"
services:
app:
image: castopod/app:develop
container_name: "castopod-app1"
volumes:
- ./castopod-media:/opt/castopod/public/media
environment:
MYSQL_DATABASE: castopod1
MYSQL_USER: castopod1
MYSQL_PASSWORD: changeme1
CP_BASEURL: "http://castopod.mydomain.com"
CP_ANALYTICS_SALT: changeme20001
CP_CACHE_HANDLER: redis
CP_REDIS_HOST: redis
CP_DISABLE_HTTPS: 1
PUID: 1000
PGID: 1000
restart: unless-stopped
web-server:
image: castopod/web-server:develop
container_name: "castopod-web-server1"
volumes:
- ./castopod-media:/var/www/html/media
environment:
PUID: 1000
PGID: 1000
ports:
- 8087:80
restart: unless-stopped
mariadb:
image: mariadb:10.5
container_name: "castopod-mariadb1"
volumes:
- ./castopod-db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: changeme01
MYSQL_DATABASE: castopod1
MYSQL_USER: castopod1
MYSQL_PASSWORD: changeme1
PUID: 1000
PGID: 1000
restart: unless-stopped
redis:
image: redis:7.0-alpine
container_name: "castopod-redis1"
volumes:
- ./castopod-cache:/data
environment:
PUID: 1000
PGID: 1000
swag:
image: lscr.io/linuxserver/swag
container_name: swag
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=1000
- TZ=US/Eastern
- URL=mydomain.com
- SUBDOMAINS=castopod
- VALIDATION=http
volumes:
- ./swag:/config
ports:
- 443:443
- 80:80
restart: unless-stopped
volumes:
castopod-media:
castopod-db:
castopod-cache:
@rpodcast
Copy link
Author

rpodcast commented Jan 7, 2023

I finally got castopod working in Docker! Here's what I needed to do (and I'm not sure if there was a better way)

  • CP_BASEURL in the app service needs to be the http version with the subdomain, without the port
  • Removed all of the custom network declarations
  • URL in the swag service is the domain without an http prefix, with SUBDOMAINS being the relevant subdomain (in this case castopod)

With these changes in place, I did not have to modify the castopod.subdomain.conf supplied in the swag container.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment