From d112cd09e406b1778a750446abffa380f3fe315f Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Sun, 19 Mar 2023 02:47:05 -0400 Subject: [PATCH 1/2] Add Lodestone Core --- apps/lodestone-core/config.json | 17 +++++++ apps/lodestone-core/docker-compose.yml | 21 ++++++++ apps/lodestone-core/metadata/description.md | 51 ++++++++++++++++++++ apps/lodestone-core/metadata/logo.jpg | Bin 0 -> 26254 bytes 4 files changed, 89 insertions(+) create mode 100644 apps/lodestone-core/config.json create mode 100644 apps/lodestone-core/docker-compose.yml create mode 100644 apps/lodestone-core/metadata/description.md create mode 100644 apps/lodestone-core/metadata/logo.jpg diff --git a/apps/lodestone-core/config.json b/apps/lodestone-core/config.json new file mode 100644 index 00000000..b2418fd1 --- /dev/null +++ b/apps/lodestone-core/config.json @@ -0,0 +1,17 @@ +{ + "$schema": "../schema.json", + "name": "Lodestone Core", + "available": true, + "exposable": true, + "no_gui": true, + "port": 16662, + "id": "lodestone-core", + "tipi_version": 1, + "version": "0.4.3", + "categories": ["gaming"], + "description": "A free, open source server hosting tool for Minecraft and other multiplayers", + "short_desc": "Server hosting tool for Minecraft and other multiplayers", + "author": "Lodestone-Team", + "source": "https://github.com/Lodestone-Team/lodestone_core", + "form_fields": [] +} diff --git a/apps/lodestone-core/docker-compose.yml b/apps/lodestone-core/docker-compose.yml new file mode 100644 index 00000000..63a34e2f --- /dev/null +++ b/apps/lodestone-core/docker-compose.yml @@ -0,0 +1,21 @@ +version: "3.7" + +services: + lodestone-core: + container_name: lodestone-core + image: ghcr.io/lodestone-team/lodestone_core:0.4.3 + ports: + - ${APP_PORT}:16662 + - 25565-25575:25565-25575 + restart: unless-stopped + volumes: + - ${APP_DATA_DIR}/data/lodestone-data:/root/.lodestone + networks: + - tipi_main_network + labels: + traefik.enable: ${APP_EXPOSED} + traefik.http.routers.lodestone-core.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.lodestone-core.entrypoints: websecure + traefik.http.routers.lodestone-core.service: lodestone-core + traefik.http.routers.lodestone-core.tls.certresolver: myresolver + traefik.http.services.lodestone-core.loadbalancer.server.port: 16662 \ No newline at end of file diff --git a/apps/lodestone-core/metadata/description.md b/apps/lodestone-core/metadata/description.md new file mode 100644 index 00000000..4733ab4a --- /dev/null +++ b/apps/lodestone-core/metadata/description.md @@ -0,0 +1,51 @@ +A free, open source server hosting tool for Minecraft and other multiplayers + +# Important Connection and Setup Information + +- **Important Connection**: Connect to your remote hosted lodestone instance at the [Lodestone Web Gui](https://www.lodestone.cc/login/core/new?address=localhost&port=16662&protocol=http&apiVersion=v1) or with the [Desktop Apps Here](https://github.com/Lodestone-Team/lodestone#download) + +- **First User Setup**: After connecting to the panel, it will ask you to setup your inital user. To find the secret key, you can find it in your logs with `docker lodestone-core logs` + + +# Ports +- Ports 25565-25575 are open for Minecraft Servers + +--- + +[![Lodestone Screen Shot](https://github.com/Lodestone-Team/lodestone/raw/main/public/assets/readmeRender.png)](https://www.lodestone.cc/) + +# [](https://github.com/Lodestone-Team/lodestone#lodestone)Lodestone + +A free, open source server hosting tool for Minecraft and other multiplayers + +🔗 Get Started: [https://www.lodestone.cc/](https://www.lodestone.cc/) + +## [](https://github.com/Lodestone-Team/lodestone#features-and-roadmap)Features and roadmap + +- [x] Clean and intuitive UI +- [x] One-click installation and setup +- [x] Collaborative remote server and resource management +- [x] Priority on safety and security +- [ ] User permission management 🚧 +- [ ] Automated macros and tasks 🚧 +- [ ] Connecting without port forward 🚧 + +[![Lodestone Spring 2023 Roadmap](https://github.com/Lodestone-Team/lodestone/raw/main/public/assets/springRoadmap.png)](https://github.com/Lodestone-Team/lodestone/blob/main/public/assets/springRoadmap.png) + +## [](https://github.com/Lodestone-Team/lodestone#download)[Download](https://github.com/Lodestone-Team/dashboard/releases/latest) + +You can download the Lodestone client from our [release page](https://github.com/Lodestone-Team/dashboard/releases/latest). + +We also have a [webapp](https://www.lodestone.cc/) in early access for remote management. + +For any troubleshooting, see our [wiki](https://github.com/Lodestone-Team/lodestone/wiki/Known-Issues). + +For installing Lodestone Core, check out [here](https://github.com/Lodestone-Team/lodestone_core). + +## [](https://github.com/Lodestone-Team/lodestone#safety--security)Safety & Security + +Lodestone Core is written entirely in safe Rust, and uses`#![forbid(unsafe_code)]`. However **we can't guarantee the safety of the crates and binaries we link to**, as those may use unsafe rust. + +Lodestone is created with security as a top priority. While most of the safety critical code such as login and permissions management have been tested thoroughly, **no formal security audit has been done for any part of Lodestone.** + +## [](https://github.com/Lodestone-Team/lodestone#contributing) \ No newline at end of file diff --git a/apps/lodestone-core/metadata/logo.jpg b/apps/lodestone-core/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d82026ed03e9676c9a98cd4fc1f59f25efbc19d GIT binary patch literal 26254 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 literal 0 HcmV?d00001 From 48b5caed7fcf74a43ee415b30a3847c6472171c7 Mon Sep 17 00:00:00 2001 From: DrMxrcy Date: Mon, 20 Mar 2023 08:28:05 -0400 Subject: [PATCH 2/2] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 4bc43a42..a08ffa21 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [LibrePhotos](https://github.com/LibrePhotos/librephotos) - Complete photo management service - [LibreTranslate](https://github.com/LibreTranslate/LibreTranslate) - Free and Open Source Machine Translation API. 100% self-hosted, offline capable and easy to setup - [Lidarr](https://github.com/Lidarr/Lidarr) - Looks and smells like Sonarr but made for music. +- [Lodestone Core](https://github.com/Lodestone-Team/lodestone_core) - Server hosting tool for Minecraft and other multiplayers - [Mealie](https://github.com/hay-kot/mealie) - Self-hosted recipe manager and meal planner. - [Memos](https://github.com/usememos/memos) - Memo hub for knowledge management and collaboration. - [Minecraft server](https://github.com/itzg/docker-minecraft-server) - Run a minecraft server in one click