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

6.7 KiB
Raw Permalink Blame History

Сайт-визитка grenu4.ru

Простой сайт-визитка на HTML, работающий в Docker-контейнере.
Сайт проксируется через Nginx Proxy Manager, который обеспечивает автоматический SSL-сертификат (Let's Encrypt) и доступ по домену.

Содержание

Технологии

  • 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)

Быстрый старт

Клонируйте репозиторий

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/ # Папка с изображениями (если есть)

Управление контейнером

Если используется 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

Обновление сайта

Если вы изменили 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

Ваш контейнер с сайтом не занимает порты 80/443 — они используются NPM.
Вся схема работы:

Пользователь заходит на https://grenu4.ru.

Запрос попадает в NPM (контейнер, слушающий 80/443 на хосте).

NPM по правилу прокси перенаправляет трафик на http://<хост>:5050.

Внутренний контейнер с сайтом отдаёт страницу.

Убедитесь, что порт 5050 на хосте доступен для NPM (обычно NPM и контейнер сайта находятся на одном хосте, поэтому проблем нет).

Лицензия

Этот проект распространяется под лицензией MIT. Подробнее в файле LICENSE.

Автор: Y0zhyck
Домен: grenu4.ru
Репозиторий: https://git.grenu4.ru/y0zhyck/My-Site.git