{"id":22120378,"url":"https://github.com/znitche/yamcsr","last_synced_at":"2025-07-05T00:04:17.557Z","repository":{"id":252586069,"uuid":"840812259","full_name":"zNitche/yamcsr","owner":"zNitche","description":"yet another Minecraft server runner","archived":false,"fork":false,"pushed_at":"2024-09-05T20:34:47.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T06:34:34.350Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/zNitche.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":"2024-08-10T18:56:01.000Z","updated_at":"2024-09-05T20:34:50.000Z","dependencies_parsed_at":"2024-09-06T03:29:27.630Z","dependency_job_id":"871f5d8e-b6ed-493c-b0ac-32f01131ea0d","html_url":"https://github.com/zNitche/yamcsr","commit_stats":null,"previous_names":["znitche/mc-modded-server","znitche/mcmsr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zNitche/yamcsr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2Fyamcsr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2Fyamcsr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2Fyamcsr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2Fyamcsr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zNitche","download_url":"https://codeload.github.com/zNitche/yamcsr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2Fyamcsr/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263636782,"owners_count":23492302,"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":[],"created_at":"2024-12-01T14:23:08.250Z","updated_at":"2025-07-05T00:04:17.541Z","avatar_url":"https://github.com/zNitche.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## yamcsr - yet another Minecraft server runner\n\n### Description\n\nWhile preparing for my next Minecraft gaming session, I had to find a way to host modded server locally.\nI did such a thing in the past [here](https://github.com/zNitche/PiMinecraftServer), but this 2 years old solution is quite primitive.\n\nMy main goal was to have containerized server, with auto world backups + easy and secure access to server console.\n\nAnd here we are after roughly month of work and 2 extra projects\n([iscep](https://github.com/zNitche/iscep) and [yarcon](https://github.com/zNitche/yarcon)),\nhere we are having core functionalities and nice and expandable framework to build upon.\n\n### Features\n- containerized environment for running `Minecraft` servers.\n- rcon ([yarcon](https://github.com/zNitche/yarcon)) integration.\n- safe way to execute tasks / cron commands using [iscep](https://github.com/zNitche/iscep).\n- cron based periodic tasks.\n\n### Modules breakdown\n\n#### core / server\nDocker service running current server instance.\n\n#### scripts\nCore project scripts used by other modules.\n\n#### tasks\nPeriodic tasks (handled via `cron`). This module run predefined tasks from `yamcsr_scripts` module.\n\nCurrently following tasks are supported:\n\n- `BackupWorld` - creates world backup in `tar` archive, if \nmodpack uses mods to perform backups (like `Simple Backups`), this task, or specified mod should\nbe disabled to prevent duplicated data.\n\n#### bridge\nbridge module is powered via [iscep](https://github.com/zNitche/iscep), and acts as a middleware between\n3rd party apps and `yamcsr` tasks.\n\nCurrently following commands are supported:\n- `BackupWorld` - create world backup (part of `yamcsr_scripts`)\n- `OpPlayer` - change player operator status (executes rcon `op`/`deop` depending on passed parameter)\n\nDo you want to integrate your service with this module ? Check [this](https://github.com/zNitche/iscep/blob/master/examples/client.py).\n\n### How to use it\n\n#### core setup\n1. Create `.env` file\n\n```\ncp .env.template .env\n```\n\n2. Set the values that suit your needs (example 'Server Setup' section for Valhelsia modpack)\n\n```\n# Server Setup\nSERVER_FILES_URL=https://www.curseforge.com/api/v1/mods/878495/files/5529449/download\nSERVER_START_SCRIPT=ServerStart.sh\n```\n\n3. Build and start\n\n```\ndocker compose build \ndocker compose up -d\n```\n\n4. Attach to server container\n\n```\ndocker container exec -it yamcsr_server bash\n```\n\n5. Edit `server.properties`\n\n```\nnano server.properties\n```\n\n6. Restart server to apply config changes\n\n```\ndocker compose restart\n```\n\n#### tasks setup\nTasks are controlled via env variables (`Tasks` section of `.env`).\n\n#### bridge setup\nSettings can be changed in `Bridge` section of `.env` file.\n\nAdditional steps to consider:\n\n- generate auth tokens (if `tokens.json` is not present in `yamcsr_bridge/auth_data`,\nauth will be disabled, and all incoming packets will be processed)\n\n```\npython3 -m iscep.tokens_management --tokens-path tokens.json --add user_name\n```\n\n- generate SSL certificate to enable traffic encryption.\nLike in previous case, all `*.pem` files have to be placed in `yamcsr_bridge/auth_data`\n\n```\nopenssl req -x509 -newkey rsa:2048 -nodes -out cert.pem -keyout key.pem -days 365\n```\n\n### Extras\nServer commands can be executed directly via console, to do it\n\n1. Attach to server console\n\n```\ndocker attach yamcsr_server\n```\n\n2. Execute command (for example list players)\n```\nlist\n```\n\n3. Exit\n```\nCtrl + P then Ctrl + Q\n```\n\n! note that `Ctrl + C` will stop the server !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznitche%2Fyamcsr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fznitche%2Fyamcsr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznitche%2Fyamcsr/lists"}