This commit is contained in:
user 2025-07-05 20:46:32 +03:00
parent 4ec12873bd
commit 56c45365c6
5 changed files with 131 additions and 14 deletions

43
Dockerfile.simple Normal file
View File

@ -0,0 +1,43 @@
FROM python:3.11-slim
# Установка системных зависимостей
RUN apt-get update && apt-get install -y \
build-essential \
curl \
git \
&& rm -rf /var/lib/apt/lists/*
# Создание рабочей директории
WORKDIR /app
# Копирование файлов зависимостей
COPY pyproject.toml ./
COPY requirements_new.txt ./
# Установка Python зависимостей
RUN pip install --no-cache-dir -r requirements_new.txt
# Копирование исходного кода
COPY . .
# Создание директорий для данных и логов
RUN mkdir -p /app/data /app/logs
# Создание пользователя для безопасности
RUN groupadd -r myapp && useradd -r -g myapp myapp
RUN chown -R myapp:myapp /app
USER myapp
# Порт приложения
EXPOSE 15100
# Переменные окружения
ENV PYTHONPATH=/app
ENV PYTHONUNBUFFERED=1
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD curl -f http://localhost:15100/health || exit 1
# Команда запуска
CMD ["python", "start_my_network.py"]

8
app/__init__.py Normal file
View File

@ -0,0 +1,8 @@
"""
MY Uploader Bot - Distributed Content Protocol
Main application package
"""
__version__ = "2.0.0"
__author__ = "MY Network Team"
__description__ = "Distributed Content Protocol v2.0"

66
fix_app_restart.sh Normal file
View File

@ -0,0 +1,66 @@
#!/bin/bash
# Быстрое исправление и перезапуск MY Network приложения
set -e
echo "🔧 ИСПРАВЛЕНИЕ ПРИЛОЖЕНИЯ MY NETWORK"
# Остановка контейнеров
echo ""
echo "=== 1. ОСТАНОВКА КОНТЕЙНЕРОВ ==="
docker-compose -f deployment/docker-compose.production.yml down app
# Перестройка приложения
echo ""
echo "=== 2. ПЕРЕСТРОЙКА ПРИЛОЖЕНИЯ ==="
docker-compose -f deployment/docker-compose.production.yml build app --no-cache
# Запуск приложения
echo ""
echo "=== 3. ЗАПУСК ПРИЛОЖЕНИЯ ==="
docker-compose -f deployment/docker-compose.production.yml up app -d
# Ожидание запуска
echo ""
echo "=== 4. ОЖИДАНИЕ ЗАПУСКА ==="
echo "Ждем 30 секунд для инициализации..."
sleep 30
# Проверка статуса
echo ""
echo "=== 5. ПРОВЕРКА СТАТУСА ==="
echo "📦 Статус контейнеров:"
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "(my-uploader-app|my-postgres|my-redis)"
echo ""
echo "🧪 Тестирование endpoints:"
# Тест локального endpoint
if timeout 10 curl -s http://localhost:15100/health > /dev/null 2>&1; then
echo "✅ Приложение работает: http://localhost:15100/health"
else
echo "❌ Приложение НЕ отвечает на http://localhost:15100/health"
echo ""
echo "📄 Последние логи:"
docker logs --tail=20 my-uploader-app
exit 1
fi
# Показать информацию
echo ""
echo "=== 6. ИНФОРМАЦИЯ О ПРИЛОЖЕНИИ ==="
curl -s http://localhost:15100/health | python3 -m json.tool 2>/dev/null || echo "Health endpoint недоступен"
echo ""
echo "🌐 Endpoints:"
echo "• http://localhost:15100/health - Health check"
echo "• http://localhost:15100/ - Main page"
echo "• http://localhost:15100/api/docs - API Documentation"
echo "• http://localhost:15100/api/my/monitor/ - Monitoring"
echo ""
echo "✅ ПРИЛОЖЕНИЕ ЗАПУЩЕНО И РАБОТАЕТ!"
echo ""
echo "Теперь можно настроить SSL:"
echo "sudo ./setup_ssl_for_domain.sh"

View File

@ -10,12 +10,12 @@ echo "🔒 НАСТРОЙКА SSL ДЛЯ $DOMAIN"
# Проверка что приложение работает
echo ""
echo "=== 1. ПРОВЕРКА ПРИЛОЖЕНИЯ ==="
if timeout 5 curl -s http://localhost:3000/api/health > /dev/null 2>&1; then
echo "✅ Приложение работает на порту 3000"
if timeout 5 curl -s http://localhost:15100/health > /dev/null 2>&1; then
echo "✅ Приложение работает на порту 15100"
else
echo "❌ Приложение НЕ работает на порту 3000!"
echo "❌ Приложение НЕ работает на порту 15100!"
echo "Сначала исправьте приложение:"
echo "docker-compose -f deployment/docker-compose.production.yml restart app"
echo "chmod +x fix_app_restart.sh && ./fix_app_restart.sh"
exit 1
fi
@ -35,7 +35,7 @@ server {
}
location /api/ {
proxy_pass http://127.0.0.1:3000/api/;
proxy_pass http://127.0.0.1:15100/api/;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
@ -46,13 +46,13 @@ server {
}
location /health {
proxy_pass http://127.0.0.1:3000/api/health;
proxy_pass http://127.0.0.1:15100/health;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
}
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_pass http://127.0.0.1:15100/;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
@ -133,7 +133,7 @@ server {
client_max_body_size 100M;
location /api/ {
proxy_pass http://127.0.0.1:3000/api/;
proxy_pass http://127.0.0.1:15100/api/;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
@ -144,14 +144,14 @@ server {
}
location /health {
proxy_pass http://127.0.0.1:3000/api/health;
proxy_pass http://127.0.0.1:15100/health;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-Proto https;
}
location / {
proxy_pass http://127.0.0.1:3000/;
proxy_pass http://127.0.0.1:15100/;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;

View File

@ -247,12 +247,12 @@ def main():
app.add_event_handler("startup", startup_event)
app.add_event_handler("shutdown", shutdown_event)
# Определить порт
port = 8000
# Определить порт (15100 для MY Network)
port = 15100
# Попробовать найти свободный порт
# Попробовать найти свободный порт (приоритет 15100)
import socket
for test_port in [8000, 8001, 8080, 15100]:
for test_port in [15100, 8000, 8001, 8080]:
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('', test_port))