miniircd -- A (very) simple Internet Relay Chat (IRC) server
============================================================
Description
-----------
miniircd is a small and limited IRC server written in Python. Despite its size,
it is a functional alternative to a full-blown ircd for private or internal
use. Installation is simple; no configuration is required.
Features
--------
* Knows about the basic IRC protocol and commands.
* Easy installation.
* Basic SSL support.
* No configuration.
* No ident lookup (so that people behind firewalls that filter the ident port
without sending NACK can connect without long timeouts).
* Reasonably secure when used with --chroot and --setuid.
Limitations
-----------
* Can't connect to other IRC servers.
* Only knows the most basic IRC commands.
* No IRC operators.
* No channel operators.
* No user or channel modes except channel key.
* No reverse DNS lookup.
* No other mechanism to reject clients than requiring a password.
Requirements
------------
Python 3.6 or newer. Get it at <https://www.python.org>.
Installation
------------
No special installation needed: Just clone the repository and execute miniircd:
git clone https://github.com/jrosdahl/miniircd.git
cd miniircd
./miniircd --help
If you do want to install miniircd, there are several options:
1. Clone the repository and copy the executable file to a directory in PATH:
git clone https://github.com/jrosdahl/miniircd.git
cd miniircd
cp miniircd /usr/local/bin # or some other directory in your PATH
You can then execute the program like this:
miniircd --help
2. Install miniircd as a package from the [miniircd PyPI project].
You can then execute the program with
miniircd --help
or as a module like this:
python3 -m miniircd --help
[miniircd PyPI project]: https://pypi.org/project/miniircd/
Using `--chroot` and `--setuid`
-------------------------------
In order to use the `--chroot` or `--setuid` options, you must be using an OS
that supports these functions (most Unix-like systems), and you must start the
server as root. These options limit the daemon process to a small subset of the
filesystem, running with the privileges of the specified user (ideally
unprivileged) instead of the user who launched miniircd.
To create a new chroot jail for miniircd, edit the Makefile and change JAILDIR
and JAILUSER to suit your needs, then run ``make jail`` as root. If you have a
motd file or an SSL PEM file, you'll need to put them in the jail as well:
cp miniircd.pem motd.txt /var/jail/miniircd
Remember to specify the paths for `--state-dir`, `--channel-log-dir`, `--motd`
and `--ssl-pem-file` from within the jail, e.g.:
miniircd --state-dir=/ --channel-log-dir=/ --motd=/motd.txt \
--setuid=nobody --ssl-pem-file=/miniircd.pem --chroot=/var/jail/miniircd
Make sure your jail is writable by whatever user/group you are running the
server as. Also, keep your jail clean. Ideally it should only contain the files
mentioned above and the state/log files from miniircd. You should **not** place
the miniircd script itself, or any executables, in the jail. In the end it
should look something like this:
# ls -alR /var/jail/miniircd
.:
total 36
drwxr-xr-x 3 nobody root 4096 Jun 10 16:20 .
drwxr-xr-x 4 root root 4096 Jun 10 18:40 ..
-rw------- 1 nobody nobody 26 Jun 10 16:20 #channel
-rw-r--r-- 1 nobody nobody 1414 Jun 10 16:51 #channel.log
drwxr-xr-x 2 root root 4096 Jun 10 16:19 dev
-rw-r----- 1 rezrov nobody 5187 Jun 9 22:25 ircd.pem
-rw-r--r-- 1 rezrov nobody 17 Jun 9 22:26 motd.txt
./dev:
total 8
drwxr-xr-x 2 root root 4096 Jun 10 16:19 .
drwxr-xr-x 3 nobody root 4096 Jun 10 16:20 ..
crw-rw-rw- 1 root root 1, 3 Jun 10 16:16 null
crw-rw-rw- 1 root root 1, 9 Jun 10 16:19 urandom
License
-------
GNU General Public License version 2 or later.
Primary author
--------------
- Joel Rosdahl <joel@rosdahl.net>
Contributors
------------
- Alex Wright
- Braxton Plaxco
- Hanno Foest
- Jan Fuchs
- John Andersen
- Julien Castiaux
- Julien Monnier
- Leandro Lucarella
- Leonardo Taccari
- Martin Maney
- Matt Baxter
- Matt Behrens
- Michael Rene Wilcox
- Ron Fritz
Raw data
{
"_id": null,
"home_page": "https://github.com/jrosdahl/miniircd",
"name": "miniircd",
"maintainer": "Joel Rosdahl",
"docs_url": null,
"requires_python": "",
"maintainer_email": "joel@rosdahl.net",
"keywords": "IRC",
"author": "Joel Rosdahl",
"author_email": "joel@rosdahl.net",
"download_url": "https://files.pythonhosted.org/packages/b5/41/dc5474547d65bf93fd133a9720720b1d5bb3a983360f383fbefd0c543b6b/miniircd-2.2.tar.gz",
"platform": null,
"description": "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 <https://www.python.org>.\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 <joel@rosdahl.net>\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",
"bugtrack_url": null,
"license": "GPLv2",
"summary": "A very simple Internet Relay Chat (IRC) server",
"version": "2.2",
"split_keywords": [
"irc"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8f11bcfb04cfb79472b034bdc270148f056846a0ad3d31c2fac9bbbc3a4e14c0",
"md5": "f61780f42fcea50ccbc4abbed9f54f12",
"sha256": "232279d103fda157b2cb38c7420d733ab73da87168450e78ac8a1eec9ef86439"
},
"downloads": -1,
"filename": "miniircd-2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "f61780f42fcea50ccbc4abbed9f54f12",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 20301,
"upload_time": "2023-04-12T18:19:13",
"upload_time_iso_8601": "2023-04-12T18:19:13.946761Z",
"url": "https://files.pythonhosted.org/packages/8f/11/bcfb04cfb79472b034bdc270148f056846a0ad3d31c2fac9bbbc3a4e14c0/miniircd-2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b541dc5474547d65bf93fd133a9720720b1d5bb3a983360f383fbefd0c543b6b",
"md5": "e4dc2d88afcaff23b27515fe79835d4e",
"sha256": "345d0c5c893b516514d7675ea6d941f1415bb9b75a1a6fe730aeb026e8b53ca9"
},
"downloads": -1,
"filename": "miniircd-2.2.tar.gz",
"has_sig": false,
"md5_digest": "e4dc2d88afcaff23b27515fe79835d4e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 20376,
"upload_time": "2023-04-12T18:19:15",
"upload_time_iso_8601": "2023-04-12T18:19:15.978809Z",
"url": "https://files.pythonhosted.org/packages/b5/41/dc5474547d65bf93fd133a9720720b1d5bb3a983360f383fbefd0c543b6b/miniircd-2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-12 18:19:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "jrosdahl",
"github_project": "miniircd",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "miniircd"
}