aboutsummaryrefslogtreecommitdiff
path: root/blog/2023-06-23-self-hosting-convos-irc.org
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2023-12-02 23:27:35 -0600
committerChristian Cleberg <hello@cleberg.net>2023-12-02 23:27:35 -0600
commit3d4da5ac6000a4871c5caa80d1e61f2782da3069 (patch)
tree29f36b50823d22f4c7df0a3db3ede83192ae649f /blog/2023-06-23-self-hosting-convos-irc.org
parentdcf0186e16b6ac8f0e00a3aeb9734421ce548177 (diff)
downloadcleberg.net-3d4da5ac6000a4871c5caa80d1e61f2782da3069.tar.gz
cleberg.net-3d4da5ac6000a4871c5caa80d1e61f2782da3069.tar.bz2
cleberg.net-3d4da5ac6000a4871c5caa80d1e61f2782da3069.zip
feat: finish converting md to org
Diffstat (limited to 'blog/2023-06-23-self-hosting-convos-irc.org')
-rw-r--r--blog/2023-06-23-self-hosting-convos-irc.org215
1 files changed, 112 insertions, 103 deletions
diff --git a/blog/2023-06-23-self-hosting-convos-irc.org b/blog/2023-06-23-self-hosting-convos-irc.org
index 2f62061..b86d01b 100644
--- a/blog/2023-06-23-self-hosting-convos-irc.org
+++ b/blog/2023-06-23-self-hosting-convos-irc.org
@@ -1,40 +1,43 @@
-+++
-date = 2023-06-23T20:50:00
-title = "Self-Hosting Convos IRC Web Client"
-description = ""
-+++
+#+title: Self-Hosting Convos: IRC Web Client
+#+date: 2023-06-23
-## Convos
-
-[Convos](https://convos.chat/) is an always-online web client for IRC. It
-has a few features that made it attractive to me as a self-hosted option:
+** Convos
+:PROPERTIES:
+:CUSTOM_ID: convos
+:END:
+[[https://convos.chat/][Convos]] is an always-online web client for IRC.
+It has a few features that made it attractive to me as a self-hosted
+option:
- Extremely simple Docker Compose installation method.
-- Runs in the background and monitors chats even while you're not logged in.
+- Runs in the background and monitors chats even while you're not logged
+ in.
- Neatly organized sidebar for conversation and client settings.
- Ability to connect to different hosts and create profiles for hosts.
-- By default, registration is closed to the public. You can enable public
- registration on the Settings page or generate invitation links on the
- Users page.
-- Customization of the client theme, organization name and URL, admin email,
- and video service.
-
-## Docker Installation
-
-To install Convos, simply create a directory and a `docker-compose.yml` file:
-
-```sh
+- By default, registration is closed to the public. You can enable
+ public registration on the Settings page or generate invitation links
+ on the Users page.
+- Customization of the client theme, organization name and URL, admin
+ email, and video service.
+
+** Docker Installation
+:PROPERTIES:
+:CUSTOM_ID: docker-installation
+:END:
+To install Convos, simply create a directory and a =docker-compose.yml=
+file:
+
+#+begin_src sh
mkdir ~/convos && cd ~/convos
nano docker-compose.yml
-```
+#+end_src
-With the `docker-compose.yml` file open, paste the configuration below into
-the file.
-You can customize the host port to be something unique, such as `21897:3000`.
-You can also change the `data` folder to be a docker volume instead, if you
-prefer.
+With the =docker-compose.yml= file open, paste the configuration below
+into the file. You can customize the host port to be something unique,
+such as =21897:3000=. You can also change the =data= folder to be a
+docker volume instead, if you prefer.
-```config
+#+begin_src config
version: '3'
services:
@@ -47,118 +50,124 @@ services:
environment:
- CONVOS_REVERSE_PROXY=1
restart: always
-```
+#+end_src
-Save the `docker-compose.yml` file and bring the container up:
+Save the =docker-compose.yml= file and bring the container up:
-```sh
+#+begin_src sh
sudo docker-compose up -d
-```
+#+end_src
-At this point, Convos is available at `<server_ip>:3000` but not available
-to the public.
+At this point, Convos is available at =<server_ip>:3000= but not
+available to the public.
-## Nginx Reverse Proxy
+** Nginx Reverse Proxy
+:PROPERTIES:
+:CUSTOM_ID: nginx-reverse-proxy
+:END:
+If you're using Nginx, you can create a configuration file for the
+convos application. Start by opening the file:
-If you're using Nginx, you can create a configuration file for the convos
-application.
-Start by opening the file:
-
-```sh
+#+begin_src sh
nano /etc/nginx/sites-available/convos
-```
+#+end_src
-Within the nginx configuration file, paste the following content and be sure
-to update `convos.example.com` to match your domain and `127.0.0.1:3000` to
-match the port you opened in the `docker-compose.yml` file.
+Within the nginx configuration file, paste the following content and be
+sure to update =convos.example.com= to match your domain and
+=127.0.0.1:3000= to match the port you opened in the
+=docker-compose.yml= file.
-```config
+#+begin_src config
# Host and port where convos is running
upstream convos_upstream { server 127.0.0.1:3000; }
server {
- if ($host ~ ^[^.]+\.example\.com$) {
- return 301 https://$host$request_uri;
- }
-
- listen [::]:80;
- listen 80;
- server_name convos.example.com;
- return 404;
+ if ($host ~ ^[^.]+\.example\.com$) {
+ return 301 https://$host$request_uri;
+ }
+
+ listen [::]:80;
+ listen 80;
+ server_name convos.example.com;
+ return 404;
}
server {
- listen [::]:443 ssl http2;
- listen 443 ssl http2;
- server_name convos.example.com;
- access_log /var/log/nginx/convos.access.log;
- error_log /var/log/nginx/convos.error.log;
-
- location / {
- proxy_pass http://convos_upstream;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection "upgrade";
- client_max_body_size 0;
- proxy_set_header Host $host;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Request-Base "$scheme://$host/";
- }
-
- ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
- ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
- include /etc/letsencrypt/options-ssl-nginx.conf;
- ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+ listen [::]:443 ssl http2;
+ listen 443 ssl http2;
+ server_name convos.example.com;
+ access_log /var/log/nginx/convos.access.log;
+ error_log /var/log/nginx/convos.error.log;
+
+ location / {
+ proxy_pass http://convos_upstream;
+ proxy_http_version 1.1;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection "upgrade";
+ client_max_body_size 0;
+ proxy_set_header Host $host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Request-Base "$scheme://$host/";
+ }
+
+ ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
+ ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
+ include /etc/letsencrypt/options-ssl-nginx.conf;
+ ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
-```
+#+end_src
-Once the file is saved, link it to the `sites-enabled` directory and restart
-Nginx.
+Once the file is saved, link it to the =sites-enabled= directory and
+restart Nginx.
-```sh
+#+begin_src sh
sudo ln -s /etc/nginx/sites-available/convos /etc/nginx/sites-enabled/convos
sudo systemctl restart nginx.service
-```
-
-## Screenshots
+#+end_src
-See the screenshots below for an example of the Convos homepage and an
+** Screenshots
+:PROPERTIES:
+:CUSTOM_ID: screenshots
+:END:
+See the screenshots below for an example of the Convos homepage and an
excerpt of the chat screen.
-There are numerous themes to choose from; the theme shown in the images
+There are numerous themes to choose from; the theme shown in the images
below is Dracula.
-![Convos Home](https://img.cleberg.net/blog/20230623-convos/convos_home.png
-"Convos Home")
-
-![Convos Chat](https://img.cleberg.net/blog/20230623-convos/convos_chat.png
-"Convos Chat")
+#+caption: Convos Home
+[[https://img.cleberg.net/blog/20230623-convos/convos_home.png%20%22Convos%20Home%22]]
-## Registering a Nickname
+#+caption: Convos Chat
+[[https://img.cleberg.net/blog/20230623-convos/convos_chat.png%20%22Convos%20Chat%22]]
-Hop into the server channel so that you can message NickServ. In the case of
-Convos, the default sever is libera.chat.
-Simply click the `libera` conversation at the top of the sidebar to open it.
-Once the chat is open, you can claim a nickname by typing:
+** Registering a Nickname
+:PROPERTIES:
+:CUSTOM_ID: registering-a-nickname
+:END:
+Hop into the server channel so that you can message NickServ. In the
+case of Convos, the default sever is libera.chat. Simply click the
+=libera= conversation at the top of the sidebar to open it. Once the
+chat is open, you can claim a nickname by typing:
-```txt
+#+begin_src txt
/nick <nick>
-```
+#+end_src
-If the nickname is available, and you'd like to register the nickname to
+If the nickname is available, and you'd like to register the nickname to
yourself, you'll need to type another command:
-```txt
+#+begin_src txt
/msg NickServ REGISTER
<password> <email>
-```
+#+end_src
-On libera.chat, the server will send a confirmation email with a command
+On libera.chat, the server will send a confirmation email with a command
that you must message in IRC to verify registration of the nickname:
-```txt
+#+begin_src txt
/msg NickServ VERIFY REGISTER <nick> <verification_code>
-```
+#+end_src
-Once entered, the server should confirm registration of the nickname to the
-supplied email with the password specified.
+Once entered, the server should confirm registration of the nickname to
+the supplied email with the password specified.