Як налаштувати Quassel на Debian 9

IRC популярний серед розробників і користувачів програмного забезпечення з відкритим кодом. Одним із недоліків IRC є те, що коли ви не в мережі, ви можете пропустити важливі розмови або згадки свого нікнейму. Завдяки Quassel і невеликому VPS, ви можете мати стійкість IRC, доповнену веб-інтерфейсом і пошуковим резервом.

Я припускаю, що ви вже знаєте, як створити VPS на панелі керування Vultr.

По-перше, вам потрібно увійти до панелі керування Vultr і створити собі новий VPS. У цьому прикладі я налаштував VPS Debian 9, 2,50 дол. США на місяць. Ви можете вибрати будь-який розмір, але прагнення до цього – бути якомога меншою ціною. Вам потрібно буде дати йому назву, наприклад, 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. Для веб-частини вашого персонального хмарного сервера 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. Першим користувачем буде адміністратор. Далі виберіть сервер бази даних PostgreSQL та введіть ім’я користувача та пароль бази даних Quassel, як визначено на попередньому кроці.

Після того, як ви налаштували основи свого ядра, тепер ви можете налаштувати веб-частину. Це дозволяє підключатися до свого ядра з будь-якого веб-браузера. Ми збираємося використовувати Quassel-Webserver .

Створіть користувача для веб-сервісу:

# 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

Тепер ви можете ввімкнути та запустити веб-сервер 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 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>

І увімкніть свій сайт:

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 docs .

Якщо ви турбуєтеся про те, що не вистачає оперативної пам’яті, ви можете увімкнути обмін на своєму VPS. Будь ласка, дотримуйтесь цього посібника з заміни Linux .

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше