a web-remote minecraft server wrapper with some unique features

Overview

Canceled here, continued as Semoxy Logo Semoxy

Logo


MCWeb - a Minecraft Server Web Interface

MCWeb is a web-remote Minecraft Server Wrapper for controlling your Minecraft Server with ease.

Disclaimer

This is meant for private use, don't use in production. Be careful with port forwarding. Use this preferably in your local network.

Currently in development!, not safe to use

Requirements

Installation

Linux

Clone this repository using git clone "https://github.com/xImAnton/mcweb.git".

cd into the downloaded repository and run sudo bash install.sh.

Once the installation script is done, just use docker-compose to start the application.

When you're getting errors, because your python executable couldn't be found, run PYTHON_CMD=<your_python_command> before executing the installation script.

If you want to change the HTTP port of the application, change the first 80 in the ports section of the client-server service to whatever port you want. The API is proxied by the frontend server, so you don't have to change anything else.

  - BACKEND_ADDRESS=mcweb-backend:5001
    ports:
      - "80:80"
    depends_on:
  - BACKEND_ADDRESS=mcweb-backend:5001
    ports:
      - "5000:80"
    depends_on:

Windows

I'll write a installation script for Windows soon. If you have a server machine, I recommend getting Linux.

App Overview

Server Creation

You can create Minecraft Server with one click using MCWeb. Just enter a name, change the Port if needed, enter the RAM your server should have and select the Version. You can create simple Vanilla Servers (by Mojang), Snapshot Servers (development versions), Paper Servers (faster than vanilla, default) and of course Forge Servers for running various Mods.

Server Creation

Console

