IRC er populært blant utviklere og brukere av åpen kildekode-programvare. En av ulempene med IRC er at når du ikke er på nett, kan du gå glipp av viktige samtaler eller omtale av kallenavnet ditt. Med Quassel og en liten VPS kan du ha IRC-utholdenhet, komplett med et nettbasert brukergrensesnitt og en søkbar backlog.
Jeg kommer til å anta at du allerede vet hvordan du lager en VPS i Vultr-kontrollpanelet.
Først må du logge på Vultr-kontrollpanelet ditt og lage deg en helt ny VPS. I dette eksemplet har jeg satt opp en Debian 9, $2,50/måned VPS. Du kan velge hvilken som helst størrelse, men målet for dette er å være så lave kostnader som mulig. Du må gi den et navn, for eksempel quassel.example.netog sørge for at du har konfigurert en DNS A-post.
Siden disse instruksjonene er fokusert rundt Debian, må du endre dem litt hvis du planlegger å bruke en annen Linux-distribusjon som Ubuntu eller CentOS.
Når VPS-en din kjører, vil du installere noen pakker for å få det grunnleggende i gang.
Du må installere Quassel-Core, PostgreSQL, Apache og PHP, sammen med et par flere biblioteker for å snakke med SQL-serveren.
apt-get install quassel-core postgresql libqt5sql5-psql apache2 php php-pgsql
Du kommer også til å trenge Node.js. Nettdelen av din personlige IRC-skyserver krever Node. Fullstendige instruksjoner for installasjon finner du her , men dette er de eneste to linjene du trenger:
# curl -sL https://deb.nodesource.com/setup_8.x | bash -
# apt-get install -y nodejs
Deretter må du opprette en database for Quassel-kjernen. Bytt til Postgres-brukeren og kjør psql.
# su - postgres
$ psql
Når du er ved PostgreSQL-ledeteksten, må du opprette en bruker for Quassel og dens database:
CREATE USER quassel ENCRYPTED PASSWORD 'somepassword';
CREATE DATABASE quassel WITH OWNER quassel ENCODING 'UTF8';
Nå som det grunnleggende er konfigurert, kan du nå starte Quassel-klienten og koble til kjernen din.
Når du starter Quassel-klienten på din lokale maskin, vil du bli presentert med en tilkoblingsdialog. Skriv inn IP-adressen eller vertsnavnet til VPS-en din og portnummeret (standard: 4242) og velg SSL. Hvis du har en proxy-server, kan du angi proxy-detaljene i dialogboksen.
Under den første tilkoblingen vil du bli guidet gjennom en annen veiviser for å konfigurere kjernen. Skriv inn ditt første Quasselcore brukernavn og passord. Den første brukeren vil være administrator. Deretter velger du PostgreSQL-databasestøtten og oppgir Quassel-databasens brukernavn og passord som definert i forrige trinn.
Når du har konfigurert det grunnleggende for kjernen din, kan du nå sette opp webdelen. Dette lar deg koble til kjernen fra hvilken som helst nettleser. Vi skal bruke Quassel-Webserver .
Opprett en bruker for nettjenesten:
# useradd -d /opt/quassel-webserver -M -r quassel-webserver
Trekk nå ned Quassel-nettserveren og endre eierskapet til den tidligere opprettede brukeren:
# git clone https://github.com/magne4000/quassel-webserver.git /opt/quassel-webserver
# chown -R quassel-webserver:quasselweb-server /opt/quassel-webserver
Du må da "installere" Node.js-applikasjonen:
# su - quassel-webserver
$ npm install --production
Kopier settings.jstil settings-user.js og endre host, forcedefaultog prefixpathverdiene:
host: 'localhost',
forcedefault: 'true',
prefixpath: '/app'
Mens du er i /opt/quassel-webserverbanen som root, kan du installere tjenestefilen for Systemd.
# cp scripts/quassel-webserver.service /lib/systemd/system/quassel-webserver.service
Du må redigere /lib/systemd/system/quassel-webserver.serviceog endre ExecStartlinjen:
ExecStart=/usr/bin/node /opt/quassel-webserver/app.js -l 127.0.0.1 -m http
Du kan nå aktivere og starte Quassel-nettserveren:
systemctl enable quassel-webserver.service
systemctl start quassel-webserver.service
Du kan sjekke at quassel-webserveren kjører ved å kjøre systemctl status quassel-webserver.service. Hvis du ser Active: active (running), er du klar!
Deretter skal vi konfigurere Apache.
Du må aktivere noen få moduler for å begynne, for eksempel proxy_http, proxy_wstunnelog rewrite.
# a2enmod proxy_http proxy_wstunnel rewrite
Opprett en ny konfigurasjonsfil for Quassel:
# nano /etc/apache2/sites-available/quassel.conf
<VirtualHost *:80>
ServerName quassel.example.net
ServerAdmin quassel@example.net
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>
Og aktiver nettstedet ditt:
a2ensite quassel
Start Apache på nytt for å bruke endringene:
systemctl restart apache2
Hvis alt har gått bra, kan du nå bla til quassel-webserverinstansen din på http://quassel.example.net.
Deretter skal vi sette opp et etterslepsøk . Dette vil kreve endringer i quassel-coredatabasen. Først, la oss begynne med å klone kildekoden:
# git clone https://github.com/justjanne/quassel-rest-search.git /opt/quassel-rest-search
Når den er klonet, endre navn på filen qrs_config.default.phptil qrs_config.phpog rediger filen. Du må definere din database db_name, db_user, db_pathog path_prefix. Det burde ende opp med å se omtrent slik ut:
<?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');
Deretter endrer vi databasen som skal brukes av quassel-rest-search:
Bytt til postgresbrukeren og kjør psql:
# su - postgres
$ psql quassel
Først legger du til en ny kolonne i backlog-tabellen:
ALTER TABLE backlog ADD COLUMN tsv tsvector;
For det andre, legg til de to nye indeksene:
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;
For det tredje, sett opp en utløser for å fylle ut tsv-kolonnen:
CREATE TRIGGER tsvectorupdate
BEFORE INSERT OR UPDATE
ON backlog
FOR EACH ROW
EXECUTE PROCEDURE tsvector_update_trigger('tsv', 'pg_catalog.english', 'message');
For det fjerde fyller du ut tsvkolonnen:
UPDATE backlog SET messageid = messageid;
Nå kan du oppdatere Apache-konfigurasjonen som vi opprettet tidligere og legge til:
# Quassel Search
Alias /search /opt/quassel-rest-search
<Directory /opt/quassel-rest-search>
Require all granted
</Directory>
Start Apache på nytt:
systemctl restart apache2
Hvis alt gikk bra, kan du navigere til http://quassel.example.net/searchog du vil se en påloggingsskjerm.
Nå kan det være et godt tidspunkt å sikre nettserveren din ved å bruke Let's Encrypt. Detaljer om hvordan du installerer og konfigurerer Let's Encrypt finner du på EFF -nettstedet eller her på Vultr docs .
I tilfelle du er bekymret for å gå tom for RAM, kan det være lurt å aktivere swap på VPS-en. Vennligst følg denne Linux-bytteveiledningen .