Started the tutorial
This commit is contained in:
parent
ae4251f2d9
commit
55fc8ebef5
|
@ -159,14 +159,145 @@ and finally abandoned (I certainly forgot a few ones):
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: self-host
|
:CUSTOM_ID: self-host
|
||||||
:END:
|
:END:
|
||||||
|
You might use an external IRC server.
|
||||||
|
But it is a lot safer to self-host it.
|
||||||
|
|
||||||
|
Self-hosting might not be easy if you are not familiar about how to do
|
||||||
|
that.
|
||||||
|
|
||||||
|
1. buy a domain name
|
||||||
|
2. buy a machine (VPS, baremetal, host it at your home)
|
||||||
|
3. configure the DNS for your domaine name go to your machine
|
||||||
|
4. configure letsencrypt to support wildcard hostnames.
|
||||||
|
5. know how to create reverse proxy
|
||||||
|
|
||||||
|
I couldn't find a nice resource to link to with all those details.
|
||||||
|
This is certainly a call to write such article myself.
|
||||||
|
|
||||||
** Install/configure ngircd
|
** Install/configure ngircd
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: install-configure-ngircd
|
:CUSTOM_ID: install-configure-ngircd
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
|
There are multiple IRC server.
|
||||||
|
I gave my preference to [[https://github.com/ngircd/ngircd][ngircd]] because it appeared lightweight, easy to
|
||||||
|
install and configure.
|
||||||
|
|
||||||
|
So use your preferred package manager to install it:
|
||||||
|
|
||||||
|
#+begin_src
|
||||||
|
sudo apt-get install ngircd
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Configure the =/etc/ngircd/ngircd.conf= file.
|
||||||
|
I only show the really interesting lines for a private small IRC for a team.
|
||||||
|
|
||||||
|
#+begin_src src
|
||||||
|
[Global]
|
||||||
|
Name = irc.your.domain
|
||||||
|
Info = My Incredible IRC
|
||||||
|
Password = privateIRCSecretPassword
|
||||||
|
|
||||||
|
[Options]
|
||||||
|
# prevent channel creation
|
||||||
|
AllowedChannelTypes =
|
||||||
|
|
||||||
|
[SSL]
|
||||||
|
Certfile = /etc/letsencrypt/live/your.domain/fullchain.pem
|
||||||
|
Keyfile = /etc/letsencrypt/live/your.domain/privkey.pem
|
||||||
|
Ports = 6667,9999
|
||||||
|
|
||||||
|
[Channel]
|
||||||
|
# predefined channel
|
||||||
|
Name = #general
|
||||||
|
Topic = Main team channel
|
||||||
|
MaxUsers = 23
|
||||||
|
|
||||||
|
[Channel]
|
||||||
|
Name = #status
|
||||||
|
Topic = Status update channel
|
||||||
|
MaxUsers = 23
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Install/configure ZNC
|
** Install/configure ZNC
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: install-configure-znc
|
:CUSTOM_ID: install-configure-znc
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
|
Install ZNC from sources or via your package manager.
|
||||||
|
I choose sources. Choose the latest version if you can.
|
||||||
|
|
||||||
|
#+begin_src
|
||||||
|
> wget https://znc.in/releases/archive/znc-1.7.5.tar.gz
|
||||||
|
> tar xzf znc-1.7.5.tar.gz
|
||||||
|
> cd znc-1.7.5
|
||||||
|
> mkdir build
|
||||||
|
> cd build
|
||||||
|
> make
|
||||||
|
> make install
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Then create your config file for example via:
|
||||||
|
|
||||||
|
#+begin_src
|
||||||
|
> znc --makeconf
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
For the question, keep buffers after replay, you should certainly answer
|
||||||
|
yes.
|
||||||
|
To use znc web interface behind an nginx reverse proxy:
|
||||||
|
|
||||||
|
#+begin_src conf
|
||||||
|
<Listener listener0>
|
||||||
|
AllowIRC = false
|
||||||
|
AllowWeb = true
|
||||||
|
Host = localhost
|
||||||
|
IPv4 = true
|
||||||
|
IPv6 = false
|
||||||
|
Port = 10001
|
||||||
|
SSL = false
|
||||||
|
URIPrefix = /
|
||||||
|
</Listener>
|
||||||
|
|
||||||
|
<Listener listener1>
|
||||||
|
AllowIRC = true
|
||||||
|
AllowWeb = false
|
||||||
|
IPv4 = true
|
||||||
|
IPv6 = true
|
||||||
|
Port = 10002
|
||||||
|
SSL = true
|
||||||
|
URIPrefix = /
|
||||||
|
</Listener>
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
*** Playback module
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: playback-module
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+begin_src
|
||||||
|
> cd ~/.znc/modules
|
||||||
|
> wget ...../playback.cpp
|
||||||
|
> znc-buildmod playback.cpp
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Should create a =playback.so=.
|
||||||
|
|
||||||
|
*** Palaver push module
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: palaver-push-module
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+begin_src
|
||||||
|
> git clone ... znc-palaver
|
||||||
|
> cd znc-palaver
|
||||||
|
> znc-buildmod palaver.cpp
|
||||||
|
> cp palaver.so ~/.znc/modules/
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
That's it.
|
||||||
|
The major modernizer of IRC are here in ZNC.
|
||||||
|
|
||||||
** Install/configure clients
|
** Install/configure clients
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: install-configure-clients
|
:CUSTOM_ID: install-configure-clients
|
||||||
|
|
Loading…
Reference in a new issue