All Projects → slotlist → slotlist-backend

slotlist / slotlist-backend

Licence: MIT license
Backend of slotlist.info, an ArmA 3 mission planning and slotlist management tool

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to slotlist-backend

Streamator
A Spectator Specifically build for Content Creation and Streaming
Stars: ✭ 18 (+38.46%)
Mutual labels:  arma, arma3
Storaji
📒 The light/responsive inventory management system available on Windows, macOS and Linux.
Stars: ✭ 222 (+1607.69%)
Mutual labels:  backend, management
TheseusServices
Private Military Company content mod for Arma 3
Stars: ✭ 16 (+23.08%)
Mutual labels:  arma, arma3
tabler
Arma 3 Translation Helper
Stars: ✭ 29 (+123.08%)
Mutual labels:  arma, arma3
A3ExtendedChat
Adds new functionality to the Arma 3 chat system with emojis, history viewer, message filters and commands!
Stars: ✭ 16 (+23.08%)
Mutual labels:  arma, arma3
awesome-arma3
Curated list of awesome Arma 3 missions and addons
Stars: ✭ 18 (+38.46%)
Mutual labels:  arma, arma3
Falko Api
📈 Falko API: Plataform for agile projects management 📊
Stars: ✭ 13 (+0%)
Mutual labels:  backend, management
3den-Enhanced
Official 3den Enhanced repository
Stars: ✭ 36 (+176.92%)
Mutual labels:  arma, arma3
PboViewer
Cross-platform PBO maker / unpacker
Stars: ✭ 28 (+115.38%)
Mutual labels:  arma, arma3
Pythia
An extension for Arma 3 that lets you write extensions in Python 3
Stars: ✭ 50 (+284.62%)
Mutual labels:  arma, arma3
SQFDiscordEmbedBuilder
Send discord webhook embeds from your Arma 3 Server
Stars: ✭ 27 (+107.69%)
Mutual labels:  arma, arma3
Benny-Edition-CTI-0.97-Zerty-Modification
Modification of BECTI made by zerty for the JMW Arma 3 server
Stars: ✭ 36 (+176.92%)
Mutual labels:  arma3, mission
R3
Arma After Action Replay System, ongoing development in git branches
Stars: ✭ 35 (+169.23%)
Mutual labels:  arma, arma3
extDB2
Arma3 Extension DB C++ dll / so by @Torndeco. [superseded by extDB3]
Stars: ✭ 17 (+30.77%)
Mutual labels:  arma, arma3
Flaxs-Arma-Server-Tool-2
Full rebuild of my tool for installing and updating Arma 3 server with built in features for managing Steam Workshop mods.
Stars: ✭ 34 (+161.54%)
Mutual labels:  arma3, steam-api
CLib
CLib is a Function/Script Library for ArmA 3
Stars: ✭ 22 (+69.23%)
Mutual labels:  arma, arma3
mts marker
NATO joint military symbols for ArmA 3
Stars: ✭ 14 (+7.69%)
Mutual labels:  arma, arma3
Bulletproof-Arma-Launcher
Customisable mod installer and launcher for Arma 3 mods that takes care of *everything* for your community players! Why "bulletproof", you ask? Because "Idiotensicher" was mean :)
Stars: ✭ 21 (+61.54%)
Mutual labels:  arma, arma3
smash-go
🌠 Golang攻城狮的足迹,从基础到进阶,从应用到源码解析。该仓库会坚持更新Golang源码的阅读笔记,包括但不限于GMP模型,内存分配,gRPC,性能分析PProf etc. 努力成为更好的Gopher
Stars: ✭ 18 (+38.46%)
Mutual labels:  backend
jobs
💼 Job opportunities in Singapore and abroad
Stars: ✭ 36 (+176.92%)
Mutual labels:  backend

slotlist-backend

Backend of slotlist.info, an ArmA 3 mission planning and slotlist management tool.
The corresponding frontend implementation of this project can be found at slotlist-frontend.

Installation

Requirements

Package requirements

  • libpq
  • g++ (build only)
  • make (build only)
  • postgresql-dev (build only)
  • python2 (build only)

Optional dependencies

Setup

Install and transpile TypeScript

$ yarn
$ yarn build

Prepare database and migrate to latest state

$ yarn migrate

Remove unneeded packages for minimal production install (optional)

$ yarn install --prod
$ yarn cache clean

Adjust required environment variables and config

Configuration will be parsed from environment variables, all of which can be found in the dev.env file as well as the Configuration markdown file in the docs/ folder of this repository.

Beside dev.env, you should create a .env file in the root of your repository - it will automatically be ignored by git. Use this file to overwrite the default config values or provide missing ones; you will at very least have to provide:

  • CONFIG_STEAM_API_SECRET
  • CONFIG_STORAGE_BUCKETNAME
  • CONFIG_STORAGE_PROJECTID
  • CONFIG_JWT_SECRET
  • DEFAULT_ADMIN_STEAMID
  • DEFAULT_ADMIN_NICKNAME

If you do not use Docker Compose to run slotlist-backend, make sure all environment variables are set up as listed in dev.env.

Usage

slotlist-backend can either be run "natively" or utilising Docker and Docker Compose.
When using the Docker Compose startup, a PostgreSQL instance will automatically be started as well, removing the need to provide a separate database setup.

Start with bunyan formatting

$ yarn start

Start with raw bunyan JSON logs

$ yarn start:docker

Start using Docker

$ docker-compose up

Development

The easiest way to start developing is by using the Docker setup as described above. Running docker-compose up automatically mounts the transpiled dist/ folder to the Docker container and watches for file changes - you can thus run a build task in your IDE and the backend container will automatically restart with the latest changes.

Unfortunately, there is no automated unit tests as of now (2018-01-09), however I plan on adding some mocha tests in the future, removing the need to test all new and existing functionality by hand.

Deployment

slotlist-backend was designed to be deployed to a Kubernetes cluster running on the Google Cloud Platform. The k8s/ folder contains the configuration files required to create and run all backend as well as other miscellaneous service and infrastructure. A cloudbuild.yaml file for automatic Docker image builds is provided in the repository root as well.

Generally speaking, slotlist-backend can be deployed anywhere running Node 8.1 or up and only depends on a PostgreSQL database.

Since no direct SSL support is integrated, we advise you to run the backend instance behind a reverse proxy such as nginx or traefik and handle SSL offloading there. Let's Encrypt provides excellent, free SSL certificates that are easy to integrate into your existing hosting, so there's no reason why you should run your site over plain HTTP!

Please be advised that some configuration values might need modifications should you plan to run your own instance since they have been tailored to work for slotlist.info's main instance. This is especially relevant for the CSP/HPKP headers set - failing to set these properly will result in problems loading your site.

Contributing

Pull requests are more than welcome - I am grateful for any help, no matter how small it is! For major changes, please open an issue first so proposed modifications can be discussed first.

All pull requests should be submitted to the dev branch - once a feature is fully implemented and tested, it will be merged to the master branch and deployed.
Attributions will be provided in the Contributors file inside the docs/ folder as appropriate.

In additional to development work for the backend or frontend projects, slotlist.info also needs your help in providing accurate and complete translations. We are utilising OneSky to crowd-source our translations and provide an easy interface to manage required strings. Feel free to contribute any translations or suggest a new language by opening an issue on the slotlist-frontend repository.

Versioning

slotlist-backend uses Semantic Versioning for releases, every deployment will be tagged with a new, appropriate version - old releases can be found on GitHub's release tab.

License

MIT

See Also

slotlist-frontend, the frontend portion of slotlist.info, written in Vue.js

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].