feat: mobile-like window size and always-visible stats

- Changed window size to mobile phone format (400x800)
- Removed width condition for ActiveProxyFooter - now always visible
- Added run-umbrix.sh launch script with icon copying
- Stats cards now display on all screen sizes
This commit is contained in:
Umbrix Developer
2026-01-17 13:09:20 +03:00
parent ec5ebbd54b
commit 76a374950f
245 changed files with 7931 additions and 1315 deletions

View File

@@ -0,0 +1,126 @@
#!/bin/bash
# 🚀 Скрипт для быстрого тестирования системы обновлений
echo "╔════════════════════════════════════════════════╗"
echo "║ 🚀 Тестирование Системы Обновлений Umbrix ║"
echo "╚════════════════════════════════════════════════╝"
echo ""
# Проверка PHP
if ! command -v php &> /dev/null; then
echo "❌ PHP не установлен. Установите: sudo apt install php"
exit 1
fi
echo "✅ PHP $(php -v | head -1 | cut -d' ' -f2) найден"
# Переход в папку сервера
cd "$(dirname "$0")" || exit
# Проверка файлов
echo "🔍 Проверка необходимых файлов..."
files=("api.php" "latest.json" ".htaccess")
for file in "${files[@]}"; do
if [ -f "$file" ]; then
echo "$file"
else
echo "$file - НЕ НАЙДЕН!"
exit 1
fi
done
# Создание папки downloads если нет
if [ ! -d "downloads" ]; then
mkdir -p downloads
echo "📁 Создана папка downloads/"
fi
# Создание папки logs если нет
if [ ! -d "logs" ]; then
mkdir -p logs
echo "📁 Создана папка logs/"
fi
# Проверка порта
PORT=8000
if lsof -Pi :$PORT -sTCP:LISTEN -t >/dev/null 2>&1 ; then
echo "⚠️ Порт $PORT уже занят. Останавливаю..."
kill $(lsof -t -i:$PORT) 2>/dev/null
sleep 1
fi
# Запуск PHP сервера
echo ""
echo "🚀 Запускаю PHP сервер на http://localhost:$PORT"
php -S localhost:$PORT > logs/server.log 2>&1 &
PHP_PID=$!
# Ждем запуска
sleep 2
# Проверка что сервер запустился
if ! kill -0 $PHP_PID 2>/dev/null; then
echo "❌ Не удалось запустить сервер. Смотрите: logs/server.log"
exit 1
fi
echo "✅ Сервер запущен (PID: $PHP_PID)"
# Проверка API
echo ""
echo "🔍 Проверка API endpoint..."
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:$PORT/api.php)
if [ "$RESPONSE" -eq 200 ]; then
echo "✅ API работает (HTTP $RESPONSE)"
echo ""
echo "📄 Ответ API:"
echo "─────────────────────────────────────────────────"
curl -s http://localhost:$PORT/api.php | python3 -m json.tool 2>/dev/null || curl -s http://localhost:$PORT/api.php
echo "─────────────────────────────────────────────────"
else
echo "❌ API не отвечает (HTTP $RESPONSE)"
echo "Смотрите логи: tail -f logs/server.log"
fi
# Информация для пользователя
echo ""
echo "╔════════════════════════════════════════════════╗"
echo "║ 📱 Инструкции ║"
echo "╚════════════════════════════════════════════════╝"
echo ""
echo "🔗 API доступен по адресу:"
echo " http://localhost:$PORT/api.php"
echo ""
echo "📱 Для Android эмулятора используйте:"
echo " http://10.0.2.2:$PORT/api.php"
echo ""
echo "🔧 В constants.dart укажите:"
echo " static const customUpdateServerUrl = \"http://10.0.2.2:$PORT/api.php\";"
echo " static const useCustomUpdateServer = true;"
echo ""
echo "📋 Далее:"
echo " 1. Откройте приложение в эмуляторе"
echo " 2. Зайдите в Настройки → О программе"
echo " 3. Нажмите 'Проверить обновления'"
echo ""
echo "📊 Логи сервера:"
echo " tail -f logs/server.log"
echo ""
echo "🛑 Остановить сервер:"
echo " kill $PHP_PID"
echo ""
echo "═════════════════════════════════════════════════"
# Сохранить PID
echo $PHP_PID > logs/server.pid
echo ""
echo "✅ Сервер работает. Нажмите Ctrl+C для остановки"
echo ""
# Ждем сигнала остановки
trap "echo ''; echo '🛑 Останавливаю сервер...'; kill $PHP_PID 2>/dev/null; rm -f logs/server.pid; echo '✅ Сервер остановлен'; exit 0" INT TERM
# Следим за логами
tail -f logs/server.log