Orchestrating Telstar with Docker Compose
Jump to navigation
Jump to search
The following docker-compose yaml file can be used to manage the Telstar application and associated *mongo* database.
version: "3.8"
services:
telstar-01:
container_name: "telstar-server"
image: "johnnewcombe/telstar"
command: "server --port 6512 --install" # install to the primary database
ports:
- target: 6512
published: 6512
networks:
- telstar-network
volumes:
- type: volume
source: telstar-volume
target: /opt/telstar/volume
depends_on:
- mongodb
environment:
- TELSTAR_SERVER=AUSTEN
mongodb:
container_name: "telstar-mongo"
image: "mongo"
ports:
- target: 27017
published: 27017
networks:
telstar-network:
environment:
- MONGO_INITDB_ROOT_USERNAME=mongoadmin
- MONGO_INITDB_ROOT_PASSWORD=secret
networks:
telstar-network:
name: telstar-network
volumes:
telstar-volume:
name: telstar-volume
The following docker-compose file starts three Telstar servers all talking to the same database server, however the third server (telstar-server-03) inmcludes an environment variable that ensures that it uses the *secondary* database. This *secondary* database collection is typically used to test content before publishing it to the primary database collection. Further details of all of vthe available environment variables can be found in the section Confuguration Options. In addition, the Telstar API is launced as a separate container.
version: "3.8"
services:
telstar-01:
container_name: "telstar-server-01"
build: .
image: "johnnewcombe/telstar"
command: "server --port 6512 --install" # install to the primary database
ports:
- target: 6512
published: 6512
networks:
- telstar-network
volumes:
- type: volume
source: telstar-volume
target: /opt/telstar/volume
depends_on:
- mongodb
environment:
- TELSTAR_SERVER_DISPLAY_NAME=AUSTEN
telstar-02:
container_name: "telstar-server-02"
image: "johnnewcombe/telstar"
command: "server --port 6513"
ports:
- target: 6513
published: 6513
networks:
- telstar-network
volumes:
- type: volume
source: telstar-volume
target: /opt/telstar/volume
depends_on:
- mongodb
environment:
- TELSTAR_SERVER_DISPLAY_NAME=ELIOT
telstar-03:
container_name: "telstar-server-03"
image: "johnnewcombe/telstar"
command: "server --port 6514 --install" # install to the secondary database
ports:
- target: 6514
published: 6514
networks:
- telstar-network
volumes:
- type: volume
source: telstar-volume
target: /opt/telstar/volume
depends_on:
- mongodb
environment:
- TELSTAR_SERVER_DISPLAY_NAME=HARDY
- TELSTAR_DBCOLLECTION=SECONDARY
telstar-api:
container_name: "telstar-api"
image: "johnnewcombe/telstar"
command: "api --port 8001 --init"
ports:
- target: 8001
published: 8001
networks:
- telstar-network
depends_on:
- mongodb
environment:
- TELSTAR_API_USERID=0 # User 0 has access to all pages
- TELSTAR_API_PASSWORD=telstarapisecret
- TELSTAR_COOKIE_SECRET=<place yout secret here> # define this for yourself and keep it secret!
mongodb:
container_name: "telstar-mongo"
image: "mongo"
ports:
- target: 27017
published: 27017
networks:
telstar-network:
environment:
- MONGO_INITDB_ROOT_USERNAME=mongoadmin
- MONGO_INITDB_ROOT_PASSWORD=secret
networks:
telstar-network:
name: telstar-network
volumes:
telstar-volume:
name: telstar-volume