Files
My-site/README.md
2026-03-12 12:57:07 +03:00

173 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Сайт-визитка 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
```