Skip to content

Student9876/mc-roam

Repository files navigation

MC Roam

MC Roam Logo

Cloud-Synced Minecraft Server Manager


License: MIT Build Status

What is MC Roam?

Index

MC Roam is a desktop application that revolutionizes Minecraft server hosting for friends and communities.

Your server, your hardware, your rules.

MC Roam runs directly on your PC—no online server RAM limitations, no hidden costs. Host, manage, and play Minecraft servers from anywhere, with seamless cloud sync and zero port forwarding.

  • No more server headaches: Anyone in your server group can host, and your world is always up-to-date.
  • Cloud-powered: All server data is synced via Google Drive, OneDrive, or any Rclone-compatible storage.
  • Admin made easy: Assign trusted admins, manage players, and tweak settings in real time.

Key Features

  • Cloud Sync: Store and sync your Minecraft server data across devices and hosts.
  • Multi-Host: Any member of the server group can start the server—no need to keep one PC always online.
  • Easy Player Management: OP, ban, kick, whitelist, and more, all from a modern UI.
  • Admin System: Owners can promote admins for shared management.
  • No Port Forwarding: Public tunneling via Playit.gg—play with friends, no router setup.
  • Real-Time Settings: Change world rules and properties while the server is running.
  • Built-in Terminal: View logs and send console commands directly from the app.

Who is it for?

  • Friends who want to share a Minecraft world, without any cloud service limitation.
  • Groups who want easy, secure, and portable server management.
  • Anyone who wants to host Minecraft servers without any resource limitaion of online services as it runs on your PC.

Installation

Prerequisites

  • Windows 10/11 (64-bit)
  • Rclone-compatible Cloud Storage (Google Drive, OneDrive, etc.)

Quick Start

  1. Download the latest release from Releases
  2. Run the Application
    • Double-click mc-roam.exe
    • Create an account (no config needed!)
    • Authorize your cloud storage
    • Create or join a server

Note: The release biuld is integrated with owners database and google cloud informations to access google drive. So just connect your playit.gg account and play.

Usage (Advanced/Developers)

Want to build MC Roam yourself, use your own MongoDB/Google Cloud, or contribute?

  • See the Building from Source section below.
  • You can configure your own MongoDB, Google OAuth, and Rclone settings via a .env file.
  • All advanced configuration and developer instructions are in the docs/ folder.

Building from Source

Requirements:

Build Steps:

# Clone repository
git clone https://github.com/Student9876/mc-roam.git
cd mc-roam

# Install Wails
go install github.com/wailsapp/wails/v2/cmd/wails@latest

# Install frontend dependencies
cd frontend
npm install
npm run prepare
cd ..

# Set environment variables in your shell (never inline secrets in command history)
# Windows PowerShell:
#   $env:MONGODB_URI="..."
#   $env:GOOGLE_CLIENT_ID="..."
#   $env:GOOGLE_CLIENT_SECRET="..."
# Linux/macOS (bash/zsh):
#   export MONGODB_URI="..."
#   export GOOGLE_CLIENT_ID="..."
#   export GOOGLE_CLIENT_SECRET="..."

# Build (reads env vars and injects them at build time)
wails build -ldflags "-X 'mc-roam/backend.MongoDBURI=${MONGODB_URI}' -X 'mc-roam/backend.GoogleClientID=${GOOGLE_CLIENT_ID}' -X 'mc-roam/backend.GoogleClientSecret=${GOOGLE_CLIENT_SECRET}'"

This command builds the MC Roam application and injects environment variables into the binary using Go's -ldflags option:

  • MONGODB_URI: Your MongoDB connection string (e.g., from MongoDB Atlas).
  • GOOGLE_CLIENT_ID: Your Google OAuth client ID.
  • GOOGLE_CLIENT_SECRET: Your Google OAuth client secret.

Never commit real credentials, and avoid passing secrets inline on the same command line because shell history may capture them.

Output will be in build/bin/mc-roam.exe

For Developers: Use .env.example as a template for local values and keep .env untracked.

Contributor Workflow (Formatting + Lint)

From frontend:

npm install
npm run prepare

This installs the pre-commit hook (.husky/pre-commit) that auto-formats staged files with Prettier and gofmt via lint-staged.


What Can You Do?

Server owners can:

  • Assign admin privileges to trusted members
  • Delete servers
  • Manage all settings

Admins can:

  • Modify server properties
  • Change world settings
  • Manage players (op, ban, kick, whitelist)
  • Send console commands

Regular members can:

  • Start and stop servers
  • Play when server is online

Project Structure

mc-roam/
├── backend/           # Go backend logic
│   ├── app.go        # Main application logic
│   ├── runner.go     # Server execution
│   ├── rclone.go     # Cloud sync
│   ├── playit.go     # Public tunneling
│   └── ...
├── frontend/         # React frontend
│   ├── src/
│   │   ├── pages/    # Dashboard, Auth
│   │   └── components/  # Modals, Cards
│   └── ...
├── build/            # Build assets
├── .github/          # CI/CD workflows
└── README.md

Technologies Used

  • Wails v2: Modern Go + Vite + React desktop app framework
  • Database: MongoDB
  • Cloud Sync: Rclone
  • Tunneling: Playit.gg

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Note: We only accept Pull Requests (PRs) to the develop branch. Please do not open PRs directly to main. All new features, bug fixes, and improvements should be based on develop. The main branch is reserved for production-ready code and releases.

  1. Fork the repository
  2. Create your feature branch from develop (git checkout develop && git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to your feature branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request targeting the develop branch

Security

  • Never commit .env files with real credentials
  • MongoDB credentials are environment-based
  • Rclone configs are stored per-server in database
  • Passwords are bcrypt-hashed

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Support

For issues, questions, or feature requests, please open an issue on GitHub.


Made by Student9876

About

Cloud-synced Minecraft server manager for Windows. Host, manage, and sync multiplayer Minecraft worlds with zero port forwarding, Playit.gg tunneling, Rclone cloud backup, and real-time admin controls. Built with Wails (Go + Vite + React). Perfect for friends, communities, and advanced users.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors