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.
- You need a Mapbox API token for your deployment. It is used to render the interactive map in the web interface. They are free.
- You need
docker-compose
.
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.
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).
docker-compose.yml
starts four independent services:
Used for storing data.
Exposes API endpoints for CRUD operations on the data in the MySQL instance.
Frontend interface that queries orion-server
for location data to visualize on a map.
Reverse proxies the API routes provided by orion-server
and the static files provided by orion-web
on the same host.