UnrealIRCd files and directories

Two directories
In the article below we talk about two directories:
 * Source directory: this is where you compile UnrealIRCd from, and nothing more (Mostly *NIX only)
 * Installed directory: this is where you install UnrealIRCd

UnrealIRCd source directory
This is the directory containing src/, include/, extras/, autoconf/ and so on. It is only used for compiling UnrealIRCd and any 3rd party modules. After that, you normally leave the directory alone.

If you installed UnrealIRCd on Windows with the installer then you won't have this.

Installed UnrealIRCd directory structure
By default UnrealIRCd gets installed to /home/xxxxx/unrealircd on *NIX and C:\Program Files\UnrealIRCd 5 on Windows.


 * /: the main directory. Contains all subdirectories (see below). On *NIX this also contains the unrealircd script to start/stop UnrealIRCd.
 * conf/: for configuration files
 * unrealircd.conf: the main configuration file
 * ircd.motd: Message Of The Day
 * ircd.smotd: Short Message Of The Day
 * oper.motd: OPERMOTD
 * bot.motd: BOTMOTD
 * aliases/: this directory contains all the aliases for services (eg: conf/aliases/anope.conf)
 * tls/: this sub-directory is used to store SSL-specific files (eg: conf/ssl/*.pem) (formerly was ssl/ in previous versions)
 * server.cert.pem: the SSL certificate for this server
 * server.key.pem: the private SSL key (must be kept secret!)
 * curl-ca-bundle.crt: list of trusted issuers of SSL certificates (shipped by UnrealIRCd, normally left untouched)
 * modules/: this directory contains all the modules (*.so or *.dll files)
 * logs/: used to store log files
 * tmp/: temporary data
 * cache/: used to store cached remote includes (in case a the HTTP[S] server is down)
 * doc/: some documentation (almost all documentation is on https://www.unrealircd.org/docs/, though)
 * bin/: On *NIX the ircd binary is here, which normally is not accessed directly. On Windows, the EXE and DLL files are in this directory.
 * data/: Persistent data, such as database files, the unrealircd control socket, etc.

Backing up UnrealIRCd
We suggest just backing up entire ~/unrealircd. But, if you are really tight on space then at least backup conf/ and data/ which are most important.

The database files (*.db) in data/ can be safely backed up while UnrealIRCd is running. Whenever there is a new database write (every X minutes), UnrealIRCd writes to a temporary file and then does an atomic rename call, so the *.db file is never "in the middle of a write" or such unsafe state. You can just back it up without worries.