diff --git a/Apps/MineOS/appfile.json b/Apps/MineOS/appfile.json new file mode 100644 index 00000000..9070a20a --- /dev/null +++ b/Apps/MineOS/appfile.json @@ -0,0 +1,203 @@ +{ + "version": "1.0", + "title": "MineOS", + "name": "mineos-node", + "icon": "https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/MineOS/icon.png", + "tagline": "Free and easy to use Minecraft server management tool.", + "overview": "MineOS is a server front-end to ease managing Minecraft administrative tasks. This iteration using Node.js aims to enhance previous MineOS scripts (Python-based), by leveraging the event-triggering, asyncronous model of Node.JS and websockets.", + "screenshots": [ + "https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/MineOS/screenshot-1.png" + ], + "category": [ + "Gaming" + ], + "developer": { + "name": "hexparrot", + "website": "https://github.com/hexparrot/", + "donate_text": "", + "donate_link": "" + }, + "adaptor": { + "name": "Chàra Rose", + "website": "https://chara.cloud", + "donate_text": "", + "donate_link": "" + }, + "support": "https://discord.gg/knqAbbBbeX", + "website": "https://www.casaos.io", + "container": { + "image": "hexparrot/mineos:latest", + "shell": "bash", + "privileged": false, + "network_model": "bridge", + "web_ui": { + "http": "8444", + "path": "/admin/index.html" + }, + "envs": [ + { + "key": "USE_HTTPS", + "value": "\"true\"", + "configurable": "yes", + "description": "Should the web interface use HTTPS or HTTP? Valid entries are \"true\" and \"false\" (with quotes)" + } + { + "key": "SERVER_PORT", + "value": "8443", + "configurable": "yes", + "description": "What port should the web interface listen on? This is independent of the USE_HTTPS setting." + } + { + "key": "USER_NAME", + "value": "mc", + "configurable": "yes", + "description": "On startup, mineos will check if an account of the name \"mc\" exists. If it does not exist, one will be created. This account, and any other created with this variable will be permitted to login to the web interface." + } + { + "key": "USER_UID", + "value": "1000", + "configurable": "yes", + "description": "If the \"mc\" account does not already exist, when mineos creates it, it will do so with UID same as the value of the variable. If an account with this UID already exists, account creation will be aborted." + } + { + "key": "USER_PASSWORD", + "value": "random_see_log", + "configurable": "yes", + "description": "If the \"mc\" account is being created, it will use either the value of USER_PASSWORD, or a random 20 character password will be generated for you and displayed in the console log. After first launch, you should check the log." + } + ], + "ports": [ + { + "container": "8443", + "host": "8444", + "type": "tcp", + "allocation": "preferred", + "configurable": "advanced", + "description": "WebUI HTTP Port" + }, + { + "container": "25565", + "host": "25565", + "type": "tcp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (TCP)" + }, + { + "container": "25566", + "host": "25566", + "type": "tcp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (TCP)" + }, + { + "container": "25567", + "host": "25567", + "type": "tcp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (TCP)" + }, + { + "container": "25568", + "host": "25568", + "type": "tcp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (TCP)" + }, + { + "container": "25569", + "host": "25569", + "type": "tcp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (TCP)" + }, + { + "container": "25570", + "host": "25570", + "type": "tcp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (TCP)" + }, + { + "container": "25565", + "host": "25565", + "type": "udp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (UDP)" + }, + { + "container": "25566", + "host": "25566", + "type": "udp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (UDP)" + }, + { + "container": "25567", + "host": "25567", + "type": "udp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (UDP)" + }, + { + "container": "25568", + "host": "25568", + "type": "udp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (UDP)" + }, + { + "container": "25569", + "host": "25569", + "type": "udp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (UDP)" + }, + { + "container": "25570", + "host": "25570", + "type": "udp", + "allocation": "required", + "configurable": "no", + "description": "Minecraft listening Port (UDP)" + } + ], + "volumes": [ + { + "container": "/var/games/minecraft", + "host": "/var/games/mineos/minecraft", + "mode": "rw", + "allocation": "automatic", + "configurable": "no", + "description": "MineOS directory." + } + ], + "devices": [], + "constraints": { + "min_memory": 1024, + "min_storage": 1024 + }, + "restart_policy": "unless-stopped", + "sysctls": [], + "cap_add": [], + "labels": [] + }, + "abilities": { + "notification": false, + "widgets": false, + "authentication": false, + "search": false, + "upnp": false + }, + "tips": {} +} diff --git a/Apps/MineOS/docker-compose.yml b/Apps/MineOS/docker-compose.yml new file mode 100644 index 00000000..03c11a82 --- /dev/null +++ b/Apps/MineOS/docker-compose.yml @@ -0,0 +1,173 @@ +name: mineos-node +# Base file from: https://github.com/hexparrot/mineos-node/blob/master/docker-compose.yml + +services: + mineos: + image: hexparrot/mineos:latest + container_name: mineos_server + networks: + - mineos + restart: unless-stopped + + # Adjust as needed; if this is too short, stopping the container + # may corrupt map data + stop_grace_period: 10m + + volumes: + # Using a bind mapping is preferrable here due to how docker + # stores names volumes by default in /var/lib/docker/volumes + # with permissions that prevent normal users from accessing + # the folder structure. + - /var/games/mineos/minecraft:/var/games/minecraft + + environment: + USE_HTTPS: "true" + SERVER_PORT: 8443 + USER_NAME: mc + USER_UID: 1000 + USER_PASSWORD: root + + ports: + # HTTPS port for web interface. If you change the SERVER_PORT + # variable, also change this mapping. + - "8444:8443/tcp" + + # Minecraft server ports. 25565 is the default, but is you plan + # on running multiple servers at the same time, each will need + # a unique port unless you are using bungiecord. + # Expand this range as needed. + - "25565-25570:25565-25570/tcp" + - "25565-25570:25565-25570/udp" + + x-casaos: + envs: + - container: USE_HTTPS + description: + en_us: Should the web interface use HTTPS or HTTP? Valid entries are "true" and "false" (with quotes) + es_es: ¿Debe la interfaz web usar HTTPS o HTTP? Las entradas válidas son "true" y "false" (con comillas) + + - container: SERVER_PORT + description: + en_us: What port should the web interface listen on? This is independent of the USE_HTTPS setting. + es_es: ¿En qué puerto debe escuchar la interfaz web? Esto es independiente de la configuración USE_HTTPS. + + - container: USER_NAME + description: + en_us: On startup, mineos will check if an account of the name "mc" exists. If it does not exist, one will be created. This account, and any other created with this variable will be permitted to login to the web interface. + es_es: Al iniciar, mineos verificará si existe una cuenta con el nombre "mc". Si no existe, se creará una. Esta cuenta y cualquier otra creada con esta variable podrán iniciar sesión en la interfaz web. + + - container: USER_UID + description: + en_us: If the "mc" account does not already exist, when mineos creates it, it will do so with UID same as the value of the variable. If an account with this UID already exists, account creation will be aborted. + es_es: Si la cuenta "mc" aún no existe, cuando mineos la cree, lo hará con el mismo UID que el valor de la variable. Si ya existe una cuenta con este UID, se cancelará la creación de la cuenta. + + - container: USER_PASSWORD + description: + en_us: If the "mc" account is being created, it will use the default password "root" (without quotes). It is recommended to change this to something more secure. + es_es: Si se está creando la cuenta "mc", utilizará la contraseña "root" (sin comillas) por defecto. Es recomendable cambiar esto por algo más seguro. + + ports: + - container: "8443" + description: + en_us: WebUI HTTP Port + protocol: tcp + + - container: "25565" + description: + en_us: Minecraft listening Port (TCP) + protocol: tcp + + - container: "25566" + description: + en_us: Minecraft listening Port (TCP) + protocol: tcp + + - container: "25567" + description: + en_us: Minecraft listening Port (TCP) + protocol: tcp + + - container: "25568" + description: + en_us: Minecraft listening Port (TCP) + protocol: tcp + + - container: "25569" + description: + en_us: Minecraft listening Port (TCP) + protocol: tcp + + - container: "25570" + description: + en_us: Minecraft listening Port (TCP) + protocol: tcp + + - container: "25565" + description: + en_us: Minecraft listening Port (UDP) + protocol: udp + + - container: "25566" + description: + en_us: Minecraft listening Port (UDP) + protocol: udp + + - container: "25567" + description: + en_us: Minecraft listening Port (UDP) + protocol: udp + + - container: "25568" + description: + en_us: Minecraft listening Port (UDP) + protocol: udp + + - container: "25569" + description: + en_us: Minecraft listening Port (UDP) + protocol: udp + + - container: "25570" + description: + en_us: Minecraft listening Port (UDP) + protocol: udp + + volumes: + - container: /var/games/minecraft + description: + en_us: MineOS directory. +x-casaos: + architectures: + - amd64 + - arm + - arm64 + main: mineos + author: Chàra Rose + category: Games + description: + en_us: MineOS is a server front-end to ease managing Minecraft administrative tasks. This iteration using Node.js aims to enhance previous MineOS scripts (Python-based), by leveraging the event-triggering, asyncronous model of Node.JS and websockets. + es_es: MineOS es una interfaz de servidor para facilitar la gestión de las tareas administrativas de Minecraft. Esta iteración que utiliza Node.js tiene como objetivo mejorar los scripts anteriores de MineOS (basados en Python), aprovechando el modelo asincrónico de activación de eventos de Node.JS y websockets. + developer: hexparrot + icon: https://cdn.jsdelivr.net/gh/IceWhaleTech/CasaOS-AppStore@main/Apps/MineOS/icon.png + tagline: + en_us: Free and easy to use Minecraft server management tool. + es_es: Herramienta de administración de servidores de Minecraft gratuita y fácil de usar. + tips: + before_install: + en_us: | + Default Account + + | Username | Password | + |----------|----------| + | `mc` | `root` | + title: + en_us: MineOS + index: /admin/index.html + scheme: https + port_map: "8444" + +volumes: + mineos_data: + +networks: + mineos: diff --git a/Apps/MineOS/icon.png b/Apps/MineOS/icon.png new file mode 100644 index 00000000..63edd1d7 Binary files /dev/null and b/Apps/MineOS/icon.png differ diff --git a/Apps/MineOS/screenshot-1.png b/Apps/MineOS/screenshot-1.png new file mode 100644 index 00000000..8fc0ed2f Binary files /dev/null and b/Apps/MineOS/screenshot-1.png differ