This commit is contained in:
2026-03-12 12:57:07 +03:00
parent 75180251eb
commit b57162456e
4 changed files with 567 additions and 1 deletions

173
README.md
View File

@@ -1,2 +1,173 @@
# My-site
# Сайт-визитка grenu4.ru
Простой сайт-визитка на HTML, работающий в Docker-контейнере.
Сайт проксируется через **Nginx Proxy Manager**, который обеспечивает автоматический SSL-сертификат (Let's Encrypt) и доступ по домену.
## Содержание
- [Технологии](#технологии)
- [Требования](#требования)
- [Быстрый старт](#быстрый-старт)
- [Структура проекта](#структура-проекта)
- [Управление контейнером](#управление-контейнером)
- [Обновление сайта](#обновление-сайта)
- [Интеграция с Nginx Proxy Manager](#интеграция-с-nginx-proxy-manager)
- [Лицензия](#лицензия)
## Технологии
- HTML / CSS / JavaScript (статические файлы)
- Docker + Docker Compose
- Nginx (в качестве веб-сервера внутри контейнера)
- Nginx Proxy Manager (для прокси и SSL)
## Требования
- Сервер с Linux (Ubuntu/Debian рекомендуется)
- Установленные Docker и Docker Compose
- Установленный и настроенный Nginx Proxy Manager (занимает порты 80 и 443)
- Домен, направленный на IP сервера (в примере `grenu4.ru`)
## Быстрый старт
### Клонируйте репозиторий
```bash
git clone https://git.grenu4.ru/y0zhyck/My-Site.git
cd grenu4-site
2. Поместите файлы сайта
В папке проекта уже должен лежать index.html и другие ресурсы (css, js, изображения).
При необходимости замените их своими.
3. Запустите контейнер
Вариант A: через docker-compose (рекомендуется)
bash
docker-compose up -d
Вариант B: через docker run
bash
docker build -t grenu4-site .
docker run -d \
--name site-grenu4 \
-p 5050:80 \
--restart unless-stopped \
grenu4-site
После запуска сайт будет доступен локально на порту 5050:
http://<IP-сервера>:5050
4. Настройте прокси в Nginx Proxy Manager
Откройте веб-интерфейс NPM (обычно http://<IP-сервера>:81)
Добавьте Proxy Host:
Domain: grenu4.ru (и www.grenu4.ru при необходимости)
Scheme: http
Forward Hostname / IP: IP вашего сервера (например, 192.168.1.10)
Если NPM и сайт на одном сервере, можно использовать 127.0.0.1, но убедитесь, что NPM имеет доступ к порту 5050 хоста.
Forward Port: 5050
Во вкладке SSL включите Request a new SSL certificate, укажите email и включите Force SSL.
Через несколько минут сайт станет доступен по https://grenu4.ru
```
### Структура проекта
- Dockerfile # Описание образа на основе nginx:alpine
- docker-compose.yml # (опционально) для управления через compose
- README.md # Этот файл
- index.html # Главная страница
- css/ # Папка со стилями (если есть)
- js/ # Папка со скриптами (если есть)
- img/ # Папка с изображениями (если есть)
### Управление контейнером
```bash
Если используется docker-compose
Управление контейнером
Если используется docker-compose
Запуск / перезапуск после изменений
bash
docker-compose up -d --build
Остановка и удаление контейнера
bash
docker-compose down
Просмотр логов
bash
docker-compose logs -f
Если используется чистый docker
Остановка
bash
docker stop site-grenu4
Удаление
bash
docker rm site-grenu4
Запуск существующего контейнера
bash
docker start site-grenu4
Пересборка и запуск после изменений
bash
docker build -t grenu4-site .
docker rm -f site-grenu4
docker run -d --name site-grenu4 -p 5050:80 --restart unless-stopped grenu4-site
```
### Обновление сайта
```bash
Если вы изменили HTML / CSS / JS, нужно обновить контейнер.
Быстрый способ с docker-compose (пересборка и запуск)
bash
docker-compose up -d --build
Если используется только docker
bash
docker build -t grenu4-site .
docker stop site-grenu4 && docker rm site-grenu4
docker run -d --name site-grenu4 -p 5050:80 --restart unless-stopped grenu4-site
Альтернатива: монтирование папки (для разработки)
Чтобы избежать пересборки при каждом изменении, можно примонтировать локальную папку с файлами внутрь контейнера.
В docker-compose.yml добавьте:
yaml
services:
site:
volumes:
- ./:/usr/share/nginx/html
После этого изменения в файлах будут видны сразу (перезапуск не требуется).
Не используйте это на production без дополнительной оптимизации.
```
### Интеграция с Nginx Proxy Manager
```bash
Ваш контейнер с сайтом не занимает порты 80/443 — они используются NPM.
Вся схема работы:
Пользователь заходит на https://grenu4.ru.
Запрос попадает в NPM (контейнер, слушающий 80/443 на хосте).
NPM по правилу прокси перенаправляет трафик на http://<хост>:5050.
Внутренний контейнер с сайтом отдаёт страницу.
Убедитесь, что порт 5050 на хосте доступен для NPM (обычно NPM и контейнер сайта находятся на одном хосте, поэтому проблем нет).
```
### Лицензия
```bash
Этот проект распространяется под лицензией MIT. Подробнее в файле LICENSE.
Автор: Y0zhyck
Домен: grenu4.ru
Репозиторий: https://git.grenu4.ru/y0zhyck/My-Site.git
```