Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jojomatik/blockcluster
An in-browser manager for your minecraft servers.
https://github.com/jojomatik/blockcluster
alpine docker material-design minecraft minecraft-server node nodejs server typescript vue vuetify
Last synced: 2 months ago
JSON representation
An in-browser manager for your minecraft servers.
- Host: GitHub
- URL: https://github.com/jojomatik/blockcluster
- Owner: jojomatik
- License: agpl-3.0
- Created: 2021-01-30T13:41:37.000Z (almost 4 years ago)
- Default Branch: beta
- Last Pushed: 2024-10-15T20:33:31.000Z (3 months ago)
- Last Synced: 2024-10-17T06:06:39.605Z (3 months ago)
- Topics: alpine, docker, material-design, minecraft, minecraft-server, node, nodejs, server, typescript, vue, vuetify
- Language: TypeScript
- Homepage:
- Size: 15.9 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 48
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# blockcluster
[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/jojomatik/blockcluster?sort=semver)](https://github.com/jojomatik/blockcluster/releases) [![GitHub](https://img.shields.io/github/license/jojomatik/blockcluster)](LICENSE) [![Build and publish Docker image](https://github.com/jojomatik/blockcluster/actions/workflows/publish.yml/badge.svg)](https://github.com/jojomatik/blockcluster/actions/workflows/publish.yml) [![Docker Image Version (latest semver)](https://img.shields.io/docker/v/jojomatik/blockcluster?label=Docker%20Hub%20image&sort=semver)](https://hub.docker.com/r/jojomatik/blockcluster) [![Docker Pulls](https://img.shields.io/docker/pulls/jojomatik/blockcluster)](https://hub.docker.com/r/jojomatik/blockcluster)An in-browser manager for your minecraft servers.
![Screenshot of Blockcluster](docs/screenshot.png)
## Features
- Start and stop servers
- Automatically pause empty servers and unpause as soon as a client connects
- View current status and online players
- Show resource usage
- View console log and send commands
- Select different java runtimes (See also: ["Adding custom java runtimes"](#adding-custom-java-runtimes))
- Change start flags
- Start servers with backend
- Show server favicon to differentiate servers easier## Roadmap for future releases
- Authentication
- Create servers and download server jars## Setup
### Setup with docker (recommended)
Prerequisites:
- DockerCustomize `/path/to/servers/on/host/machine` and the port directives `-p port:port` to your liking and run:
```sh
docker run -d -v /path/to/servers/on/host/machine:/usr/games/blockcluster/servers -p 8081:8081 25565-25569:25565-25569 jojomatik/blockcluster:latest
```
Open `http://[your ip]:8081` in your browser.### Setup with `docker-compose` (also recommended)
Prerequisites:
- Docker
- Docker ComposeDownload [`docker-compose.yml`](docker-compose.yml) and customize it to your liking and add a volume mount to your servers on the host machine. E.g.:
```
version: "3.9"
services:
manager:
ports:
- 8081:8081
- 25565:25565
image: jojomatik/blockcluster
volumes:
- /path/to/servers/on/host/machine:/usr/games/blockcluster/servers
```Then run the following command:
```sh
docker-compose up
```
Open `http://[your ip]:8081` in your browser.### Manual setup
Prerequisites:
- Git
- Node.js (v16+) and npm (v8+)
- Java (to run the minecraft servers)1. First build the app using the instructions from ["Building manually"](#building-manually).
2. Either
- create the `servers/` subdirectory and move your servers into it or
- set the environment variable `SERVER_PATH` to the relative or absolute path of your servers.
3. Run `npm run start` and open `http://[your ip]:8081` in your browser.### Adding custom java runtimes
By default, the docker image based on [`docker-compose.yml`](docker-compose.yml) and the [`Dockerfile`](Dockerfile) includes java 11, java 17 and java 21. Those are the most relevant LTS java version for running minecraft servers (see [#150](https://github.com/jojomatik/blockcluster/issues/150) for more details).#### Windows
All java runtimes in the `PATH` environment variable will be discovered and presented as an option in the frontend.#### Docker
Mount additional java runtimes in the `/opt/java-xx` directory.With the `docker run` command:
```sh
docker run -d -v /path/to/servers/on/host/machine:/usr/games/blockcluster/servers -v /path/to/java-xx/on/host/machine:/opt/java-xx -p 8081:8081 25565-25569:25565-25569 jojomatik/blockcluster:latest
```
or with `docker-compose`
```
version: "3.9"
services:
manager:
ports:
- 8081:8081
- 25565:25565
image: jojomatik/blockcluster
volumes:
- /path/to/servers/on/host/machine:/usr/games/blockcluster/servers
- /path/to/java-xx/on/host/machine:/opt/java-xx
```
```sh
docker-compose up
```## Building
### Building with `docker-compose` (recommended)
Prerequisites:
- Git
- Docker
- Docker ComposeRun the following commands:
```sh
git clone https://github.com/jojomatik/blockcluster
cd blockcluster
```**To build for production**, run the following command:
```sh
docker-compose up
```
Open `http://[your ip]:8081` in your browser.**To enable hot reloads**, configure a file watcher for the TypeScript files in the `backend/src` directory to run `npm run build` in the `backend` directory and run the following command:
```sh
docker-compose -f docker-compose.yml -f docker-compose.dev.yml up
```
Open `http://[your ip]:8081` in your browser.To make sure that the container is recreated and the image rebuilt, use either command with additional options, e.g.:
```sh
docker-compose up --force-recreate --build
```### Building manually
Prerequisites:
- Git
- Node.js (v16+) and npm (v8+)
- Java (only to run the minecraft servers)Run the following commands:
```sh
git clone https://github.com/jojomatik/blockcluster
cd blockcluster
npm install
cd backend && npm install
```**To build for production**, run the following commands:
```sh
npm run build_all
npm run start
```
Open `http://[your ip]:8081` in your browser.**To enable hot reloads**, configure a file watcher for the TypeScript files in the `backend/src` directory to run `npm run build` in the `backend` directory and run the following command:
```sh
npm run serve
```
Open `http://[your ip]:8081` in your browser.## Licensing
This project is licensed under the GNU Affero General Public License v3.0 (AGPL 3.0) or later. See also [`LICENSE`](LICENSE).