IRC est populaire parmi les développeurs et les utilisateurs de logiciels open source. L'un des inconvénients de l'IRC est que lorsque vous n'êtes pas en ligne, vous risquez de manquer des conversations importantes ou des mentions de votre surnom. Avec Quassel et un petit VPS, vous pouvez avoir une persistance IRC, avec une interface utilisateur Web et un backlog consultable.
Je vais supposer que vous savez déjà comment créer un VPS dans le panneau de configuration Vultr.
Tout d'abord, vous devrez vous connecter à votre panneau de configuration Vultr et créer vous-même un nouveau VPS. Dans cet exemple, j'ai configuré un VPS Debian 9, 2,50 $ / mois. Vous pouvez choisir n'importe quelle taille, mais l'objectif est d'être le moins cher possible. Vous devrez lui donner un nom, tel que quassel.example.netet vous assurer d'avoir un enregistrement DNS A configuré.
Étant donné que ces instructions sont axées sur Debian, vous devrez les modifier légèrement si vous prévoyez d'utiliser une distribution Linux différente telle que Ubuntu ou CentOS.
Une fois que votre VPS est en cours d'exécution, vous souhaiterez installer quelques packages pour obtenir les bases.
Vous devrez installer Quassel-Core, PostgreSQL, Apache et PHP, ainsi que quelques bibliothèques supplémentaires pour parler au serveur SQL.
apt-get install quassel-core postgresql libqt5sql5-psql apache2 php php-pgsql
Vous aurez également besoin de Node.js. La partie Web de votre serveur cloud IRC personnel nécessite Node. Des instructions complètes pour l'installation peuvent être trouvées ici , mais ce sont les deux seules lignes dont vous aurez besoin:
# curl -sL https://deb.nodesource.com/setup_8.x | bash -
# apt-get install -y nodejs
Ensuite, vous devrez créer une base de données pour le noyau Quassel. Basculez vers l'utilisateur Postgres et exécutez psql.
# su - postgres
$ psql
Une fois à l'invite PostgreSQL, vous devrez créer un utilisateur pour Quassel et sa base de données:
CREATE USER quassel ENCRYPTED PASSWORD 'somepassword';
CREATE DATABASE quassel WITH OWNER quassel ENCODING 'UTF8';
Maintenant que les bases sont configurées, vous pouvez maintenant lancer le client Quassel et vous connecter à votre cœur.
Lorsque vous démarrez le client Quassel sur votre ordinateur local, une boîte de dialogue de connexion s'affiche. Saisissez l'adresse IP ou le nom d'hôte de votre VPS et le numéro de port (par défaut: 4242) et sélectionnez SSL. Si vous avez un serveur proxy, vous pouvez entrer les détails du proxy dans la boîte de dialogue.
Lors de la première connexion, vous serez guidé à travers un autre assistant pour configurer le core. Saisissez votre premier nom d'utilisateur et mot de passe Quasselcore. Le premier utilisateur sera l'administrateur. Ensuite, sélectionnez le backend de la base de données PostgreSQL et fournissez le nom d'utilisateur et le mot de passe de la base de données Quassel tels que définis à l'étape précédente.
Une fois que vous avez configuré les bases de votre cœur, vous pouvez maintenant configurer la partie Web. Cela vous permet de vous connecter à votre cœur depuis n'importe quel navigateur Web. Nous allons utiliser Quassel-Webserver .
Créez un utilisateur pour le service Web:
# useradd -d /opt/quassel-webserver -M -r quassel-webserver
Maintenant, déroulez le serveur Web Quassel et remplacez la propriété par l'utilisateur précédemment créé:
# git clone https://github.com/magne4000/quassel-webserver.git /opt/quassel-webserver
# chown -R quassel-webserver:quasselweb-server /opt/quassel-webserver
Vous devez ensuite "installer" l'application Node.js:
# su - quassel-webserver
$ npm install --production
Copiez le settings.jspour settings-user.js et changer les host, forcedefaultet les prefixpathvaleurs:
host: 'localhost',
forcedefault: 'true',
prefixpath: '/app'
Dans le /opt/quassel-webserverchemin en tant que root, vous pouvez installer le fichier de service pour Systemd.
# cp scripts/quassel-webserver.service /lib/systemd/system/quassel-webserver.service
Vous devrez éditer /lib/systemd/system/quassel-webserver.serviceet changer la ExecStartligne:
ExecStart=/usr/bin/node /opt/quassel-webserver/app.js -l 127.0.0.1 -m http
Vous pouvez maintenant activer et démarrer le serveur Web Quassel:
systemctl enable quassel-webserver.service
systemctl start quassel-webserver.service
Vous pouvez vérifier que le serveur web quassel fonctionne en exécutant systemctl status quassel-webserver.service. Si vous voyez Active: active (running), vous êtes prêt!
Ensuite, nous allons configurer Apache.
Vous devrez activer quelques modules pour commencer, tels que proxy_http, proxy_wstunnelet rewrite.
# a2enmod proxy_http proxy_wstunnel rewrite
Créez un nouveau fichier de configuration pour Quassel:
# nano /etc/apache2/sites-available/quassel.conf
<VirtualHost *:80>
ServerName quassel.example.net
ServerAdmin [email protected]
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Enable Rewrite
RewriteEngine on
# Redirect to /app by default
RedirectMatch ^/$ /app
# Quassel Webserver
RewriteRule /app/p/socket(.*) ws://127.0.0.1:64080/app/p/socket$1 [P,L]
ProxyPass /app http://127.0.0.1:64080/app
</VirtualHost>
Et activez votre site:
a2ensite quassel
Redémarrez Apache pour appliquer les modifications:
systemctl restart apache2
Si tout s'est bien passé, vous pouvez maintenant accéder à votre quassel-webserverinstance sur http://quassel.example.net.
Ensuite, nous allons configurer une recherche de backlog . Cela nécessitera des modifications de la quassel-corebase de données. Tout d'abord, commençons par cloner le code source:
# git clone https://github.com/justjanne/quassel-rest-search.git /opt/quassel-rest-search
Une fois cloné, renommez le fichier qrs_config.default.phpà qrs_config.phpéditer le fichier. Vous devez définir votre base de données db_name, db_user, db_pathet path_prefix. Cela devrait finir par ressembler à ceci:
<?php
define('db_host', 'localhost');
define('db_port', 5432);
define('db_name', 'quassel');
//Only change this if you know what you are doing
define('db_connector', null);
define('db_user', 'quassel');
define('db_pass', 'somepassword');
define('backend', 'pgsql-smart');
define('path_prefix', '/search');
Ensuite, nous modifions la base de données à utiliser par quassel-rest-search:
Basculez vers l' postgresutilisateur et exécutez psql:
# su - postgres
$ psql quassel
Tout d'abord, ajoutez une nouvelle colonne à la table de backlog:
ALTER TABLE backlog ADD COLUMN tsv tsvector;
Deuxièmement, ajoutez les deux nouveaux indices:
CREATE INDEX backlog_tsv_idx
ON backlog
USING gin(tsv);
CREATE INDEX backlog_tsv_filtered_idx
ON backlog
USING gin(tsv)
WHERE (type & 23559) > 0;
Troisièmement, configurez un déclencheur pour remplir la colonne tsv:
CREATE TRIGGER tsvectorupdate
BEFORE INSERT OR UPDATE
ON backlog
FOR EACH ROW
EXECUTE PROCEDURE tsvector_update_trigger('tsv', 'pg_catalog.english', 'message');
Quatrièmement, remplissez la tsvcolonne " ":
UPDATE backlog SET messageid = messageid;
Vous pouvez maintenant mettre à jour la configuration Apache que nous avons créée précédemment et ajouter:
# Quassel Search
Alias /search /opt/quassel-rest-search
<Directory /opt/quassel-rest-search>
Require all granted
</Directory>
Redémarrez Apache:
systemctl restart apache2
Si tout s'est bien passé, vous pouvez naviguer vers http://quassel.example.net/searchet vous verrez un écran de connexion.
Le moment est peut-être venu de sécuriser votre serveur Web à l'aide de Let's Encrypt. Les détails sur l'installation et la configuration de Let's Encrypt sont disponibles sur le site Web de l'EFF ou ici sur les documents Vultr .
Dans le cas où vous craignez de manquer de RAM, vous souhaiterez peut-être activer l'échange sur votre VPS. Veuillez suivre ce didacticiel d'échange de Linux .