#
# 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.
#

services:
  web:
    container_name: azuracast
    image: "ghcr.io/azuracast/azuracast:${AZURACAST_VERSION:-latest}"
    # Want to customize the HTTP/S ports? Follow the instructions here:
    # https://docs.azuracast.com/en/administration/docker#using-non-standard-ports
    ports:
      - '${AZURACAST_HTTP_PORT:-80}:80'
      - '${AZURACAST_HTTPS_PORT:-443}:443'
      - '${AZURACAST_SFTP_PORT:-2022}:2022'
      # 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'
    env_file: azuracast.env
    environment:
      LANG: ${LANG:-en_US.UTF-8}
      AZURACAST_DC_REVISION: 14
      AZURACAST_VERSION: ${AZURACAST_VERSION:-latest}
      AZURACAST_SFTP_PORT: ${AZURACAST_SFTP_PORT:-2022}
      NGINX_TIMEOUT: ${NGINX_TIMEOUT:-1800}
      LETSENCRYPT_HOST: ${LETSENCRYPT_HOST:-}
      LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-}
      PUID: ${AZURACAST_PUID:-1000}
      PGID: ${AZURACAST_PGID:-1000}
    volumes:
      - www_uploads:/var/azuracast/uploads
      - station_data:/var/azuracast/stations
      - shoutcast2_install:/var/azuracast/servers/shoutcast2
      - stereo_tool_install:/var/azuracast/servers/stereo_tool
      - geolite_install:/var/azuracast/geoip
      - sftpgo_data:/var/azuracast/sftpgo/persist
      - backups:/var/azuracast/backups
      - acme:/var/azuracast/acme
      - db_data:/var/lib/mysql
    restart: unless-stopped
    ulimits: &default-ulimits
      nofile:
        soft: 65536
        hard: 65536
    logging: &default-logging
      options:
        max-size: "1m"
        max-file: "5"

volumes:
  db_data: { }
  acme: { }
  shoutcast2_install: { }
  stereo_tool_install: { }
  geolite_install: { }
  sftpgo_data: { }
  station_data: { }
  www_uploads: { }
  backups: { }