From 8432d1a4de9019dd5a23ef76fc7fa658293fd891 Mon Sep 17 00:00:00 2001 From: updraft0 Date: Fri, 28 Jun 2024 22:11:07 +0100 Subject: [PATCH] chore(docs): add a basic README.md for running locally --- LICENSE.md | 2 +- README.md | 80 +++++++++++++++++++++++++++++++ compose.yaml | 28 +++++++---- screenshots/map_pre_0.1_demo.png | Bin 0 -> 96910 bytes scripts/generate-secret-env.sh | 7 +++ ui/nginx.conf | 4 ++ 6 files changed, 111 insertions(+), 10 deletions(-) create mode 100644 README.md create mode 100644 screenshots/map_pre_0.1_demo.png create mode 100755 scripts/generate-secret-env.sh diff --git a/LICENSE.md b/LICENSE.md index 93bc665..e141792 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ # MIT License -Copyright (c) 2023 updraft0 and contributors +Copyright (c) 2023-2024 updraft0 and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md new file mode 100644 index 0000000..cdabe55 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +# `control-tower` + +> _an elevated glass-enclosed structure which has an unobstructed view of a landing field and from which air traffic +> may be controlled usually by radio_ + +> **A new wormhole mapping tool for EVE Online** + +### ⚠ Alpha quality software ⚠ + +Control Tower is a new mapping tool for [EVE][eve-online] that is focused on mapping J-space and being familiar to +existing users of [Pathfinder][pathfinder]. The motivation to write a new tool was **a.** _for fun_ and **b.** because +the Pathfinder codebase was hard to understand/modify. Complete feature parity is not the primary goal - but runtime +speed and ease of deployment certainly are. + +Current state: + +![Image of map view pre 0.1](./screenshots/map_pre_0.1_demo.png) + +## Running + +The github actions pipeline builds docker images for both the backend and frontend, currently only tagged `:latest`. + +To run using [docker-compose]: + +* Create a new [EVE Application][eve-online-developer-applications] and note the ESI client id and secret +* Create the `secret.env` file by e.g. running [`./scripts/generate-secret-env.sh > secret.env`](./scripts/generate-secret-env.sh) +* Update the `secret.env` with the values of your ESI client id and secret +* Run `docker-compose up` (look in [`compose.yaml`](./compose.yaml) for things you might want to tweak) +* Wait for the SDE import to run and go to http://localhost:8080 to login + create a map + +Current minimum runtime requirements are 4GB RAM and 1 CPU, because the full [SDE][eve-online-sde] is imported and +parsing hundreds of megabytes of YAML is memory consuming. + +## Features + +The feature list is intended as an overview of capabilities and current roadmap - for more details see the project view. + +Currently: + +* Multiple characters can log in and share a session +* Each map has granular ACL permissions +* Map canvas supports moving systems, adding new ones, creating connections +* Jumps between systems are tracked (even if a character is not actively looking at the map) +* Selecting a system gives signature scan information +* Selecting a connection gives connection jump information +* There are keyboard shortcuts available to e.g. rename or delete systems + +In the future: + +* [ ] Right-click context menu for common actions (such as setting the size of a connection) +* [ ] Intel information is editable (e.g. system owner) and notes +* [ ] Route calculation +* [ ] Notifications for when systems become connected + +## Developing + +The project is almost exclusively written in the [Scala][scala-lang] 3 programming language with a functional style on +the backend - a tutorial is sadly beyond the scope of this README. To get started with being able to run locally (e.g. +to hack on the frontend CSS) on a Unix like system (tested on Linux only but should work in WSL 2 or on a Mac): + +* Install [mise] (or [asdf]) and run either `mise install` or `asdf install` - this should bring in the JDK, `sbt` and `npm` +* Run `sbt` to bring up the build tool prompt and type `~ui/fastLinkJS` to hot-recompile the frontend `ui/` code +* In a separate terminal tab, run `cd ui && npm run dev` to bring up [vite] +* In a separate terminal tab, run `sbt server/run` (after having brought in all the appropriate environment variables) +* Open up http://localhost:8091/ - you should be able to see the login screen and your maps + +## Contributing + +If you want to get in touch, report a bug or submit some code changes please either open an issue or start a discussion. +A fuller `DEVELOPING.md` guide will probably be available eventually. + +[asdf]: https://github.com/asdf-vm/asdf +[docker-compose]: https://docs.docker.com/compose/ +[eve-online]: https://www.eveonline.com/ +[eve-online-developer-applications]: https://developers.eveonline.com/applications +[eve-online-sde]: https://docs.esi.evetech.net/docs/sde_introduction.html +[mise]: https://github.com/jdx/mise +[pathfinder]: https://github.com/goryn-clade/pathfinder +[scala-lang]: https://scala-lang.org/ +[vite]: https://vitejs.dev/ diff --git a/compose.yaml b/compose.yaml index e98588f..2a05569 100644 --- a/compose.yaml +++ b/compose.yaml @@ -1,28 +1,38 @@ -version: '3' +# see https://compose-spec.io/ +version: '3.7' services: frontend: - restart: always - image: ghcr.io/updraft0/controltower-fe + restart: no + pull_policy: always + image: ghcr.io/updraft0/controltower-fe:latest ports: - "8091:8080" volumes: - - ./ui/nginx.conf:/etc/nginx/nginx.conf:z,ro + - ./ui/nginx.conf:/etc/nginx/nginx.conf:ro + # - /path/to/ssl.key:/etc/ssl/your.fqdn.here.key:ro + # - /path/to/ssl.pem:/etc/ssl/your.fqdn.here.pem:ro depends_on: backend: condition: service_healthy backend: - restart: always - image: ghcr.io/updraft0/controltower + restart: no + pull_policy: always + image: ghcr.io/updraft0/controltower:latest env_file: - ./secret.env environment: - CT_HTTP_UI_PORT=8091 -# volumes: -# - ./composedb:/app/db:Z + - JAVA_OPTS=-Xmx4G -XX:+UseZGC + - SDE_PARALLEL=1 + # - CT_HTTP_PROTO=https + # - CT_HTTP_HOST=your.fqdn.here + # - CT_HTTP_UI_PORT=8443 + volumes: + - ./ctdb:/app/db ports: - "8092:8092" healthcheck: test: ["CMD", "curl", "http://localhost:8092/api/reference/version"] interval: 10s timeout: 5s - retries: 3 \ No newline at end of file + retries: 3 diff --git a/screenshots/map_pre_0.1_demo.png b/screenshots/map_pre_0.1_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..82746f9432d0f1fabdf83207d1a1a8adbcafb759 GIT binary patch literal 96910 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

