-
Notifications
You must be signed in to change notification settings - Fork 2
Current hosting
Пользователь: planescape, домашний каталог /home/planescape.
Вебклиент позволит коннектиться к маду прямо из браузера. Это упрощенный вариант клиента mudjs для мира DreamLand
git clone git@github.com:planescape-mud/mudjs.git
git checkout planescape
Утилита проксирует соединения между вебсокетом и обычным телнетом. Позволяет использовать вебклиент даже для тех кодовых баз, которые сами не поддерживают веб-сокеты. Ее лучше настроить в виде сервиса.
Выкачать исходники:
git clone git@github.com:planescape-mud/websockify.git
Создать файл /lib/systemd/system/planescape-websockify.service
с таким содержимым:
[Unit]
Description=websockify - provide websockets for Planescape MUD
After=network.target
[Service]
Type=simple
User=planescape
ExecStart=/home/planescape/websockify/run :4321 :4000
Restart=on-failure
[Install]
WantedBy=multi-user.target
Настроить сервис:
systemctl enable planescape-websockify.service
systemctl start planescape-websockify.service
Необходимо добиться того, чтобы при коннекте снаружи к вебсокету под адресу wss://ps.kharkov.org/mudjs-ps
, перенаправляло на запущенный локально на 4321 порту сервис websockify
. Также при заходе на главную страницу тут же должен появляться вебклиент (раз сайта пока нет), расположенный в каталоге /home/planescape/mudjs
. Запросы к HTTP протоколу должны перенаправялть на HTTPS.
Чтобы этого всего добиться, в каталоге настроек nginx /etc/nginx/sites-available
создать файл ps.kharkov.org
с содержимым ниже.
upstream websockify {
server localhost:4321;
}
server {
listen [::]:443 ssl; # managed by Certbot
listen 443 ssl; # managed by Certbot
server_name ps.kharkov.org;
ssl_certificate /etc/letsencrypt/live/ps.kharkov.org/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ps.kharkov.org/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
root /home/planescape/mudjs;
index index.html;
location /mudjs-ps {
proxy_pass http://websockify;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
proxy_send_timeout 86400;
}
}
server {
if ($host = ps.kharkov.org) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name ps.kharkov.org;
return 404; # managed by Certbot
}
Сделать эту конфигурацию активной и перестартовать nginx.
cd /etc/nginx/sites-enabled && ln -s /etc/nginx/sites-available/ps.kharkov.org
systemctl restart nginx
Отдельно читайте документацию по certbot
, чтобы понять, как запросить новый сертификат, если он нужен, настроить автообновление и настроить nginx, чтобы он пользовался этим сертификатом.