IRC è popolare tra gli sviluppatori e gli utenti di software open source. Uno degli svantaggi di IRC è quando non sei online, potresti perdere importanti conversazioni o menzioni del tuo soprannome. Con Quassel e un piccolo VPS, puoi avere la persistenza IRC, completa di un'interfaccia utente basata sul web e un backlog ricercabile.
Presumo che tu sappia già come creare un VPS nel pannello di controllo di Vultr.
Innanzitutto, dovrai accedere al tuo pannello di controllo Vultr e crearti un nuovo VPS. In questo esempio, ho impostato un VPS Debian 9, $ 2,50 / mese. Puoi scegliere qualsiasi dimensione, ma l'obiettivo è quello di essere il più basso costo possibile. Dovrai dargli un nome, ad esempio quassel.example.net
e assicurarti di avere un record DNS A configurato.
Dato che queste istruzioni sono incentrate su Debian, dovrete modificarle leggermente se pensate di usare una diversa distribuzione Linux come Ubuntu o CentOS.
Una volta che il tuo VPS è in esecuzione, ti consigliamo di installare alcuni pacchetti per iniziare le basi.
Dovrai installare Quassel-Core, PostgreSQL, Apache e PHP, insieme a un paio di librerie in più per parlare con il server SQL.
apt-get install quassel-core postgresql libqt5sql5-psql apache2 php php-pgsql
Avrai anche bisogno di Node.js. La parte Web del server cloud IRC personale richiede Node. Le istruzioni complete per l'installazione sono disponibili qui , ma queste sono le uniche due righe necessarie:
# curl -sL https://deb.nodesource.com/setup_8.x | bash -
# apt-get install -y nodejs
Successivamente, dovrai creare un database per il core Quassel. Passa all'utente Postgres ed esegui psql
.
# su - postgres
$ psql
Una volta che sei al prompt di PostgreSQL, dovrai creare un utente per Quassel e il suo database:
CREATE USER quassel ENCRYPTED PASSWORD 'somepassword';
CREATE DATABASE quassel WITH OWNER quassel ENCODING 'UTF8';
Ora che le basi sono configurate, ora puoi avviare il client Quassel e connetterti al tuo core.
Quando avvii il client Quassel sul tuo computer locale, ti verrà presentata una finestra di dialogo di connessione. Immettere l'indirizzo IP o il nome host del VPS e il numero di porta (impostazione predefinita: 4242) e selezionare SSL. Se si dispone di un server proxy, è possibile inserire i dettagli del proxy nella finestra di dialogo.
Durante la prima connessione, verrai guidato attraverso un'altra procedura guidata per configurare il core. Inserisci il tuo primo nome utente e password Quasselcore. Il primo utente sarà l'amministratore. Quindi, selezionare il backend del database PostgreSQL e fornire il nome utente e la password del database Quassel come definito nel passaggio precedente.
Dopo aver configurato le basi del core, è ora possibile impostare la parte Web. Ciò ti consente di connetterti al tuo core da qualsiasi browser web. Useremo Quassel-Webserver .
Creare un utente per il servizio Web:
# useradd -d /opt/quassel-webserver -M -r quassel-webserver
Ora abbassa il server web Quassel e modifica la proprietà per l'utente precedentemente creato:
# git clone https://github.com/magne4000/quassel-webserver.git /opt/quassel-webserver
# chown -R quassel-webserver:quasselweb-server /opt/quassel-webserver
È quindi necessario "installare" l'applicazione Node.js:
# su - quassel-webserver
$ npm install --production
Copiare il settings.js
per settings-user.js
e cambiare i host
, forcedefault
e prefixpath
valori:
host: 'localhost',
forcedefault: 'true',
prefixpath: '/app'
Nel /opt/quassel-webserver
percorso come root, è possibile installare il file di servizio per Systemd.
# cp scripts/quassel-webserver.service /lib/systemd/system/quassel-webserver.service
Dovrai modificare /lib/systemd/system/quassel-webserver.service
e cambiare la ExecStart
linea:
ExecStart=/usr/bin/node /opt/quassel-webserver/app.js -l 127.0.0.1 -m http
Ora puoi abilitare e avviare il server web Quassel:
systemctl enable quassel-webserver.service
systemctl start quassel-webserver.service
È possibile verificare che quassel-webserver sia in esecuzione eseguendo systemctl status quassel-webserver.service
. Se vedi Active: active (running)
, sei pronto!
Successivamente, configureremo Apache.
Dovrai abilitare alcuni moduli per iniziare, come proxy_http
, proxy_wstunnel
e rewrite
.
# a2enmod proxy_http proxy_wstunnel rewrite
Crea un nuovo file di configurazione per 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>
E abilita il tuo sito:
a2ensite quassel
Riavvia Apache per applicare le modifiche:
systemctl restart apache2
Se tutto è andato per il verso giusto, ora puoi cercare la tua quassel-webserver
istanza su http://quassel.example.net
.
Successivamente, configureremo una ricerca per backlog . Ciò richiederà modifiche al quassel-core
database. Innanzitutto, iniziamo con la clonazione del codice sorgente:
# git clone https://github.com/justjanne/quassel-rest-search.git /opt/quassel-rest-search
Una volta clonato, rinominare il file qrs_config.default.php
per qrs_config.php
e modificare il file. Sarà necessario definire il database db_name
, db_user
, db_path
e path_prefix
. Dovrebbe finire per assomigliare a questo:
<?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');
Successivamente, modifichiamo il database per essere utilizzato da quassel-rest-search
:
Passa postgres
all'utente ed esegui psql
:
# su - postgres
$ psql quassel
Innanzitutto, aggiungi una nuova colonna alla tabella di backlog:
ALTER TABLE backlog ADD COLUMN tsv tsvector;
In secondo luogo, aggiungere i due nuovi indici:
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;
In terzo luogo, imposta un trigger per popolare la colonna tsv:
CREATE TRIGGER tsvectorupdate
BEFORE INSERT OR UPDATE
ON backlog
FOR EACH ROW
EXECUTE PROCEDURE tsvector_update_trigger('tsv', 'pg_catalog.english', 'message');
In quarto luogo, popolare la tsv
colonna " ":
UPDATE backlog SET messageid = messageid;
Ora puoi aggiornare la configurazione di Apache che abbiamo creato in precedenza e aggiungere:
# Quassel Search
Alias /search /opt/quassel-rest-search
<Directory /opt/quassel-rest-search>
Require all granted
</Directory>
Riavvia Apache:
systemctl restart apache2
Se tutto è andato bene, puoi navigare http://quassel.example.net/search
e vedrai una schermata di accesso.
Ora potrebbe essere un buon momento per proteggere il tuo server web usando Let's Encrypt. I dettagli su come installare e configurare Let's Encrypt sono disponibili sul sito web EFF o qui sui documenti Vultr .
Nel caso in cui ti preoccupi di rimanere senza RAM, potresti voler abilitare lo scambio sul tuo VPS. Segui questo tutorial di scambio di Linux .