`H*CaZu#`@YW%0Cy=AAVz@fav+#kItd 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 IdH?Bu0EzEUfdBvi literal 0 HcmV?d00001 diff --git a/scripts/generate-secret-env.sh b/scripts/generate-secret-env.sh new file mode 100755 index 0000000..ad04dce --- /dev/null +++ b/scripts/generate-secret-env.sh @@ -0,0 +1,7 @@ +#!/bin/sh -eu +# Generates the secret.env file contents. See application.conf for how the environment variables are used +echo "CT_AUTH_SECRET=$(head -c 32 /dev/urandom | python -m base64)}" +echo "CT_ESI_CALLBACK_SECRET=$(head -c 32 /dev/urandom | python -m base64)" +echo "CT_ENCRYPTION_SECRET=$(head -c 32 /dev/urandom | python -m base64)" +echo "CT_ESI_CLIENT_ID=" +echo "CT_ESI_CLIENT_SECRET=" diff --git a/ui/nginx.conf b/ui/nginx.conf index c5ba441..3e795e1 100644 --- a/ui/nginx.conf +++ b/ui/nginx.conf @@ -21,6 +21,10 @@ http { server { gzip on; listen 8080 default_server; + # listen 8080 ssl; + + # ssl_certificate /etc/ssl/your.fqdn.here.pem; + # ssl_certificate_key /etc/ssl/your.fqdn.here.key; location /api/ { proxy_pass http://ct-backend;