├── plugins └── README.md ├── .github ├── FUNDING.yml ├── dependabot.yml └── workflows │ └── 00-deployment-verification.yml ├── .env ├── minecraft-server-docker-compose.yml ├── .gitignore └── README.md /plugins/README.md: -------------------------------------------------------------------------------- 1 | # Plugins 2 | 3 | Note that the `plugins` folder is for plugin files with `.jar` extension. 4 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: heyvaldemar 2 | patreon: heyvaldemar 3 | ko_fi: heyvaldemar 4 | custom: ['paypal.com/paypalme/heyValdemarCOM', 'buymeacoffee.com/heyValdemar', 'ko-fi.com/heyValdemar'] 5 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "github-actions" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /.github/workflows/00-deployment-verification.yml: -------------------------------------------------------------------------------- 1 | name: Deployment Verification 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | deploy-and-test: 13 | runs-on: ubuntu-latest 14 | 15 | env: 16 | NETWORK_ONE: minecraft-server-network 17 | DOCKER_COMPOSE_FILE: minecraft-server-docker-compose.yml 18 | APP_HOSTNAME: minecraft-server.heyvaldemar.net 19 | COMPOSE_PROJECT_NAME: minecraft-server 20 | MINECRAFT_PORT: 25565 21 | 22 | steps: 23 | - name: Checkout repository 24 | uses: actions/checkout@v6 25 | 26 | - name: Create necessary Docker networks 27 | run: | 28 | docker network create $NETWORK_ONE || true 29 | 30 | - name: Start up services using Docker Compose 31 | run: docker compose -f $DOCKER_COMPOSE_FILE -p $COMPOSE_PROJECT_NAME up -d 32 | 33 | - name: Modify /etc/hosts for internal routing 34 | run: | 35 | echo "127.0.0.1 $APP_HOSTNAME" | sudo tee -a /etc/hosts 36 | 37 | - name: Print Docker Compose services status 38 | run: docker ps 39 | 40 | - name: Install Python and mcstatus 41 | run: | 42 | sudo apt-get update 43 | sudo apt-get install -y python3-pip 44 | pip3 install mcstatus 45 | 46 | - name: Wait for the Minecraft Server to be ready 47 | run: | 48 | echo "Checking Minecraft server readiness at $APP_HOSTNAME:$MINECRAFT_PORT..." 49 | timeout 5m bash -c 'while ! mcstatus $APP_HOSTNAME:$MINECRAFT_PORT status; do \ 50 | echo "Waiting for the Minecraft server to be ready..."; \ 51 | sleep 10; \ 52 | done' 53 | 54 | - name: Inspect Network Configuration 55 | run: | 56 | docker network inspect $NETWORK_ONE 57 | 58 | - name: Show container logs on failure 59 | if: failure() 60 | run: docker compose -f $DOCKER_COMPOSE_FILE -p $COMPOSE_PROJECT_NAME logs 61 | 62 | - name: Shutdown Docker Compose services 63 | if: always() 64 | run: docker compose -f $DOCKER_COMPOSE_FILE -p $COMPOSE_PROJECT_NAME down 65 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | # Minecraft Server Variables 2 | MINECRAFT_SERVER_IMAGE_TAG=itzg/minecraft-server:latest 3 | # Ensure you have agreed to the Minecraft EULA 4 | MINECRAFT_SERVER_EULA=true 5 | # Minecraft server type (VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, CURSEFORGE, SPONGEVANILLA, FABRIC) 6 | MINECRAFT_SERVER_TYPE=PAPER 7 | # Paper Minecraft server version 8 | # Example: LATEST, 1.21.1, 1.20.1 9 | MINECRAFT_SERVER_VERSION=LATEST 10 | # Memory limit 11 | MINECRAFT_SERVER_MEMORY=2G 12 | # Server name 13 | MINECRAFT_SERVER_SERVER_NAME=Minecraft Server 14 | # Message of the day 15 | MINECRAFT_SERVER_MOTD=heyvaldemar.com - IT Guides by Docker Captain 16 | # Level type and generator settings (normal, flat, amplified, single_biome_surface) 17 | MINECRAFT_SERVER_LEVEL_TYPE=normal 18 | # World save name 19 | MINECRAFT_SERVER_LEVEL=minecraft-world-1 20 | # Game mode (creative, survival, adventure, spectator) 21 | MINECRAFT_SERVER_MODE=survival 22 | # Force game mode 23 | MINECRAFT_SERVER_FORCE_GAMEMODE=false 24 | # Difficulty (peaceful, easy, normal, hard) 25 | MINECRAFT_SERVER_DIFFICULTY=normal 26 | # Hardcore mode 27 | MINECRAFT_SERVER_HARDCORE=false 28 | # Announce player achievements 29 | MINECRAFT_SERVER_ANNOUNCE_PLAYER_ACHIEVEMENTS=true 30 | # Max players 31 | MINECRAFT_SERVER_MAX_PLAYERS=20 32 | # PVP mode 33 | MINECRAFT_SERVER_PVP=true 34 | # Enable RCON 35 | MINECRAFT_SERVER_ENABLE_RCON=true 36 | MINECRAFT_SERVER_RCON_PASSWORD=XDyzDH8MowfpuwSyBfNcnaR 37 | MINECRAFT_SERVER_RCON_PORT=25575 38 | # Server port 39 | MINECRAFT_SERVER_SERVER_PORT=25565 40 | # Allow flight 41 | MINECRAFT_SERVER_ALLOW_FLIGHT=false 42 | # Max world size 43 | MINECRAFT_SERVER_MAX_WORLD_SIZE=10000 44 | # Max build height 45 | MINECRAFT_SERVER_MAX_BUILD_HEIGHT=265 46 | # Spawn animals 47 | MINECRAFT_SERVER_SPAWN_ANIMALS=true 48 | # Spawn monsters 49 | MINECRAFT_SERVER_SPAWN_MONSTERS=true 50 | # Spawn NPCs 51 | MINECRAFT_SERVER_SPAWN_NPCS=true 52 | # Set spawn protection 53 | MINECRAFT_SERVER_SPAWN_PROTECTION=0 54 | # View distance 55 | MINECRAFT_SERVER_VIEW_DISTANCE=10 56 | # Online mode 57 | MINECRAFT_SERVER_ONLINE_MODE=true 58 | # Snooper 59 | MINECRAFT_SERVER_SNOOPER_ENABLED=false 60 | # Enable command block 61 | MINECRAFT_SERVER_ENABLE_COMMAND_BLOCK=true 62 | DATA_PATH=/data 63 | # Timezone inside a container 64 | # A list of these tz database names can be looked up at Wikipedia 65 | # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones 66 | MINECRAFT_SERVER_SERVER_TIMEZONE=America/New_York 67 | # Enable whitelist 68 | # Example: player1,player2,player3 69 | MINECRAFT_SERVER_WHITELIST= 70 | # Add OP 71 | # Example: player1,player2,player3 72 | MINECRAFT_SERVER_OPS= 73 | 74 | # Backup Variables 75 | MINECRAFT_SERVER_BACKUP_IMAGE_TAG=itzg/mc-backup:latest 76 | # The interval at which backups for the Minecraft server are taken 77 | MINECRAFT_SERVER_BACKUP_INTERVAL=23h 78 | # Number of days after which old backups are deleted 79 | MINECRAFT_SERVER_PRUNE_BACKUPS_DAYS=7 80 | # The initial delay before starting the server (in seconds) 81 | MINECRAFT_SERVER_INITIAL_DELAY=0 82 | # Path where Minecraft server backups are stored 83 | MINECRAFT_SERVER_BACKUPS_PATH=/backups 84 | BACKUP_METHOD=tar 85 | -------------------------------------------------------------------------------- /minecraft-server-docker-compose.yml: -------------------------------------------------------------------------------- 1 | networks: 2 | minecraft-server-network: 3 | external: true 4 | 5 | services: 6 | minecraft-server: 7 | image: ${MINECRAFT_SERVER_IMAGE_TAG} 8 | volumes: 9 | - ./minecraft-server-data:${DATA_PATH} 10 | - ./plugins:/plugins:ro 11 | environment: 12 | EULA: ${MINECRAFT_SERVER_EULA} 13 | TYPE: ${MINECRAFT_SERVER_TYPE} 14 | VERSION: ${MINECRAFT_SERVER_VERSION} 15 | MEMORY: ${MINECRAFT_SERVER_MEMORY} 16 | SERVER_NAME: ${MINECRAFT_SERVER_SERVER_NAME} 17 | MOTD: ${MINECRAFT_SERVER_MOTD} 18 | LEVEL_TYPE: ${MINECRAFT_SERVER_LEVEL_TYPE} 19 | LEVEL: ${MINECRAFT_SERVER_LEVEL} 20 | MODE: ${MINECRAFT_SERVER_MODE} 21 | FORCE_GAMEMODE: ${MINECRAFT_SERVER_FORCE_GAMEMODE} 22 | DIFFICULTY: ${MINECRAFT_SERVER_DIFFICULTY} 23 | HARDCORE: ${MINECRAFT_SERVER_HARDCORE} 24 | ANNOUNCE_PLAYER_ACHIEVEMENTS: ${MINECRAFT_SERVER_ANNOUNCE_PLAYER_ACHIEVEMENTS} 25 | MAX_PLAYERS: ${MINECRAFT_SERVER_MAX_PLAYERS} 26 | PVP: ${MINECRAFT_SERVER_PVP} 27 | ENABLE_RCON: ${MINECRAFT_SERVER_ENABLE_RCON} 28 | RCON_PASSWORD: ${MINECRAFT_SERVER_RCON_PASSWORD} 29 | RCON_PORT: ${MINECRAFT_SERVER_RCON_PORT} 30 | SERVER_PORT: ${MINECRAFT_SERVER_SERVER_PORT} 31 | ALLOW_FLIGHT: ${MINECRAFT_SERVER_ALLOW_FLIGHT} 32 | MAX_WORLD_SIZE: ${MINECRAFT_SERVER_MAX_WORLD_SIZE} 33 | MAX_BUILD_HEIGHT: ${MINECRAFT_SERVER_MAX_BUILD_HEIGHT} 34 | SPAWN_ANIMALS: ${MINECRAFT_SERVER_SPAWN_ANIMALS} 35 | SPAWN_MONSTERS: ${MINECRAFT_SERVER_SPAWN_MONSTERS} 36 | SPAWN_NPCS: ${MINECRAFT_SERVER_SPAWN_NPCS} 37 | SPAWN_PROTECTION: ${MINECRAFT_SERVER_SPAWN_PROTECTION} 38 | VIEW_DISTANCE: ${MINECRAFT_SERVER_VIEW_DISTANCE} 39 | ONLINE_MODE: ${MINECRAFT_SERVER_ONLINE_MODE} 40 | SNOOPER_ENABLED: ${MINECRAFT_SERVER_SNOOPER_ENABLED} 41 | ENABLE_COMMAND_BLOCK: ${MINECRAFT_SERVER_ENABLE_COMMAND_BLOCK} 42 | WHITELIST: ${MINECRAFT_SERVER_WHITELIST} 43 | OPS: ${MINECRAFT_SERVER_OPS} 44 | TZ: ${MINECRAFT_SERVER_SERVER_TIMEZONE} 45 | networks: 46 | - minecraft-server-network 47 | ports: 48 | - "${MINECRAFT_SERVER_SERVER_PORT}:${MINECRAFT_SERVER_SERVER_PORT}" 49 | restart: unless-stopped 50 | 51 | backups: 52 | image: ${MINECRAFT_SERVER_BACKUP_IMAGE_TAG} 53 | environment: 54 | RCON_HOST: minecraft-server 55 | RCON_PORT: ${MINECRAFT_SERVER_RCON_PORT} 56 | RCON_PASSWORD: ${MINECRAFT_SERVER_RCON_PASSWORD} 57 | SERVER_PORT: ${MINECRAFT_SERVER_SERVER_PORT} 58 | SRC_DIR: ${DATA_PATH} 59 | BACKUP_METHOD: ${BACKUP_METHOD} 60 | BACKUP_INTERVAL: ${MINECRAFT_SERVER_BACKUP_INTERVAL} 61 | PRUNE_BACKUPS_DAYS: ${MINECRAFT_SERVER_PRUNE_BACKUPS_DAYS} 62 | INITIAL_DELAY: ${MINECRAFT_SERVER_INITIAL_DELAY} 63 | TZ: ${MINECRAFT_SERVER_SERVER_TIMEZONE} 64 | volumes: 65 | - ./minecraft-server-data:${DATA_PATH}:ro 66 | - ./minecraft-server-data-backups:${MINECRAFT_SERVER_BACKUPS_PATH} 67 | networks: 68 | - minecraft-server-network 69 | restart: unless-stopped 70 | depends_on: 71 | minecraft-server: 72 | condition: service_healthy 73 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.toptal.com/developers/gitignore/api/git,macos,xcode,jekyll,packer,ansible,vagrant,windows,notepadpp,terraform,powershell,terragrunt,sublimetext,ansibletower,visualstudiocode,linux 2 | # Edit at https://www.toptal.com/developers/gitignore?templates=git,macos,xcode,jekyll,packer,ansible,vagrant,windows,notepadpp,terraform,powershell,terragrunt,sublimetext,ansibletower,visualstudiocode,linux 3 | 4 | ### Ansible ### 5 | *.retry 6 | 7 | ### AnsibleTower ### 8 | # Ansible runtime and backups 9 | *.original 10 | *.tmp 11 | *.bkp 12 | *.*~ 13 | 14 | # Tower runtime roles 15 | roles/** 16 | !roles/requirements.yml 17 | 18 | # Avoid plain-text passwords 19 | *pwd* 20 | *pass* 21 | *password* 22 | *.txt 23 | 24 | # Exclude all binaries 25 | *.bin 26 | *.jar 27 | *.tar 28 | *.zip 29 | *.gzip 30 | *.tgz 31 | 32 | 33 | ### Git ### 34 | # Created by git for backups. To disable backups in Git: 35 | # $ git config --global mergetool.keepBackup false 36 | *.orig 37 | 38 | # Created by git when using merge tools for conflicts 39 | *.BACKUP.* 40 | *.BASE.* 41 | *.LOCAL.* 42 | *.REMOTE.* 43 | *_BACKUP_*.txt 44 | *_BASE_*.txt 45 | *_LOCAL_*.txt 46 | *_REMOTE_*.txt 47 | 48 | ### Jekyll ### 49 | _site/ 50 | .sass-cache/ 51 | .jekyll-cache/ 52 | .jekyll-metadata 53 | # Ignore folders generated by Bundler 54 | .bundle/ 55 | vendor/ 56 | 57 | ### Linux ### 58 | *~ 59 | 60 | # temporary files which can be created if a process still has a handle open of a deleted file 61 | .fuse_hidden* 62 | 63 | # KDE directory preferences 64 | .directory 65 | 66 | # Linux trash folder which might appear on any partition or disk 67 | .Trash-* 68 | 69 | # .nfs files are created when an open file is removed but is still being accessed 70 | .nfs* 71 | 72 | ### macOS ### 73 | # General 74 | .DS_Store 75 | .AppleDouble 76 | .LSOverride 77 | 78 | # Icon must end with two \r 79 | Icon 80 | 81 | 82 | # Thumbnails 83 | ._* 84 | 85 | # Files that might appear in the root of a volume 86 | .DocumentRevisions-V100 87 | .fseventsd 88 | .Spotlight-V100 89 | .TemporaryItems 90 | .Trashes 91 | .VolumeIcon.icns 92 | .com.apple.timemachine.donotpresent 93 | 94 | # Directories potentially created on remote AFP share 95 | .AppleDB 96 | .AppleDesktop 97 | Network Trash Folder 98 | Temporary Items 99 | .apdisk 100 | 101 | ### macOS Patch ### 102 | # iCloud generated files 103 | *.icloud 104 | 105 | ### NotepadPP ### 106 | # Notepad++ backups # 107 | *.bak 108 | 109 | ### Packer ### 110 | # Cache objects 111 | packer_cache/ 112 | 113 | # Crash log 114 | crash.log 115 | 116 | # https://www.packer.io/guides/hcl/variables 117 | # Exclude all .pkrvars.hcl files, which are likely to contain sensitive data, 118 | # such as password, private keys, and other secrets. These should not be part of 119 | # version control as they are data points which are potentially sensitive and 120 | # subject to change depending on the environment. 121 | # 122 | *.pkrvars.hcl 123 | 124 | # For built boxes 125 | *.box 126 | 127 | ### Packer Patch ### 128 | # ignore temporary output files 129 | output-*/ 130 | 131 | ### PowerShell ### 132 | # Exclude packaged modules 133 | 134 | # Exclude .NET assemblies from source 135 | *.dll 136 | 137 | ### SublimeText ### 138 | # Cache files for Sublime Text 139 | *.tmlanguage.cache 140 | *.tmPreferences.cache 141 | *.stTheme.cache 142 | 143 | # Workspace files are user-specific 144 | *.sublime-workspace 145 | 146 | # Project files should be checked into the repository, unless a significant 147 | # proportion of contributors will probably not be using Sublime Text 148 | # *.sublime-project 149 | 150 | # SFTP configuration file 151 | sftp-config.json 152 | sftp-config-alt*.json 153 | 154 | # Package control specific files 155 | Package Control.last-run 156 | Package Control.ca-list 157 | Package Control.ca-bundle 158 | Package Control.system-ca-bundle 159 | Package Control.cache/ 160 | Package Control.ca-certs/ 161 | Package Control.merged-ca-bundle 162 | Package Control.user-ca-bundle 163 | oscrypto-ca-bundle.crt 164 | bh_unicode_properties.cache 165 | 166 | # Sublime-github package stores a github token in this file 167 | # https://packagecontrol.io/packages/sublime-github 168 | GitHub.sublime-settings 169 | 170 | ### Terraform ### 171 | # Local .terraform directories 172 | **/.terraform/* 173 | 174 | # .tfstate files 175 | *.tfstate 176 | *.tfstate.* 177 | 178 | # Crash log files 179 | crash.*.log 180 | 181 | # Exclude all .tfvars files, which are likely to contain sensitive data, such as 182 | # password, private keys, and other secrets. These should not be part of version 183 | # control as they are data points which are potentially sensitive and subject 184 | # to change depending on the environment. 185 | *.tfvars 186 | *.tfvars.json 187 | 188 | # Ignore override files as they are usually used to override resources locally and so 189 | # are not checked in 190 | override.tf 191 | override.tf.json 192 | *_override.tf 193 | *_override.tf.json 194 | 195 | # Include override files you do wish to add to version control using negated pattern 196 | # !example_override.tf 197 | 198 | # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan 199 | # example: *tfplan* 200 | 201 | # Ignore CLI configuration files 202 | .terraformrc 203 | terraform.rc 204 | 205 | ### Terragrunt ### 206 | # terragrunt cache directories 207 | **/.terragrunt-cache/* 208 | 209 | # Terragrunt debug output file (when using `--terragrunt-debug` option) 210 | # See: https://terragrunt.gruntwork.io/docs/reference/cli-options/#terragrunt-debug 211 | terragrunt-debug.tfvars.json 212 | 213 | ### Vagrant ### 214 | # General 215 | .vagrant/ 216 | 217 | # Log files (if you are creating logs in debug mode, uncomment this) 218 | # *.log 219 | 220 | ### Vagrant Patch ### 221 | 222 | ### VisualStudioCode ### 223 | .vscode/* 224 | !.vscode/settings.json 225 | !.vscode/tasks.json 226 | !.vscode/launch.json 227 | !.vscode/extensions.json 228 | !.vscode/*.code-snippets 229 | 230 | # Local History for Visual Studio Code 231 | .history/ 232 | 233 | # Built Visual Studio Code Extensions 234 | *.vsix 235 | 236 | ### VisualStudioCode Patch ### 237 | # Ignore all local history of files 238 | .history 239 | .ionide 240 | 241 | ### Windows ### 242 | # Windows thumbnail cache files 243 | Thumbs.db 244 | Thumbs.db:encryptable 245 | ehthumbs.db 246 | ehthumbs_vista.db 247 | 248 | # Dump file 249 | *.stackdump 250 | 251 | # Folder config file 252 | [Dd]esktop.ini 253 | 254 | # Recycle Bin used on file shares 255 | $RECYCLE.BIN/ 256 | 257 | # Windows Installer files 258 | *.cab 259 | *.msi 260 | *.msix 261 | *.msm 262 | *.msp 263 | 264 | # Windows shortcuts 265 | *.lnk 266 | 267 | ### Xcode ### 268 | ## User settings 269 | xcuserdata/ 270 | 271 | ## Xcode 8 and earlier 272 | *.xcscmblueprint 273 | *.xccheckout 274 | 275 | ### Xcode Patch ### 276 | *.xcodeproj/* 277 | !*.xcodeproj/project.pbxproj 278 | !*.xcodeproj/xcshareddata/ 279 | !*.xcodeproj/project.xcworkspace/ 280 | !*.xcworkspace/contents.xcworkspacedata 281 | /*.gcno 282 | **/xcshareddata/WorkspaceSettings.xcsettings 283 | 284 | # End of https://www.toptal.com/developers/gitignore/api/git,macos,xcode,jekyll,packer,ansible,vagrant,windows,notepadpp,terraform,powershell,terragrunt,sublimetext,ansibletower,visualstudiocode,linux -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Minecraft Server Using Docker Compose 2 | 3 | [![Deployment Verification](https://github.com/heyvaldemar/minecraft-server-docker-compose/actions/workflows/00-deployment-verification.yml/badge.svg)](https://github.com/heyvaldemar/minecraft-server-docker-compose/actions) 4 | 5 | The badge displayed on my repository indicates the status of the deployment verification workflow as executed on the latest commit to the main branch. 6 | 7 | **Passing**: This means the most recent commit has successfully passed all deployment checks, confirming that the Docker Compose setup functions correctly as designed. 8 | 9 | 📙 The complete installation guide is available on my [website](https://www.heyvaldemar.com/install-minecraft-server-using-docker-compose/). 10 | 11 | 💡 For details on deploying the Minecraft Proxy, check out this link: [Minecraft Server Proxy Using Docker Compose](https://github.com/heyvaldemar/minecraft-server-proxy-docker-compose/). 12 | 13 | ❗ Change variables in the `.env` to meet your requirements. 14 | 15 | 💡 Note that the `.env` file and `plugins` folder should be in the same directory as `minecraft-server-docker-compose.yml`. 16 | 17 | Create a network for your services before deploying the configuration using the command: 18 | 19 | `docker network create minecraft-server-network` 20 | 21 | Deploy Minecraft Server using Docker Compose: 22 | 23 | `docker compose -f minecraft-server-docker-compose.yml -p minecraft-server up -d` 24 | 25 | You can check the Minecraft Server status using the commands: 26 | 27 | ``` 28 | MINECRAFT_SERVER_CONTAINER=$(docker ps -aqf "name=minecraft-server-minecraft-server") \ 29 | && docker exec -it $MINECRAFT_SERVER_CONTAINER mc-monitor status 30 | ``` 31 | 32 | ## Minecraft Servers Logs 33 | 34 | You can check logs using the commands: 35 | 36 | ``` 37 | MINECRAFT_SERVER_CONTAINER=$(docker ps -aqf "name=minecraft-server-minecraft-server") \ 38 | && docker logs $MINECRAFT_SERVER_CONTAINER 39 | ``` 40 | 41 | ## Minecraft Server Management 42 | 43 | Apply new configuration after a change in the `minecraft-server-docker-compose.yml` or `.env` using the command: 44 | 45 | `docker compose -f minecraft-server-docker-compose.yml -p minecraft up -d` 46 | 47 | Connect to the Minecraft server command-line interface using the command: 48 | 49 | ``` 50 | MINECRAFT_SERVER_CONTAINER=$(docker ps -aqf "name=minecraft-server-minecraft-server") \ 51 | && docker exec -i $MINECRAFT_SERVER_CONTAINER rcon-cli 52 | ``` 53 | 54 | ## Backups 55 | 56 | The `minecraft-server-data-backups` folder, holding all server backups, will be automatically created in the same directory as `minecraft-server-docker-compose.yml` upon the server's initial startup. 57 | 58 | ## Author 59 | 60 | hey everyone, 61 | 62 | 💾 I’ve been in the IT game for over 20 years, cutting my teeth with some big names like [IBM](https://www.linkedin.com/in/heyvaldemar/), [Thales](https://www.linkedin.com/in/heyvaldemar/), and [Amazon](https://www.linkedin.com/in/heyvaldemar/). These days, I wear the hat of a DevOps Consultant and Team Lead, but what really gets me going is Docker and container technology - I’m kind of obsessed! 63 | 64 | 💛 I have my own IT [blog](https://www.heyvaldemar.com/), where I’ve built a [community](https://discord.gg/AJQGCCBcqf) of DevOps enthusiasts who share my love for all things Docker, containers, and IT technologies in general. And to make sure everyone can jump on this awesome DevOps train, I write super detailed guides (seriously, they’re foolproof!) that help even newbies deploy and manage complex IT solutions. 65 | 66 | 🚀 My dream is to empower every single person in the DevOps community to squeeze every last drop of potential out of Docker and container tech. 67 | 68 | 🐳 As a [Docker Captain](https://www.docker.com/captains/vladimir-mikhalev/), I’m stoked to share my knowledge, experiences, and a good dose of passion for the tech. My aim is to encourage learning, innovation, and growth, and to inspire the next generation of IT whizz-kids to push Docker and container tech to its limits. 69 | 70 | Let’s do this together! 71 | 72 | ## My 2D Portfolio 73 | 74 | 🕹️ Click into [sre.gg](https://www.sre.gg/) — my virtual space is a 2D pixel-art portfolio inviting you to interact with elements that encapsulate the milestones of my DevOps career. 75 | 76 | ## My Courses 77 | 78 | 🎓 Dive into my [comprehensive IT courses](https://www.heyvaldemar.com/courses/) designed for enthusiasts and professionals alike. Whether you're looking to master Docker, conquer Kubernetes, or advance your DevOps skills, my courses provide a structured pathway to enhancing your technical prowess. 79 | 80 | 🔑 [Each course](https://www.udemy.com/user/heyvaldemar/) is built from the ground up with real-world scenarios in mind, ensuring that you gain practical knowledge and hands-on experience. From beginners to seasoned professionals, there's something here for everyone to elevate their IT skills. 81 | 82 | ## My Services 83 | 84 | 💼 Take a look at my [service catalog](https://www.heyvaldemar.com/services/) and find out how we can make your technological life better. Whether it's increasing the efficiency of your IT infrastructure, advancing your career, or expanding your technological horizons — I'm here to help you achieve your goals. From DevOps transformations to building gaming computers — let's make your technology unparalleled! 85 | 86 | ## Patreon Exclusives 87 | 88 | 🏆 Join my [Patreon](https://www.patreon.com/heyvaldemar) and dive deep into the world of Docker and DevOps with exclusive content tailored for IT enthusiasts and professionals. As your experienced guide, I offer a range of membership tiers designed to suit everyone from newbies to IT experts. 89 | 90 | ## My Recommendations 91 | 92 | 📕 Check out my collection of [essential DevOps books](https://kit.co/heyvaldemar/essential-devops-books)\ 93 | 🖥️ Check out my [studio streaming and recording kit](https://kit.co/heyvaldemar/my-studio-streaming-and-recording-kit)\ 94 | 📡 Check out my [streaming starter kit](https://kit.co/heyvaldemar/streaming-starter-kit) 95 | 96 | ## Follow Me 97 | 98 | 🎬 [YouTube](https://www.youtube.com/channel/UCf85kQ0u1sYTTTyKVpxrlyQ?sub_confirmation=1)\ 99 | 🐦 [X / Twitter](https://twitter.com/heyvaldemar)\ 100 | 🎨 [Instagram](https://www.instagram.com/heyvaldemar/)\ 101 | 🐘 [Mastodon](https://mastodon.social/@heyvaldemar)\ 102 | 🧵 [Threads](https://www.threads.net/@heyvaldemar)\ 103 | 🎸 [Facebook](https://www.facebook.com/heyvaldemarFB/)\ 104 | 🧊 [Bluesky](https://bsky.app/profile/heyvaldemar.bsky.social)\ 105 | 🎥 [TikTok](https://www.tiktok.com/@heyvaldemar)\ 106 | 💻 [LinkedIn](https://www.linkedin.com/in/heyvaldemar/)\ 107 | 📣 [daily.dev Squad](https://app.daily.dev/squads/devopscompass)\ 108 | 🧩 [LeetCode](https://leetcode.com/u/heyvaldemar/)\ 109 | 🐈 [GitHub](https://github.com/heyvaldemar) 110 | 111 | ## Community of IT Experts 112 | 113 | 👾 [Discord](https://discord.gg/AJQGCCBcqf) 114 | 115 | ## Refill My Coffee Supplies 116 | 117 | 💖 [PayPal](https://www.paypal.com/paypalme/heyvaldemarCOM)\ 118 | 🏆 [Patreon](https://www.patreon.com/heyvaldemar)\ 119 | 💎 [GitHub](https://github.com/sponsors/heyvaldemar)\ 120 | 🥤 [BuyMeaCoffee](https://www.buymeacoffee.com/heyvaldemar)\ 121 | 🍪 [Ko-fi](https://ko-fi.com/heyvaldemar) 122 | 123 | 🌟 **Bitcoin (BTC):** bc1q2fq0k2lvdythdrj4ep20metjwnjuf7wccpckxc\ 124 | 🔹 **Ethereum (ETH):** 0x76C936F9366Fad39769CA5285b0Af1d975adacB8\ 125 | 🪙 **Binance Coin (BNB):** bnb1xnn6gg63lr2dgufngfr0lkq39kz8qltjt2v2g6\ 126 | 💠 **Litecoin (LTC):** LMGrhx8Jsx73h1pWY9FE8GB46nBytjvz8g 127 | 128 |
129 | 130 | ### Show some 💜 by starring some of the [repositories](https://github.com/heyValdemar?tab=repositories)! 131 | 132 | ![octocat](https://user-images.githubusercontent.com/10498744/210113490-e2fad07f-4488-4da8-a656-b9abbdd8cb26.gif) 133 | 134 |
135 | 136 | ![footer](https://user-images.githubusercontent.com/10498744/210157572-1fca0242-8af2-46a6-bfa3-666ffd40ebde.svg) 137 | --------------------------------------------------------------------------------