main
This commit is contained in:
173
README.md
173
README.md
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user