I am modifying the data of an existing user, as this is a very specific use case and should not be open to all users. I have removed all unnecessary containers for my overview. If necessary, I can simply add them again.
As a little side note: In the Minecraft configuration you have to define MAX_MEMORY in the environment, otherwise the entire allocated RAM is useless because the container has a default limit for Java of 1G.
In the current iteration, I can at least see the container in Openpanel. But it will not run.
.env
#################################
# USER INFORMATION AND LIMITS #
#################################
USERNAME="nexttry"
USER_ID="1000"
CONTEXT="nexttry"
TOTAL_CPU="4"
TOTAL_RAM="11g"
MYSQL_TYPE="mariadb"
# FILE MANAGER
BUSYBOX_CPU="0.1"
BUSYBOX_RAM="0.1G"
# UBUNTU
OS="openpanel/ubuntu"
HOSTNAME="Ubuntu-2404-noble-amd64-base"
OS_CPU="0.5"
OS_RAM="0.35G"
OS_PIDS="100"
SSH_PORT="127.0.0.1:32768:22"
TTYD_PORT="32770:7681"
# MINECRAFT
MINECRAFT_VERSION="latest"
MINECRAFT_PORT="25565"
MINECRAFT_CPU="4.0"
MINECRAFT_RAM="11.0G"
MINECRAFT_MEMORY="11G"
MINECRAFT_ENABLE_QUERY="true"
MINECRAFT_MAX_PLAYERS="20"
MINECRAFT_MAX_WORLD_SIZE="10000"
MINECRAFT_ALLOW_NETHER="true"
MINECRAFT_ANNOUNCE_PLAYER_ACHIEVEMENTS="false"
MINECRAFT_ENABLE_COMMAND_BLOCK="false"
# MYSQL
MYSQL_VERSION="latest"
MYSQL_PORT="127.0.0.1:32769:3306"
MYSQL_CPU="0.5"
MYSQL_RAM="0.5G"
MYSQL_ROOT_PASSWORD="wux5M2GQSYupZPn"
# PHPMYADMIN
PMA_VERSION=""
PMA_PORT="32771:80"
PMA_MAX_EXECUTION_TIME="300"
PMA_MEMORY_LIMIT="512M"
PMA_UPLOAD_LIMIT="512M"
PMA_CPU="0.1"
PMA_RAM="0.1G"
# PHANTOMBOT
PB_VERSION="latest"
PB_CPU="0.5"
PB_RAM="1.5G"
PB_RESTART="always"
docker-compose.yml
services:
user_service:
image: ${OS:-openpanel/ubuntu}
container_name: ${USERNAME}
hostname: ${HOSTNAME}
restart: unless-stopped
ports:
- "${SSH_PORT}"
- "${TTYD_PORT}"
deploy:
resources:
limits:
#pids: ${OS_PIDS:-100} # https://github.com/docker/cli/issues/5009
cpus: "${OS_CPU:-0.5}"
memory: "${OS_RAM:-0.5G}"
volumes:
- /etc/openpanel/skeleton/motd:/etc/motd:ro # SSH welcome message
- /home/${CONTEXT}/mail/:/var/mail/ # Mail storage
- mail_data:/var/mail/ # Mail storage
- webserver_data:/etc/${WEB_SERVER}/sites-available/ # Nginx/Apache data
- pg_data:/var/lib/postgresql/data # Postgres data
- mysql_data:/var/lib/mysql # MySQL data
- /home/${CONTEXT}/my.cnf:/root/.my.cnf:ro # mysql root pass - created/updated on mysql restart
- html_data:/var/www/html/ # Website files
- /home/${CONTEXT}/sockets/:/var/run/ # All Sockets
- /home/${CONTEXT}/php.ini/:/php/ # php.ini files for containers
networks:
- www
- db
command: [ "tail", "-f", "/dev/null" ]
busybox:
image: busybox
container_name: busybox
restart: always
#user: "${USER_ID:-0}"
working_dir: /var/www/html
deploy:
resources:
limits:
cpus: "${BUSYBOX_CPU:-0.1}"
memory: "${BUSYBOX_RAM:-0.1G}"
volumes:
- html_data:/var/www/html/
mariadb:
image: mariadb:${MYSQL_VERSION:-latest}
container_name: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword}
ports:
- "${MYSQL_PORT}"
volumes:
- mysql_data:/var/lib/mysql # MariaDB data
- /home/${CONTEXT}/sockets/mysqld:/var/run/mysqld # MariaDB socket
- /home/${CONTEXT}/my.cnf:/root/.my.cnf:ro # mysql root pass - created/updated on mysql restart
- /home/${CONTEXT}/custom.cnf:/etc/mysql/conf.d/custom.cnf # custom cnf for gui
deploy:
resources:
limits:
cpus: "${MARIADB_CPU:-0.5}"
memory: "${MARIADB_RAM:-0.5G}"
networks:
- db
healthcheck:
test: ['CMD-SHELL', 'mysqladmin ping -h localhost']
interval: 1s
timeout: 5s
retries: 10
minecraft:
image: itzg/minecraft-server:${MINECRAFT_VERSION:-latest}
container_name: minecraft
tty: true
stdin_open: true
ports:
- "${MINECRAFT_PORT:-25565}:25565"
environment:
EULA: "TRUE"
ENABLE_QUERY: "${MINECRAFT_ENABLE_QUERY:-true}"
QUERY_PORT: "${MINECRAFT_PORT:-25565}"
TYPE: NEOFORGE
VERSION: "1.21.1"
MAX_MEMORY: "${MINECRAFT_MEMORY:-11G}"
volumes:
- mc_data:/data
deploy:
resources:
limits:
cpus: "${MINECRAFT_CPU:-4.0}"
memory: "${MINECRAFT_RAM:-11.0G}"
healthcheck:
test: mc-health
start_period: 1m
interval: 5s
retries: 20
networks:
- www
phantombot:
image: gmt2001/phantombot-stable:${PB_VERSION:-latest}
container_name: phantombot-stable
tty: true
stdin_open: true
ports:
- target: 25000
published: 25000
protocol: tcp
environment:
PHANTOMBOT_USER: ""
PHANTOMBOT_CHANNEL: ""
PHANTOMBOT_PANELUSER: ""
PHANTOMBOT_PANELPASSWORD: ""
PHANTOMBOT_RESTARTCMD: "/opt/PhantomBot/restartbot-docker.sh"
volumes:
- pb_data:/opt/PhantomBot_data
deploy:
resources:
limits:
cpus: "${PB_CPU:-0.5}"
memory: "${PB_RAM:-1.5G}"
restart: "${PB_RESTART:-always}"
networks:
- www
networks:
default:
driver: bridge
www:
driver: bridge
db:
driver: bridge
volumes:
mysql_data:
driver: local
html_data:
driver: local
mc_data:
driver: local
pb_data:
driver: local