summaryrefslogtreecommitdiff
path: root/README.md
blob: faa77574eaf4a02e1ed8fedded1fcd44952bbd9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
insomniaircd_conf
==============================================================================

This repositories contains config templates for InspIRCd at InsomniaIRC.
The templates are compiles into a realized config by the [`Rakefile`](Rakefile).
The templates may be ERB files which are rendered as part of the compiling
process.

Each server in the IRC network needs a nearly identical config, save for a
few values such as the server name. The settings specific to each server
are stored `servers` hash in the [`network.yaml`](network.yaml) file. The
hash for the current server can be retreived with the `server` method in
ERB templates.

The `network.yaml` file also facilitates linking by allowing you to specify
simply the hostname to link with. The config template figures out the
rest.

IRC configs tend to contain many secrets: linking passwords, oper hashes,
etc. To secure those secrets, each one is encrypted with AES256 and stored
in the `secrets` hash in the network.yaml file. To generate the config you
must set the SECRET_KEY environment variable to the key or place the key
in the secret.key file.

Usage
------------------------------------------------------------------------------

### Directory Stucture

* `network.yaml` contains server specific configs, secrets, and opers.
* `config-src/` contains the templates to process. Files ended in .erb are
  rendered according. All other files are copied verbatim. Directories are
  ignored.
* `conf/` will contain the rendered config after it is compiles.

To compile the configs for the server euclid.insomniairc.net, run:

    SECRET_KEY=SHHH rake compile[euclid.insomniairc.net]

Obviously replacing `SHHH` with your actual AES key.