diff --git a/README.md b/README.md index d741a8e..66155a8 100644 --- a/README.md +++ b/README.md @@ -31,141 +31,83 @@ When new releases are available, you can upgrade your pre-built Docker image (se ![Alt Text](https://github.com/allegroai/trains/blob/master/docs/system_diagram.png?raw=true) +## Install / Upgrade - AWS -## Install / Upgrade - AWS +Use one of our pre-installed Amazon Machine Images for easy deployment in AWS. -Use our pre-installed Amazon Machine Image for easy deployment in AWS. +For details and instructions, see [TRAINS-server: AWS pre-installed images](docs/install_aws.md). -Details and instructions can be found [here](docs/install_aws.md). +## Install - Linux, Mac OS X -## Installation - Docker +Use our pre-built Docker image for easy deployment in Linux and Mac OS X. +For Windows, we recommend installing our pre-built Docker image on a Linux virtual machine. -This section contains the instructions to setup and launch a pre-built Docker image for the **trains-server**. -This is the quickest way to get started with your own server. -Alternatively, you can build the entire trains-server architecture using the code available in our repositories. - -**Please Note**: -* This Docker image was tested with Linux, only. For Windows users, we recommend running the server -on a Linux virtual machine. - -* All command-line instructions below assume you're using `bash`. - -### Prerequisites - -Make sure you are logged in as a user with sudo privileges. - -### Setup - -#### Step 1: Install Docker CE - -In order to run the pre-packaged **trains-server**, install Docker. - -* See [Supported platforms](https://docs.docker.com/install//#support) in the Docker documentation for instructions - -* For example, to install in [Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/) / Mint (x86_64/amd64): +1. Setup Docker (Full details [Setup Docker Service](docs/docker_setup.md)) + Make sure port 8080/8081/8008 are available for the `trains-server` services + + Increase vm.max_map_count for `ElasticSearch` docker ```bash - sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - - . /etc/os-release - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $UBUNTU_CODENAME stable" - sudo apt-get update - sudo apt-get install -y docker-ce - ``` - -#### Step 2: Setup the Docker daemon - -To run the ElasticSearch Docker container, setup the Docker daemon by modifying the default -values required by Elastic in your Docker configuration file (see [Notes for production use and defaults](https://www.elastic.co/guide/en/elasticsearch/reference/master/docker.html#_notes_for_production_use_and_defaults)). We provide instructions for the most common Docker configuration files. - -Edit or create the Docker configuration file: - -* If your system contains a `/etc/sysconfig/docker` Docker configuration file, edit it. - - Add the options in quotes to the available arguments in the `OPTIONS` section: - - ```bash - OPTIONS="--default-ulimit nofile=1024:65536 --default-ulimit memlock=-1:-1" - ``` - -* Otherwise, edit `/etc/docker/daemon.json` (if it exists) or create it (if it does not exist). - - Add or modify the `defaults-ulimits` section as shown below. Be sure the `defaults-ulimits` section contains the `nofile` and `memlock` sub-sections and values shown. - - **Note**: Your configuration file may contain other sections. If so, confirm that the sections are separated by commas (valid JSON format). For more information about Docker configuration files, see [Daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) in the Docker documentation. - - The **trains-server** required defaults values are: - - ```json - { - "default-ulimits": { - "nofile": { - "name": "nofile", - "hard": 65536, - "soft": 1024 - }, - "memlock": - { - "name": "memlock", - "soft": -1, - "hard": -1 - } - } - } - ``` - -#### Step 3: Restart the Docker daemon - -After modifying the configuration file, restart the Docker daemon: - -```bash -sudo service docker stop -sudo service docker start -``` - -#### Step 4: Set the Maximum Number of Memory Map Areas - -The maximum number of memory map areas a process can use is defined -using the `vm.max_map_count` kernel setting. - -Elastic requires that `vm.max_map_count` is at least 262144 (see [Production mode](https://www.elastic.co/guide/en/elasticsearch/reference/master/docker.html#docker-cli-run-prod-mode)). - -* For CentOS 7, Ubuntu 16.04, Mint 18.3, Ubuntu 18.04 and Mint 19 users, we tested the following commands to set -`vm.max_map_count`: - - ```bash - sudo echo "vm.max_map_count=262144" > /tmp/99-trains.conf + echo "vm.max_map_count=262144" > /tmp/99-trains.conf sudo mv /tmp/99-trains.conf /etc/sysctl.d/99-trains.conf sudo sysctl -w vm.max_map_count=262144 + + sudo sudo service docker restart + ``` + +1. Create local directories for the databases and storage. + ```bash + sudo mkdir -p /opt/trains/data/elastic + sudo mkdir -p /opt/trains/data/mongo/db + sudo mkdir -p /opt/trains/data/mongo/configdb + sudo mkdir -p /opt/trains/logs + sudo mkdir -p /opt/trains/data/fileserver + ``` + + Linux + ```bash + sudo chown -R 1000:1000 /opt/trains ``` + Mac OS X + ```bash + sudo chown -R $(whoami):staff /opt/trains + ``` + +1. Clone the [trains-server](https://github.com/allegroai/trains-server) repository and change directories to the new **trains-server** directory. -* For information about setting this parameter on other systems, see the [elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode) documentation. + $ git clone https://github.com/allegroai/trains-server.git + $ cd trains-server + +1. Launch the Docker containers -#### Step 5: Choose a Data Directory + * Automatically with docker-compose (details: [Linux/Ubuntu](docs/faq.md##ubuntu), [OS X](docs/faq.md#mac-osx)) + + ```bash + $ docker-compose up + ``` + + * Manually + See [TRAINS-server: Launching Docker Containers Manually](docs/manual_docker.md)) for instructions. + +1. Your server is now running on [http://localhost:8080](http://localhost:8080) and the following ports are available: + + * Web server on port `8080` + * API server on port `8008` + * File server on port `8081` -Choose a directory on your system in which all data maintained by the **trains-server** is stored. -Create this directory, and set its owner and group to `uid` 1000. The data stored in this directory will include the database, uploaded files and logs. - -For example, if your data directory is `/opt/trains`, then use the following command: - -```bash -sudo mkdir -p /opt/trains/data/elastic && sudo chown -R 1000:1000 /opt/trains -``` - -### Optional Configuration +## Optional: Configuration The **trains-server** default configuration can be easily overridden using external configuration files. By default, the server will look for these files in `/opt/trains/config`. -If the configuration is changed while the server is running, the server should be restarted for changes to take effect. +If the configuration is changed while the server is running, to apply the changes you must restart the server (see [Restarting trains-server](#restart-server)). +### Configuring TRAINS to Authenticate Web Login Credentials -#### Fixed users mode (basic users management) - -In this mode, the server authenticates users based only on a pre-configured users list. +By default anyone can login to the **trains-server** Web-App. +You can configure the **trains-server** to allow access only to specific users (with pre-configured user/pass). Enable this feature by placing `apiserver.conf` file under `/opt/trains/config`. -**Notice**: In order for the changes to take effect, the *trains-apiserver* (docker) will need to be restarted. Sample fixed user configuration file `/opt/trains/config/apiserver.conf`: @@ -189,10 +131,12 @@ Sample fixed user configuration file `/opt/trains/config/apiserver.conf`: } } +To apply the `apiserver.conf` changes, you must restart the *trains-apiserver* (docker) (see [Restarting trains-server](#restart-server)). -#### Non-responsive experiments watchdog +### Configuring the Non-Responsive Experiments Watchdog Thresholds -This watchdog monitors experiments that were not updated for a given period of time, and marks them as `stopped`. The watchdog is always active. +The non-responsive experiment watchdog monitors experiments that were not updated for a given period of time, +and marks them as `aborted`. The watchdog is always active with a default of 7200 seconds (2 hours). To change the watchdog's timeouts, place a `services.conf` file under `/opt/trains/config`, containing for example: @@ -206,54 +150,31 @@ To change the watchdog's timeouts, place a `services.conf` file under `/opt/trai } } -### Launching Docker Containers +To apply the `services.conf` changes, you must restart the *trains-apiserver* (docker) (see [Restarting trains-server](#restart-server)). -To launch the Docker containers, first confirm the required ports are available and then launch the Docker containers. +### Restarting trains-server -If your data directory is not `/opt/trains`, then in the five `docker run` commands below, you must replace all occurrences of `/opt/trains` with your data directory path. +To restart the **trains-server**, you must first stop and remove the containers, and then restart. -1. Make sure ports `8008`, `8080` and `8081` are not in use. If these ports are already taken, the containers will fail to initialize. +1. Restarting docker-compose containers. - Run the following commands: - - sudo netstat -tplna | egrep "8008|8080|8081" + $ docker-compose down + $ docker-compose up - If the commands show no output, the ports are available. +1. Manually restarting dockers [instructions](docs/manual_docker.md). -1. Launch the **trains-elastic** Docker container. +## Configuring **TRAINS** client - sudo docker run -d --restart="always" --name="trains-elastic" -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" -e "bootstrap.memory_lock=true" -e "cluster.name=trains" -e "discovery.zen.minimum_master_nodes=1" -e "node.name=trains" -e "script.inline=true" -e "script.update=true" -e "thread_pool.bulk.queue_size=2000" -e "thread_pool.search.queue_size=10000" -e "xpack.security.enabled=false" -e "xpack.monitoring.enabled=false" -e "cluster.routing.allocation.node_initial_primaries_recoveries=500" -e "node.ingest=true" -e "http.compression_level=7" -e "reindex.remote.whitelist=*.*" -e "script.painless.regex.enabled=true" --network="host" -v /opt/trains/data/elastic:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:5.6.16 +Once you have installed the **trains-server**, make sure to configure **TRAINS** [client](https://github.com/allegroai/trains) +to use your locally installed server (and not the demo server). -1. Launch the **trains-mongo** Docker container. +- Run the `trains-init` command for an interactive setup - sudo docker run -d --restart="always" --name="trains-mongo" -v /opt/trains/data/mongo/db:/data/db -v /opt/trains/data/mongo/configdb:/data/configdb --network="host" mongo:3.6.5 +- Or manually edit `~/trains.conf` file, making sure the `api_server` value is configured correctly, for example: -1. Launch the **trains-fileserver** Docker container. - - sudo docker run -d --restart="always" --name="trains-fileserver" --network="host" -v /opt/trains/logs:/var/log/trains -v /opt/trains/data/fileserver:/mnt/fileserver allegroai/trains:latest fileserver - -1. Launch the **trains-apiserver** Docker container. - - sudo docker run -d --restart="always" --name="trains-apiserver" --network="host" -v /opt/trains/logs:/var/log/trains -v /opt/trains/config:/opt/trains/config allegroai/trains:latest apiserver - -1. Launch the **trains-webserver** Docker container. - - sudo docker run -d --restart="always" --name="trains-webserver" -p 8080:80 allegroai/trains:latest webserver - -After the **trains-server** Dockers are up, the following are available: - -* API server on port `8008` -* Web server on port `8080` -* File server on port `8081` - -### Configuring **TRAINS** client - -Once you have installed the **trains-server**, make sure to configure **TRAINS** [client](https://github.com/allegroai/trains) to use your locally installed server (and not the demo server). - -If you have already installed **TRAINS**, run the `trains-init` command for an interactive setup or edit your `trains.conf` file and make sure the `api.host` value is configured as follows: api { - host: "http://localhost:8008" + api_server: "http://localhost:8008" } See [Installing and Configuring TRAINS](https://github.com/allegroai/trains#installing-and-configuring-trains) for more details. @@ -264,7 +185,7 @@ Now that the **trains-server** is installed, and TRAINS is configured to use it, you can [use](https://github.com/allegroai/trains#using-trains) TRAINS in your experiments and view them in the web server, for example http://localhost:8080 -## Upgrade +## Upgrading We are constantly updating, improving and adding to the **trains-server**. New releases will include new pre-built Docker images. @@ -275,7 +196,7 @@ When we release a new version and include a new pre-built Docker image for it, u sudo docker stop sudo docker rm -v - The Docker names are (see [Launching Docker Containers](#launching-docker-containers)): + The Docker names are (see [Launching Docker Containers](#launch-docker)): * `trains-elastic` * `trains-mongo` @@ -289,7 +210,7 @@ When we release a new version and include a new pre-built Docker image for it, u If you wish to pull a different version, replace `latest` with the required version number, for example: - sudo docker pull allegroai/trains:0.10.0 + sudo docker pull allegroai/trains:0.10.1 3. We highly recommend backing up your data directory!. A simple way to do that is using `tar`: @@ -304,7 +225,7 @@ When we release a new version and include a new pre-built Docker image for it, u sudo rm -R /opt/trains/data sudo tar -xzf ~/trains_backup.tgz -C /opt/trains/data -4. Launch the newly released Docker image (see [Launching Docker Containers](#launching-docker-containers)). +4. Launch the newly released Docker image (see [Launching Docker Containers](#launch-docker)). ## Community & Support diff --git a/docker-compose-unified.yml b/docker-compose-unified.yml index 0e73f39..951b496 100644 --- a/docker-compose-unified.yml +++ b/docker-compose-unified.yml @@ -11,9 +11,6 @@ services: - 8008:8008 - 8080:80 - 8081:8081 - environment: - ELASTIC_SERVICE_SERVICE_HOST: ${HOSTIP} - MONGODB_SERVICE_SERVICE_HOST: ${HOSTIP} restart: always volumes: - type: bind @@ -22,8 +19,18 @@ services: - type: bind source: /opt/trains/data/fileserver target: /mnt/fileserver - + links: + - mongo:mongo + - elasticsearch:elasticsearch + - fileserver:fileserver + environment: + ELASTIC_SERVICE_SERVICE_HOST: elasticsearch + MONGODB_SERVICE_SERVICE_HOST: mongo + networks: + - backend elasticsearch: + networks: + - backend container_name: trains-elastic environment: ES_JAVA_OPTS: -Xms2g -Xmx2g @@ -42,20 +49,23 @@ services: thread_pool.search.queue_size: "10000" xpack.monitoring.enabled: "false" xpack.security.enabled: "false" - transport.host: localhost + ulimits: + memlock: + soft: -1 + hard: -1 image: docker.elastic.co/elasticsearch/elasticsearch:5.6.16 - ports: - - 9200:9200 restart: always volumes: - type: bind source: /opt/trains/data/elastic target: /usr/share/elasticsearch/data + ports: + - "9200:9200" mongo: + networks: + - backend container_name: trains-mongo image: mongo:3.6.5 - ports: - - 27017:27017 restart: always volumes: - type: bind @@ -64,3 +74,9 @@ services: - type: bind source: /opt/trains/data/mongo/configdb target: /data/configdb + ports: + - "27017:27017" + +networks: + backend: + driver: bridge diff --git a/docker-compose.yml b/docker-compose.yml index 3e2e509..243e64b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,13 +5,25 @@ services: - apiserver container_name: trains-apiserver image: allegroai/trains:latest - network_mode: host restart: always volumes: - type: bind source: /opt/trains/logs target: /var/log/trains + links: + - mongo:mongo + - elasticsearch:elasticsearch + - fileserver:fileserver + environment: + ELASTIC_SERVICE_SERVICE_HOST: elasticsearch + MONGODB_SERVICE_SERVICE_HOST: mongo + ports: + - "8008:8008" + networks: + - backend elasticsearch: + networks: + - backend container_name: trains-elastic environment: ES_JAVA_OPTS: -Xms2g -Xmx2g @@ -30,19 +42,25 @@ services: thread_pool.search.queue_size: "10000" xpack.monitoring.enabled: "false" xpack.security.enabled: "false" + ulimits: + memlock: + soft: -1 + hard: -1 image: docker.elastic.co/elasticsearch/elasticsearch:5.6.16 - network_mode: host restart: always volumes: - type: bind source: /opt/trains/data/elastic target: /usr/share/elasticsearch/data + ports: + - "9200:9200" fileserver: + networks: + - backend command: - fileserver container_name: trains-fileserver image: allegroai/trains:latest - network_mode: host restart: always volumes: - type: bind @@ -51,10 +69,13 @@ services: - type: bind source: /opt/trains/data/fileserver target: /mnt/fileserver + ports: + - "8081:8081" mongo: + networks: + - backend container_name: trains-mongo image: mongo:3.6.5 - network_mode: host restart: always volumes: - type: bind @@ -63,14 +84,25 @@ services: - type: bind source: /opt/trains/data/mongo/configdb target: /data/configdb + ports: + - "27017:27017" webserver: + networks: + - backend command: - webserver container_name: trains-webserver image: allegroai/trains:latest - network_mode: host restart: always volumes: - type: bind source: /opt/trains/logs target: /var/log/trains + links: + - apiserver + ports: + - "8080:80" + +networks: + backend: + driver: bridge diff --git a/docs/docker_setup.md b/docs/docker_setup.md new file mode 100644 index 0000000..e3ac0af --- /dev/null +++ b/docs/docker_setup.md @@ -0,0 +1,143 @@ +# TRAINS-server: Using Docker Pre-Built Images + +The pre-built Docker image for the **trains-server** is the quickest way to get started with your own **TRAINS** server. + +You can also build the entire **trains-server** architecture using the code available in the [trains-server](https://github.com/allegroai/trains-server) repository. + +**Note**: We tested this pre-built Docker image with Linux, only. For Windows users, we recommend installing the pre-built image on a Linux virtual machine. + +## Prerequisites + +* You must be logged in as a user with sudo privileges +* Use `bash` for all command-line instructions in this installation + +## Setup Docker + +### Step 1: Install Docker CE + +You must first install Docker. For instructions about installing Docker, see [Supported platforms](https://docs.docker.com/install//#support) in the Docker documentation. + +For example, to [install in Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/) / Mint (x86_64/amd64): + +```bash +sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common +curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - +. /etc/os-release +sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $UBUNTU_CODENAME stable" +sudo apt-get update +sudo apt-get install -y docker-ce +``` + +### Step 2: Setup the Docker daemon + +To setup the Docker daemon to run the ElasticSearch Docker container, +modify the default values required by Elastic in your Docker configuration file (see [Notes for production use and defaults](https://www.elastic.co/guide/en/elasticsearch/reference/master/docker.html#_notes_for_production_use_and_defaults)) in the Elasticsearch documentation. + +The following are the instructions to modify those Elastic default values for the most common Docker configuration files. + +* If your system contains a `/etc/sysconfig/docker` Docker configuration file, edit it. + + Add the options in quotes to the available arguments in the `OPTIONS` section: + + ```bash + OPTIONS="--default-ulimit nofile=1024:65536 --default-ulimit memlock=-1:-1" + ``` + +* Otherwise, edit `/etc/docker/daemon.json` (if it exists) or create it (if it does not exist). + + Add or modify the `defaults-ulimits` section as shown below. Be sure the `defaults-ulimits` section contains the `nofile` and `memlock` sub-sections and values shown. + + **Note**: Your configuration file may contain other sections. If so, confirm that the sections are separated by commas (valid JSON format). For more information about Docker configuration files, see [Daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) in the Docker documentation. + + The **trains-server** required defaults values are: + + ```json + { + "default-ulimits": { + "nofile": { + "name": "nofile", + "hard": 65536, + "soft": 1024 + }, + "memlock": + { + "name": "memlock", + "soft": -1, + "hard": -1 + } + } + } + ``` + +### Step 3: Set the Maximum Number of Memory Map Areas + +Elastic requires that the `vm.max_map_count` kernel setting, which is the maximum number of memory map areas a process can use, is set to at least 262144. + +For CentOS 7, Ubuntu 16.04, Mint 18.3, Ubuntu 18.04 and Mint 19.x, we tested the following commands to set `vm.max_map_count`: + +```bash +echo "vm.max_map_count=262144" > /tmp/99-trains.conf +sudo mv /tmp/99-trains.conf /etc/sysctl.d/99-trains.conf +sudo sysctl -w vm.max_map_count=262144 + +sudo service docker restart +``` + +For information about setting this parameter on other systems, see the [elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode) documentation. + +### Step 4: Restart the Docker daemon + +Restart the Docker daemon. + +```bash +sudo service docker restart +``` + +### Step 5: Choose a Data Directory + +Choose a directory on your system in which all data maintained by the **trains-server** is stored. +Create this directory, and set its owner and group to `uid` 1000. The data stored in this directory includes the database, uploaded files and logs. + +For example, if your data directory is `/opt/trains`, then use the following command: + +```bash + sudo mkdir -p /opt/trains/data/elastic + sudo mkdir -p /opt/trains/data/mongo/db + sudo mkdir -p /opt/trains/data/mongo/configdb + sudo mkdir -p /opt/trains/logs + sudo mkdir -p /opt/trains/data/fileserver + + sudo chown -R 1000:1000 /opt/trains +``` + +## TRAINS-server: Manually Launching Docker Containers + +You can manually launch the Docker containers using the following commands. + +If your data directory is not `/opt/trains`, then in the five `docker run` commands below, you must replace all occurrences of `/opt/trains` with your data directory path. + +1. Launch the **trains-elastic** Docker container. + + sudo docker run -d --restart="always" --name="trains-elastic" -e "ES_JAVA_OPTS=-Xms2g -Xmx2g" -e "bootstrap.memory_lock=true" -e "cluster.name=trains" -e "discovery.zen.minimum_master_nodes=1" -e "node.name=trains" -e "script.inline=true" -e "script.update=true" -e "thread_pool.bulk.queue_size=2000" -e "thread_pool.search.queue_size=10000" -e "xpack.security.enabled=false" -e "xpack.monitoring.enabled=false" -e "cluster.routing.allocation.node_initial_primaries_recoveries=500" -e "node.ingest=true" -e "http.compression_level=7" -e "reindex.remote.whitelist=*.*" -e "script.painless.regex.enabled=true" --network="host" -v /opt/trains/data/elastic:/usr/share/elasticsearch/data docker.elastic.co/elasticsearch/elasticsearch:5.6.16 + +1. Launch the **trains-mongo** Docker container. + + sudo docker run -d --restart="always" --name="trains-mongo" -v /opt/trains/data/mongo/db:/data/db -v /opt/trains/data/mongo/configdb:/data/configdb --network="host" mongo:3.6.5 + +1. Launch the **trains-fileserver** Docker container. + + sudo docker run -d --restart="always" --name="trains-fileserver" --network="host" -v /opt/trains/logs:/var/log/trains -v /opt/trains/data/fileserver:/mnt/fileserver allegroai/trains:latest fileserver + +1. Launch the **trains-apiserver** Docker container. + + sudo docker run -d --restart="always" --name="trains-apiserver" --network="host" -v /opt/trains/logs:/var/log/trains -v /opt/trains/config:/opt/trains/config allegroai/trains:latest apiserver + +1. Launch the **trains-webserver** Docker container. + + sudo docker run -d --restart="always" --name="trains-webserver" -p 8080:80 allegroai/trains:latest webserver + +1. Your server is now running on [http://localhost:8080](http://localhost:8080) and the following ports are available: + + * API server on port `8008` + * Web server on port `8080` + * File server on port `8081` diff --git a/docs/faq.md b/docs/faq.md index 1b3dbd6..2dec984 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -6,12 +6,12 @@ * [Running trains-server on Mac OS X](#mac-osx) +* [Installing trains-server on stand alone Linux Ubuntu systems ](#ubuntu) + * [Resolving port conflicts preventing fixed users mode authentication and login](#port-conflict) * [Configuring trains-server for sub-domains and load balancers](#sub-domains) -* [Installing trains-server on stand alone Linux Ubuntu systems ](#ubuntu) - ### Deploying trains-server on Kubernetes clusters **trains-server** supports Kubernetes. See [trains-server-k8s](https://github.com/allegroai/trains-server-k8s) @@ -53,15 +53,49 @@ After installing, each time your computer reboots, you must run the `docker-comp 1. Run `docker-compose` with a unified docker. - Notice: *HOSTIP* holds the host network IP address. - If you have multiple network cards, you might want to specify a different network interface or set the IP manually. - - **You must run this command each time your computer reboots, because the dockers will not automatically reload.** - - $ HOSTIP=$(ipconfig getifaddr en0) docker-compose -f docker-compose-unified.yml up + $ docker-compose -f docker-compose-unified.yml up Your server is now running on [http://localhost:8080](http://localhost:8080) +### Installing trains-server on stand alone Linux Ubuntu systems + +To install **trains-server** on a stand alone Linux Ubuntu, follow the steps belows. + +After installing, each time your computer reboots, you must run the `docker-compose` command (see Step 6), because the dockers will not automatically reload. + +1. Install [docker for Linux Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/). + +1. Install `docker-compose` using the following commands (for more detailed information, see the [Install Docker Compose](https://docs.docker.com/compose/install/) in the Docker documentation): + + sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + +1. Remove the previous installation of **trains-server**. + + **WARNING**: This clears all existing **TRAINS** databases. + + $ sudo rm -R /opt/trains/ + +1. Create local directories for the databases and storage. + + $ sudo mkdir -p /opt/trains/data/elastic + $ sudo mkdir -p /opt/trains/data/mongo/db + $ sudo mkdir -p /opt/trains/data/mongo/configdb + $ sudo mkdir -p /opt/trains/logs + $ sudo mkdir -p /opt/trains/data/fileserver + $ sudo chown -R 1000:1000 /opt/trains + +1. Clone the [trains-server](https://github.com/allegroai/trains-server) repository and change directories to the new **trains-server** directory. + + $ git clone https://github.com/allegroai/trains-server.git + $ cd trains-server + +1. Run `docker-compose` with a unified docker. + + $ /usr/local/bin/docker-compose -f docker-compose-unified.yml up + + Your server is now running on [http://localhost:8080](http://localhost:8080) + ### Resolving port conflicts preventing fixed users mode authentication and login A port conflict may occur between the **trains-server** MongoDB and Elastic instances and other @@ -147,46 +181,3 @@ For example, if your domain is `trains.mydomain.com` and your sub-domains are `a 1. Run the Docker containers with our updated `docker run` commands (see [Launching Docker Containers](#https://github.com/allegroai/trains-server#launching-docker-containers)). -### Installing trains-server on stand alone Linux Ubuntu systems - -To install **trains-server** on a stand alone Linux Ubuntu, follow the steps belows. - -After installing, each time your computer reboots, you must run the `docker-compose` command (see Step 6), because the dockers will not automatically reload. - -1. Install [docker for Linux Ubuntu](https://docs.docker.com/install/linux/docker-ce/ubuntu/). - -1. Install `docker-compose` using the following commands (for more detailed information, see the [Install Docker Compose](https://docs.docker.com/compose/install/) in the Docker documentation): - - sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose - -1. Remove the previous installation of **trains-server**. - - **WARNING**: This clears all existing **TRAINS** databases. - - $ sudo rm -R /opt/trains/ - -1. Create local directories for the databases and storage. - - $ sudo mkdir -p /opt/trains/data/elastic - $ sudo mkdir -p /opt/trains/data/mongo/db - $ sudo mkdir -p /opt/trains/data/mongo/configdb - $ sudo mkdir -p /opt/trains/logs - $ sudo mkdir -p /opt/trains/data/fileserver - $ sudo chown -R $(whoami):$(whoami) /opt/trains - -1. Clone the [trains-server](https://github.com/allegroai/trains-server) repository and change directories to the new **trains-server** directory. - - $ git clone https://github.com/allegroai/trains-server.git - $ cd trains-server - -1. Run `docker-compose` with a unified docker. - - Notice: *HOSTIP* holds the host network IP address. - If you have multiple network cards, you might want to specify a different network interface or set the IP manually. - - **You must run this command each time your computer reboots, because the dockers will not automatically reload.** - - $ HOSTIP=$(ip route get 8.8.8.8 | head -1 | cut -d' ' -f8) /usr/local/bin/docker-compose -f docker-compose-unified.yml up - - Your server is now running on [http://localhost:8080](http://localhost:8080) \ No newline at end of file