{"id":16229772,"url":"https://github.com/jerboa88/cringecraft","last_synced_at":"2025-10-24T13:12:34.274Z","repository":{"id":93592920,"uuid":"595785279","full_name":"jerboa88/CringeCraft","owner":"jerboa88","description":"A containerized PaperMC server that can be self-hosted using Docker \u0026 playit.gg","archived":false,"fork":false,"pushed_at":"2024-07-29T03:40:52.000Z","size":924,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T00:35:10.259Z","etag":null,"topics":["bukkit","docker","docker-compose","docker-container","minecraft","minecraft-server","papermc","playit-gg","reverse-proxy","server"],"latest_commit_sha":null,"homepage":"https://johng.io/p/cringe-craft","language":"Batchfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jerboa88.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-31T20:02:54.000Z","updated_at":"2025-02-19T04:22:28.000Z","dependencies_parsed_at":"2024-07-29T04:48:28.246Z","dependency_job_id":null,"html_url":"https://github.com/jerboa88/CringeCraft","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FCringeCraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FCringeCraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FCringeCraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerboa88%2FCringeCraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jerboa88","download_url":"https://codeload.github.com/jerboa88/CringeCraft/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243996790,"owners_count":20380978,"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":["bukkit","docker","docker-compose","docker-container","minecraft","minecraft-server","papermc","playit-gg","reverse-proxy","server"],"created_at":"2024-10-10T12:59:12.932Z","updated_at":"2025-10-24T13:12:34.240Z","avatar_url":"https://github.com/jerboa88.png","language":"Batchfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- Project Header --\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003cimg class=\"projectLogo\" src=\"config/container/logo.png\" alt=\"Project logo\" title=\"Project logo\" width=\"256\"\u003e\n\n  \u003ch1 class=\"projectName\"\u003eCringeCraft MC Server\u003c/h1\u003e\n\n  \u003cp class=\"projectBadges\"\u003e\n    \u003cimg src=\"https://johng.io/badges/category/Container.svg\" alt=\"Project category\" title=\"Project category\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/languages/top/jerboa88/CringeCraft.svg\" alt=\"Language\" title=\"Language\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/repo-size/jerboa88/CringeCraft.svg\" alt=\"Repository size\" title=\"Repository size\"\u003e\n    \u003ca href=\"LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/jerboa88/CringeCraft.svg\" alt=\"Project license\" title=\"Project license\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp class=\"projectDesc\"\u003e\n    A containerized PaperMC server that can be self-hosted using Docker \u0026 playit.gg\n  \u003c/p\u003e\n\n  \u003cbr/\u003e\n\u003c/div\u003e\n\n\n## 👋 About\nThe goal of this project is to create a PaperMC server that is secure, portable, and easy to self-host.\n\nIt uses Docker Compose to build upon the awesome [itzg/minecraft-server] image. This allows us to run the server almost anywhere and lets us deterministically set up the server with all relevant plugins and config. Please refer to that project for further configuration options and setup instructions.\n\nThe reverse proxy [playit.gg] is used so we can host the server on any machine without having to worry about port forwarding or DDNS.\n\n\n## 📦 Installation\n1. Install [Docker](https://www.docker.com/)\n3. Download (and unzip) this repo\n4. Make an account and tunnel on [playit.gg].\n   1. Create a new file called `playit_agent_secret.txt` in the `secrets/` directory\n   2. Copy the agent secret and paste it into that file (see [Secrets](#secrets))\n   3. Copy the port number given by [playit.gg] and paste it into the `ports` section of `docker-compose.yml` (see [Docker Compose](#docker-compose]))\n5. Add all other required secrets to `secrets/` (see [Secrets](#secrets))\n6. Profit!\n\n\n## 🕹️Usage\n### Running the server\nRun `docker compose up` in the top-most directory to run the server and `docker compose down` to stop it. You can also use `docker compose up -d` to run the server in the background.\n\n### Configuration\n#### Docker Compose (`docker-compose.yml`)\nDocker Compose allows us to augment an existing Docker image with additional configuration. Everything defined in the `docker-compose.yml` file is used to build the container that runs the server. Since we are using [itzg/minecraft-server], please see that project for more details on the available configuration options. We will only cover the options that are relevant to this project here.\n\n- `ports`: This maps the container's port 25565 to the host's port 22608. This is required so we can connect to the server from the outside world. Make sure that the second (outside) port is set to the port number given by [playit.gg]. The first (inside) port can be left as-is.\n- `volumes`: This mounts our local `./config/minecraft` directory into the container's `/config` directory and mount our local `./config/container` directory into the container's `/container` directory. This is required so we can access our config files from the container. If you rename these directories, you'll need to update the `volumes` section accordingly.\n- `secrets`: This tells Docker where to find our secret files. If you rename the `secrets` directory or the name of files in this directory, you'll need to update the `secrets` section accordingly.\n\n\n#### Container Config (`config/container/`)\nThis directory contains configuration files for the Docker container created by [itzg/minecraft-server]. Use this directory to store any files that need to be accessed from the container, but don't need to be copied into the server's config directory. For example, we can put the server logo in this directory and with the following line in `docker-compose.yml`, the image will be converted into the correct format and placed in the server's root directory by the image: `ICON: /container/logo.png`.\n\n#### Server Config (`config/server/`)\nThis directory contains configuration files for the Minecraft server. Anything you put in this directory will be copied directly into the server's config directory. Note that will overwrite any existing files with the same name that are already in the container.\n\n#### Secrets (`config/secrets/`)\nPasswords and other sensitive information for the server are stored in this directory. These files are not tracked by git so you'll need to create them yourself when you first set up the project. Do not share these files with anyone.\n\nBy default, this project requires the following secret files to be added:\n- `bstats_server_uuid.txt`: The UUID for the server on [bStats]. This is used to track server statistics.\n- `playit_agent_secret.txt`: The secret for the server on [playit.gg]. This is used to authenticate the server with the reverse proxy.\n- `rcon_password.txt`: The password for the RCON server. This is used to remotely control the server. Make sure this is set to something secure.\n\nEach of these files should contain a single line with the relevant information. All of these secrets are loaded in `docker-compose.yml` and used to replace various placeholders in the server config files.\n\n\n## 🧾 License\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) for details.\n\nThe [itzg/minecraft-server] image is fetched at runtime by Docker Compose, but it is licensed under the Apache License 2.0.\n\n\n## 💕 Funding\n\nFind this project useful? [Sponsoring me](https://johng.io/funding) will help me cover costs and **_commit_** more time to open-source.\n\nIf you can't donate but still want to contribute, don't worry. There are many other ways to help out, like:\n\n- 📢 reporting (submitting feature requests \u0026 bug reports)\n- 👨‍💻 coding (implementing features \u0026 fixing bugs)\n- 📝 writing (documenting \u0026 translating)\n- 💬 spreading the word\n- ⭐ starring the project\n\nI appreciate the support!\n\n\n[itzg/minecraft-server]: https://github.com/itzg/docker-minecraft-server\n[playit.gg]: https://playit.gg/\n[bStats]: https://bstats.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerboa88%2Fcringecraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerboa88%2Fcringecraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerboa88%2Fcringecraft/lists"}