Skip to content

REST API backend and database bindings for myrunes.com - crafted with Go

License

Notifications You must be signed in to change notification settings

myrunes/backend

Repository files navigation


Save your League of Legends rune pages without wasting money.

     

     

Introduction

MYRUNES is a little web tool where you can simply create and store League of Legends rune pages without spending ingame (or even real) money for rune pages. Just visit myrunes.com, create an account and save your runes to be ready for the next pick and ban.
Of course, if you don't trust us, you can download the source code and build the binaries and front end to be hosted on your own server environment.


To Do & Future Goals

To get an overview about current goals and milestones for the next release version, take a look into the Projects page.

A list of open issues and ideas is availabe with the issue tracker of this repository.


Self Hosting

Docker

You can self-host this application by using the supplied docker images.

Just use the following command to pull the latest stable image:

# docker pull zekro/myrunes:latest

On startup, you need to bind the exposed web server port 8080 and the volume /etc/myrunes to your host system:

# docker run \
  -p 443:8080 \
  -v /etc/myrunes:/etc/myrunes \
  zekro/myrunes:latest

You can use following configuration with a MongoDB container using Docker Compose:

version: '3'

services:

  mongo:
    image: 'mongo:latest'
    expose:
      - '27017'
    volumes:
      - './mongodb/data/db:/data/db'
      - '/home/mgr/dump:/var/dump'
    command: '--auth'
    restart: always
 
  myrunes:
    image: "zekro/myrunes:latest"
    ports:
      - "443:8080"
    volumes:
      - "/etc/myrunes:/etc/myrunes"
    environment:
      # You dont need to define the configuration
      # with environment variables fi you prefer 
      # using the config file instead.
      - 'DB_HOST=mongo'
      - 'DB_PORT=27017'
      - 'DB_USERNAME=myrunes'
      - 'DB_PASSWORD=somepw'
      - 'DB_AUTHDB=myrunes'
      - 'DB_DATADB=myrunes'
      - 'TLS_ENABLE=true'
      - 'TLS_KEY=/etc/cert/key.pem'
      - 'TLS_CERT=/etc/cert/cert.pem'
    ports:
      - '443:8080'
    restart: always

As daemon

First of all, if you want to self host the MYRUNES system, your environment should pass certain requirements:

  • MongoDB
    The server application uses MongoDB as database and storage system.

  • PM2 or screen
    ...or something else to deamonize an application which is highly recommended for running the server component.

Also, you need the following toolchains for building the backend and frontend components:

Also, it is highly recommended to install GNU make to simplify the build process. If you are using windows, you can install make for Windows.

Compiling

  1. Set up GOPATH, if not done yet. Read here how to do this.

  2. Clone the repository into your GOPATH:

    $ git clone https://github.com/myrunes/backend $GOPATH/src/github.com/myrunes/backend
    $ cd $GOPATH/src/github.com/myrunes/backend
    
  3. Build binaries and assets using the Makefile:

    $ make
    

Now, the server binary and the web assets are located in the ./bin directory. You can move them wherever you want, just always keep the web folder in the same location where the server binary is located to ensure that all web assets can be found by the web server.

Startup

Now, you just need to start the server binary passing the location of your preferred config location. A preset config file will be then automatically created. Now, enter your preferences and restart the server.

$ ./server -c /etc/myrunes/config.yml

© 2019-20 Ringo Hoffmann (zekro Development)
Covered by the MIT Licence.