Skip to content

Commit

Permalink
Add MineOS to App Store (#42)
Browse files Browse the repository at this point in the history
MineOS is a tool for creating and managing minecraft servers. I created
this from my own necessity.
This is the first time I do something like this, so it may have
mistakes.

Created docker-compose.yml with mineos-node's
[docker-compose.yml](https://github.com/hexparrot/mineos-node/blob/master/docker-compose.yml)
as base
  • Loading branch information
charagender authored May 10, 2023
1 parent 1823913 commit 1988eae
Show file tree
Hide file tree
Showing 4 changed files with 376 additions and 0 deletions.
203 changes: 203 additions & 0 deletions Apps/MineOS/appfile.json
Original file line number Diff line number Diff line change
@@ -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": {}
}
173 changes: 173 additions & 0 deletions Apps/MineOS/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -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:
Binary file added Apps/MineOS/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Apps/MineOS/screenshot-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1988eae

Please sign in to comment.