2022-03-23 12:29:46 +00:00
[![Crafty Logo ](app/frontend/static/assets/images/logo_long.svg )](https://craftycontrol.com)
2022-03-23 06:25:44 +00:00
[![Code style: black ](https://img.shields.io/badge/code%20style-black-000000.svg )](https://github.com/psf/black)
2022-03-26 16:46:54 +00:00
[![Supported Python Versions ](https://shields.io/badge/python-3.8%20%7C%203.9%20%7C%203.10%20-blue )](https://www.python.org)
2022-06-21 04:06:08 +00:00
[![Version(temp-hardcoded) ](https://img.shields.io/badge/release-v4.0.4--beta-orange )](https://gitlab.com/crafty-controller/crafty-4/-/releases)
2022-05-11 23:24:18 +00:00
[![Code Quality(temp-hardcoded) ](https://img.shields.io/badge/code%20quality-10-brightgreen )](https://gitlab.com/crafty-controller/crafty-4)
[![Build Status ](https://gitlab.com/crafty-controller/crafty-4/badges/master/pipeline.svg )](https://gitlab.com/crafty-controller/crafty-4/-/commits/master)
2022-03-23 12:29:46 +00:00
2022-06-21 04:06:08 +00:00
# Crafty Controller 4.0.4-beta
2021-07-30 15:37:36 +00:00
> Python based Control Panel for your Minecraft Server
## What is Crafty Controller?
Crafty Controller is a Minecraft Server Control Panel / Launcher. The purpose
of Crafty Controller is to launch a Minecraft Server in the background and present
a web interface for the server administrators to interact with their servers. Crafty
is compatible with Docker, Linux, Windows 7, Windows 8 and Windows 10.
## Documentation
2022-03-02 19:27:42 +00:00
Documentation available on [wiki.craftycontrol.com ](https://craftycontrol.com )
2021-07-30 15:37:36 +00:00
## Meta
Project Homepage - https://craftycontrol.com
Discord Server - https://discord.gg/9VJPhCE
2022-05-11 23:24:18 +00:00
Git Repository - https://gitlab.com/crafty-controller/crafty-4
2021-08-30 03:15:16 +00:00
2022-03-02 19:27:42 +00:00
< br >
2021-08-30 03:15:16 +00:00
2022-03-02 19:27:42 +00:00
## Basic Docker Usage 🐳
2021-08-30 03:15:16 +00:00
2022-03-02 19:27:42 +00:00
With `Crafty Controller 4.0` we have focused on building our DevOps Principles, implementing build automation, and securing our containers, with the hopes of making our Container user's lives abit easier.
2021-09-11 02:15:13 +00:00
2022-03-02 19:27:42 +00:00
### - Two big changes you will notice is:
- We now provide pre-built images for you guys.
2022-03-07 01:58:00 +00:00
- Containers now run as non-root, using practices used by OpenShift & Kubernetes (root group perms).
2022-03-02 19:27:42 +00:00
2022-03-02 21:16:40 +00:00
> __**⚠ 🔻WARNING: [WSL/WSL2 | WINDOWS 11 | DOCKER DESKTOP]🔻**__ <br>
BE ADVISED! Upstream is currently broken for Minecraft running on **Docker under WSL/WSL2, Windows 11 / DOCKER DESKTOP!** < br >
On '**Stop**' or '**Restart**' of the MC Server, there is a 90% chance the World's Chunks will be shredded irreparably! < br >
2022-06-18 21:52:02 +00:00
Please only run Docker on Linux, If you are using Windows we have a portable installs found here: [Latest-Stable ](https://gitlab.com/crafty-controller/crafty-4/-/releases ), [Latest-Development ](https://gitlab.com/crafty-controller/crafty-4/-/jobs/artifacts/dev/download?job=win-dev-build )
2022-03-02 21:16:40 +00:00
2022-03-02 19:27:42 +00:00
----
### - To get started with docker 🛫
All you need to do is pull the image from this git repository's registry.
This is done by using `'docker-compose'` or `'docker run'` (You don't need to clone the Repository and build, like in 3.x ).
2022-03-07 01:58:00 +00:00
If you have a config folder already from previous local installation or _docker setup_ *, the image should mount this volume and fix the permission as required, if no config present then it will populate its own config folder for you. < br > < br >
2022-03-02 19:27:42 +00:00
As the Dockerfile uses the permission structure of `crafty:root` **internally** there is no need to worry about matching the `UID` or `GID` on the host system :)
< br >
### - Using the registry image 🌎
The provided image supports both `arm64` and `amd64` out the box, if you have issues though you can build it yourself with the `compose` file in `docker/` .
2021-09-11 03:08:02 +00:00
2022-05-11 23:24:18 +00:00
The image is located at: `registry.gitlab.com/crafty-controller/crafty-4:latest`
2021-09-11 02:15:13 +00:00
| Branch | Status |
| ----------------- | ------------------------------------------------------------------ |
2022-05-11 23:24:18 +00:00
| :latest | [![pipeline status ](https://gitlab.com/crafty-controller/crafty-4/badges/master/pipeline.svg )](https://gitlab.com/crafty-controller/crafty-4/-/commits/master) |
| :dev | [![pipeline status ](https://gitlab.com/crafty-controller/crafty-4/badges/dev/pipeline.svg )](https://gitlab.com/crafty-controller/crafty-4/-/commits/dev)
2021-09-11 02:15:13 +00:00
2022-04-15 00:56:27 +00:00
< br >
**Here are some example methods for getting started🚀:**
2022-03-02 19:27:42 +00:00
### **docker-compose.yml:**
```sh
# Make your compose file
$ vim docker-compose.yml
```
2021-09-11 02:15:13 +00:00
```yml
version: '3'
2021-08-30 03:15:16 +00:00
2021-09-11 02:15:13 +00:00
services:
crafty:
2022-04-15 00:38:50 +00:00
container_name: crafty_container
2022-05-11 23:24:18 +00:00
image: registry.gitlab.com/crafty-controller/crafty-4:latest
2022-04-15 15:35:56 +00:00
restart: always
2022-03-02 19:27:42 +00:00
environment:
- TZ=Etc/UTC
2021-09-11 02:15:13 +00:00
ports:
- "8000:8000" # HTTP
- "8443:8443" # HTTPS
- "8123:8123" # DYNMAP
- "19132:19132/udp" # BEDROCK
2022-03-02 19:27:42 +00:00
- "25500-25600:25500-25600" # MC SERV PORT RANGE
2021-09-11 02:15:13 +00:00
volumes:
2022-04-15 00:38:50 +00:00
- ./docker/backups:/crafty/backups
- ./docker/logs:/crafty/logs
- ./docker/servers:/crafty/servers
- ./docker/config:/crafty/app/config
- ./docker/import:/crafty/import
2021-08-30 03:15:16 +00:00
```
2022-03-02 19:27:42 +00:00
```sh
$ docker-compose up -d & & docker-compose logs -f
```
< br >
2021-09-11 02:15:13 +00:00
2022-03-02 19:27:42 +00:00
### **docker run:**
2021-09-11 02:15:13 +00:00
```sh
2021-08-30 03:15:16 +00:00
$ docker run \
2022-04-15 00:38:50 +00:00
--name crafty_container \
2022-04-15 15:35:56 +00:00
--detach \
--restart always \
2021-08-30 03:15:16 +00:00
-p 8000:8000 \
-p 8443:8443 \
-p 8123:8123 \
-p 19132:19132/udp \
2022-03-02 19:27:42 +00:00
-p 25500-25600:25500-25600 \
-e TZ=Etc/UTC \
2022-04-15 00:38:50 +00:00
-v "/$(pwd)/docker/backups:/crafty/backups" \
-v "/$(pwd)/docker/logs:/crafty/logs" \
-v "/$(pwd)/docker/servers:/crafty/servers" \
-v "/$(pwd)/docker/config:/crafty/app/config" \
-v "/$(pwd)/docker/import:/crafty/import" \
2022-05-11 23:24:18 +00:00
registry.gitlab.com/crafty-controller/crafty-4:latest
2021-08-30 03:15:16 +00:00
```
2022-03-02 19:27:42 +00:00
### **Building from the cloned repository:**
2021-09-11 02:15:13 +00:00
If you are building from `docker-compose` you can find the compose file in `./docker/docker-compose.yml` just `cd` to the docker directory and `docker-compose up -d`
2022-03-02 19:27:42 +00:00
If you'd rather not use `docker-compose` you can use the following `docker run` in the directory where the *Dockerfile* is:
2021-09-11 02:15:13 +00:00
```sh
# REMEMBER, Build your image first!
$ docker build . -t crafty
$ docker run \
2022-04-15 00:38:50 +00:00
--name crafty_container \
2022-04-15 15:35:56 +00:00
--detach \
--restart always \
2021-09-11 02:15:13 +00:00
-p 8000:8000 \
-p 8443:8443 \
-p 8123:8123 \
-p 19132:19132/udp \
2022-03-02 19:27:42 +00:00
-p 25500-25600:25500-25600 \
-e TZ=Etc/UTC \
2022-04-15 00:38:50 +00:00
-v "/$(pwd)/docker/backups:/crafty/backups" \
-v "/$(pwd)/docker/logs:/crafty/logs" \
-v "/$(pwd)/docker/servers:/crafty/servers" \
-v "/$(pwd)/docker/config:/crafty/app/config" \
-v "/$(pwd)/docker/import:/crafty/import" \
2021-09-11 02:15:13 +00:00
crafty
```
2022-03-02 19:27:42 +00:00
A fresh build will take several minutes depending on your system, but will be rapid thereafter.