This repository has been archived by the owner on Jun 24, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 40
Chat
libertysoft3 edited this page Jul 29, 2020
·
1 revision
$ sudo apt-get install make gcc build-essential openssl libssl-dev libcurl4-openssl-dev zlib1g zlib1g-dev zlibc libgcrypt11 libgcrypt11-dev
# UPDATE to the latest stable release
$ wget https://www.unrealircd.org/unrealircd4/unrealircd-4.2.3.tar.gz
$ tar xzvf unrealircd-4.2.3.tar.gz
$ cd unrealircd-4.2.3/
$ ./Config
# Press [Enter] a bunch of times, press space to read the license, wait for configuration tasks
# For "Do you want to generate an SSL certificate for the IRCd?" respond "No"
$ make
$ make install
Configure unreal:
$ cd ~/unrealircd
$ cp conf/examples/example.conf conf/unrealircd.conf
$ nano conf/unrealircd.conf
# change 'oper bobsmith' to `oper ircoperator`
# change 'password "test";' to a unique password
# add 2 more keys to section 'cloak-keys'
# set 'kline-address' to a valid email address
# set 'maxchannelsperuser' t0 50
# in 'allow' block for ip '*@*' change 'maxperip' to 10
Also add a new allow block (after the '@' block):
allow { ip *@127.0.0.1; class clients; maxperip 50000; };
in the final 'set' block 'Server specific configuration', near the end of , add:
ssl {
certificate "/etc/ssl/certs/ssl-cert-snakeoil.pem";
key "/etc/ssl/private/ssl-cert-snakeoil.key";
};
Also add the following before ulines
for anope services:
link services.reddit.local
{
incoming {
mask *@127.0.0.1;
};
outgoing {
bind-ip *; /* or explicitly an IP */
hostname services.reddit.local;
port 6900;
options { ssl; };
};
password "my-services-password-1234";
class servers;
};
Also change ulines
to:
ulines {
services.reddit.local;
};
Setup SSL cert permissions, start unreal, and cleanup:
$ sudo usermod -aG ssl-cert reddit
$ sudo usermod -aG ssl-cert irc
$ ./unrealircd start
$ rm -rf ~/unrealircd-4.2.3*
This provides ListServ, ChanServ, etc.
$ cd ~
$ sudo apt-get install cmake build-essential
# update version number to the latest stable release:
$ wget https://github.com/anope/anope/releases/download/2.0.6/anope-2.0.6-source.tar.gz
$ tar xzvf anope-2.0.6-source.tar.gz
$ cd anope-2.0.6-source
$ ./Config
# press [Enter] a bunch, accept defaults
$ cd build/
$ make
$ make install
Configure anope:
$ cd ~/services/conf/
$ cp nickserv.example.conf nickserv.conf
$ nano nickserv.conf
# set guestnickprefix = "guest" (for The Lounge autconnect feature)
$ cp operserv.example.conf operserv.conf
$ nano operserv.conf
# NOTE: insecure if you allow outside access to IRC/6667, instead just change maxsessionlimit only and later run:
# /msg OperServ exception add +0 127.0.0.1 50000 Allow many localhost TheLounge clients
# set defaultsessionlimit = 50000, maxsessionlimit = 50000 (since everyone connects from localhost)
$ cp example.conf services.conf
$ nano services.conf
# note: not using SSL since connecting to localhost
# set uplink::port to 6667
# set uplink::password to 'my-services-password-1234'
# set serverinfo::name to services.reddit.local
# comment out the botserv include, search for `botserv.example.conf`
# change `nickserv.example.conf` to `nickserv.conf`
# change `operserv.example.conf` to `operserv.conf`
# change `inspircd20` (in `module`) to `unreal4`
add this oper section near the existing disabled ones:
oper
{
name = "ircoperator"
type = "Services Root"
require_oper = yes
}
start anope and cleanup:
$ cd ~/services/bin
$ ./services
$ rm -rf ~/anope-2.0.6*
$ cd ~
$ git clone https://github.com/libertysoft3/lounge-autoconnect.git
$ cd lounge-autoconnect
# update to the latest autoconnect branch
$ git checkout v2.4.0-autoconnect
$ npm install
$ NODE_ENV=production npm run build
$ node index config
# [ESC] : q to quit
configure TheLounge, SSL cert paths may need to be adjusted:
$ nano ~/.lounge/config.js
# edit to match:
# public: false,
# port: 2053,
# theme: "themes/zenburn.css",
# prefetch: true,
# prefetchStorage: true,
# prefetchMaxImageSize: 2048,
# lockNetwork: true,
# defaults { name: "saiditDEV", host: "127.0.0.1", nick: "guest", username: "guest", realname: "Guest", join: "#home" }
# https: { enable: true, key: "/etc/ssl/private/ssl-cert-snakeoil.key", certificate: "/etc/ssl/certs/ssl-cert-snakeoil.pem" }
add an intial user so the server will start:
$ cd ~/lounge-autoconnect
$ node index add firstuser
# use a throwaway password, don't log to disk
start TheLounge:
$ cd ~/lounge-autoconnect
$ nohup npm start ./ > thelounge.log 2>&1 &