35 Commits

Author SHA1 Message Date
inecs 0f4943fd90 Embed QR PNGs as data URLs for file:// downloads
Chrome blocks fetch/canvas for sibling file:// images (CORS/tainted).
Inline base64 in HTML so lightbox and .png chips download offline.
2026-07-23 10:54:19 +03:00
inecs ed7061ebbb Fix lightbox QR download: sync canvas.toDataURL
Async fetch/toBlob lost the user-gesture so Safari/Chrome opened
the PNG instead of downloading. Use a button and sync data-URL save.
2026-07-23 10:34:13 +03:00
inecs 5a8b8f797f docs: скачивание .url/.txt/.png/.qr.txt в «Последние обновления» 2026-07-23 10:29:56 +03:00
inecs 7724c0502a Force download for .url/.txt/.png/.qr.txt chips
Browser often opens these files instead of downloading; use blob
downloads with embedded text fallbacks and canvas for PNG on file://.
2026-07-23 10:28:23 +03:00
inecs 1d0e7d3bb1 Принудительное скачивание QR из lightbox как server-user.png
Кнопка больше не открывает PNG во вкладке: blob/canvas download
с именем <сервер>-<пользователь>.png.
2026-07-23 10:23:16 +03:00
inecs 03f61460c0 docs: раздел «Последние обновления» за 2026-07-23 2026-07-23 09:42:47 +03:00
inecs 4da326c533 make index и install/update: единый стиль страниц серверов и каталога
Пересборка HTML серверов из server-info.yml; сетка карточек и вид
как у главной. Тот же pipeline после install/update/export.
2026-07-23 09:35:43 +03:00
inecs 959d3429ce Убрать подсказку закрытия из lightbox 2026-07-23 09:31:20 +03:00
inecs ab095e1e5a Сетка карточек на странице сервера и крупный QR в lightbox
Карточки как в глобальном индексе; QR заполняет доступную
площадь модального окна через container queries.
2026-07-23 09:24:45 +03:00
inecs 9682819daf docs: упомянуть вкладки и статистику в make index 2026-07-23 09:21:23 +03:00
inecs bdb35894b4 Вкладки серверов и страница статистики в output/index.html
По умолчанию — Статистика: доступность TCP, IP, пользователи,
матрица присутствия. Серверы открываются отдельными вкладками.
2026-07-23 09:20:50 +03:00
inecs 0ce72fb507 Сделать lightbox на всю высоту экрана с небольшими отступами
Панель занимает 100dvh минус 1rem сверху/снизу; QR растягивается
в оставшееся пространство.
2026-07-23 09:16:45 +03:00
inecs 1b1dee0a9a Увеличить QR в lightbox на 30% (до ~728px) 2026-07-23 09:13:58 +03:00
inecs efb31d0be2 Ограничить lightbox QR высотой экрана с отступами сверху/снизу 2026-07-23 09:13:00 +03:00
inecs 25ab210fb8 Увеличить QR в lightbox до ~560px 2026-07-23 09:11:14 +03:00
inecs 9681871507 Добавить кнопку скачивания QR в lightbox
Файл сохраняется как <сервер>-<пользователь>.png.
2026-07-23 09:09:12 +03:00
inecs 2b71d3fa62 Добавить lightbox для QR-кодов в HTML-каталогах
Клик по QR открывает крупный просмотр с подписью; закрытие по Esc,
кнопке и клику на фон. В global и server index.
2026-07-23 09:07:23 +03:00
inecs 2be3f62b95 Обновить bundled install_server.sh с официального get.hy2.sh
Синхронизация локальной копии после проверки SHA256.
2026-07-23 09:02:06 +03:00
inecs c4edb1b2c5 Добавить make index: пересборка output/index.html из локальных экспортов
Отдельный playbook на localhost читает server-info.yml, обновляет
общий каталог и открывает его в браузере без обращения к VPS.
2026-07-23 08:56:04 +03:00
inecs 4c9b157972 fix: корректный make status при inactive и без -o
systemctl is-active с rc≠0 больше не дублирует inactive;
убран deprecated флаг -o.
2026-07-23 08:46:17 +03:00
inecs 1f39bd70ef Улучшить вывод make status: кратко и без логов journal
Одна строка на хост (active/not installed, since, PID, RAM);
хост без установки больше не валит весь make.
2026-07-23 08:31:51 +03:00
inecs 6cc0bceafa fix: пропускать sync install_server.sh при сетевой ошибке
Если get.hy2.sh недоступен (таймаут без VPN), используется локальная
копия в roles/hysteria2/files/; падение только если её нет.
2026-07-01 14:06:46 +03:00
inecs c3a91157c8 docs: LIMIT при добавлении сервера и force_export в README
Описано, что make install LIMIT не трогает старые VPS и как принудительно
перевыпустить URL/QR через hysteria2_force_export.
2026-07-01 13:37:48 +03:00
inecs b627b8fb12 fix: пересборка output/index.html при uninstall с LIMIT
Второй play перенесён на hysteria2_servers с run_once на localhost,
чтобы LIMIT не пропускал пересборку. Пустой index.html удаляется.
2026-07-01 13:31:40 +03:00
inecs b7c15c31c5 Полная очистка при uninstall: VPS и output/<server>/
Скрипт --remove снимает только бинарник и systemd; Ansible дочищает конфиг,
пользователя, ufw, пакеты и всегда удаляет локальную папку экспорта.
2026-07-01 13:28:00 +03:00
inecs a9429418d7 fix: run only uninstall tasks, not full role on make uninstall
Tagging the whole role with uninstall caused install/configure/update/export to run first. Use include_role tasks_from uninstall.yml; add safe defaults for uninstall variables.
2026-07-01 13:19:47 +03:00
inecs f4d024d09f docs: update README for install script, update, uninstall and users
Document incremental export, full uninstall cleanup, vault wiring, Makefile commands and role structure.
2026-07-01 13:15:24 +03:00
inecs f7ff363d5d feat: incremental user passwords and export on update
Preserve passwords from server-info.yml and vault; generate only for new users; remove deleted users from output; re-export URL/QR only when password, domain, port, obfs or files changed.
2026-07-01 13:06:14 +03:00
inecs f844bee79b feat: complete uninstall cleanup on server and local output
Remove binary, config, masq, system user, ufw rules, and apt packages from VPS; delete output/<server>/ by default and rebuild global index.html via localhost play.
2026-07-01 12:55:52 +03:00
inecs fd1d7430f2 feat: bundle and sync official Hysteria2 install script locally
Store install_server.sh in role files, compare SHA256 with get.hy2.sh on the control node before install/update, refresh the bundled copy when upstream changes, then copy and run it on VPS.
2026-07-01 12:00:10 +03:00
inecs cfd482a5e2 fix: disable become on localhost play and drop deprecated facts
Use now() for export timestamps and ansible_facts['system'] for browser detection. Set become: false on the localhost play to avoid sudo on local fact gathering.
2026-07-01 11:56:06 +03:00
inecs a364fde634 fix: generate VPN passwords without pwgen, set EDITOR=nano
Use Ansible password lookup on the control node so install works before packages are installed on VPS and without pwgen on macOS. Export EDITOR=nano in Makefile for vault-edit.
2026-07-01 11:42:40 +03:00
inecs 6c5a4dcd89 fix: replace removed yaml callback with default + result_format
community.general.yaml was removed in collection 12.0; use ansible.builtin.default with result_format=yaml for Ansible 2.13+.
2026-07-01 11:09:08 +03:00
inecs 1d4e2c671e Expand README: branch comparison, ACME auto-renewal, branch switching.
Unified documentation structure aligned with salamander branch.
2026-07-01 02:22:38 +03:00
inecs df19816039 Initial commit: Ansible role for Hysteria2 VPN server deployment.
Includes install/update/uninstall playbooks, Makefile, vault-based SSH credentials, per-server and global HTML export with QR codes.
2026-07-01 02:02:58 +03:00