{"id":13435883,"url":"https://github.com/jrosdahl/miniircd","last_synced_at":"2025-05-15T01:09:43.883Z","repository":{"id":1091588,"uuid":"2278633","full_name":"jrosdahl/miniircd","owner":"jrosdahl","description":"A very simple Internet Relay Chat (IRC) server","archived":false,"fork":false,"pushed_at":"2025-02-12T20:04:18.000Z","size":286,"stargazers_count":431,"open_issues_count":5,"forks_count":105,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-04-14T00:57:29.542Z","etag":null,"topics":["daemon","irc","miniircd"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jrosdahl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","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":"2011-08-27T09:12:32.000Z","updated_at":"2025-03-28T20:49:26.000Z","dependencies_parsed_at":"2023-07-05T19:02:06.143Z","dependency_job_id":"c85a28a8-968b-4826-8888-12b8228f12ab","html_url":"https://github.com/jrosdahl/miniircd","commit_stats":{"total_commits":200,"total_committers":23,"mean_commits":8.695652173913043,"dds":"0.20999999999999996","last_synced_commit":"e009193809d691b0c9c63f79c3f6a1ec73de7744"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrosdahl%2Fminiircd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrosdahl%2Fminiircd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrosdahl%2Fminiircd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrosdahl%2Fminiircd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jrosdahl","download_url":"https://codeload.github.com/jrosdahl/miniircd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254043,"owners_count":22039792,"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":["daemon","irc","miniircd"],"created_at":"2024-07-31T03:00:40.304Z","updated_at":"2025-05-15T01:09:38.874Z","avatar_url":"https://github.com/jrosdahl.png","language":"Python","funding_links":[],"categories":["Python","Daemons"],"sub_categories":["Self-hosted"],"readme":"miniircd -- A (very) simple Internet Relay Chat (IRC) server\n============================================================\n\nDescription\n-----------\n\nminiircd is a small and limited IRC server written in Python. Despite its size,\nit is a functional alternative to a full-blown ircd for private or internal\nuse. Installation is simple; no configuration is required.\n\n\nFeatures\n--------\n\n* Knows about the basic IRC protocol and commands.\n* Easy installation.\n* Basic SSL support.\n* No configuration.\n* No ident lookup (so that people behind firewalls that filter the ident port\n  without sending NACK can connect without long timeouts).\n* Reasonably secure when used with --chroot and --setuid.\n\n\nLimitations\n-----------\n\n* Can't connect to other IRC servers.\n* Only knows the most basic IRC commands.\n* No IRC operators.\n* No channel operators.\n* No user or channel modes except channel key.\n* No reverse DNS lookup.\n* No other mechanism to reject clients than requiring a password.\n\n\nRequirements\n------------\n\nPython 3.6 or newer. Get it at \u003chttps://www.python.org\u003e.\n\n\nInstallation\n------------\n\nNo special installation needed: Just clone the repository and execute miniircd:\n\n    git clone https://github.com/jrosdahl/miniircd.git\n    cd miniircd\n    ./miniircd --help\n\nIf you do want to install miniircd, there are several options:\n\n1. Clone the repository and copy the executable file to a directory in PATH:\n\n        git clone https://github.com/jrosdahl/miniircd.git\n        cd miniircd\n        cp miniircd /usr/local/bin  # or some other directory in your PATH\n\n   You can then execute the program like this:\n\n        miniircd --help\n\n2. Install miniircd as a package from the [miniircd PyPI project].\n\n   You can then execute the program with\n\n        miniircd --help\n\n   or as a module like this:\n\n        python3 -m miniircd --help\n\n[miniircd PyPI project]: https://pypi.org/project/miniircd/\n\n\nUsing `--chroot` and `--setuid`\n-------------------------------\n\nIn order to use the `--chroot` or `--setuid` options, you must be using an OS\nthat supports these functions (most Unix-like systems), and you must start the\nserver as root. These options limit the daemon process to a small subset of the\nfilesystem, running with the privileges of the specified user (ideally\nunprivileged) instead of the user who launched miniircd.\n\nTo create a new chroot jail for miniircd, edit the Makefile and change JAILDIR\nand JAILUSER to suit your needs, then run ``make jail`` as root. If you have a\nmotd file or an SSL PEM file, you'll need to put them in the jail as well:\n\n    cp miniircd.pem motd.txt /var/jail/miniircd\n\nRemember to specify the paths for `--state-dir`, `--channel-log-dir`, `--motd`\nand `--ssl-pem-file` from within the jail, e.g.:\n\n    miniircd --state-dir=/ --channel-log-dir=/ --motd=/motd.txt \\\n        --setuid=nobody --ssl-pem-file=/miniircd.pem --chroot=/var/jail/miniircd\n\nMake sure your jail is writable by whatever user/group you are running the\nserver as. Also, keep your jail clean. Ideally it should only contain the files\nmentioned above and the state/log files from miniircd. You should **not** place\nthe miniircd script itself, or any executables, in the jail. In the end it\nshould look something like this:\n\n    # ls -alR /var/jail/miniircd\n    .:\n    total 36\n    drwxr-xr-x 3 nobody root   4096 Jun 10 16:20 .\n    drwxr-xr-x 4 root   root   4096 Jun 10 18:40 ..\n    -rw------- 1 nobody nobody   26 Jun 10 16:20 #channel\n    -rw-r--r-- 1 nobody nobody 1414 Jun 10 16:51 #channel.log\n    drwxr-xr-x 2 root   root   4096 Jun 10 16:19 dev\n    -rw-r----- 1 rezrov nobody 5187 Jun  9 22:25 ircd.pem\n    -rw-r--r-- 1 rezrov nobody   17 Jun  9 22:26 motd.txt\n\n    ./dev:\n    total 8\n    drwxr-xr-x 2 root   root   4096 Jun 10 16:19 .\n    drwxr-xr-x 3 nobody root   4096 Jun 10 16:20 ..\n    crw-rw-rw- 1 root   root   1, 3 Jun 10 16:16 null\n    crw-rw-rw- 1 root   root   1, 9 Jun 10 16:19 urandom\n\n\nLicense\n-------\n\nGNU General Public License version 2 or later.\n\n\nPrimary author\n--------------\n\n- Joel Rosdahl \u003cjoel@rosdahl.net\u003e\n\n\nContributors\n------------\n\n- Alex Wright\n- Braxton Plaxco\n- Hanno Foest\n- Jan Fuchs\n- John Andersen\n- Julien Castiaux\n- Julien Monnier\n- Leandro Lucarella\n- Leonardo Taccari\n- Martin Maney\n- Matt Baxter\n- Matt Behrens\n- Michael Rene Wilcox\n- Ron Fritz\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrosdahl%2Fminiircd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjrosdahl%2Fminiircd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrosdahl%2Fminiircd/lists"}