Coder Social home page Coder Social logo

laksamanakeris / ex_venture Goto Github PK

View Code? Open in Web Editor NEW

This project forked from oestrich/ex_venture

0.0 2.0 0.0 19.15 MB

MUD (Multi-User Dungeon) server written in Elixir

Home Page: https://exventure.org

License: MIT License

Elixir 80.35% CSS 0.44% JavaScript 1.55% HTML 17.63% Shell 0.02%

ex_venture's Introduction

ExVenture

Trello

A MUD (Multi-User Dungeon) written in Elixir.

Docs

Elixir Docs. General usage docs.

Requirements

  • PostgreSQL 10
  • Elixir 1.6
  • Erlang 20
  • node.js 8.6

Setup

mix deps.get
mix compile
cd assets && npm install && node node_modules/brunch/bin/brunch build && cd ..
mix ecto.reset
mix run --no-halt

This will start a server on port 5555 that you can connect with using the local.tin tintin++ config. Ecto reset will include a sample area, classes, skills, and a login. You can also load http://localhost:4000/ in your browser for the admin panel and web client.

Running Tests

MIX_ENV=test mix ecto.create
MIX_ENV=test mix ecto.migrate

Web Client

There is a web client located at http://localhost:4000/play.

Web Client

Admin Panel

There is an admin panel located at http://locahost:4000/admin that you can build out the game in. Create zones, rooms, npcs, items, etc. in the panel. They will become live instantly on creating or updating.

You can see more on exventure.org.

Admin Dashboard

Deployment

Distillery is used to generate releases. Once a release is generated you can copy the tar file to the server and start it up.

cd assets && node node_modules/brunch/bin/brunch build && cd ..
MIX_ENV=prod mix compile
MIX_ENV=prod mix phx.digest
MIX_ENV=prod mix release

The release.sh script will also do the same.

TLS

The game does not support TLS natively, but you can get nginx to serve as a termination point and forward locally to the app. Nginx needs to be built with two modules, stream_core and stream_ssl. You will also need to set the ssl_port option in networking. By default it will load from the SSL_PORT ENV variable.

stream {
  upstream exventure {
    server 127.0.0.1:5555;
  }

  server {
    listen 5443 ssl;

    # Copy in your main site's settings here
    ssl_certificate /path/to/file.pem
    ssl_certificate_key /path/to/file.key

    proxy_pass exventure;
  }
}

Metrics

Prometheus metrics are set up and will be reported on /metrics. You may want to have nginx deny requests to this endpoint or whitelist it for IPs, etc.

ex_venture's People

Contributors

oestrich avatar bsharpe avatar justuseapen avatar

Watchers

Hatta Zainal avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.