Το IRC είναι δημοφιλές μεταξύ των προγραμματιστών και των χρηστών λογισμικού ανοιχτού κώδικα. Ένα από τα μειονεκτήματα του IRC είναι όταν δεν είστε on-line, μπορεί να χάσετε σημαντικές συνομιλίες ή αναφορές του ψευδώνυμού σας. Με το Quassel και ένα μικρό VPS, μπορείτε να έχετε επιμονή IRC, πλήρης με ένα UI βασισμένο στον ιστό και ένα ανεκτέλεστο αρχείο με δυνατότητα αναζήτησης.
Θα υποθέσω ότι γνωρίζετε ήδη πώς να δημιουργήσετε ένα VPS στον πίνακα ελέγχου του Vultr.
Αρχικά, θα χρειαστεί να συνδεθείτε στον πίνακα ελέγχου του Vultr και να δημιουργήσετε μόνοι σας ένα ολοκαίνουργιο VPS. Σε αυτό το παράδειγμα, έχω ρυθμίσει ένα Debian 9, 2,50 $/μήνα VPS. Μπορείτε να επιλέξετε οποιοδήποτε μέγεθος, αλλά ο στόχος είναι να έχετε όσο το δυνατόν χαμηλότερο κόστος. Θα πρέπει να του δώσετε ένα όνομα, όπως quassel.example.net
και να βεβαιωθείτε ότι έχετε διαμορφώσει μια εγγραφή DNS A.
Δεδομένου ότι αυτές οι οδηγίες επικεντρώνονται γύρω από το Debian, θα πρέπει να τις τροποποιήσετε ελαφρώς εάν σκοπεύετε να χρησιμοποιήσετε μια διαφορετική διανομή Linux όπως το Ubuntu ή το CentOS.
Μόλις εκτελεστεί το VPS σας, θα θελήσετε να εγκαταστήσετε μερικά πακέτα για να ξεκινήσετε τα βασικά.
Θα χρειαστεί να εγκαταστήσετε τα Quassel-Core, PostgreSQL, Apache και PHP, μαζί με μερικές ακόμη βιβλιοθήκες για να μιλήσετε με τον διακομιστή SQL.
apt-get install quassel-core postgresql libqt5sql5-psql apache2 php php-pgsql
Θα χρειαστείτε επίσης το Node.js. Το τμήμα web του προσωπικού σας διακομιστή cloud IRC απαιτεί Node. Μπορείτε να βρείτε πλήρεις οδηγίες εγκατάστασης εδώ , αλλά αυτές είναι οι μόνες δύο γραμμές που θα χρειαστείτε:
# curl -sL https://deb.nodesource.com/setup_8.x | bash -
# apt-get install -y nodejs
Στη συνέχεια, θα χρειαστεί να δημιουργήσετε μια βάση δεδομένων για τον πυρήνα Quassel. Μεταβείτε στον χρήστη Postgres και εκτελέστε το psql
.
# su - postgres
$ psql
Μόλις βρεθείτε στη γραμμή εντολών PostgreSQL, θα χρειαστεί να δημιουργήσετε έναν χρήστη για το Quassel και τη βάση δεδομένων του:
CREATE USER quassel ENCRYPTED PASSWORD 'somepassword';
CREATE DATABASE quassel WITH OWNER quassel ENCODING 'UTF8';
Τώρα που έχουν διαμορφωθεί τα βασικά, μπορείτε τώρα να εκκινήσετε τον πελάτη Quassel και να συνδεθείτε στον πυρήνα σας.
Όταν ξεκινάτε τον πελάτη Quassel στον τοπικό σας υπολογιστή, θα εμφανιστεί ένα παράθυρο διαλόγου σύνδεσης. Εισαγάγετε τη διεύθυνση IP ή το όνομα κεντρικού υπολογιστή του VPS σας και τον αριθμό θύρας (προεπιλογή: 4242) και επιλέξτε SSL. Εάν διαθέτετε διακομιστή μεσολάβησης, μπορείτε να εισαγάγετε τα στοιχεία του διακομιστή μεσολάβησης στο παράθυρο διαλόγου.
Κατά την πρώτη σύνδεση, θα καθοδηγηθείτε μέσω άλλου οδηγού για να διαμορφώσετε τον πυρήνα. Εισαγάγετε το πρώτο σας όνομα χρήστη και κωδικό πρόσβασης Quasselcore. Ο πρώτος χρήστης θα είναι ο διαχειριστής. Στη συνέχεια, επιλέξτε το backend της βάσης δεδομένων PostgreSQL και δώστε το όνομα χρήστη και τον κωδικό πρόσβασης της βάσης δεδομένων Quassel όπως ορίστηκαν στο προηγούμενο βήμα.
Αφού διαμορφώσετε τα βασικά στοιχεία του πυρήνα σας, μπορείτε τώρα να ρυθμίσετε το τμήμα web. Αυτό σας επιτρέπει να συνδεθείτε στον πυρήνα σας από οποιοδήποτε πρόγραμμα περιήγησης ιστού. Θα χρησιμοποιήσουμε τον Quassel-Webserver .
Δημιουργήστε έναν χρήστη για την υπηρεσία web:
# useradd -d /opt/quassel-webserver -M -r quassel-webserver
Τώρα τραβήξτε προς τα κάτω τον διακομιστή ιστού Quassel και αλλάξτε την ιδιοκτησία στον χρήστη που δημιουργήθηκε προηγουμένως:
# git clone https://github.com/magne4000/quassel-webserver.git /opt/quassel-webserver
# chown -R quassel-webserver:quasselweb-server /opt/quassel-webserver
Στη συνέχεια, πρέπει να "εγκαταστήσετε" την εφαρμογή Node.js:
# su - quassel-webserver
$ npm install --production
Αντιγράψτε το settings.js
να settings-user.js
και να αλλάξετε τα host
, forcedefault
και prefixpath
τιμές:
host: 'localhost',
forcedefault: 'true',
prefixpath: '/app'
Ενώ βρίσκεστε στη /opt/quassel-webserver
διαδρομή ως root, μπορείτε να εγκαταστήσετε το αρχείο υπηρεσίας για το Systemd.
# cp scripts/quassel-webserver.service /lib/systemd/system/quassel-webserver.service
Θα χρειαστεί να επεξεργαστείτε /lib/systemd/system/quassel-webserver.service
και να αλλάξετε τη ExecStart
γραμμή:
ExecStart=/usr/bin/node /opt/quassel-webserver/app.js -l 127.0.0.1 -m http
Τώρα μπορείτε να ενεργοποιήσετε και να ξεκινήσετε τον διακομιστή web Quassel:
systemctl enable quassel-webserver.service
systemctl start quassel-webserver.service
Μπορείτε να ελέγξετε ότι ο quassel-webserver εκτελείται εκτελώντας systemctl status quassel-webserver.service
. Αν δείτε Active: active (running)
, είστε έτοιμοι!
Στη συνέχεια, θα ρυθμίσουμε τις παραμέτρους του Apache.
Θα χρειαστεί να ενεργοποιήσετε μερικές ενότητες για να ξεκινήσουν, όπως proxy_http
, proxy_wstunnel
και rewrite
.
# a2enmod proxy_http proxy_wstunnel rewrite
Δημιουργήστε ένα νέο αρχείο ρυθμίσεων για το 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>
Και ενεργοποιήστε τον ιστότοπό σας:
a2ensite quassel
Κάντε επανεκκίνηση του Apache για να εφαρμόσετε τις αλλαγές:
systemctl restart apache2
Εάν όλα πήγαν καλά, μπορείτε τώρα να περιηγηθείτε στην quassel-webserver
παρουσία σας στο http://quassel.example.net
.
Στη συνέχεια, θα ρυθμίσουμε μια ανεκτέλεστη αναζήτηση . Αυτό θα απαιτήσει τροποποιήσεις στη quassel-core
βάση δεδομένων. Αρχικά, ας ξεκινήσουμε με την κλωνοποίηση του πηγαίου κώδικα:
# git clone https://github.com/justjanne/quassel-rest-search.git /opt/quassel-rest-search
Μόλις κλωνοποιηθεί, να μετονομάσετε το αρχείο qrs_config.default.php
στο qrs_config.php
και να επεξεργαστείτε το αρχείο. Θα πρέπει να ορίσετε τη βάση δεδομένων σας db_name
, db_user
, db_path
και path_prefix
. Θα πρέπει να καταλήξει να μοιάζει κάπως έτσι:
<?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');
Στη συνέχεια, τροποποιούμε τη βάση δεδομένων ώστε να χρησιμοποιείται από quassel-rest-search
:
Μεταβείτε στον postgres
χρήστη και εκτελέστε psql
:
# su - postgres
$ psql quassel
Αρχικά, προσθέστε μια νέα στήλη στον πίνακα ανεκτέλεσης:
ALTER TABLE backlog ADD COLUMN tsv tsvector;
Δεύτερον, προσθέστε τους δύο νέους δείκτες:
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;
Τρίτον, ρυθμίστε ένα έναυσμα για να συμπληρώσετε τη στήλη tsv:
CREATE TRIGGER tsvectorupdate
BEFORE INSERT OR UPDATE
ON backlog
FOR EACH ROW
EXECUTE PROCEDURE tsvector_update_trigger('tsv', 'pg_catalog.english', 'message');
Τέταρτον, συμπληρώστε τη tsv
στήλη " ":
UPDATE backlog SET messageid = messageid;
Τώρα μπορείτε να ενημερώσετε τη διαμόρφωση του Apache που δημιουργήσαμε νωρίτερα και να προσθέσετε:
# Quassel Search
Alias /search /opt/quassel-rest-search
<Directory /opt/quassel-rest-search>
Require all granted
</Directory>
Επανεκκινήστε τον Apache:
systemctl restart apache2
Εάν όλα πήγαν καλά, μπορείτε να πλοηγηθείτε http://quassel.example.net/search
και θα δείτε μια οθόνη σύνδεσης.
Τώρα μπορεί να είναι η κατάλληλη στιγμή για να ασφαλίσετε τον διακομιστή ιστού σας χρησιμοποιώντας το Let's Encrypt. Λεπτομέρειες σχετικά με τον τρόπο εγκατάστασης και διαμόρφωσης του Let's Encrypt μπορείτε να βρείτε στον ιστότοπο του EFF ή εδώ στα έγγραφα Vultr .
Σε περίπτωση που ανησυχείτε μήπως εξαντληθεί η RAM, ίσως θελήσετε να ενεργοποιήσετε την εναλλαγή στο VPS σας. Ακολουθήστε αυτό το σεμινάριο ανταλλαγής Linux .