version: "2.0" services: # HTTP server configured to listen on 127.0.0.1:8080 nginx: build: context: . volumes_from: - cms:ro ports: - 127.0.0.1:8080:80 depends_on: - quotes-api - comments-api - cms # Quotes API service with /data/quotes mounted as database storage # SECRET_KEY is needed for API key validation quotes-api: build: context: ./quotes-api volumes: - /data/quotes:/quotes environment: - SQLALCHEMY_DATABASE_URI=sqlite:////quotes/quotes.db - SECRET_KEY=__SECRET_KEY__ expose: - 5000 # Twitch comments API service with /data/comments mounted as database storage # TWITCH_CLIENT_ID and TWITCH_CHANNEL_ID are needed for Twitch API access # and synchronization comments-api: build: context: ./comments-api volumes: - /data/comments:/comments environment: - SQLALCHEMY_DATABASE_URI=sqlite:////comments/comments.db - TWITCH_CLIENT_ID=__TWITCH_CLIENT_ID__ - TWITCH_CHANNEL_ID=__TWITCH_CHANNEL_ID__ expose: - 5000 # CMS service with /data/grav mounted as user data storage cms: build: context: ./cms volumes: - /data/grav:/app/user - /app expose: - 9000