Code Monkey home page Code Monkey logo

orion-docker's Introduction

Orion

orion-docker

This repository provides a docker-compose file for orchestrating a series of Docker containers that collectively provide all the services that comprise the Orion platform, namely, orion-server and orion-web.

Please note that Orion's Docker deployment support is considered experimental. It is highly recommended that you deploy both the server and web interface manually using the instructions at orion-server and orion-web, respectively. orion-docker may be unstable or outdated, and using the Dockerized version is significantly more resource-intensive than deploying the services onto your infrastructure natively.

Prerequisites

  1. You need a Mapbox API token for your deployment. It is used to render the interactive map in the web interface. They are free.
  2. You need docker-compose.

Deployment

Get the code:

$ git clone https://github.com/LINKIWI/orion-docker.git
$ cd orion-docker

Create a .env file for injecting configuration environment variables into the docker-compose orchestration:

$ cat >.env<<EOF
MAPBOX_API_TOKEN=<your Mapbox API token>
PORT=<local port on which you want Orion to run>
EOF

Then, some Docker magic:

$ docker-compose up -d

Orion should now be running at the port you specified in the .env file. The easiest way to expose it to the Internet behind a domain name is to reverse proxy via Apache or nginx.

Additional steps

As noted in the orion-server README, there is no service-level authentication mechanism. It is still your responsibility to protect routes; otherwise, anonymous users will be able to publish and query location data to and from your Orion instance. You can do this in whatever way you see fit, but adding a layer of HTTP Basic authentication at the web server layer, while not recommended, is the easiest way to do this (and is compatible with the OwnTracks mobile clients).

Orchestration

docker-compose.yml starts four independent services:

MySQL

Used for storing data.

orion-server

Exposes API endpoints for CRUD operations on the data in the MySQL instance.

orion-web

Frontend interface that queries orion-server for location data to visualize on a map.

nginx

Reverse proxies the API routes provided by orion-server and the static files provided by orion-web on the same host.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.