{"id":21130829,"url":"https://github.com/ngn13/sshchat","last_synced_at":"2025-03-14T12:15:04.417Z","repository":{"id":237058236,"uuid":"793719861","full_name":"ngn13/sshchat","owner":"ngn13","description":"chat over SSH","archived":false,"fork":false,"pushed_at":"2024-05-19T00:29:57.000Z","size":184,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-21T06:11:34.953Z","etag":null,"topics":["chat-application","libssh","ncurses","ncurses-tui","ncurses-ui","pthreads","ssh-app","ssh-chat"],"latest_commit_sha":null,"homepage":"","language":"C","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/ngn13.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-04-29T18:36:35.000Z","updated_at":"2024-05-19T00:30:00.000Z","dependencies_parsed_at":"2024-04-29T19:53:54.829Z","dependency_job_id":"8f87fd98-dbad-47fd-b6b7-5ddac758e722","html_url":"https://github.com/ngn13/sshchat","commit_stats":null,"previous_names":["ngn13/sshchat"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngn13%2Fsshchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngn13%2Fsshchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngn13%2Fsshchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngn13%2Fsshchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngn13","download_url":"https://codeload.github.com/ngn13/sshchat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243573495,"owners_count":20312883,"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":["chat-application","libssh","ncurses","ncurses-tui","ncurses-ui","pthreads","ssh-app","ssh-chat"],"created_at":"2024-11-20T05:39:48.084Z","updated_at":"2025-03-14T12:15:04.360Z","avatar_url":"https://github.com/ngn13.png","language":"C","readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"assets/client.png\"\u003e\n  \u003c/br\u003e\n  \u003c/br\u003e\n  sshchat | chat over SSH\n\u003c/h1\u003e\n\nDead simple secure chat system over SSH, implemented with libssh\n\n### How does it work?\nUsers connect to a [custom SSH server](server/) using a [custom SSH client](client/).\nServer and the client then creates a communication channel, which the client uses to send\ncommands to the server, and the server sends the messages that the client should display.\n\nThe \"protocol\" is explained with more details in the [protocol documentation](docs/protocol.md).\n\n### Features\n- **Performance**: Server and the client uses a multi-threaded architecture.\n- **Configuration**: You can configure every aspect of your server - SSH keys, MOTD, password protection etc.\n- **Administration**: You can authenticate as an admin to kick, nick ban and IP ban other users.\n\n### Installation\n#### Client\n- **Install the dependencies**: You will need a compiler (idealy gcc), make, libssh, ncurses and headers (libssh-dev, ncurses-dev)\n- **Download the source code**: Visit the [releases tab](https://github.com/ngn13/sshchat/tags) and download the latest archive\n- **Extract and compile**: Extract the archive, change directory into the [`client`](client/) directory and run `make`\n- **Install the binary**: Install the binary by running `make install` as root (or use sudo)\n\nAfter the installation, you can run the client with the `sshchat` command.\n\nYou can display the avaliable commands by running `.help` after connecting to a server.\n\n#### Server\n- **Install the dependencies**: You will need a compiler (idealy gcc), make, openssh, libssh, libinih and headers (libssh-dev, libinih-dev)\n- **Download the source code**: Visit the [releases tab](https://github.com/ngn13/sshchat/tags) and download the latest archive\n- **Extract and compile**: Extract the archive, change directory into the [`server`](server/) directory and run `make`\n- **Generate your keys**: Generate a pair of SSH keys for the server by running `make keygen`\n- **Install the binary**: Install the binary and the default configuration by running `make install` as root (or use sudo)\n\nAfter the installation, you can run the server with the `sshchat-server` command.\n\nThe [default server configuration](server/install/config.ini) which is located at `/etc/sshchat/config.ini`, has comments exaplaining\nevery option.\n\n### Contributing\nIf you want to contribute, feel free to do so! For example, you can start by [adding a new command](/server/src/cmd.c).\nWhen you are done, please make sure to format the code with `clang-format`:\n```bash\nmake format\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngn13%2Fsshchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngn13%2Fsshchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngn13%2Fsshchat/lists"}