2013-08-23 01:03:37 +00:00
|
|
|
Rosella
|
|
|
|
=======
|
2013-08-27 12:00:49 +00:00
|
|
|
[![Build Status](https://drone.io/github.com/eXeC64/Rosella/status.png)](https://drone.io/github.com/eXeC64/Rosella/latest)
|
2013-08-23 01:03:37 +00:00
|
|
|
About
|
|
|
|
-----
|
|
|
|
Rosella is a small ircd (Internet Relay Chat Daemon).
|
2013-08-24 08:14:44 +00:00
|
|
|
It partially implements RFC1459, but will never be fully compliant.
|
2013-08-23 01:03:37 +00:00
|
|
|
|
|
|
|
Rosella is intended to provide a portable, light-weight, near-zero-conf
|
|
|
|
ircd capable of handling many simultaneous connections, whilst providing
|
|
|
|
as much privacy for its users as possible.
|
|
|
|
|
|
|
|
Rosella is *not* production ready, or recommended for large-scale usage.
|
|
|
|
|
|
|
|
An x.509 key and certificate are required to open a TLS listener.
|
|
|
|
Proper key handling and certificate checking is the responsibility of the
|
|
|
|
users. Rosella cannot protect you from stupidity or untrustworthy CA's.
|
|
|
|
|
2013-08-29 21:40:20 +00:00
|
|
|
Features
|
|
|
|
--------
|
|
|
|
|
|
|
|
Rosella is a stand-alone server, and does not support server→server
|
|
|
|
communication or services→server communication. Basic services are expected to
|
|
|
|
be provided by IRC bots.
|
|
|
|
|
|
|
|
The following channel modes are supported:
|
|
|
|
|
|
|
|
* s - Secret. The channel is hidden from /LIST unless you are already in it.
|
|
|
|
* n - No external. Only users in the channel may send messages to it.
|
|
|
|
* t - Topic Locked. Only operators may set the topic.
|
|
|
|
* m - Moderated. Only users with voice or operators may talk.
|
|
|
|
|
|
|
|
The following irc commands are supported:
|
|
|
|
|
2013-08-31 00:34:25 +00:00
|
|
|
* INFO
|
2013-08-29 21:40:20 +00:00
|
|
|
* JOIN
|
|
|
|
* KICK
|
|
|
|
* KILL
|
|
|
|
* LIST
|
|
|
|
* MODE
|
|
|
|
* NICK
|
|
|
|
* OPER
|
|
|
|
* PART
|
|
|
|
* PRIVMSG
|
|
|
|
* QUIT
|
|
|
|
* TOPIC
|
|
|
|
* USER
|
|
|
|
|
2013-08-29 22:07:20 +00:00
|
|
|
Download
|
|
|
|
--------
|
|
|
|
The latest x86-64 build of Rosella is available from Drone.io's continuous
|
|
|
|
integration service.
|
|
|
|
|
|
|
|
[Download Latest Build](https://drone.io/github.com/eXeC64/Rosella/files/Rosella)
|
|
|
|
|
|
|
|
If you would rather review the code and then compile it yourself then run this
|
|
|
|
on a system with Go 1.1.2 or later installed.
|
|
|
|
|
|
|
|
~~~
|
|
|
|
go get github.com/eXeC64/Rosella
|
2013-08-29 22:24:07 +00:00
|
|
|
cd $GOPATH/src/github.com/eXeC64/Rosella
|
2013-08-29 22:07:20 +00:00
|
|
|
~~~
|
2013-08-29 21:40:20 +00:00
|
|
|
|
2013-08-29 22:24:07 +00:00
|
|
|
You can then browse and review the source code at your leisure before compiling
|
|
|
|
it by running `go build`.
|
|
|
|
|
2013-08-24 07:01:17 +00:00
|
|
|
Usage
|
|
|
|
-----
|
2013-08-27 13:25:48 +00:00
|
|
|
Command line options can be found by running `Rosella -h`.
|
2013-08-24 07:01:17 +00:00
|
|
|
|
|
|
|
###x.509 Certificate###
|
|
|
|
Rosella expects you to provide a valid x.509 certificate and private key.
|
|
|
|
You can generate these yourself with openssl, or obtain one from a certificate
|
|
|
|
authority you trust.
|
|
|
|
|
|
|
|
###Auth File###
|
|
|
|
The auth file provides a list of usernames and hashed passwords that the /OPER
|
|
|
|
command will accept. The format is one username and password pair per line.
|
|
|
|
Lines starting with a `#` are ignored as comments, as are blank lines. The
|
|
|
|
password is hashed with SHA1. Username and password are placed on the same
|
|
|
|
line and separated by a single space, as such:
|
|
|
|
|
|
|
|
#This line is a comment
|
|
|
|
username1 sha1_hashed_password
|
|
|
|
|
|
|
|
#Another comment, blank lines are ignored
|
|
|
|
username2 sha1_hashed_password
|
|
|
|
username3 sha1_hashed_password
|
|
|
|
|
2013-08-29 20:43:58 +00:00
|
|
|
**Cracking SHA1 hashed passwords is trivial. Do not rely upon it to keep your
|
|
|
|
passwords secure. It is only used here to protect against people seeing your
|
|
|
|
screen briefly when the auth file is open. Treat this file as you would treat
|
|
|
|
a private key file.**
|
2013-08-24 07:01:17 +00:00
|
|
|
|
2013-08-23 01:03:37 +00:00
|
|
|
Design Principles
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
* Rosella will not spy upon its users, or log them in any way.
|
|
|
|
|
|
|
|
* Rosella will not communicate with any users in plaintext.
|
|
|
|
|
|
|
|
* Rosella will not provide any mechanism for identifying other users beyond
|
|
|
|
their nicknames.
|
|
|
|
|
2013-08-23 21:47:54 +00:00
|
|
|
* Rosella will not allow any user to spy upon any other user.
|
2013-08-23 01:03:37 +00:00
|
|
|
|
2013-08-29 22:41:29 +00:00
|
|
|
* Rosella's source code will be kept as easy to review as possible.
|
2013-08-23 01:03:37 +00:00
|
|
|
|
|
|
|
Contributing
|
|
|
|
------------
|
|
|
|
|
2013-08-23 21:47:54 +00:00
|
|
|
Patches and pull requests for new features and code clean ups are welcome as
|
|
|
|
long as they follow the design principles.
|
2013-08-23 01:03:37 +00:00
|
|
|
|
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
|
|
|
Copyright (C) 2013 Harry Jeffery
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU Affero General Public License as
|
|
|
|
published by the Free Software Foundation, either version 3 of the
|
|
|
|
License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU Affero General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|