Wiki

Clone wiki

telstar-server / docker_compose

Using Docker Compose

Please note TELSTAR as an application is still under development and subject to change.

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 TELSTAR server (telstar-server-03) uses the secondary database. This secondary database collection is typically used to test content before publishing it to the primary database collection. 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=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=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=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

Updated