{"id":16541683,"url":"https://github.com/itzg/rcon-hub","last_synced_at":"2025-07-11T21:34:49.589Z","repository":{"id":144338079,"uuid":"195482161","full_name":"itzg/rcon-hub","owner":"itzg","description":"Provides an SSH server that enables rcon connections to configured game servers","archived":false,"fork":false,"pushed_at":"2019-07-24T01:17:30.000Z","size":32,"stargazers_count":10,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T20:23:41.017Z","etag":null,"topics":["rcon","ssh-server"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/itzg.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":"2019-07-06T00:52:12.000Z","updated_at":"2023-01-15T12:27:38.000Z","dependencies_parsed_at":"2023-07-27T01:47:08.581Z","dependency_job_id":null,"html_url":"https://github.com/itzg/rcon-hub","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/itzg/rcon-hub","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzg%2Frcon-hub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzg%2Frcon-hub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzg%2Frcon-hub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzg%2Frcon-hub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itzg","download_url":"https://codeload.github.com/itzg/rcon-hub/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itzg%2Frcon-hub/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264903106,"owners_count":23681127,"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":["rcon","ssh-server"],"created_at":"2024-10-11T18:55:38.367Z","updated_at":"2025-07-11T21:34:49.578Z","avatar_url":"https://github.com/itzg.png","language":"Go","funding_links":["https://www.buymeacoffee.com/itzg"],"categories":[],"sub_categories":[],"readme":"\n[![GitHub issues](https://img.shields.io/github/issues/itzg/rcon-hub.svg)](https://github.com/itzg/rcon-hub/issues)\n[![Docker Pulls](https://img.shields.io/docker/pulls/itzg/rcon-hub.svg)](https://cloud.docker.com/u/itzg/repository/docker/itzg/rcon-hub)\n[![GitHub release](https://img.shields.io/github/release/itzg/rcon-hub.svg)](https://github.com/itzg/rcon-hub/releases)\n[![CircleCI](https://circleci.com/gh/itzg/rcon-hub.svg?style=svg)](https://circleci.com/gh/itzg/rcon-hub)\n[![Buy me a coffee](https://img.shields.io/badge/Donate-Buy%20me%20a%20coffee-orange.svg)](https://www.buymeacoffee.com/itzg)\n\nProvides an SSH server that enables rcon connections to configured game servers\n\n## Configuration\n\nCreate a YAML file named `config.yml` and place it in the current directory, `/etc/rcon-hub`, or \nin a `.rcon-hub` directory located in your home directory.\n\nTop-level keys of the configuration include:\n\n- `host-key-file` : PEM encoded file that will be used for the SSH host key file. If it doesn't exist, an RSA\n  private key file will be created. If not specified, a new one is generated in-memory at startup; however, this\n  will require you remove the known hosts entry on each startup\n- `history-size` : Size of command history. Default is 100.\n- `bind` : the `host:port` where SSH connections are accepted. Default is `:2222`.\n\nOn Windows you can generate a host key file using PuTTY Key Generator and exporting the private\nkey without a password using the \"Conversions \u003e Export OpenSSH key\" menu.\n\nOn Linux you can generate a host key file using `ssh-keygen`.\n\n### Users\n\nOne or more users can be declared under the `users` key with a key-object entry each. \nThe sub-key is the username and object requires:\n- `password` : the SSH password of the user \n\n### Connections\n\nOne or more RCON connections can be declared under the `connections` key with a key-object entry each.\nThe sub-key is the name of the connection that will be used with the hub's `connect` command. The object requires:\n- `address` : a `host:port` declaration of the RCON endpoint\n- `password` : the RCON password to authenticate with the endpoint\n- `auto-disconnect` : set to `true` if you want to disconnect from the connection when detaching\n\n### Example\n\nThe following example declares one SSH user with the username `testing` and a password of `pw`. \nIt also declares a single RCON connection named `local-mc` that will connect to `localhost:25575` with the\npassword `minecraft`.\n\n```yaml\nusers:\n  testing:\n    password: pw\nconnections:\n  mc:\n    address: localhost:25575\n    password: minecraft\nhost-key-file: host_key.pem\n```\n\n## Usage\n\nWith the configuration described above, start the hub:\n\n```\nrcon-hub\n```\n\nPassing `help` or `--help` will display additional command-line options.\n\n## Docker Usage\n\nA containerized version is provided at `itzg/rcon-hub`. It exposes the SSH port at 2222 and declares two volumes:\n- `/etc/rcon-hub` : this is where the `config.yml` file is loaded\n- `/data` : by default the container will write the host key file to `/data/host_key.pem`, \n  but a pre-generated key file can be mounted at that path\n  \nRather than using the config file, the following environment variables are supported:\n- `RH_USER` : the username to register for SSH authentication. Default is `user`.\n- `RH_PASSWORD` : if specified, a user with username `$RH_USER` will be registered with the given password \n- `RH_CONNECTION` : a space delimited list of connection definitions of the form `name=password@host:port`\n\nFor example, the following starts a container with the same user and connection as the YAML file above\n\n```\ndocker run -d --name rcon-hub -p 2222:2222 \\\n  -e RH_USER=testing -e RH_PASSWORD=pw -e RH_CONNECTION=mc=minecraft@localhost:25575 \\\n  itzg/rcon-hub\n```\n\nTo ensure the generated host key persists across restarts, be sure to attach the `/data` volume,\nsuch as with this Docker compose file:\n\n```yaml\nversion: \"3.7\"\n\nservices:\n  rcon-hub:\n    image: itzg/rcon-hub\n    environment:\n      RH_USER: testing\n      RH_PASSWORD: pw\n      RH_CONNECTION: mc=minecraft@mc:25575\n    ports:\n      - 2222:2222\n    volumes:\n      - rcon-hub:/data\nvolumes:\n  # declare volume with default volume engine\n  rcon-hub: {}\n```\n\n\u003e A full example is located at [examples/docker-compose.yml](examples/docker-compose.yml)\n\n## Connecting\n\nYou can connect to the running hub server using any ssh client and using password authentication, such as:\n\n```\nssh -p 2222 testing@localhost\n```\n\n## Shell usage\n\nOnce connected, you interact with a simple shell environment. The `help` command lists the other commands\navailable within the shell. The command history can be accessed by pressing the up/down arrow keys.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitzg%2Frcon-hub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitzg%2Frcon-hub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitzg%2Frcon-hub/lists"}