diff --git a/README.md b/README.md index 0247f42..8ad1365 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,35 @@ Crontab example ### Server Requirements How powerful server you need depends on what type of data source you are going to use. If you, for example, receive data from the APRS-IS network, you will probably need at least a server with 4 CPUs and 8 GB of RAM, but I recommend using a server with 8 CPUs and 16 GB of RAM. + +## Getting Started - Docker +There is everything prepared to run trackdirect inside of some docker containers. As there is a Docker-Compose file the setup is very simple and fast. + +### Install Docker and Docker-Compose +Install [docker](https://docs.docker.com/get-docker/) and [docker-compose](https://docs.docker.com/compose/install/) from the published websites. + +### Config file +Adopt your config in `config/aprsc.conf` and `config/trackdirect.ini`. + + +### Run Docker-Compose for development containers +To startup trackdirect in an development container run this docker-compose command: + +``` +docker-compose up +``` + +If you want to run the container in daemon mode add `-d` to the command. + +### Run Docker-Compose for the last published docker images + +@peterus is creating regular docker images from this repository. With the release Docker-Compose file you do not need to install and compile everything by your own. + +``` +docker-compose -f docker-compose-rel.yml up +``` + + ## TODO - Rewrite backend to use Python 3 instead of Python 2. - Create a REST-API and replace the current website example with a new frontend written in Angular. diff --git a/docker-compose-rel.yml b/docker-compose-rel.yml new file mode 100644 index 0000000..d0aa308 --- /dev/null +++ b/docker-compose-rel.yml @@ -0,0 +1,65 @@ +version: "3.9" +services: + aprsc: + image: peterus/aprsc:latest + restart: always + ports: + - "10152:10152" + - "14580:14580" + - "10155:10155" + - "14501:14501" + volumes: + - $PWD/config/aprsc.conf:/opt/aprsc/etc/aprsc.conf + + collector: + image: peterus/trackdirect-python2:latest + restart: always + volumes: + - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini + command: /root/trackdirect/server/scripts/collector.sh trackdirect.ini 0 + depends_on: + - "db" + - "aprsc" + + websocket: + image: peterus/trackdirect-python2:latest + restart: always + volumes: + - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini + command: /root/trackdirect/server/scripts/wsserver.sh trackdirect.ini + ports: + - "9000:9000" + depends_on: + - "db" + - "aprsc" + + heatmaps: + image: peterus/trackdirect-python2:latest + restart: always + volumes: + - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini + - $PWD/heatmaps:/root/trackdirect/htdocs/public/heatmaps + command: /root/trackdirect/server/scripts/heatmapcreator.sh trackdirect.ini /root/trackdirect/htdocs/public/heatmaps + depends_on: + - "db" + + web: + image: peterus/trackdirect-apache:latest + restart: always + volumes: + - $PWD/config/trackdirect.ini:/root/trackdirect/config/trackdirect.ini + - $PWD/heatmaps:/root/trackdirect/htdocs/public/heatmaps + ports: + - "80:80" + depends_on: + - "db" + + db: + image: peterus/trackdirect-db:latest + restart: always + environment: + POSTGRES_USER: root + POSTGRES_PASSWORD: foobar + POSTGRES_DB: trackdirect + volumes: + - $PWD/db:/var/lib/postgresql/data