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
|
GOOSE_MIGRATION_DIR=migrations
|
||||||
|
|
||||||
# FRONTEND SPA
|
# FRONTEND SPA
|
||||||
HTTP_INNDER_PORT=80
|
HTTP_INNER_PORT=80
|
||||||
HTTP_OUTER_PORT=80
|
HTTP_OUTER_PORT=80
|
||||||
HTTPS_INNDER_PORT=443
|
HTTPS_INNER_PORT=443
|
||||||
HTTPS_OUTER_PORT=443
|
HTTPS_OUTER_PORT=443
|
||||||
|
|
||||||
# NGINX
|
# NGINX
|
||||||
|
|||||||
+8
-8
@@ -74,20 +74,20 @@ services:
|
|||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
volumes:
|
volumes:
|
||||||
- ./nginx/yalarba.ru.conf:/etc/nginx/conf.d/yalarba.ru.conf
|
- ./nginx/configs:/etc/nginx/conf.d
|
||||||
- certbot-etc:/etc/letsencrypt
|
- certbot-etc:/etc/letsencrypt
|
||||||
- certbot-var:/var/lib/letsencrypt
|
|
||||||
environment:
|
|
||||||
- EMAIL=${EMAIL}
|
|
||||||
- DOMAINS=${DOMAINS}
|
|
||||||
networks:
|
networks:
|
||||||
- web-network
|
- web-network
|
||||||
|
depends_on:
|
||||||
|
- certbot
|
||||||
|
|
||||||
certbot:
|
certbot:
|
||||||
|
image: certbot/certbot
|
||||||
container_name: certbot
|
container_name: certbot
|
||||||
build:
|
volumes:
|
||||||
context: ./certbot
|
- certbot-etc:/etc/letsencrypt
|
||||||
dockerfile: Dockerfile
|
- certbot-var:/var/lib/letsencrypt
|
||||||
|
command: sh -c "certbot certonly --standalone --noninteractive --agree-tos --email ${EMAIL} -d ${DOMAINS} --keep-until-expiring"
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
+3
-17
@@ -1,25 +1,11 @@
|
|||||||
FROM nginx:latest
|
FROM nginx:latest
|
||||||
|
|
||||||
# Устанавливаем Certbot и зависимости
|
RUN mkdir -p /var/www/yalarba.ru/html
|
||||||
RUN apt-get update && \
|
|
||||||
apt-get install -y certbot python3-certbot-nginx cron && \
|
COPY spa_app/index.html /var/www/yalarba.ru/html
|
||||||
apt-get clean && \
|
|
||||||
rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Удаляем дефолтный конфиг Nginx
|
# Удаляем дефолтный конфиг Nginx
|
||||||
RUN rm /etc/nginx/conf.d/default.conf
|
RUN rm /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
# Копируем ваш Nginx-конфиг и скрипты
|
# Копируем ваш Nginx-конфиг и скрипты
|
||||||
COPY yalarba.ru.conf /etc/nginx/conf.d/
|
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