Инициализация IT Academy...
Загрузка уроков...
Отличная работа! Вы успешно изучили эту тему.
Получайте уведомления о необходимости позаниматься
Напоминание каждые N часов
Используйте {course_name} для названия курса
Скачайте полный архив проекта с Яндекс Диска:
Скачать архив проекта (Яндекс Диск)# Обновляем пакеты системы
sudo apt update
sudo apt upgrade -y
# Устанавливаем необходимые утилиты
sudo apt install -y curl wget git nano net-tools
# Удаляем старые версии (если есть)
sudo apt remove -y docker docker-engine docker.io containerd runc
# Устанавливаем необходимые пакеты
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
# Добавляем официальный GPG ключ Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Добавляем репозиторий Docker
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Устанавливаем Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
# Добавляем пользователя в группу docker
sudo usermod -aG docker $USER
# Включаем автозапуск Docker
sudo systemctl enable docker
sudo systemctl start docker
# Проверяем установку
sudo docker --version
# Устанавливаем Docker Compose
sudo apt install -y docker-compose
# Проверяем версию
sudo docker-compose --version
# Распаковываем архив
unzip learnalka-deployment.zip
cd Learnalka
# Даем права на выполнение скриптов
chmod +x init-ssl.sh
Создайте файл .env.local с вашими настройками:
# Обязательные настройки домена
DOMAIN=your-domain.com
SSL_EMAIL=admin@your-domain.com
# Telegram Bot настройки
BOT_TOKEN=your_bot_token_from_botfather
WEBAPP_URL=https://your-domain.com
ADMIN_TELEGRAM_ID=your_telegram_id
# ИИ проверка домашних заданий
OPENAI_API_KEY=your_openrouter_api_key
# Безопасность
SECRET_KEY=your_very_long_secret_key_here
# Режим отладки (false для продакшена)
DEBUG_MODE=false
# Проверяем конфигурацию
sudo docker-compose --env-file .env.local config
# Собираем и запускаем контейнеры
sudo docker-compose --env-file .env.local build
sudo docker-compose --env-file .env.local up -d
# Проверяем статус контейнеров
sudo docker-compose --env-file .env.local ps
# Запускаем скрипт настройки SSL
sudo ./init-ssl.sh
# Или вручную:
sudo docker-compose --env-file .env.local run --rm certbot
sudo docker-compose --env-file .env.local restart nginx
# Проверяем HTTP (должен редиректить на HTTPS)
curl -I http://your-domain.com
# Проверяем HTTPS
curl -I https://your-domain.com
# Проверяем API
curl https://your-domain.com/api/courses
Основные команды:
# Запуск всех сервисов
sudo docker-compose --env-file .env.local up -d
# Остановка всех сервисов
sudo docker-compose --env-file .env.local down
# Перезапуск конкретного сервиса
sudo docker-compose --env-file .env.local restart nginx
sudo docker-compose --env-file .env.local restart app
# Просмотр статуса контейнеров
sudo docker-compose --env-file .env.local ps
# Просмотр логов всех сервисов
sudo docker-compose --env-file .env.local logs -f
# Просмотр логов конкретного сервиса
sudo docker-compose --env-file .env.local logs -f app
sudo docker-compose --env-file .env.local logs -f nginx
Пересборка после изменений:
# Полная пересборка всех контейнеров
sudo docker-compose --env-file .env.local down
sudo docker-compose --env-file .env.local build --no-cache
sudo docker-compose --env-file .env.local up -d
Отладка:
# Подключение к контейнеру
sudo docker-compose --env-file .env.local exec app bash
# Проверка конфигурации nginx
sudo docker-compose --env-file .env.local exec nginx nginx -t
# Проверка переменных окружения
sudo docker-compose --env-file .env.local exec app env
# Создание директории для бэкапов
mkdir -p ~/backups
# Бэкап базы данных
sudo docker run --rm \
-v itacademy_learning_app_db:/data \
-v ~/backups:/backup \
alpine tar czf /backup/db_backup_$(date +%Y%m%d_%H%M%S).tar.gz -C /data .
# Бэкап SSL сертификатов
sudo docker run --rm \
-v $(pwd)/nginx/ssl:/ssl \
-v ~/backups:/backup \
alpine tar czf /backup/ssl_backup_$(date +%Y%m%d_%H%M%S).tar.gz -C /ssl .
Проблема: Контейнеры не запускаются
# Проверьте логи
sudo docker-compose --env-file .env.local logs
# Проверьте конфигурацию
sudo docker-compose --env-file .env.local config
# Пересоберите контейнеры
sudo docker-compose --env-file .env.local build --no-cache
Проблема: SSL сертификат не работает
# Проверьте DNS
nslookup your-domain.com
# Проверьте сертификаты
sudo docker-compose --env-file .env.local exec nginx certbot certificates
# Перевыпустите сертификат
sudo docker-compose --env-file .env.local down
sudo ./init-ssl.sh
Проблема: Сайт недоступен
# Проверьте статус nginx
sudo docker-compose --env-file .env.local exec nginx nginx -t
sudo docker-compose --env-file .env.local logs nginx
# Проверьте порты
sudo netstat -tlnp | grep -E ":80|:443"
При возникновении проблем:
sudo docker-compose --env-file .env.local logs.env.localНужна помощь? Свяжитесь с администратором:
Написать в Telegram @sftpkirpichПодробная документация по развертыванию доступна в файле DOCKER_SETUP.md в архиве проекта.
Документация включает:
Запуск приложения:
/startПервый запуск:
При первом запуске вы увидите экран приветствия, список доступных курсов и вашу статистику обучения (0% на старте).
Выбор курса:
Каждая карточка курса содержит:
Интерфейс курса - основные кнопки:
Структура урока:
Навигация по уроку:
Как отправить решение:
Способ 1: Текстовое поле
Способ 2: Загрузка файла
Статусы домашнего задания:
Обратная связь от ИИ проверяет:
Лимиты отправки:
Дополнительные практические задания для закрепления навыков:
Уровни сложности:
Статусы задач:
Типы напоминаний:
📅 Ежедневно
Уведомления каждый день в указанное время (например, каждый день в 19:00)
📆 По дням недели
Уведомления в выбранные дни недели (например, Пн, Ср, Пт в 18:00)
⏰ Через интервал
Уведомления каждые N часов (от 1 до 168 часов)
Персонализация сообщений:
Вы можете настроить текст уведомлений:
"Время заниматься Python! 💻"
"Не забудь сделать домашнее задание! 📚"
"Продолжай изучение - ты молодец! 🚀"
Аттестация доступна после завершения всех уроков курса.
Структура аттестации:
Результаты включают:
Не могу перейти к следующему уроку
Причина: Не выполнено домашнее задание текущего урока.
Решение: Прокрутите страницу вниз, выполните и отправьте ДЗ.
Домашнее задание отклонено
Решение: Откройте уведомление в Telegram, прочитайте обратную связь, исправьте ошибки и отправьте повторно.
Не приходят уведомления
Проверьте: Включены ли напоминания, правильно ли указано время, не заблокирован ли бот.
Файл не загружается
Причины: Файл больше 5 MB или неподдерживаемый формат. Используйте текстовое поле.
Аттестация недоступна
Причина: Не завершены все уроки курса. Откройте "Все уроки" и проверьте прогресс.
Помните: программирование - это навык, который развивается с практикой.
Не бойтесь ошибок, экспериментируйте и продолжайте учиться! 💪
Счастливого кодинга! 🎓✨