build one nginx one spa one cerbot and set settings
This commit is contained in:
@@ -17,9 +17,9 @@ GOOSE_DBSTRING='user=postgres dbname=postgres sslmode=disable'
|
||||
GOOSE_MIGRATION_DIR=migrations
|
||||
|
||||
# FRONTEND SPA
|
||||
HTTP_INNDER_PORT=80
|
||||
HTTP_INNER_PORT=80
|
||||
HTTP_OUTER_PORT=80
|
||||
HTTPS_INNDER_PORT=443
|
||||
HTTPS_INNER_PORT=443
|
||||
HTTPS_OUTER_PORT=443
|
||||
|
||||
# NGINX
|
||||
|
||||
+8
-8
@@ -74,20 +74,20 @@ services:
|
||||
- "80:80"
|
||||
- "443:443"
|
||||
volumes:
|
||||
- ./nginx/yalarba.ru.conf:/etc/nginx/conf.d/yalarba.ru.conf
|
||||
- ./nginx/configs:/etc/nginx/conf.d
|
||||
- certbot-etc:/etc/letsencrypt
|
||||
- certbot-var:/var/lib/letsencrypt
|
||||
environment:
|
||||
- EMAIL=${EMAIL}
|
||||
- DOMAINS=${DOMAINS}
|
||||
networks:
|
||||
- web-network
|
||||
depends_on:
|
||||
- certbot
|
||||
|
||||
certbot:
|
||||
image: certbot/certbot
|
||||
container_name: certbot
|
||||
build:
|
||||
context: ./certbot
|
||||
dockerfile: Dockerfile
|
||||
volumes:
|
||||
- certbot-etc:/etc/letsencrypt
|
||||
- certbot-var:/var/lib/letsencrypt
|
||||
command: sh -c "certbot certonly --standalone --noninteractive --agree-tos --email ${EMAIL} -d ${DOMAINS} --keep-until-expiring"
|
||||
env_file:
|
||||
- .env
|
||||
restart: unless-stopped
|
||||
|
||||
+3
-17
@@ -1,25 +1,11 @@
|
||||
FROM nginx:latest
|
||||
|
||||
# Устанавливаем Certbot и зависимости
|
||||
RUN apt-get update && \
|
||||
apt-get install -y certbot python3-certbot-nginx cron && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
RUN mkdir -p /var/www/yalarba.ru/html
|
||||
|
||||
COPY spa_app/index.html /var/www/yalarba.ru/html
|
||||
|
||||
# Удаляем дефолтный конфиг Nginx
|
||||
RUN rm /etc/nginx/conf.d/default.conf
|
||||
|
||||
# Копируем ваш Nginx-конфиг и скрипты
|
||||
COPY yalarba.ru.conf /etc/nginx/conf.d/
|
||||
COPY startup.sh /usr/local/bin/
|
||||
COPY renew-certs.sh /usr/local/bin/
|
||||
|
||||
# Даем права на выполнение скриптов
|
||||
RUN chmod +x /usr/local/bin/startup.sh /usr/local/bin/renew-certs.sh
|
||||
|
||||
# Добавляем cron-задачу для обновления сертификатов
|
||||
RUN echo "0 3 * * * /usr/local/bin/renew-certs.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/certbot-renew
|
||||
RUN chmod 0644 /etc/cron.d/certbot-renew
|
||||
|
||||
# Запускаем cron и Nginx при старте
|
||||
CMD ["/usr/local/bin/startup.sh"]
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Обновляем сертификаты
|
||||
certbot renew --quiet --post-hook "nginx -s reload"
|
||||
@@ -0,0 +1,134 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>ЯлАрба - Туристический агрегатор</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
line-height: 1.6;
|
||||
color: #333;
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
background-color: #f5f7fa;
|
||||
}
|
||||
header {
|
||||
background-color: #1e88e5;
|
||||
color: white;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 30px;
|
||||
text-align: center;
|
||||
}
|
||||
h1 {
|
||||
margin: 0;
|
||||
font-size: 2.2em;
|
||||
}
|
||||
h2 {
|
||||
color: #1e88e5;
|
||||
border-bottom: 2px solid #1e88e5;
|
||||
padding-bottom: 5px;
|
||||
margin-top: 30px;
|
||||
}
|
||||
.developer {
|
||||
background-color: #e3f2fd;
|
||||
padding: 15px;
|
||||
border-radius: 8px;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.roadmap {
|
||||
background-color: white;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||
}
|
||||
.phase {
|
||||
margin-bottom: 20px;
|
||||
padding-bottom: 20px;
|
||||
border-bottom: 1px dashed #ccc;
|
||||
}
|
||||
.phase:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
footer {
|
||||
text-align: center;
|
||||
margin-top: 40px;
|
||||
color: #666;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<h1>ЯлАрба</h1>
|
||||
<p>Инновационный агрегатор мест отдыха с ИИ-планировщиком маршрутов</p>
|
||||
</header>
|
||||
|
||||
<section>
|
||||
<h2>О проекте</h2>
|
||||
<p>ЯлАрба — это супер-приложение для путешественников, объединяющее в себе:</p>
|
||||
<ul>
|
||||
<li>Агрегатор мест отдыха (отели, экскурсии, рестораны)</li>
|
||||
<li>Маркетплейс туров и локальных сувениров</li>
|
||||
<li>ИИ-планировщик маршрутов с учетом здоровья пользователя</li>
|
||||
<li>Систему бронирования и покупки билетов</li>
|
||||
</ul>
|
||||
<p>Наша миссия — сделать планирование путешествий простым, персонализированным и доступным.</p>
|
||||
</section>
|
||||
|
||||
<div class="developer">
|
||||
<h2>Разработчик</h2>
|
||||
<p><strong>Валитов Газиз</strong></p>
|
||||
<p>Full-stack разработчик с опытом в travel-tech проектах. Специализация: Python/Django, React, системы рекомендаций на основе ИИ.</p>
|
||||
</div>
|
||||
|
||||
<section class="roadmap">
|
||||
<h2>План разработки</h2>
|
||||
|
||||
<div class="phase">
|
||||
<h3>Этап 1: MVP (0-6 месяцев)</h3>
|
||||
<ul>
|
||||
<li>База мест отдыха (1000+ позиций)</li>
|
||||
<li>Интеграция с API бронирования (Booking.com, Ostrovok)</li>
|
||||
<li>Прототип ИИ-рекомендаций</li>
|
||||
<li>Мобильная версия (PWA)</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="phase">
|
||||
<h3>Этап 2: Монетизация (6-12 месяцев)</h3>
|
||||
<ul>
|
||||
<li>Система комиссий (10-15% с бронирований)</li>
|
||||
<li>Платные подписки (PRO-аккаунт)</li>
|
||||
<li>Партнерская программа для гидов</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="phase">
|
||||
<h3>Этап 3: Масштабирование (12-24 месяца)</h3>
|
||||
<ul>
|
||||
<li>Выход на рынки СНГ (Казахстан, Узбекистан)</li>
|
||||
<li>Полноценный ИИ-ассистент с рекомендациями по здоровью</li>
|
||||
<li>Интеграция с сервисами аренды авто</li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Технологический стек</h2>
|
||||
<ul>
|
||||
<li><strong>Frontend:</strong> React.js, TypeScript, PWA</li>
|
||||
<li><strong>Backend:</strong> Python/Django, PostgreSQL</li>
|
||||
<li><strong>AI:</strong> NLP-модели для обработки запросов, рекомендательные системы</li>
|
||||
<li><strong>DevOps:</strong> Docker, Kubernetes, Yandex Cloud</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
<p>© 2024 ЯлАрба. Все права защищены.</p>
|
||||
<p>Контакты: gaziz.valitov@yalarba.travel</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Запускаем cron
|
||||
service cron start
|
||||
|
||||
# Получаем сертификаты (если их нет)
|
||||
if [ ! -f "/etc/letsencrypt/live/your_domain.com/fullchain.pem" ]; then
|
||||
certbot --nginx --non-interactive --agree-tos --email valitovgaziz@yandex.ru \
|
||||
-d yalarba.ru -d www.yalarba.ru
|
||||
fi
|
||||
|
||||
# Перезапускаем Nginx для применения изменений
|
||||
nginx -s reload
|
||||
|
||||
# Запускаем Nginx в foreground
|
||||
nginx -g "daemon off;"
|
||||
Reference in New Issue
Block a user