Skip to content

Eric1212/airline

 
 

Repository files navigation

An opensource airline game.

Forked from https://www.airline-club.com/ Live at https://myfly.club/

Screenshot 1

Dependencies

  • Java openjdk 11
  • MySQL 8
  • Sbt
  • tmux

Setup

  1. Create MySQL database to match values defined here: (https://github.com/patsonluk/airline/blob/master/airline-data/src/main/scala/com/patson/data/Constants.scala#L184)
  2. Navigate to airline-data and run sbt publishLocal. If you see encoding error, add character-set-server=utf8mb4 to your /etc/my.cnf and restart mysql. it's a unicode characters issue, see https://stackoverflow.com/questions/10957238/incorrect-string-value-when-trying-to-insert-utf-8-into-mysql-via-jdbc
  3. In airline-data, run sbt run,
    1. Then, choose the one that runs MainInit. It will take awhile to init everything.
  4. Set google.mapKey in application.conf with ur google map API key value. Be careful with setting budget and limit, google gives some free credit but it CAN go over and you might get charged!
  5. For the "Flight search" function to work, install elastic search 7.x, see https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html . For windows, I recommand downloading the zip archive and just unzip it - the MSI installer did not work on my PC
  6. For airport image search and email service for user pw reset - refer to https://github.com/patsonluk/airline/blob/master/airline-web/README
  7. Now run the background simulation by staying in airline-data, run activator run, select option MainSimulation. It should now run the backgroun simulation
  8. Open another terminal, navigate to airline-web, run the web server by activator run
  9. The application should be accessible at localhost:80

Nginx Proxy w/ Cloudflare HTTPS

In Cloudflare go to your domain and then SSL/TLS > Origin Server. Click Create Certificate > Generate private key and CSR with Cloudflare > Drop down choose ECC > Create

Save your Origin Certificate and your Private Key to a file. Example:

Orgin Certificate: domain.com.crt

Private Key: domain.com.key

Example nginx virtualhost conf file:

server {

  listen 443 ssl http2;
  listen [::] ssl http2;
  server_name domain.com;

  ssl_certificate      /usr/local/nginx/conf/ssl/domain.com/domain.com.crt;
  ssl_certificate_key  /usr/local/nginx/conf/ssl/domain.com/domain.com.key;

  add_header X-Frame-Options SAMEORIGIN;
  add_header X-Xss-Protection "1; mode=block" always;
  add_header X-Content-Type-Options "nosniff" always;
  add_header Referrer-Policy "strict-origin-when-cross-origin";

  access_log /home/nginx/domains/domain.com/log/access.log combined buffer=256k flush=5m;
  error_log /home/nginx/domains/domain.com/log/error.log;

  location /assets  {
    alias    /home/airline/airline-web/public/;
    access_log on;
    expires 30d;
  }

  location / {
    proxy_pass http://localhost:80;
    proxy_pass_header Content-Type;
    proxy_read_timeout     60;
    proxy_connect_timeout  60;
    proxy_redirect         off;

    # Allow the use of websockets
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

}

Banners

Self notes, too much trouble for other people to set it up right now. Just do NOT enable the banner. (disabled by default, to enable change bannerEnabled in application.conf

For the banners to work properly, need to setup google photo API. Download the oauth json and put it under airline-web/conf. Then run the app, the log should show an oauth url, use it, then it should generate a token under airline-web/google-tokens. Now for server deployment, copy the oauth json google-oauth-credentials.json to conf AND the google-tokens (as folder) to the root of airline-web.

Attribution

  1. Some icons by Yusuke Kamiyamane. Licensed under a Creative Commons Attribution 3.0 License
  2. Flag icons by famfamfam

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 59.1%
  • JavaScript 26.1%
  • HTML 9.6%
  • CSS 3.4%
  • Java 1.8%