Это репозиторий моего персонального веб-сайта (diametrfq.ru), разработанного как full-stack приложение в монорепозитории. Проект включает в себя современный фронтенд на Next.js, производительный бэкенд на Rust (Actix Web) и полностью автоматизированную CI/CD-инфраструктуру на базе Docker и GitHub Actions.
- Интернационализация (i18n): Полная поддержка русского и английского языков с помощью
next-intl. - Spotify "Сейчас играет": Динамический виджет, который в реальном времени показывает трек, который я слушаю в Spotify, используя Server-Sent Events (SSE).
- Лента Telegram: Автоматически загружает и отображает последние посты из моего Telegram-канала.
- Интерактивность: Плавные анимации и интерактивные элементы для улучшения пользовательского опыта.
- Интеграция со Spotify: Реализован полный цикл OAuth 2.0 для обновления токенов и получения данных из Spotify API. Включает логику для определения прослушивания на основе уровня громкости.
- Интеграция с Telegram: Парсит RSS-ленту Telegram-канала для получения постов, извлекая текст, ссылки и изображения.
- Метрики для мониторинга: Предоставляет эндпоинт
/metricsдля сбора данных системой мониторинга Prometheus.
- Полная контейнеризация: Весь проект (фронтенд, бэкенд, Nginx, сервисы мониторинга) упакован в Docker-контейнеры.
- CI/CD Автоматизация: Настроенный пайплайн в GitHub Actions, который при Pull Request в ветку
mainавтоматически:- Собирает production-образы фронтенда и бэкенда.
- Пушит образы в Docker Hub.
- Подключается к серверу по SSH.
- Загружает актуальный
docker-compose.ymlи конфигурации. - Перезапускает все сервисы с новыми образами.
- Мониторинг и Логирование: Интегрирован стек Prometheus + Grafana + Loki для сбора метрик, мониторинга состояния контейнеров и централизованного сбора логов.
- Nginx Reverse Proxy: Настроен для обработки SSL-сертификатов, перенаправления трафика на Next.js и проксирования запросов к Grafana.
| Категория | Технология |
|---|---|
| Фронтенд | Next.js, React, TypeScript, Tailwind CSS, next-intl |
| Бэкенд | Rust, Actix Web, Tokio, Serde, Reqwest |
| Базы данных | Не используются (данные запрашиваются из внешних API в реальном времени) |
| DevOps | Docker, Docker Compose, Nginx, GitHub Actions |
| Мониторинг | Prometheus, Grafana, Loki, Promtail, cAdvisor |