{"id":19477763,"url":"https://github.com/ultimatedoge5/conzeford","last_synced_at":"2025-04-25T14:32:40.825Z","repository":{"id":37263560,"uuid":"437133568","full_name":"UltimateDoge5/Conzeford","owner":"UltimateDoge5","description":"Conzeford enables easy control of a minecraft server via a web app and more!","archived":true,"fork":false,"pushed_at":"2022-12-16T22:28:05.000Z","size":494,"stargazers_count":0,"open_issues_count":4,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-25T16:33:39.593Z","etag":null,"topics":["dashboard","minecraft","minecraft-server","typescript","websocket"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UltimateDoge5.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-12-10T22:45:58.000Z","updated_at":"2023-06-06T09:21:42.000Z","dependencies_parsed_at":"2023-01-29T16:16:45.431Z","dependency_job_id":null,"html_url":"https://github.com/UltimateDoge5/Conzeford","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltimateDoge5%2FConzeford","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltimateDoge5%2FConzeford/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltimateDoge5%2FConzeford/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UltimateDoge5%2FConzeford/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UltimateDoge5","download_url":"https://codeload.github.com/UltimateDoge5/Conzeford/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250834230,"owners_count":21494933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","minecraft","minecraft-server","typescript","websocket"],"created_at":"2024-11-10T19:45:59.277Z","updated_at":"2025-04-25T14:32:40.255Z","avatar_url":"https://github.com/UltimateDoge5.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is Conzeford?\n\nSo what exactly is Conzeford?\n\nIt's a web application that allows you to control your Minecraft server from your browser.\nIt starts a java process in the background and provides multiple ways of management and interaction through the web interface.\n\n![Dashboard of the app](./docs/dashboard.png)\n\n## What's the purpose?\n\nI wanted an easy way for my friends without extensive knowledge of using VPS's and Linux to control their Minecraft servers.\nAfter the initial setup of the application, basic things like starting/stopping the server and interaction with it can be done through the browser.\n\n## How does it work?\n\nThe Minecraft server itself is started as a java process managed by the app. The application communicates with the browser via WebSockets and REST Apis.\n\nThe method for detection of the server events and it's disadvantages are described [here](#Spoofing-the-detection-of-server-events).\n\n## Features\n\nThis those are some of current and planned features:\n\n-   [x] State management (start/stop/restart)\n-   [x] Console interface\n-   [x] Aplication settings\n-   [x] Log reader\n-   [ ] Customizable dashboard\n-   [ ] [Plugin based event detection](#Spoofing-the-detection-of-server-events)\n-   [x] Password protection\n\nThe exact list can be found [here](https://github.com/UltimateDoge5/Conzeford/projects/1).  \nConzeford also has its own configurable features like shutdown delay - before a shutdown a message about it is sent to the players. And a lot of smaller features.\n\n## Setup\n\nYou can download the latest version from [here](https://github.com/UltimateDoge5/Conzeford/releases).\n\nConzeford **_will not_** set up a Minecraft server for you so you need to do that yourself.\nAfter that create the config.env file in the same directory as the Conzeford binary.\nConfig.env will also be generated on start, if its not present but requires filling in the values.\nThe config file will like this:\n\n```\nSERVER_JAR=\"server_jar_name_here\" #Required\nSERVER_DIR=\"directory_of_server_jar_here\" #Required\nJRE_FLAGS=\"your_jre_flags_here\" #Here you can put you jre flags like -Xmx4G. Not required\nSERVER_AUTOSTART=false #True or false\nPORT=port #Not required\n```\n\nReplace the placeholders with the correct values. If you have mutliple JRE flags they must be separated by a space.\nEvery time you change the config.env, restart the server to apply the changes.\nIf you did everything correctly you should be able to start the server.\n\n## Spoofing the detection of server events\n\nTo recognize that the server has started or stopped, to update the player list and other things that are happening on the server I use regex with the console output. And I know this is not the best solution because it can be easily spoofed. For example, the `player joined the server` message can be eaisly changed via plugins and the server won't detect that anymore.\n\nTo combat this I've come up with an easy solution - a plugin. It is not only going to solve my existing problems but it's also going to allow me more flexibility. I can easily grab the server's version and tps and display them on the dashboard for example.\n\nIt's not my priority for now, as I want to finish other features and it would involve major server code changes. But it will happen eventually. The plugin's code will be also open source and won't collect unnecessary data.\n\n## Making changes and compiling to binary\n\nFirts things first - install the dependencies. You can use `npm install` or `yarn`.\nYou also need to have Typescript installed.\n\nTo transpile the typescript files to javascript, start the Typescript watch processes on the src and web/src.\nRemeber to run the node server after that, to see your changes.\n\nIf you made some changes of your own to the application and want to compile it to a binary, you have to install the [pkg](https://www.npmjs.com/package/pkg) package.\nAfter installing pkg run `npm run build` or `yarn build`. It will start the transpilation processes and compile to the binary.\n\nIt will compile the application to a binary and put it in the dist folder.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimatedoge5%2Fconzeford","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fultimatedoge5%2Fconzeford","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fultimatedoge5%2Fconzeford/lists"}