2021-07-30 15:37:36 +00:00
# Crafty Controller 4.0.0-alpha.2
> 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
Temporary documentation available on [GitLab ](https://gitlab.com/crafty-controller/crafty-commander/wikis/home )
## Meta
Project Homepage - https://craftycontrol.com
Discord Server - https://discord.gg/9VJPhCE
2021-08-30 03:15:16 +00:00
Git Repository - https://gitlab.com/crafty-controller/crafty-web
## Basic Docker Usage
2021-09-11 02:15:13 +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 ).
2021-08-30 03:15:16 +00:00
2021-09-11 02:15:13 +00:00
If you have a config folder already from previous local installation or docker setup, the image should mount this volume, if none is present then it will populate its own config folder for you.
### Using the registry image:
2021-09-11 03:08:02 +00:00
The provided image supports both `arm64` and `amd64` out the box, if you have issues though you can build it yourself.
The image is located at: `registry.gitlab.com/crafty-controller/crafty-commander:latest`
2021-09-11 02:15:13 +00:00
| Branch | Status |
| ----------------- | ------------------------------------------------------------------ |
2021-09-11 02:20:27 +00:00
| :latest | [![pipeline status ](https://gitlab.com/crafty-controller/crafty-commander/badges/master/pipeline.svg )](https://gitlab.com/crafty-controller/crafty-commander/-/commits/master) |
| :dev | [![pipeline status ](https://gitlab.com/crafty-controller/crafty-commander/badges/dev/pipeline.svg )](https://gitlab.com/crafty-controller/crafty-commander/-/commits/dev) |
2021-09-11 02:15:13 +00:00
While the repository is still **private / pre-release** ,
Before you can pull the image you must authenticate docker with the Container Registry.
To authenticate you will need a [personal access token ](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html )
with the minimum scope:
- For read (*pull*) access, `read_registry` .
- For write (*push*) access, `write_registry` .
2021-08-30 03:15:16 +00:00
2021-09-11 02:15:13 +00:00
When you have this just run:
```bash
$ docker login registry.gitlab.com -u < username > -p < token >
```
Then use one of the following methods:
#### docker-compose.yml
```yml
version: '3'
2021-08-30 03:15:16 +00:00
2021-09-11 02:15:13 +00:00
services:
crafty:
container_name: crafty_commander
image: registry.gitlab.com/crafty-controller/crafty-commander:latest
ports:
- "8000:8000" # HTTP
- "8443:8443" # HTTPS
- "8123:8123" # DYNMAP
- "19132:19132/udp" # BEDROCK
- "24000-25600:24000-25600" # MC SERV PORT RANGE
volumes:
- ./docker/backups:/commander/backups
- ./docker/logs:/commander/logs
- ./docker/servers:/commander/servers
- ./docker/config:/commander/app/config
2021-08-30 03:15:16 +00:00
```
2021-09-11 02:15:13 +00:00
#### docker run
```sh
2021-08-30 03:15:16 +00:00
$ docker run \
--name crafty_commander \
-p 8000:8000 \
-p 8443:8443 \
-p 8123:8123 \
-p 19132:19132/udp \
-p 24000-25600:24000-25600 \
-v "/$(pwd)/docker/backups:/commander/backups" \
-v "/$(pwd)/docker/logs:/commander/logs" \
-v "/$(pwd)/docker/servers:/commander/servers" \
-v "/$(pwd)/docker/config:/commander/app/config" \
2021-09-11 02:15:13 +00:00
registry.gitlab.com/crafty-controller/crafty-commander:latest
2021-08-30 03:15:16 +00:00
```
2021-09-11 02:15:13 +00:00
### Building from the cloned repository:
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`
If you'd rather not use `docker-compose` you can use the following `docker run` in the directory where the *Dockerfile* is:
```sh
# REMEMBER, Build your image first!
$ docker build . -t crafty
$ docker run \
--name crafty_commander \
-p 8000:8000 \
-p 8443:8443 \
-p 8123:8123 \
-p 19132:19132/udp \
-p 24000-25600:24000-25600 \
-v "/$(pwd)/docker/backups:/commander/backups" \
-v "/$(pwd)/docker/logs:/commander/logs" \
-v "/$(pwd)/docker/servers:/commander/servers" \
-v "/$(pwd)/docker/config:/commander/app/config" \
crafty
```
A fresh build will take several minutes depending on your system, but will be rapid there after.