{"id":18569830,"url":"https://github.com/salimnassim/ircd","last_synced_at":"2025-05-15T21:37:47.656Z","repository":{"id":180175389,"uuid":"659034334","full_name":"salimnassim/ircd","owner":"salimnassim","description":"IRC server","archived":false,"fork":false,"pushed_at":"2024-03-17T14:26:04.000Z","size":279,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T14:14:24.579Z","etag":null,"topics":["go","irc","server"],"latest_commit_sha":null,"homepage":"","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/salimnassim.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-06-27T02:40:54.000Z","updated_at":"2023-07-31T03:32:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"467f6573-3802-431b-9430-cb9b4aa4d577","html_url":"https://github.com/salimnassim/ircd","commit_stats":null,"previous_names":["salimnassim/ircd"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salimnassim%2Fircd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salimnassim%2Fircd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salimnassim%2Fircd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salimnassim%2Fircd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salimnassim","download_url":"https://codeload.github.com/salimnassim/ircd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254425628,"owners_count":22069207,"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":["go","irc","server"],"created_at":"2024-11-06T22:35:22.227Z","updated_at":"2025-05-15T21:37:47.636Z","avatar_url":"https://github.com/salimnassim.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ircd\n\nSomewhat complex IRC server which implements a subset of RFC1459.\n\nBy default the server will run on port `6667` and prometheus metrics are exposed on port `2112`. See `docker-compose.yml` for example environment variable configuration.\n\n## Features\n\n### IRC Commands\n\n- [X] TLS\n- [ ] CAP\n- [x] PRIVMSG\n- [x] NICK\n- [x] USER\n- [x] JOIN\n- [x] PART\n- [x] TOPIC\n- [x] WHO\n- [x] WHOIS\n- [x] KICK \n- [X] LUSERS\n- [X] PASS\n- [X] OPER (pertial, no commands)\n- [X] LIST (partial, no ELIST)\n- [X] INVITE\n- [X] VERSION (partial, local server only)\n- [ ] ADMIN\n- [X] MODE (client: iortz, channel: mspnzt, member: vhoaq)\n- [X] AWAY\n- [ ] LINK\n- [ ] IRCv3\n\n## Environment variables\n\n- SERVER_NAME (string)\n- SERVER_VERSION (string)\n- PORT (int)\n- PORT_TLS (int)\n- PROMETHEUS (unset is false)\n- TLS (unset is false)\n- TLS_CERTIFICATE (path)\n- TLS_KEY (path)\n\n## Installation\n\n### Generate TLS Key Pair\n\n```\nmkdir tls \u0026\u0026 cd tls\nopenssl genrsa -out servercakey.pem\nopenssl req -new -x509 -key servercakey.pem -out serverca.crt\nopenssl genrsa -out server.key\nopenssl req -new -key server.key -out server_reqout.txt\nopenssl x509 -req -in server_reqout.txt -days 3650 -sha256 \\\n -CAcreateserial -CA serverca.crt -CAkey servercakey.pem -out server.crt\n```\n\n### Local\n\n1. Run `go mod download \u0026\u0026 go build -v -o ./dist/ircd ./cmd`.\n2. The binary can be found under the `dist` directory.\n3. Run with `SERVER_NAME=foo SERVER_VERSION=0.1 PORT=6667 ./dist/ircd`\n\n### Docker\n\nNote: in order for clients to discover their IP address and get the real remote IP address, the server needs to run using the host network driver.\nIf host networking is not enabled all clients will use the Docker gateway address which might lead to interesting situations. \n\n1. Configure the environment variables in in `docker-compose.yml`.\n2. Run `docker compose up`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalimnassim%2Fircd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalimnassim%2Fircd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalimnassim%2Fircd/lists"}