Skip to content

Server, Launcher, build test, and management system for YGOPro and related technologies.

License

Notifications You must be signed in to change notification settings

SalvationDevelopment/YGOSalvation-Server

Repository files navigation

Code Climate Test Coverage Issue Count Build Status Support via Gittip Stories in Backlog Stories in Progress #YGOPro Salvation Server by Salvation Development

Salvation Development is a large scale social engineering non-profit project set out to tackle the 'wicked problem' of Yu-Gi-Oh! Online Simulators via enterprise level software design. To do so it employs a merit of interconnected support software based around the core support software of YGOPro, written in HTML, CSS and JavaScript housed in this and sibling repositories. The project addresses issues of negligence by automating deployment and updating.

Screenshot of Launcher featuring Magi Magi * Gal

Feature List

Usage

If you are looking for a system to use just for dueling with custom cards server side this is not the system, please use YGOCore for that. This system is much more complex and geared to the sole use of YGOSalvation.

Installation

To run the system use node ./. This will create a version of the system on your desktop at http://localhost.

  • Install Nodist for Windows Users, or nvm instead of Node JS. As nodejs versions increase we tend to stay with the latest releases. This helps simplify things.

  • For Windows users, open your PowerShell (not CMD) as Administrator (this is important), then cd to the root of the cloned repository to install the following. Non Windows users can skip this step.

    • `npm install --global windows-build-tools
  • Install and setup MongoDB as a service

  • Install and properly configure ygosalvation-admin project adjacent to this folder.

  • Run the following commands. It installs a package manager, and a testing harness, and then the dependencies.

    • nodist 8.11.4
    • npm install
  • create a .env file in the top folder (beside this file).

    • Set SSL_KEY=<path> SSL isnt needed to work locally, key path
    • Set SSL_CERT=<path> SSL isnt needed to work locally, certificate path.
    • Set HTTP=<number> When SSL is off the port that gets used for viewing the site.
    • Set HTTPS=<number> When SSL is on the port that gets used for viewing the site.
    • Set PORT_RANGE_MIN To the lowest port that cores can run on.
    • Set PORT_RANGE_MAX To the highest port that cores can run on.
    • Set PROXY_PORT Proxy gate port for inbound game connections to reach the rest of the intranet.
    • Set ADMIN_SERVER_USERNAME=<string> and ADMIN_SERVER_PASSWORD=<string> based on a "Server" Permission level user in the admin.
    • Set ADMIN_SERVER_URL if connecting to a centralized hub, (staging, production), default should suffice for local development
    • Set ADMIN_SERVER_LOCAL to false if using external admin server.
    • Set DEFIANT to disable safety controls that force deployer to configure the server correctly. Do not enable this unless you know what you are doing. To run the system use node server. This will create a version of the system on your desktop at http://localhost.

Licensing

Do not use our software without our permission. It is meant for use at http://ygosalvation.com if you want to use this software for something please leave open an issue explaining your intended use and we will write you a custom license.

This software was developed and designed to help the Yu-Gi-Oh! Online community which for years has been socially suffering. In line with that, to protect the community, this project is 'mostly open'. This software can not be used at scale without written permission. That means no more than 10 users. There is a very specific use case I have in mind where we will give out an a flexible license if asked by companies and major community leaders. I've seen this software abused, and we do not want to see that happen again. Basically you are not allowed to use this without asking for its creator's permission first.

Contributing

Feel free to fork the project to change the code around and land patches back via pull request. For JavaScript please make sure it follows standard jslint rules on whitespace.