Skip to content

Instantly share code, notes, and snippets.

@kubo6472
Last active August 25, 2026 11:39
Show Gist options
  • Select an option

  • Save kubo6472/1db29a25b4c77e483d5ede6ad0b86963 to your computer and use it in GitHub Desktop.

Select an option

Save kubo6472/1db29a25b4c77e483d5ede6ad0b86963 to your computer and use it in GitHub Desktop.
some description
# This is NOT recommended to be used for a production deployment.
# It aims to quickly get an evaluation version of Sofie running and serve as a basis for how to set up a production deployment.
services:
db:
hostname: mongo
image: mongo:6.0
restart: always
entrypoint: ['/usr/bin/mongod', '--replSet', 'rs0', '--bind_ip_all']
# the healthcheck avoids the need to initiate the replica set
healthcheck:
test: test $$(mongosh --quiet --eval "try {rs.initiate()} catch(e) {rs.status().ok}") -eq 1
interval: 10s
start_period: 30s
ports:
- '27017:27017'
volumes:
- db-data:/data/db
networks:
- sofie
# Fix Ownership Snapshots mount
# Because docker volumes are owned by root by default
# And our images follow best-practise and don't run as root
change-vol-ownerships:
image: node:22-alpine
user: 'root'
volumes:
- sofie-store:/mnt/sofie-store
entrypoint: ['sh', '-c', 'chown -R node:node /mnt/sofie-store']
core:
hostname: core
image: ghcr.io/tojemoc/sofie-core-server-core
restart: always
ports:
- '3000:3000' # Same port as meteor uses by default
environment:
PORT: '3000'
MONGO_URL: 'mongodb://db:27017/meteor'
MONGO_OPLOG_URL: 'mongodb://db:27017/local'
ROOT_URL: 'http://core:3000'
SOFIE_STORE_PATH: '/mnt/sofie-store'
networks:
- sofie
volumes:
- sofie-store:/mnt/sofie-store
depends_on:
change-vol-ownerships:
condition: service_completed_successfully
db:
condition: service_healthy
playout-gateway:
image: ghcr.io/tojemoc/sofie-core-playout-gateway
restart: always
environment:
DEVICE_ID: playoutGateway0
CORE_HOST: core
CORE_PORT: '3000'
networks:
- sofie
- lan_access
depends_on:
- core
# Choose one of the following images, depending on which type of ingest gateway is wanted.
# spreadsheet-gateway:
# image: superflytv/sofie-spreadsheet-gateway:latest
# restart: always
# environment:
# DEVICE_ID: spreadsheetGateway0
# CORE_HOST: core
# CORE_PORT: '3000'
# networks:
# - sofie
# depends_on:
# - core
# mos-gateway:
# image: sofietv/tv-automation-mos-gateway:release52
# restart: always
# ports:
# - "10540:10540" # MOS Lower port
# - "10541:10541" # MOS Upper port
# # - "10542:10542" # MOS query port - not used
# environment:
# DEVICE_ID: mosGateway0
# CORE_HOST: core
# CORE_PORT: '3000'
# networks:
# - sofie
# depends_on:
# - core
# inews-gateway:
# image: tv2media/inews-ftp-gateway:1.37.0-in-testing.20
# restart: always
# command: yarn start -host core -port 3000 -id inewsGateway0
# networks:
# - sofie
# depends_on:
# - core
rundown-editor:
image: ghcr.io/tojemoc/unopus:latest
restart: always
ports:
- '3010:3010'
environment:
PORT: '3010'
DATA_DIR: /app/data
BOOTSTRAP_ADMIN_PASSWORD: 'password'
volumes:
- rundown-editor-data:/app/data
- /root/bns.json:/run/secrets/bns.json:ro
- /mnt/pve/360-ingest/sofie-demo-media:/app/backend/ingest/
networks:
- sofie
depends_on:
- core
networks:
sofie:
lan_access:
driver: bridge
volumes:
db-data:
sofie-store:
rundown-editor-data:

Comments are disabled for this gist.