From b57162456eef5970a4ddea4d5fd5687dea817d61 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Thu, 12 Mar 2026 12:57:07 +0300 Subject: [PATCH] main --- Dockerfile | 2 + README.md | 173 +++++++++++++++++++- docker-compose.yml | 8 + index.html | 385 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 567 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 index.html diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6e8acef --- /dev/null +++ b/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:alpine +COPY . /usr/share/nginx/html diff --git a/README.md b/README.md index 74f48f4..a211ac8 100644 --- a/README.md +++ b/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://:5050 + +4. Настройте прокси в Nginx Proxy Manager +Откройте веб-интерфейс NPM (обычно http://: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 +``` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..beaa630 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3' +services: + site: + build: . + ports: + - "5050:80" + restart: unless-stopped + container_name: site-grenu4 diff --git a/index.html b/index.html new file mode 100644 index 0000000..beba975 --- /dev/null +++ b/index.html @@ -0,0 +1,385 @@ + + + + + + Evgeniy Spirin | DevOps Engineer + + + + + + + + + +
+ +
+ + Avatar +
+

Evgeniy Spirin

+
DevOps Engineer
+
+ Нижний Новгород, Россия +
+ + +
+
+ + +
+

О себе

+

DevOps Engineer. Увлекаюсь автоматизацией, Kubernetes и Go. Open-source энтузиаст, автор нескольких полезных утилит для мониторинга и оптимизации инфраструктуры. Постоянно изучаю новые технологии и делюсь знаниями с сообществом.

+
+ + +
+

Навыки

+
    +
  • CI/CD (GitLab CI, GitHub Actions)
  • +
  • Kubernetes
  • +
  • Docker
  • +
  • Terraform
  • +
  • Ansible
  • +
  • Golang
  • +
  • Python
  • +
  • Prometheus / Grafana
  • +
  • Linux
  • +
  • Bash
  • +
  • Helm
  • +
  • Istio
  • +
+
+ + +
+

Проекты

+
+ +
+

Cloud VPN

+

Масштабируемый VPN-сервис. Поддержка VLESS, Trojan, Shadowsocks.

+
+ Kubernetes + Xray + Prometheus +
+ Подробнее +
+ +
+

K8s Cost Optimizer

+

Инструмент для анализа и оптимизации затрат в Kubernetes. Интеграция с AWS, GCP, Azure.

+
+ Golang + Prometheus + Cloud APIs +
+ Подробнее +
+ +
+

Speedtest Exporter

+

Prometheus-экспортер для измерения скорости интернета до множества глобальных точек.

+
+ Golang + Prometheus + Docker +
+ Подробнее +
+
+
+ + +
+

Опыт работы

+ +
+
2022 — 2023
+
+

DevOps Engineer

+ Гарда технологии, Москва (гибрид) +
    +
  • Миграция монолитных приложений в Kubernetes, внедрение GitOps (ArgoCD).
  • +
  • Оптимизация CI/CD пайплайнов (сокращение времени сборки на 40%).
  • +
  • Настройка Service Mesh (Istio) для безопасного взаимодействия микросервисов.
  • +
  • Менторство 3 джуниоров, проведение внутренних воркшопов.
  • +
+
+
+ +
+
2023 — настоящее время
+
+

DevOps Engineer

+ Зитех, удалённо +
    +
  • Разработка инфраструктуры на AWS (Terraform, Ansible).
  • +
  • Внедрение мониторинга на базе Prometheus + Grafana, настройка алертов.
  • +
  • Автоматизация резервного копирования баз данных и восстановления.
  • +
+
+
+
+ + + +
+ + \ No newline at end of file