Initial commit: CTmine-client (ContainerMine Client)

Docker-WebApp, die einen echten Minecraft Java-Client (Prism Launcher)
in einem Container mit virtuellem Display betreibt und per noVNC im
Browser anzeigt. Gedacht, um Accounts AFK an Farmen zu stellen.

- Multi-Stage Dockerfile: Vite/Vue-Build + Ubuntu-Runtime (Xvfb, x11vnc,
  websockify, noVNC, openbox, nginx, Prism Launcher 11.0.3)
- Vue 3 + Vite + TypeScript Dashboard (noVNC-iframe, Start/Stop,
  Status-Anzeige, Schnellstart-Anleitung)
- Node-Status-API ohne externe Dependencies (/api/status, /api/mc/*)
- docker-compose.yml mit PUID/PGID, konfigurierbarer Auflösung, shm_size
- Persistente Accounts/Instanzen in /config (Volume)
This commit is contained in:
Tronax 2026-08-08 21:08:51 +02:00
commit b8a99e6e9e
Signed by: Tronax
SSH key fingerprint: SHA256:2pKKXDZucWvaF/GzXNz0FY53EAO1YDLN80bqS+TTz/o
25 changed files with 1766 additions and 0 deletions

37
docker-compose.yml Normal file
View file

@ -0,0 +1,37 @@
# CTmine-client · ContainerMine Client
# Start: docker compose up -d --build
# Web: http://localhost:8080
services:
ctmine-client:
image: ctmine-client:latest
container_name: ctmine-client
build:
context: .
dockerfile: Dockerfile
restart: unless-stopped
environment:
PUID: ${PUID:-1000}
PGID: ${PGID:-1000}
TZ: ${TZ:-Europe/Berlin}
DISPLAY_WIDTH: ${DISPLAY_WIDTH:-1280}
DISPLAY_HEIGHT: ${DISPLAY_HEIGHT:-720}
DISPLAY_REFRESH: ${DISPLAY_REFRESH:-60}
DISPLAY_DEPTH: ${DISPLAY_DEPTH:-24}
VNC_PASSWORD: ${VNC_PASSWORD:-}
NOVNC_PATH: ${NOVNC_PATH:-}
ports:
- "${WEB_PORT:-8080}:8080"
volumes:
# Persistente Daten: Microsoft-Account, Prism-Instanzen, .minecraft
- ./config:/config
# Software-Rendering braucht Shared Memory für OpenGL.
shm_size: "1gb"
#Optionale GPU-Beschleunigung (im Software-Rendering-Modus nicht nötig):
# devices:
# - /dev/dri:/dev/dri