IRC Server Software reddit / irc ---------------------------------------------------------------------- selflessscoundrel · 2018-10-04 04:10 I'm looking into building a personal IRC server - mainly for educational reasons. The first thing I noticed is that there are a ton of options for IRC software. I am running FreeBSD 11.2. [For reference](https://en.wikipedia.org/wiki/Comparison_of_Internet_R elay_Chat_daemons) What are the considerations in choosing IRC server software? Anyone with experience have any tips? ---------------------------------------------------------------------- doaks-ltm · 2018-10-04 05:34 For just a general server to mess around with, or learn how IRC works, most of them can be considered pretty similar. The usual options these days are [InspIRCd](http://www.inspircd.org/) and [Unreal](https://www.unrealircd.org/), but as linked there's a ton of different ones out there (including little [homebrew ones](https://oragono.io/) that can be fun to play with). I usually like looking at the configuration file format to see how easy it is to modify, and how difficult it is to compile from scratch. If you stick to the bigger ones and don't really want to run any large loads through them, any should work performance-wise. ---------------------------------------------------------------------- selflessscoundrel · 2018-10-04 05:42 I noticed that FreeBSD has a package for InspIRCd so I'll probably start with that, and also a package for anope. I've taken some time today to read the [wiki](https://wiki.inspircd.org/Introduction) for InspIRCd and it seems straight forward. ---------------------------------------------------------------------- doaks-ltm · 2018-10-04 05:57 Definitely, sounds good! I know that for a lot of Linux distros, the packaged version is way out of date (to the tune of years, even) and contain maany bugs as a result. Not sure how FreeBSD handles them though so hopefully it's a bit better~ ---------------------------------------------------------------------- selflessscoundrel · 2018-10-04 05:59 Seems that the versions match. I don't know if I want to go through the whole configure make make install route. I'm decent enough at the command line but things like jails and compiling take me time. ---------------------------------------------------------------------- doaks-ltm · 2018-10-04 06:02 Perfect, yeah in that case using the packages should be all good! Good luck and let us know how you get on :) ---------------------------------------------------------------------- selflessscoundrel · 2018-10-04 11:44 So far, this is what I have done: Used Oracle Virtualbox to create a base FreeBSD 11.2 server on my computer. Created user "ircadmin" and downloaded the tarball from https://github.com/inspircd/inspircd/archive/v2.0.26.tar.gz I had to install a few pkg's to get the make and make install to work pkg install wget pkg install perl5 configure make make install It was quite simple on BSD to do the compiling. Now I have to configure and figure out how to run the server on startup under the ircadmin user (as opposed to root). I was tempted to create a chroot "jail" on BSD but considering I plan on rolling this setup permanently on a virtual server, running a jail in a virtual server seems redundant. ---------------------------------------------------------------------- selflessscoundrel · 2018-10-04 11:45 see update in thread. ---------------------------------------------------------------------- selflessscoundrel · 2018-10-06 08:35 I am currently using this [wiki page](https://wiki.inspircd.org/Annotated_Configuration) to build a default inspircd.conf for a test server. I'm about halfway through. ---------------------------------------------------------------------- selflessscoundrel · 2018-10-11 07:33 Ok. So I got a BASIC IRC server up and running. I will post resources here. Software used: 1) FreeBSD 11.2 - [Download link](https://www.freebsd.org/where.html) 2) InspIRCd - I grabbed the TAR.GZ file from github using wget from the command line. The link to the download page is [here](https://github.com/inspircd/inspircd/releases/tag/v2.0.26). Current version is 2.0.26 3) As I said previously, wget was used to get the tar file. You will need to install wget on FreeBSD. I used the pkg command. More on setting up and using the pkg command [here](https://www.freebsd.org/doc/handbook/pkgng-intro.html) 4) Perl5 will also need to be installed onto FreeBSD using pkg. 5) FreeBSD will not support the "recommended" ssl package GNUTLS. While you could attempt to force it by downloading ports and such, I decided to simply use OpenSSL since it is supported by default on FreeBSD. On Linux systems like Debian and such, GNUTLS is recommended for your SSL needs. Other than that, I followed some really basic steps. 1) Create a user that will run your new IRC server. The installation scripts for inspIRCd will not allow you to do the configure/make/make install as root, which is a good thing. I created a user inspircd for this purpose. You do not need to give this person a password. The only time you should access this password is when you use the command "su" to change to that user. This is good security wise because no one is going to be able to ssh or login as your "system" account. 2) As root, su to your user account created in step 1 3) Use wget to download the tar.gz file mentioned above. 4) tar -xf <> 5) change directory to the new directory created, which should be something like /home/<>/inspircd-v2.0.26 6) Run ./configure 6*) If you get errors here, you need to make sure Perl5 is installed. 7) Go through the VERY WELL DESIGNED configure process. It is pretty self explanatory. Use the default installation paths provided. It will basically install everything into /home/<>/inspircd-v2.0.26/run 8) Run ./make to compile your software 9) Run ./make install to install your software 10) You now need to hand craft your inspircd.conf file. The conf file will live in the /conf directory where you did your install. This is a long process and I spent most of my time trying to understand it. Good resources to use are - [InspIRCd Linux Setup Guide](https://www.jamieweb.net/blog/inspircd-linux-guide/) ((just the config part, and ignore the GNUTLS part if using OpenSSL)). Also [Annotated configuration from the InspIRCd wiki](https://wiki.inspircd.org/Annotated_Configuration) and [InspIRCd wiki entry on configuration](https://wiki.inspircd.org/Configuration) 11) Once your config is good (and you created files like /conf/motd.txt and /conf/rules.txt) you can start the server by running the command ./inspircd start from the /run directory of your install path. You don't need to stay logged in once you run it, it will run and then you can log out. The server will run with the credentials of the service account, instead of root, which is nice again for security. 12) If you want it to run at startup, there is apparently a way to do this in cron but I haven't gotten that far yet. This will get you a basic IRC Server you can then start messing around and learn from! ---------------------------------------------------------------------- selflessscoundrel · 2018-10-11 07:35 update again