Fake Minecraft Server used as a frontend to hourly paid Scaleway servers.
It automatically starts the server if a player is waiting.
If the server is started, it transfers the player to the server.
If the server is stopped in place
(powered off, but still in Scaleway's hypervisor), it removes it from Scaleway's hypervisor.
A complete documentation is hosted here
Vocabulary:
- "server" for this software
- "instance" for the server hosted by Scaleway (that is the product's official name)
- "Minecraft server" for the Minecraft server hosted on the instance
The program requires 4 arguments to run:
- your API key, it's a UUID
- instance's ID (available on the instance's dashboard), it's a UUID
- instance's zone (they call it "Availability Zones")
- Minecraft's host that is used during the player's transfer; in most cases, this is the instance's IP
You can pass these optionals arguments:
- port of the server (default:
25565
) - port of the Minecraft server (default:
25565
) - name of the server visible in the debug screen (default:
Minecraft Scaleway Frontend
) - whitelist (default: no whitelist), separate each user with a coma (
,
); you can use their Minecraft's username and their UUID - Discord Webhook's link to use when sending update (default: not connected to Discord)
The icon used if the Minecraft server is offline is server-icon.png
.
It must follow these rules.
Logs are in logs/
.
The current logs are in latest.log
.
This file is compressed with GZip when the program is stopped.
Its new name is yyyy-MM-dd HH:mm.log.gz
(program launch date).
Each version of the project supports only one version of Minecraft.
The supported version is indicated in its name.
For example, 1.0.0+1.21.6
supports Minecraft 1.21.6 and 1.1.0+1.21.7
supports Minecraft 1.21.7.
java -jar server.jar \
--zone instance-zone \
--instance instance-id \
--api-key your-api-key \
--minecraft-host ip-of-minecraft-server
You can use the official Docker image ghcr.io/architects-land/minecraft-scaleway-frontend
.
Tags:
latest
is always the latest onemain
is for the main branchv*
is for a specific tag (e.g.,v1.0.3-1.21.6
)
Environments:
ZONE
is the instance's zoneINSTANCE
is the ID of the instanceAPI_KEY
is your API keyMINECRAFT_HOST
is the host of your Minecraft server
To save the logs, bind a volume to /app/logs
.
Example docker-compose.yml
:
services:
frontend:
image: ghcr.io/architects-land/minecraft-scaleway-frontend:v1.0.3-1.21.6
ports:
- 25565:25565
environment:
ZONE: fr-par-2
SERVER: 00000000-0000-0000-0000-000000000000
API_KEY: 00000000-0000-0000-0000-000000000000
MINECRAFT_HOST: 198.51.100.0
volumes:
- ./logs:/app/logs
- Minestom
- Kotlin
- Gradle (Kotlin DSL)
- kotlinx-serialization-json
- kotlinx-coroutine-core
- Log4J 2
- lenni0451's MCPing