miniircd


Nameminiircd JSON
Version 2.2 PyPI version JSON
download
home_pagehttps://github.com/jrosdahl/miniircd
SummaryA very simple Internet Relay Chat (IRC) server
upload_time2023-04-12 18:19:15
maintainerJoel Rosdahl
docs_urlNone
authorJoel Rosdahl
requires_python
licenseGPLv2
keywords irc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 0.05834s