IRC ist bei Entwicklern und Anwendern von Open Source-Software beliebt. Einer der Nachteile von IRC ist, dass Sie wichtige Gespräche oder Erwähnungen Ihres Spitznamens verpassen, wenn Sie nicht online sind. Mit Quassel und einem kleinen VPS können Sie eine IRC-Persistenz mit einer webbasierten Benutzeroberfläche und einem durchsuchbaren Rückstand erzielen.
Ich gehe davon aus, dass Sie bereits wissen, wie Sie ein VPS in der Vultr-Systemsteuerung erstellen.
Zunächst müssen Sie sich bei Ihrem Vultr-Kontrollfeld anmelden und sich ein brandneues VPS erstellen. In diesem Beispiel habe ich ein Debian 9-VPS für 2,50 USD / Monat eingerichtet. Sie können jede Größe wählen, aber das Ziel ist es, so kostengünstig wie möglich zu sein. Sie müssen ihm einen Namen geben, z. B. quassel.example.netund sicherstellen, dass Sie einen DNS A-Eintrag konfiguriert haben.
Da sich diese Anweisungen auf Debian konzentrieren, müssen Sie sie geringfügig ändern, wenn Sie eine andere Linux-Distribution wie Ubuntu oder CentOS verwenden möchten.
Sobald Ihr VPS ausgeführt wird, sollten Sie einige Pakete installieren, um die Grundlagen zu erlernen.
Sie müssen Quassel-Core, PostgreSQL, Apache und PHP zusammen mit einigen weiteren Bibliotheken installieren, um mit dem SQL Server zu kommunizieren.
apt-get install quassel-core postgresql libqt5sql5-psql apache2 php php-pgsql
Du wirst auch Node.js brauchen. Für den Web-Teil Ihres persönlichen IRC-Cloud-Servers ist Node erforderlich. Eine vollständige Anleitung zur Installation finden Sie hier . Dies sind jedoch die einzigen zwei Zeilen, die Sie benötigen:
# curl -sL https://deb.nodesource.com/setup_8.x | bash -
# apt-get install -y nodejs
Als Nächstes müssen Sie eine Datenbank für den Quassel-Kern erstellen. Wechseln Sie zum Postgres-Benutzer und führen Sie ihn aus psql.
# su - postgres
$ psql
Sobald Sie an der PostgreSQL-Eingabeaufforderung angekommen sind, müssen Sie einen Benutzer für Quassel und dessen Datenbank erstellen:
CREATE USER quassel ENCRYPTED PASSWORD 'somepassword';
CREATE DATABASE quassel WITH OWNER quassel ENCODING 'UTF8';
Nachdem die Grundlagen konfiguriert wurden, können Sie den Quassel-Client starten und eine Verbindung zu Ihrem Core herstellen.
Wenn Sie den Quassel-Client auf Ihrem lokalen Computer starten, wird ein Verbindungsdialog angezeigt. Geben Sie die IP-Adresse oder den Hostnamen Ihres VPS und die Portnummer (Standard: 4242) ein und wählen Sie SSL. Wenn Sie einen Proxyserver haben, können Sie die Proxy-Details im Dialogfeld eingeben.
Während der ersten Verbindung werden Sie durch einen anderen Assistenten zum Konfigurieren des Kerns geführt. Geben Sie Ihren ersten Quasselcore-Benutzernamen und Ihr Passwort ein. Der erste Benutzer ist der Administrator. Wählen Sie als Nächstes das PostgreSQL-Datenbank-Backend aus und geben Sie den Benutzernamen und das Kennwort der Quassel-Datenbank ein, wie im vorherigen Schritt definiert.
Nachdem Sie die Grundlagen Ihres Kerns konfiguriert haben, können Sie jetzt den Webabschnitt einrichten. Auf diese Weise können Sie von jedem Webbrowser aus eine Verbindung zu Ihrem Core herstellen. Wir werden Quassel-Webserver verwenden .
Erstellen Sie einen Benutzer für den Webdienst:
# useradd -d /opt/quassel-webserver -M -r quassel-webserver
Ziehen Sie nun den Quassel-Webserver herunter und ändern Sie den Besitz auf den zuvor erstellten Benutzer:
# git clone https://github.com/magne4000/quassel-webserver.git /opt/quassel-webserver
# chown -R quassel-webserver:quasselweb-server /opt/quassel-webserver
Sie müssen dann die Anwendung Node.js "installieren":
# su - quassel-webserver
$ npm install --production
Kopieren Sie die settings.jsauf settings-user.js und ändern Sie die host, forcedefaultund prefixpathWerte:
host: 'localhost',
forcedefault: 'true',
prefixpath: '/app'
Während Sie sich im /opt/quassel-webserverPfad als root befinden, können Sie die Servicedatei für Systemd installieren.
# cp scripts/quassel-webserver.service /lib/systemd/system/quassel-webserver.service
Sie müssen /lib/systemd/system/quassel-webserver.servicedie ExecStartZeile bearbeiten und ändern :
ExecStart=/usr/bin/node /opt/quassel-webserver/app.js -l 127.0.0.1 -m http
Sie können jetzt den Quassel-Webserver aktivieren und starten:
systemctl enable quassel-webserver.service
systemctl start quassel-webserver.service
Sie können überprüfen, ob der Quassel-Webserver ausgeführt wird, indem Sie ausführen systemctl status quassel-webserver.service. Wenn Sie sehen Active: active (running), sind Sie fertig!
Als nächstes konfigurieren wir Apache.
Sie müssen ein paar Module ermöglichen , zu beginnen, wie proxy_http, proxy_wstunnelund rewrite.
# a2enmod proxy_http proxy_wstunnel rewrite
Erstellen Sie eine neue Konfigurationsdatei für 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>
Und aktivieren Sie Ihre Site:
a2ensite quassel
Starten Sie Apache neu, um die Änderungen zu übernehmen:
systemctl restart apache2
Wenn alles gut gegangen ist, können Sie jetzt zu Ihrer quassel-webserverInstanz unter navigieren http://quassel.example.net.
Als nächstes richten wir eine Backlog-Suche ein . Dies erfordert Änderungen an der quassel-coreDatenbank. Beginnen wir zunächst mit dem Klonen des Quellcodes:
# git clone https://github.com/justjanne/quassel-rest-search.git /opt/quassel-rest-search
Benennen Sie die Datei qrs_config.default.phpnach dem Klonen in um qrs_config.phpund bearbeiten Sie sie. Sie müssen Ihre Datenbank definieren db_name, db_user, db_pathund path_prefix. Es sollte ungefähr so aussehen:
<?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');
Als Nächstes ändern wir die Datenbank, die verwendet werden soll von quassel-rest-search:
Wechseln Sie zum postgresBenutzer und führen Sie Folgendes aus psql:
# su - postgres
$ psql quassel
Fügen Sie zunächst der Backlog-Tabelle eine neue Spalte hinzu:
ALTER TABLE backlog ADD COLUMN tsv tsvector;
Zweitens fügen Sie die beiden neuen Indizes hinzu:
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;
Drittens richten Sie einen Trigger ein, um die tsv-Spalte zu füllen:
CREATE TRIGGER tsvectorupdate
BEFORE INSERT OR UPDATE
ON backlog
FOR EACH ROW
EXECUTE PROCEDURE tsvector_update_trigger('tsv', 'pg_catalog.english', 'message');
Viertens füllen Sie die tsvSpalte " " aus:
UPDATE backlog SET messageid = messageid;
Jetzt können Sie die zuvor erstellte Apache-Konfiguration aktualisieren und hinzufügen:
# Quassel Search
Alias /search /opt/quassel-rest-search
<Directory /opt/quassel-rest-search>
Require all granted
</Directory>
Starten Sie Apache neu:
systemctl restart apache2
Wenn alles gut gegangen ist, können Sie zu navigieren http://quassel.example.net/searchund Sie sehen einen Anmeldebildschirm.
Vielleicht ist jetzt ein guter Zeitpunkt, um Ihren Webserver mit Let's Encrypt zu sichern. Details zur Installation und Konfiguration von Let's Encrypt finden Sie auf der EFF -Website oder hier in den Vultr-Dokumenten .
Wenn Sie befürchten, dass Ihnen der Arbeitsspeicher ausgeht, können Sie den Austausch auf Ihrem VPS aktivieren. Bitte folgen Sie diesem Linux-Swap-Tutorial .