Микропортал — инструкция
Сайт hommforever.ru — это статический микропортал на nginx, без backend и базы данных. Здесь — общее устройство, доступ к серверу, разбивка на блоки и как править каждый из них.
1. Технологии и хостинг
- Сервер: Yandex Cloud VM, IP
158.160.96.21. - ОС: Ubuntu (systemd, Bash, Python 3).
- Веб-сервер: nginx 1.24, конфиг
/etc/nginx/sites-enabled/hommforever.ru(или дефолтный конфиг сайта). - SSL: Let’s Encrypt через certbot, авто-обновление.
- Корень сайта:
/var/www/hommforever.ru/. - Домен:
hommforever.ru,www.hommforever.ru→ 301 на основной. - Никакого backend. Все страницы — статика. Где есть «генератор» (например, в
/demos/) — он запускается вручную и пишет статический HTML.
2. Доступ: SSH, sudo, права
ssh hommforever@158.160.96.21
У пользователя hommforever есть sudo без пароля. Файлы сайта принадлежат root:root с правами 644 (директории 755) — поэтому правка через sudo:
sudo nano /var/www/hommforever.ru/index.html
sudo cp ... ; sudo mv ... ; sudo chown root:root ... ; sudo chmod 644 ...
--no-verify, chmod 777 и не ломай SSL-конфиги, размеченные как # managed by Certbot. Если что-то меняешь в nginx — обязательно sudo nginx -t перед sudo systemctl reload nginx.
3. Что лежит на сервере
/var/www/hommforever.ru/
├── index.html ← главная страница портала (3 карточки)
├── assets/
│ └── icons/ ← общие иконки разделов (PNG)
├── games/
│ └── index.html ← блок «Игры»
├── demos/ ← блок «Демки» (см. отдельную инструкцию)
│ ├── demos.tsv ← реестр демок
│ ├── build-index.py ← генератор index.html
│ ├── rebuild.sh ← запуск генератора
│ ├── view.html ← iframe-обёртка
│ ├── help.html ← инструкция по блоку
│ ├── README.md
│ ├── index.html ← сгенерированный список
│ └── items/ ← сами HTML-демки
├── files/
│ └── index.html ← блок «Файлообменник»
├── apps/ ← резерв (placeholder)
├── files-games/ ← резерв (placeholder)
└── help/
└── index.html ← эта инструкция
4. Главная страница /
Файл: /var/www/hommforever.ru/index.html. Это самостоятельный HTML — стили inline, иконки из /assets/icons/. Содержит три карточки-ссылки: «Игры», «Демки», «Файлообменник». Карточки уже целиком кликабельны (тег <a class="card">).
Чтобы поменять заголовок, описание или добавить четвёртый раздел — редактируй HTML напрямую. Никакого генератора у главной нет.
5. Разделы (блоки) портала
| URL | Папка | Чем управляется |
|---|---|---|
/ | /var/www/hommforever.ru/ | Ручной HTML. |
/games/ | games/ | Ручной HTML. |
/demos/ | demos/ | Реестр demos.tsv + генератор build-index.py. Подробная инструкция. |
/files/ | files/ | Ручной HTML. |
/apps/ | apps/ | Резерв, минимальный заглушечный index.html. |
/files-games/ | files-games/ | Резерв, минимальный заглушечный index.html. |
/help/ | help/ | Эта инструкция. |
Каждый раздел — самодостаточный набор файлов в своей папке. Стили либо inline, либо в общем стиле «glassmorphism dark» (тёмный фон с радиальными градиентами + полупрозрачные панели + blur).
6. Nginx и SSL
Nginx-конфиг сайта (упрощённо):
server {{
server_name hommforever.ru www.hommforever.ru 158.160.96.21 _;
root /var/www/hommforever.ru;
index index.html;
charset utf-8;
location / {{ try_files $uri $uri/ =404; }}
listen 443 ssl;
# ssl_certificate ... managed by Certbot
}}
- Любой подзапрос отдаётся напрямую из файловой системы; директории — через
index.html. - HTTP редиректится на HTTPS (через certbot-блок).
- Сертификаты обновляются автоматически (
/etc/cron.d/certbotили systemd-таймер). - После правки конфига:
sudo nginx -t && sudo systemctl reload nginx.
7. Типичный процесс правки
- Подключиться:
ssh hommforever@158.160.96.21(или редактировать локально иscpна сервер). - Сохранить бэкап изменяемого файла:
sudo cp file.html file.html.bak.$(date +%Y%m%d%H%M%S) - Внести правки (
sudo nanoилиscpс локальной машины). - Если правка в
/demos/— пересобрать:sudo /var/www/hommforever.ru/demos/rebuild.sh. - Открыть страницу в браузере с жёстким перезагрузом: Cmd/Ctrl+Shift+R.
8. Бэкапы и безопасность
- Перед любой правкой —
cp file file.bak.$(date ...). В репозитории это видно как*.bak.YYYYMMDDHHMMSS; периодически чисти их (ls *.bak.*, удалить устаревшие). - Не коммить и не выкладывай
.env, ключи Certbot (/etc/letsencrypt/), приватные SSH-ключи. - Загруженные пользовательские файлы (если будут) — в отдельные папки с явным
chown www-data:www-data; никогда не давай755+ записи на корень сайта.
9. Кэширование браузера
Nginx по умолчанию отдаёт статику без агрессивных Cache-Control, но браузер всё равно может закэшировать HTML/JS. Если правка не видна:
- Жёсткий перезагруз: Cmd+Shift+R (macOS) или Ctrl+Shift+R.
- Если файл подгружается через iframe (как в
/demos/view.html?demo=...) — обновить именно эту вкладку, а не родителя. - Для критических ресурсов (картинки, иконки) удобно использовать query-string версию:
/assets/icons/demos-transparent.png?v=4— менятьvпри правке файла.
См. также: подробная инструкция по блоку «Демки» · исходник этой страницы: /var/www/hommforever.ru/help/index.html.