| .agent/skills | ||
| .agents/skills | ||
| .claude/skills | ||
| .github | ||
| .husky | ||
| assets | ||
| core | ||
| docs | ||
| mercury | ||
| src | ||
| tests/modules | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .gitmodules | ||
| AGENTS.md | ||
| build_core_integrator.sh | ||
| buildspec.yml | ||
| CHANGELOG.md | ||
| clone_repositories.sh | ||
| CODE_OF_CONDUCT.md | ||
| commitlint.config.js | ||
| CONTRIBUTING.md | ||
| docker-compose.prod.yaml | ||
| docker-compose.yaml | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| genesys.json | ||
| init.sql | ||
| install_dependencies.sh | ||
| jest.config.js | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| setup_resources.sh | ||
| tsconfig.eslint.json | ||
| tsconfig.json | ||
Evolution Server 🎮
Welcome to Evolution Server, a scalable and modern backend server for Yu-Gi-Oh! matches, compatible with EDOPro, Koishi, and YGO Mobile clients. Unlike traditional implementations, Evolution focuses on code extensibility and data collection, enabling new gameplay features and statistics.
✨ Features
- 🏰 Room creation through the EDOPro lobby.
- 📱 Duel creation supported via Koishi and YGO Mobile.
- 🧪 Cross-client duels between different platforms (experimental).
- 🔌 Automatic reconnection after disconnection or crash.
- 📊 Match data collection for future analytics.
- 🚀 Isolated core logic for each match.
📋 Requirements
- Node.js (>= 24.11.0)
- Node.js (>= 24.11.0)
- CMake (>= 3.18)
- Vcpkg (handled automatically by build script)
- System dependencies (Ubuntu/Debian):
wget,git,tar,curl,zip,unzip,pkg-config,g++,make,cmake,ninja-build
⚙️ Configuration
Before running the server, you must configure the environment variables.
-
Copy the example configuration file:
cp .env.example .env -
Edit
.envwith your settings (ports, database credentials, etc.).
🚀 Vcpkg Setup (Linux)
Vcpkg is used to manage C++ dependencies. The build_core_integrator.sh script handles the bootstrapping and installation of Vcpkg automatically.
If you want to manually set it up:
git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.sh
🛠️ Manual Installation (No Docker)
1️⃣ Clone the main project
git clone --recursive https://github.com/diangogav/EDOpro-server-ts
cd EDOpro-server-ts
📝 Install System Dependencies (Optional helper)
You can use the provided script to install system dependencies on Ubuntu/Debian:
sudo bash install_dependencies.sh
2️⃣ Clone external dependencies
bash clone_repositories.sh
This will create a repositories/ folder with all required assets (scripts, databases, banlists, etc).
3️⃣ Organize assets into their expected locations
bash setup_resources.sh
This mimics the layout used in the Dockerfile (e.g. copying resources to ./mercury, ./scripts/evolution, etc.).
4️⃣ Build the CoreIntegrator (native C++)
bash build_core_integrator.sh
This compiles the duel core used by the backend using Vcpkg and CMake.
5️⃣ Install Node.js dependencies
npm install
6️⃣ Launch the server in development mode
npm run dev
Server should now be running and listening on the configured ports (default: 7911, 7922, 4000).
🐳 Running with Docker (Alternative)
If you'd rather use Docker:
Build the image
docker build -t evolution-server .
Run the container
docker run -p 4000:4000 -p 7911:7911 -p 7922:7922 evolution-server
🙏 Acknowledgments
- Based on Multirole by @Dyxel
- Inspired by the amazing work of the Project Ignis, MyCard and Evolution communities