You can control your Minecraft Server from everywhere. Just enter a Minecraft Command or press a single button to give yourself OP (Operator Rights. [WIP]

Server Console

Mod Selection

When you chose a Forge Server, you can install and remove every Minecraft Mod with one click.

Mod Selection

Repository Structure

Directory/ File Description
.idea PyCharm Config Files
docs Documentation Markdown and Images
mcweb Backend Python Module, used by run.py
mcweb-client Frontend Code, Node Package
mcweb-mongo MongoDB Dockerfile and initial Values
Dockerfile Dockerfile for building the backend container
defaultConfig.json the default config values, needs to be renamed to config.json
docker-compose.yml docker-compose used to run the application
install.sh installation shell script
run.py Python file that starts the backend
Comments
  • simpler settings change code

    simpler settings change code

    dict with attribute names and checking functions

    in settings endpoint handler, iterate over params, check if they're in attribute dict and check type. if valid, apply changes to mongo and refetch server.

    make MinecraftServer#update_doc read attribute dict and generate dict of changeable attribute dynamically

    enhancement backend 
    opened by xImAnton 1
  • refactoring

    refactoring

    move "login.py" to top level package. login models have nothing to do with endpoints. rename "views" package to "endpoints" in some endpoints, Blueprint#route is used, use Blueprint#get instead for more explicit method declaration

    enhancement backend 
    opened by xImAnton 1
  • think about caching of servers

    think about caching of servers

    should servers be cached inside server manager or refetched everytime from database? should temporary stuff like online status be stored in the database? there is no need if all servers are cached in the server manager. there is a higher ram usage when using more servers and caching. minimal longer loading time when refetching everytime. no noticable impact.

    backend investigate 
    opened by xImAnton 1
  • pass config as docker-compose secret to backend container

    pass config as docker-compose secret to backend container

    advantage: config can be edited without rebuilding the backend container we could use volumes but they have to be configured manually for access from host and the config file would be stored at another place

    enhancement backend 
    opened by xImAnton 1
  • additional account creation

    additional account creation

    To add accounts for other people, the root user could enter an email address. An email with a login link containing a token will be sent to the address. The new user can set up his account with the required information (name, password, email can be filled in automatically). After submitting this, the root user will receive a notification that a new account has been added. he can verify the new user and after confirming it, the new user can log in to the site with his credentials.

    feature backend frontend investigate security 
    opened by xImAnton 0
  • Create root account in webinterface

    Create root account in webinterface

    so that installation script is not needed.

    For server access verification we could save a token in a local file and require it in the creation form.

    The form will show up in the webinterface when no user exists yet.

    For checking if a root account exists on the frontend we could use a value in the /config response. Maybe rename that endpoint to /info for consistency.

    feature backend frontend security 
    opened by xImAnton 1
  • Redesign Webinterface and add some features

    Redesign Webinterface and add some features

    We need UI for:

    • Login
    • Account Creation (#95, #96)
    • Webinterface
      • Server Overview
        • [maybe add description field for each server (Backend)]
        • card for each server that shows name, description, online status, player count, address
        • total ram/ cpu usage, uptime, server errors
      • Single Server Overview
        • ram, cpu usage
        • player list
        • online status
        • dsm status
        • server address
      • Player Overview
        • player list
        • ban, op, kick players
      • Console
        • in/out for server console
      • Backups schedule
        • scheduled backups list
        • backup editing/ creation/ removal
        • saved backups list
        • advanced backup loading with World Tools
      • Server Settings
        • edit name, description, allocated ram, port
        • server.properties editing
        • delete server
      • Mod addition/ removal
        • curseforge addon list
        • dialog for versions of each addon + installation
      • World Management
        • world list
        • change current world
        • create/ delete world
        • world explorer - top view on world, movable
      • Dynamic Server Management
        • enable disable dsm
        • set shutdown threshold
        • edit kick message (minecraft text editor)
      • User Management
        • view registered users
        • edit permissions for single users or groups
      • Server Creation
        • like the old
      • Notifications
        • notification list
        • openable with button in header
      • MCWeb Settings
        • edit max ram, other configs
        • install java versions
      • Chat system
    enhancement feature backend frontend Work in Progress 
    opened by xImAnton 0
Owner
Anton Vogelsang
Anton Vogelsang
Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS)

django-cors-headers A Django App that adds Cross-Origin Resource Sharing (CORS) headers to responses. This allows in-browser requests to your Django a

Adam Johnson 4.8k Jan 5, 2023
Browsable web APIs for Flask.

Flask API Browsable web APIs for Flask. Status: This project is in maintenance mode. The original author (Tom Christie) has shifted his focus to API S

Flask API 1.3k Dec 27, 2022
The Web API toolkit. ๐Ÿ› 

?? The Web API toolkit. ?? Community: https://discuss.apistar.org ?? ?? ?? ?? ?? Documentation: https://docs.apistar.com ?? Requirements: Python 3.6+

Encode 5.6k Dec 27, 2022
Web APIs for Django. ๐ŸŽธ

Django REST framework Awesome web-browsable Web APIs. Full documentation for the project is available at https://www.django-rest-framework.org/. Fundi

Encode 24.7k Jan 4, 2023
A JSON Web Token authentication plugin for the Django REST Framework.

Simple JWT Abstract Simple JWT is a JSON Web Token authentication plugin for the Django REST Framework. For full documentation, visit django-rest-fram

Jazzband 3.3k Jan 4, 2023
Django Ninja is a web framework for building APIs with Django and Python 3.6+ type hints.

?? Fast, Async-ready, Openapi, type hints based framework for building APIs

Vitaliy Kucheryaviy 3.8k Jan 4, 2023
Document Web APIs made with Django Rest Framework

DRF Docs Document Web APIs made with Django Rest Framework. View Demo Contributors Wanted: Do you like this project? Using it? Let's make it better! S

Manos Konstantinidis 626 Nov 20, 2022
BreakFastApi ๐Ÿฃ ๐Ÿ” ๐Ÿ• The most delicious API on the web

BreakFastApi ?? ?? ?? The most delicious API on the web. Just send a request and you'll receive the most mouth watering dish recipe with estimated coo

Mariia Sizova 156 Nov 19, 2022
Fully Automated YouTube Channel โ–ถ๏ธwith Added Extra Features.

Fully Automated Youtube Channel โ–’โ–ˆโ–€โ–€โ–ˆ โ–ˆโ–€โ–€โ–ˆ โ–€โ–€โ–ˆโ–€โ–€ โ–€โ–€โ–ˆโ–€โ–€ โ–ˆโ–‘โ–‘โ–ˆ โ–ˆโ–€โ–€โ–„ โ–ˆโ–€โ–€ โ–ˆโ–€โ–€โ–ˆ โ–’โ–ˆโ–€โ–€โ–„ โ–ˆโ–‘โ–‘โ–ˆ โ–‘โ–‘โ–ˆโ–‘โ–‘ โ–‘โ–’โ–ˆโ–‘โ–‘ โ–ˆโ–‘โ–‘โ–ˆ โ–ˆโ–€โ–€โ–„ โ–ˆโ–€โ–€ โ–ˆโ–„โ–„โ–€ โ–’โ–ˆโ–„โ–„โ–ˆ โ–€โ–€โ–€โ–€ โ–‘โ–‘โ–€โ–‘โ–‘ โ–‘โ–’โ–ˆโ–‘โ–‘ โ–‘โ–€โ–€โ–€ โ–€โ–€โ–€โ–‘

sam-sepiol 249 Jan 2, 2023
Add a Web Server based on Rogue Mysql Server to allow remote user get

ไป‹็ป ๅฏนไบŽ้œ€่ฆไฝฟ็”จ Rogue Mysql Server ็š„ๆผๆดžๆฅ่ฏด๏ผŒ่‹ฅๆƒณๆ‰น้‡ๆฃ€ๆต‹่ฟ™็งๆผๆดž็š„่ฏ้œ€่ฆ่‡ชๅค‡ไธ€ไธชๆœๅŠกๅ™จใ€‚ๅนถไธ”ๆˆ‘ๅธธ็”จ็š„Rogue Mysql Server ่„šๆœฌ ไธๆ”ฏๆŒๅŠจๆ€ๆ›ดๆ”น่ฏปๅ–ๆ–‡ไปถๅใ€ไธๆ”ฏๆŒ่ฟœ็จ‹็”จๆˆท่ฎฟ้—ฎ่ฏปๅ–็ป“ๆžœใ€ไธๆ”ฏๆŒๆ‰น้‡ๅŒ–ๆฃ€ๆต‹็ฝ‘็ซ™ใ€‚ไบŽๆ˜ฏไนŽ่Œ็”Ÿไบ†่ฟ™ไธชๅฐ่„šๆœฌ็š„ๆƒณๆณ• Rogue-MySql-

null 6 May 17, 2022
Aiminsun 165 Dec 21, 2022
MPV remote controller is a program for remote controlling mpv player with device in your local network through web browser.

MPV remote controller is a program for remote controlling mpv player with device in your local network through web browser.

null 5 May 26, 2022
An asynchronous Minecraft server wrapper written in python3 with asyncio

mark3 (WIP) A modern Minecraft server wrapper written in python3 with asyncio TODO Note: The order of the following checklist doesn't necessarily mean

Colin Andress 7 Jul 29, 2022
High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features :fire:

Releases | Gears | Documentation | Installation | License VidGear is a High-Performance Video Processing Python Library that provides an easy-to-use,

Abhishek Thakur 2.6k Dec 28, 2022
A bot to get Statistics like the Playercount from your Minecraft-Server on your Discord-Server

Hey Thanks for reading me. Warning: My English is not the best I have programmed this bot to show me statistics about the player numbers and ping of m

spaffel 12 Sep 24, 2022
Kyrie Eleison - The best and unique way to encrypt some data or a file safely

Encrypt your important data and files easily and safely with Kyrie Eleison.

Billy 39 Oct 27, 2022
Raven is a tool written in Python3 allowing you to generate an unique image with some text.

?? Raven is a tool written in Python3 allowing you to generate an unique image with some text. It does it by searching the text on Google, do

Billy 39 Dec 20, 2022
MCRPC (Minecraft Resource Pack Comparator) checks your resource pack against any version of Minecraft to show resources missing from your pack for that version.

Minecraft Resource Pack Comparator MCRPC checks your resource pack against any version of Minecraft to show resources missing from your pack for that

null 3 Nov 3, 2022
Dontdie-minecraft - A python program that causes your computer to bluescreen whenever you die in Minecraft

Don't Die - A Python Program A python program that causes your computer to blues

null 3 Apr 19, 2022
Minecraft.nix - Command line Minecraft launcher managed by nix

minecraft.nix Inspired by this thread, this flake contains derivations of both v

null 12 Sep 6, 2022