diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..116c055 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,302 @@ +# +# AzuraCast Docker Compose Configuration File +# +# When updating, you will be prompted to replace this file with a new +# version; you should do this whenever possible to take advantage of +# new updates. +# +# If you need to customize this file, you can create a new file named: +# docker-compose.override.yml +# with any changes you need to make. +# +version : '2.2' + +services : + nginx_proxy : + container_name : nginx_proxy + image : "anatsam/azuracast_nginx_proxy" + ports : + - '${AZURACAST_HTTP_PORT:-80}:80' + - '${AZURACAST_HTTPS_PORT:-443}:443' + volumes : + - letsencrypt:/etc/nginx/certs + - nginx_proxy_vhosts:/etc/nginx/vhost.d + - letsencrypt_html:/usr/share/nginx/html + - /var/run/docker.sock:/tmp/docker.sock:ro + environment : + NGINX_TIMEOUT : ${NGINX_TIMEOUT:-1800} + DEFAULT_HOST : ${LETSENCRYPT_HOST:-azuracast.local} + networks : + - frontend + depends_on : + - web + restart : always + + nginx_proxy_letsencrypt : + container_name : nginx_proxy_letsencrypt + image : "anatsam/azuracast_nginx_proxy_letsencrypt" + volumes_from : + - nginx_proxy + volumes : + - letsencrypt_acme:/etc/acme.sh + - /var/run/docker.sock:/var/run/docker.sock:ro + environment : + DEFAULT_EMAIL : ${LETSENCRYPT_EMAIL} + networks : + - frontend + restart : always + + web : + container_name : azuracast_web + image : "anatsam/azuracast_web_v2" + # Want to customize the HTTP/S ports? Follow the instructions here: + # https://docs.azuracast.com/en/administration/docker#using-non-standard-ports + ports : + - '${AZURACAST_SFTP_PORT:-2022}:2022' + depends_on : + - mariadb + - stations + - redis + env_file : azuracast.env + environment : + LANG : ${LANG:-en_US.UTF-8} + AZURACAST_DC_REVISION : 11 + AZURACAST_VERSION : ${AZURACAST_VERSION:-latest} + AZURACAST_SFTP_PORT : ${AZURACAST_SFTP_PORT:-2022} + VIRTUAL_HOST : ${LETSENCRYPT_HOST:-azuracast.local} + NGINX_TIMEOUT : ${NGINX_TIMEOUT:-1800} + LETSENCRYPT_HOST : ${LETSENCRYPT_HOST} + LETSENCRYPT_EMAIL : ${LETSENCRYPT_EMAIL} + volumes : + - letsencrypt:/etc/nginx/certs:ro + - www_vendor:/var/azuracast/www/vendor + - tmp_data:/var/azuracast/www_tmp + - station_data:/var/azuracast/stations + - shoutcast2_install:/var/azuracast/servers/shoutcast2 + - geolite_install:/var/azuracast/geoip + - sftpgo_data:/var/azuracast/sftpgo/persist + - backups:/var/azuracast/backups + networks : + - frontend + - backend + restart : always + ulimits : &default-ulimits + nofile : + soft : 65536 + hard : 65536 + logging : &default-logging + options : + max-size : "1m" + max-file : "5" + + mariadb : + container_name : azuracast_mariadb + image : "anatsam/azuracast_db" + volumes : + - db_data:/var/lib/mysql + env_file : azuracast.env + networks : + - backend + restart : always + logging : *default-logging + + redis : + container_name : azuracast_redis + image : "anatsam/azuracast_redis" + sysctls : + net.core.somaxconn : 1024 + volumes : + - redis_data:/data + networks : + - backend + restart : always + logging : *default-logging + + stations : + container_name : azuracast_stations + image : "anatsam/azuracast_radio" + ports : + # This default mapping is the outgoing and incoming ports for the first 50 stations. + # You can override this port mapping in your own docker-compose.override.yml file. + # For instructions, see: + # https://docs.azuracast.com/en/administration/docker#expanding-the-station-port-range + - '8000:8000' + - '8005:8005' + - '8006:8006' + - '8010:8010' + - '8015:8015' + - '8016:8016' + - '8020:8020' + - '8025:8025' + - '8026:8026' + - '8030:8030' + - '8035:8035' + - '8036:8036' + - '8040:8040' + - '8045:8045' + - '8046:8046' + - '8050:8050' + - '8055:8055' + - '8056:8056' + - '8060:8060' + - '8065:8065' + - '8066:8066' + - '8070:8070' + - '8075:8075' + - '8076:8076' + - '8090:8090' + - '8095:8095' + - '8096:8096' + - '8100:8100' + - '8105:8105' + - '8106:8106' + - '8110:8110' + - '8115:8115' + - '8116:8116' + - '8120:8120' + - '8125:8125' + - '8126:8126' + - '8130:8130' + - '8135:8135' + - '8136:8136' + - '8140:8140' + - '8145:8145' + - '8146:8146' + - '8150:8150' + - '8155:8155' + - '8156:8156' + - '8160:8160' + - '8165:8165' + - '8166:8166' + - '8170:8170' + - '8175:8175' + - '8176:8176' + - '8180:8180' + - '8185:8185' + - '8186:8186' + - '8190:8190' + - '8195:8195' + - '8196:8196' + - '8200:8200' + - '8205:8205' + - '8206:8206' + - '8210:8210' + - '8215:8215' + - '8216:8216' + - '8220:8220' + - '8225:8225' + - '8226:8226' + - '8230:8230' + - '8235:8235' + - '8236:8236' + - '8240:8240' + - '8245:8245' + - '8246:8246' + - '8250:8250' + - '8255:8255' + - '8256:8256' + - '8260:8260' + - '8265:8265' + - '8266:8266' + - '8270:8270' + - '8275:8275' + - '8276:8276' + - '8280:8280' + - '8285:8285' + - '8286:8286' + - '8290:8290' + - '8295:8295' + - '8296:8296' + - '8300:8300' + - '8305:8305' + - '8306:8306' + - '8310:8310' + - '8315:8315' + - '8316:8316' + - '8320:8320' + - '8325:8325' + - '8326:8326' + - '8330:8330' + - '8335:8335' + - '8336:8336' + - '8340:8340' + - '8345:8345' + - '8346:8346' + - '8350:8350' + - '8355:8355' + - '8356:8356' + - '8360:8360' + - '8365:8365' + - '8366:8366' + - '8370:8370' + - '8375:8375' + - '8376:8376' + - '8380:8380' + - '8385:8385' + - '8386:8386' + - '8390:8390' + - '8395:8395' + - '8396:8396' + - '8400:8400' + - '8405:8405' + - '8406:8406' + - '8410:8410' + - '8415:8415' + - '8416:8416' + - '8420:8420' + - '8425:8425' + - '8426:8426' + - '8430:8430' + - '8435:8435' + - '8436:8436' + - '8440:8440' + - '8445:8445' + - '8446:8446' + - '8450:8450' + - '8455:8455' + - '8456:8456' + - '8460:8460' + - '8465:8465' + - '8466:8466' + - '8470:8470' + - '8475:8475' + - '8476:8476' + - '8480:8480' + - '8485:8485' + - '8486:8486' + - '8490:8490' + - '8495:8495' + - '8496:8496' + volumes : + - station_data:/var/azuracast/stations + - shoutcast2_install:/var/azuracast/servers/shoutcast2 + - letsencrypt:/etc/nginx/certs + - tmp_data:/var/azuracast/www_tmp + networks : + - frontend + - backend + init : true + restart : always + ulimits : *default-ulimits + logging : *default-logging + +networks : + frontend : + driver : bridge + backend : + driver : bridge + +volumes : + nginx_proxy_vhosts : { } + db_data : { } + letsencrypt : { } + letsencrypt_html : { } + letsencrypt_acme : { } + shoutcast2_install : { } + geolite_install : { } + sftpgo_data : { } + station_data : { } + www_vendor : { } + tmp_data : { } + redis_data : { } + backups : { } \ No newline at end of file