{"id":17060238,"url":"https://github.com/akiicat/multipaper-container","last_synced_at":"2025-04-12T18:08:28.242Z","repository":{"id":38374367,"uuid":"500059461","full_name":"akiicat/MultiPaper-Container","owner":"akiicat","description":"Automatically publish the latest MultiPaper containers to Docker Hub.","archived":false,"fork":false,"pushed_at":"2025-02-25T14:19:24.000Z","size":394,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T18:06:35.298Z","etag":null,"topics":["containers","docker-image","mincraft","multipaper"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akiicat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-05T09:59:52.000Z","updated_at":"2025-04-11T23:25:32.000Z","dependencies_parsed_at":"2023-01-31T07:00:41.228Z","dependency_job_id":null,"html_url":"https://github.com/akiicat/MultiPaper-Container","commit_stats":null,"previous_names":[],"tags_count":304,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiicat%2FMultiPaper-Container","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiicat%2FMultiPaper-Container/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiicat%2FMultiPaper-Container/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiicat%2FMultiPaper-Container/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akiicat","download_url":"https://codeload.github.com/akiicat/MultiPaper-Container/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248610345,"owners_count":21132921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["containers","docker-image","mincraft","multipaper"],"created_at":"2024-10-14T10:36:34.788Z","updated_at":"2025-04-12T18:08:28.228Z","avatar_url":"https://github.com/akiicat.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/akiicat/MultiPaper-Container?label=Version)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/akiicat/MultiPaper-Container/publish-docker-image.yaml?label=Publish%20Docker%20Image)](https://github.com/akiicat/MultiPaper-Container/actions/workflows/publish-docker-image.yaml)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/akiicat/MultiPaper-Container/auto-check-latest-version.yaml?label=Auto%20Check%20Latest%20Version)](https://github.com/akiicat/MultiPaper-Container/actions/workflows/auto-check-latest-version.yaml)\n[![MultiPaper Server Docker Image Version](https://img.shields.io/docker/v/akiicat/multipaper?label=MultiPaper%20Server%20Image)](https://hub.docker.com/r/akiicat/multipaper)\n[![MultiPaper Master Docker Image Version](https://img.shields.io/docker/v/akiicat/multipaper-master?label=MultiPaper%20Master%20Image)](https://hub.docker.com/r/akiicat/multipaper-master)\n\n# MultiPaper Container\n\nMultiPaper Container will automatically publish the latest MulitPaper containers to Docker Hub.\n\n- [MultiPaper Server Image](https://hub.docker.com/r/akiicat/multipaper)\n- [MultiPaper Master Image](https://hub.docker.com/r/akiicat/multipaper-master)\n\n## What is MultiPaper\n\nMultiPaper is a scalable minecraft server. [Here](https://github.com/PureGero/MultiPaper) is the repository. You can also download the MultiPaper Jar from [MultiPaper.io](https://multipaper.io/download.html)\n\n## How to Use\n\n### Running MultiPaper Master\n\n```shell\ndocker run -d -p 35353:35353 akiicat/multipaper-master\n```\n\n### Running MultiPaper Server\n\nIf you want to the customize server name, you can add `-DbungeecordName=server1` to `JAVA_TOOL_OPTIONS`.\nFor more MultiPaper `JAVA_TOOL_OPTIONS` configuration, please refer to [MULTIPAPER_YAML.md](https://github.com/PureGero/MultiPaper/blob/main/MULTIPAPER_YAML.md) and [MultiPaper command-line-options](https://github.com/PureGero/MultiPaper#command-line-options).\n\n```shell\ndocker run -d \\\n        -p 25565:25565 \\\n        -e EULA=true \\\n        -e JAVA_TOOL_OPTIONS=\"-Xmx1G -DmultipaperMasterAddress=\u003cyour_ip_address\u003e:35353\" \\\n        akiicat/multipaper [server_options]\n```\n\nPlease changing `\u003cyour_ip_address\u003e` in the previous command to your master ip address. For example,\n\n```shell\ndocker run -d \\\n        -p 25565:25565 \\\n        -e EULA=true \\\n        -e JAVA_TOOL_OPTIONS=\"-Xmx1G -DmultipaperMasterAddress=192.168.0.193:35353\" \\\n        akiicat/multipaper --max-players 30\n```\n\nFor MultiPaper server configurations, you can add them to the end of the command line.\n\n\u003cdetails\u003e\n    \u003csummary\u003eServer Configurations\u003c/summary\u003e\n\nYou can execute the following command to get the latest options.\n\n```shell\ndocker run --rm akiicat/multipaper --help\n```\n\nFor example,\n\n```shell\n$ docker run --rm akiicat/multipaper --help\nDownloading mojang_1.18.2.jar\nApplying patches\nStarting org.bukkit.craftbukkit.Main\nOption                                  Description\n------                                  -----------\n-?, --help                              Show the help\n-C, --commands-settings \u003cFile: Yml      File for command settings (default:\n  file\u003e                                   commands.yml)\n-P, --plugins \u003cFile: Plugin directory\u003e  Plugin directory to use (default:\n                                          plugins)\n-S, --spigot-settings \u003cFile: Yml file\u003e  File for spigot settings (default:\n                                          spigot.yml)\n-W, --universe, --world-container, --   World container (default: .)\n  world-dir \u003cFile: Directory\n  containing worlds\u003e\n--add-extra-plugin-jar, --add-plugin    Specify paths to extra plugin jars to\n  \u003cFile: Jar file\u003e                        be loaded in addition to those in\n                                          the plugins folder. This argument\n                                          can be specified multiple times,\n                                          once for each extra plugin jar path.\n--add-extra-plugin-jars, --add-plugin-  Specify paths of a directory\n  dir, --add-plugin-directory \u003cFile:      containing extra plugin jars to be\n  Plugin directory\u003e                       loaded in addition to those in the\n                                          plugins folder. This argument can be\n                                          specified multiple times, once for\n                                          each extra plugin directory path.\n-b, --bukkit-settings \u003cFile: Yml file\u003e  File for bukkit settings (default:\n                                          bukkit.yml)\n-c, --config \u003cFile: Properties file\u003e    Properties file to use (default:\n                                          server.properties)\n-d, --date-format \u003cSimpleDateFormat:    Format of the date to display in the\n  Log date format\u003e                        console (for log entries)\n--demo                                  Demo mode\n--eraseCache                            Whether to force cache erase during\n                                          world upgrade\n--forceUpgrade                          Whether to force a world upgrade\n-h, --host, --server-ip \u003cString:        Host to listen on\n  Hostname or IP\u003e\n--log-append \u003cBoolean: Log append\u003e      Whether to append to the log file\n                                          (default: true)\n--log-count \u003cInteger: Log count\u003e        Specified how many log files to cycle\n                                          through (default: 1)\n--log-limit \u003cInteger: Max log size\u003e     Limits the maximum size of the log\n                                          file (0 = unlimited) (default: 0)\n--log-pattern \u003cString: Log filename\u003e    Specfies the log filename pattern\n                                          (default: server.log)\n--log-strip-color                       Strips color codes from log file\n--multipaper, --multipaper-settings     File for multipaper settings (default:\n  \u003cFile: Yml file\u003e                        multipaper.yml)\n--noconsole                             Disables the console\n--nogui                                 Disables the graphical console\n--nojline                               Disables jline and emulates the\n                                          vanilla console\n-o, --online-mode \u003cBoolean:             Whether to use online authentication\n  Authentication\u003e\n-p, --port, --server-port \u003cInteger:     Port to listen on\n  Port\u003e\n--paper, --paper-settings \u003cFile: Yml    File for paper settings (default:\n  file\u003e                                   paper.yml)\n-s, --max-players, --size \u003cInteger:     Maximum amount of players\n  Server size\u003e\n--server-name \u003cString: Name\u003e            Name of the server (default: Unknown\n                                          Server)\n-v, --version                           Show the CraftBukkit Version\n-w, --level-name, --world \u003cString:      World name\n  World name\u003e\n```\n\n\u003c/details\u003e\n\n## Advanced Usage\n\nHere are some useful Docker `run` command [options](https://docs.docker.com/engine/reference/run).\nBecause both the server and the master are the same, we use the Multipaper Master as an example.\n\n\u003cdetails\u003e\n    \u003csummary\u003eDocker options\u003c/summary\u003e\n\n```\n-d   : Detached mode: Run container in the background, print new container id\n-t   : Allocate a pseudo-tty\n-i   : Keep STDIN open even if not attached\n--rm : Automatically clean up the container and remove the file system when the container exits\n-p   : Publish or expose port \u003clocal_port\u003e:\u003ccontainer_port\u003e\n-v   : Persisting your data \u003clocal_path\u003e:\u003ccontainer_path\u003e\n-u   : Change user id (UID)\n```\n\n\u003c/details\u003e\n\nRun in foreground and clean up the container when it exits.\n\n```shell\ndocker run -ti --rm -p 35353:35353 akiicat/multipaper-master\n```\n\nUse the existing world or save your world in the local directory. Your path must be an absolute path.\n\n```shell\nmkdir -p $(pwd)/master\ndocker run -d -p 35353:35353 -v $(pwd)/master:/app akiicat/multipaper-master\n```\n\nThe default user is **multipaper** with uid 1000. You can also run as root, but this is not recommended.\n\n```shell\ndocker run -d -p 35353:35353 -u 0 akiicat/multipaper-master\n```\n\nLimit maximum memory\n\n```shell\ndocker run -d \\\n        -p 35353:35353 \\\n        -e JAVA_TOOL_OPTIONS=\"-Xmx1G\" \\\n        akiicat/multipaper-master\n```\n\nOther Java configurations can also be added to `JAVA_TOOL_OPTIONS`.\n\nYou can obtain the latest version of the MultiPaper Container by requesting the following command.\n\n```shell\nSERVER_VERSION=$(curl https://raw.githubusercontent.com/akiicat/MultiPaper-Container/main/server/tags)\nMASTER_VERSION=$(curl https://raw.githubusercontent.com/akiicat/MultiPaper-Container/main/master/tags)\necho $SERVER_VERSION\necho $MASTER_VERSION\n```\n\n## Build from source\n\n```shell\ngit clone https://github.com/akiicat/MultiPaper-Container.git\n\n# change version\n# git checkout \u003ctags\u003e\ngit checkout v1.18.2-60\n\n# build\ndocker build -t multipaper server\ndocker build -t multipaper-master master\n\n# list images\ndocker images | grep multipaper\n```\n\n## Debugging\n\nList all logs\n\n```shell\ndocker logs \u003ccontainer_name_or_container_id\u003e\ndocker logs \u003ccontainer_name_or_container_id\u003e -f     # Follow log output\n```\n\nRun a shell in a new container\n\n```shell\ndocker run -ti --rm--entrypoint /bin/sh akiicat/multipaper\n```\n\nRun a shell to an existing container\n\n```shell\ndocker exec -ti \u003ccontainer_name_or_container_id\u003e /bin/sh\n```\n\nContainer detail infomation\n\n```shell\ndocker inspect \u003ccontainer_name_or_container_id\u003e\n```\n\n## License\n\n- MultiPaper is licensed under [GPLv3](https://github.com/PureGero/MultiPaper/blob/main/LICENSE.txt)\n- MultiPaper-Master is licensed under [MIT](https://github.com/PureGero/MultiPaper/blob/main/MultiPaper-Master/LICENSE.txt)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakiicat%2Fmultipaper-container","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakiicat%2Fmultipaper-container","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakiicat%2Fmultipaper-container/lists"}