|
@@ -1,92 +0,0 @@
|
1
|
|
-# Oragono Information
|
2
|
|
-
|
3
|
|
-Here's a bunch of misc info about the Oragono server! This can include questions, plans on
|
4
|
|
-how I'm going forward, how to properly use features, or why Oragono does/doesn't do
|
5
|
|
-something.
|
6
|
|
-
|
7
|
|
-Essentially, this document acts as a braindump about Oragono while we figure out a better
|
8
|
|
-place to put all this information.
|
9
|
|
-
|
10
|
|
-
|
11
|
|
-## Accounts and Channels
|
12
|
|
-
|
13
|
|
-Most IRC servers out there offer IRC account and channel registration through external
|
14
|
|
-services such as NickServ and ChanServ. In Oragono, we bundle accounts and channel ownership
|
15
|
|
-in as a native server feature instead!
|
16
|
|
-
|
17
|
|
-Because there's a lot of aspects of accounts/channels that haven't been specified as native
|
18
|
|
-commands and all yet, Oragono includes the pseudo-clients NickServ and ChanServ to roughly
|
19
|
|
-mimic the functionality that other IRCds get from services packages, in a user-facing set
|
20
|
|
-of commands that's familiar to everyone.
|
21
|
|
-
|
22
|
|
-The plan is to move more features and functionality (such as channel registration, channel
|
23
|
|
-permissions and all) over to native commands first and to use the NickServ/ChanServ as
|
24
|
|
-legacy interfaces to access these functions. However, it's gonna be a while before all of
|
25
|
|
-this is specified by someone like the IRCv3 WG.
|
26
|
|
-
|
27
|
|
-
|
28
|
|
-## PROXY
|
29
|
|
-
|
30
|
|
-The PROXY command, specified by [HAProxy's PROXY v1 specifications](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt),
|
31
|
|
-allows someone to setup HAProxy in front of Oragono. This allows them to use HAProxy for
|
32
|
|
-TLS negotiation (allowing older versions of SSL/TLS than Go's inbuilt TLS support does).
|
33
|
|
-However, it also allows them to update TLS certificates by updating them with HAProxy,
|
34
|
|
-rather than relying on our `REHASH` command (which is less-well-tested than I'd like
|
35
|
|
-right now).
|
36
|
|
-
|
37
|
|
-This is a toss-up of course – allowing older versions of TLS might be seen as undesired,
|
38
|
|
-and I wouldn't use the feature myself, but it's useful for real-world installations which
|
39
|
|
-is why it exists. The command is only allowed from specific hosts which should restrict it
|
40
|
|
-appropriately.
|
41
|
|
-
|
42
|
|
-
|
43
|
|
-## Server-to-Server Linking (or Federation)
|
44
|
|
-
|
45
|
|
-Right now Oragono doesn't support linking multiple servers together. It's certainly planned,
|
46
|
|
-but it's a fair while away.
|
47
|
|
-
|
48
|
|
-When I do add S2S linking to Oragono, I want to use it as a testbed for a new sort of
|
49
|
|
-linking protocol. Mostly, I want a meshy protocol that minimises the effects of netsplits
|
50
|
|
-while still ensuring that messages get delivered, and preserves the AP nature of IRC
|
51
|
|
-reliability (in terms of the CAP theorem), which is something that traditional solutions
|
52
|
|
-based on the Raft protocol don't do.
|
53
|
|
-
|
54
|
|
-Basically, I'm going to continue working on my [DCMI](https://github.com/DanielOaks/dcmi)
|
55
|
|
-protocol, get that to a point where I'm happy with it and _then_ start looking at S2S
|
56
|
|
-linking properly. If anyone is interested in server protocols and wants to look at this with
|
57
|
|
-me, please feel free to reach out!
|
58
|
|
-
|
59
|
|
-
|
60
|
|
-## Rehashing
|
61
|
|
-
|
62
|
|
-Rehashing is reloading the config files and TLS certificates. Of course, you can rehash the
|
63
|
|
-server by connect, opering-up and using the `/REHASH` command. However, similar to other
|
64
|
|
-IRCds, you can also make the server rehash by sending an appropriate signal to it!
|
65
|
|
-
|
66
|
|
-To make the server rehash from the command line, send it a `SIGHUP` signal. In *nix and OSX,
|
67
|
|
-you can do this by performing the following command:
|
68
|
|
-
|
69
|
|
- killall -HUP oragono
|
70
|
|
-
|
71
|
|
-This will make the server rehash its configuration files and TLS certificates, and so can be
|
72
|
|
-useful if you're automatically updating your TLS certs!
|
73
|
|
-
|
74
|
|
-
|
75
|
|
-## Rejected Features
|
76
|
|
-
|
77
|
|
-'Rejected' sounds harsh, but basically these are features I've decided I'm not gonna
|
78
|
|
-implement in Oragono (at least, not until someone convinces me they're worth doing).
|
79
|
|
-
|
80
|
|
-### Force/Auto-Join Channels on Connect
|
81
|
|
-
|
82
|
|
-When a user connects, some IRC servers let you force-join them to a given channel. For
|
83
|
|
-instance, this could be a channel like `#coolnet` for a network named CoolNet, a lobby
|
84
|
|
-channel, or something similar.
|
85
|
|
-
|
86
|
|
-My main objection to having this feature is just that I don't like it that much. It doesn't
|
87
|
|
-seem nice to forcibly join clients to a channel, and I know I'm always annoyed when networks
|
88
|
|
-do it to me.
|
89
|
|
-
|
90
|
|
-To network operators that want to do this, I'd suggest instead mentioning the channel(s) in
|
91
|
|
-your MOTD so that your users know the channels exist! If they want to join in, they can do
|
92
|
|
-it from there :)
|