Skip to content

beautifulmim/minmatar.org

 
 

Repository files navigation

minmatar.org

Platform for Minmatar Fleet

Technical Architecture

The my.minmatar.org site is built with a JavaScript/Astro front-end and a Python/Django back-end. It is deployed as a set of Docker containers to a bare-metal cloud host using Docker Compose. The backend uses a MariaDB database, and there is also a Redis cache instance.

Authentication is handled via single-sign-on with Discord, and the site also integrates with the Eve Swagger Interface.

The source code is hosted on GitHub, and the CI/CD pipeline is built using GitHub Actions. Operational monitoring is implemented using Sentry.

Prerequisites

  • Install Python
  • Install Docker and Docker Desktop (Mac, WSL)
  • Install Docker Compose
  • Install pyenv on your machine (e.g brew install pyenv, google for other operating systems)
  • Install pipenv on your machine (e.g pip install --user --upgrade pipenv)
  • Install pre-commit on your machine (e.g brew install)
  • Install libmariadb-dev or libmysqlclient-dev

Hosts

To run this project behind the Nginx proxy, you must update your /etc/hosts file. Google the instructions for whatever your operating system is.

You need to add the following,

# Minmatar.org Local Development
127.0.0.1       api.local.minmatar.org
127.0.0.1       local.minmatar.org

Quickstart

  1. Copy the contents of docker-compose-local.yml into docker-compose.yml
  2. Setup your .env file based on the .env.example file
  • Create an application here with CCP and get the ESI Client ID and ESI Secret Key
  • By default the database user passwords are example for users root and tools, if you'd like this to be different update the relevant sections in .env, docker-compose.yml, and dev/mariadb/setup.sql
  • Get the auth database password from BearThatCares
  1. Generate a self signed tls key that will be used for the reverse proxy. openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt
  • these paths are the defaults in the compose file for mounting the tls certs. You can change these to be whatever you want.
  1. Fetch the eve static export wget https://www.fuzzwork.co.uk/dump/sqlite-latest.sqlite.bz2, unzip it using bunzip2 sqlite-latest.sqlite.bz2, and move it mv sqlite-latest.sqlite ./frontend/app/src/data
  2. Run docker compose up -d to create and start the containers. In the background this sets up the needed database users and database.
  • Append the --build app flag to the compose command to rebuild the image if you've made code changes.
  1. Navigate to https://localhost/api/ and you should also see the website (via the proxy)

This isn't a perfect setup and we're still working on streamlining it. If you have issues reach out to the technology team and we'll do our best to help. Once you set this up once it will keep your db setup between development instances and you will only need to migrate if you change the database structure.

Commands

  • for x in $(sed -e 's/#.*//' .env.local | grep '=') ; do export $x ; done for populating env from .env

About

Platform for Minmatar Fleet

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 82.5%
  • Astro 12.7%
  • TypeScript 3.6%
  • JavaScript 0.9%
  • SCSS 0.3%
  • Dockerfile 0.0%