# Development режим (frontend интерактивный)
./start-all.sh dev
# Background режим (всё в фоне)
./start-all.sh background
# Посмотреть логи
./start-all.sh logs
# Остановить всё
./start-all.sh stop
# Статус
./start-all.sh status
cd backend
# Development с auto-reload
./start.sh dev
# Production (4 воркера)
./start.sh prod
# В фоне
./start.sh background
# Остановить
./start.sh stop
# Статус
./start.sh status
Кастомизация:
# Другой порт
PORT=8001 ./start.sh dev
# Другой хост
HOST=127.0.0.1 PORT=9000 ./start.sh background
# Debug логи
LOG_LEVEL=debug ./start.sh dev
Логи:
/tmp/backend_dev.log/tmp/backend_live.log/var/log/mybeacon/backend.logcd frontend
# Development server
./start.sh dev
# В фоне
./start.sh background
# Build production
./start.sh build
# Preview production build
./start.sh preview
# Остановить
./start.sh stop
# Очистить кеш
./start.sh clean
# Установить/обновить зависимости
./start.sh install
Кастомизация:
# Другой порт
PORT=3000 ./start.sh dev
# Другой хост
HOST=192.168.5.4 PORT=5173 ./start.sh dev
Логи:
/tmp/frontend_dev.logBackend:
cd backend
poetry install
Frontend:
cd frontend
npm install
Создай .env файл в backend/:
cd backend
cp .env.example .env
# Отредактируй .env если нужно
PostgreSQL:
sudo systemctl start postgresql
sudo systemctl enable postgresql
# Создать БД
sudo -u postgres psql
CREATE USER mybeacon WITH PASSWORD 'mybeacon';
CREATE DATABASE mybeacon OWNER mybeacon;
\q
ClickHouse:
sudo systemctl start clickhouse-server
sudo systemctl enable clickhouse-server
# Создать БД
clickhouse-client -q "CREATE DATABASE IF NOT EXISTS mybeacon"
Redis:
sudo systemctl start redis
sudo systemctl enable redis
cd backend
poetry run alembic upgrade head
cd backend
poetry run python3 -c "
from app.core.database import async_session_maker
from app.models.user import User
from app.core.security import get_password_hash
from datetime import datetime, timezone
import asyncio
async def create_superadmin():
async with async_session_maker() as db:
admin = User(
email='superadmin@mybeacon.com',
hashed_password=get_password_hash('superadmin123'),
full_name='Super Admin',
role='superadmin',
status='active',
email_verified=True,
created_at=datetime.now(timezone.utc)
)
db.add(admin)
await db.commit()
print('✅ Superadmin created: superadmin@mybeacon.com / superadmin123')
asyncio.run(create_superadmin())
"
# Из корня проекта
./start-all.sh dev
# Все сервисы
./start-all.sh status
# Backend отдельно
cd backend && ./start.sh status
# Frontend отдельно
cd frontend && ./start.sh status
# Все логи сразу
./start-all.sh logs
# Backend
tail -f /tmp/backend_live.log
# Frontend
tail -f /tmp/frontend_dev.log
# Backend
ps aux | grep uvicorn
# Frontend
ps aux | grep vite
cd backend
# Форматирование кода
poetry run black app/
# Проверка кода
poetry run ruff app/
# Тесты
poetry run pytest
# Новая миграция
poetry run alembic revision --autogenerate -m "description"
# Применить миграции
poetry run alembic upgrade head
# Откатить миграцию
poetry run alembic downgrade -1
cd frontend
# Линтинг
npm run lint
# Форматирование
npm run format
# Проверка типов
npm run type-check
# Build
npm run build
# Preview build
npm run preview
# Проверь .env
cat backend/.env
# Проверь БД подключение
cd backend
poetry run python3 -c "from app.core.database import engine; print('OK')"
# Проверь порт 8000
sudo netstat -tlnp | grep 8000
# Убей старые процессы
pkill -f uvicorn
# Проверь node_modules
cd frontend
ls node_modules/ | wc -l # Должно быть > 0
# Переустанови
rm -rf node_modules package-lock.json
npm install
# Проверь порт 5173
sudo netstat -tlnp | grep 5173
# Убей старые процессы
pkill -f vite
# Останови всё
./start-all.sh stop
# Очисти кеши
cd backend
find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null
find . -type f -name "*.pyc" -delete 2>/dev/null
cd ../frontend
rm -rf node_modules/.vite dist
Добавь в ~/.bashrc или ~/.zshrc:
# MyBeacon
alias mb-start='cd ~/work/luckfox/alpine/mybeacon-backend && ./start-all.sh background'
alias mb-stop='cd ~/work/luckfox/alpine/mybeacon-backend && ./start-all.sh stop'
alias mb-logs='cd ~/work/luckfox/alpine/mybeacon-backend && ./start-all.sh logs'
alias mb-status='cd ~/work/luckfox/alpine/mybeacon-backend && ./start-all.sh status'
# Backend
alias mb-be='cd ~/work/luckfox/alpine/mybeacon-backend/backend'
alias mb-be-logs='tail -f /tmp/backend_live.log'
# Frontend
alias mb-fe='cd ~/work/luckfox/alpine/mybeacon-backend/frontend'
alias mb-fe-logs='tail -f /tmp/frontend_dev.log'
Потом: source ~/.bashrc
Использование:
mb-start # Запустить всё
mb-status # Статус
mb-logs # Логи
mb-stop # Остановить
sudo cp backend/systemd/mybeacon-api.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable mybeacon-api
sudo systemctl start mybeacon-api
# Build frontend
cd frontend
npm run build
# Copy to nginx
sudo cp -r dist /var/www/mybeacon-frontend
# Setup nginx
sudo cp nginx/mybeacon.conf /etc/nginx/sites-available/
sudo ln -s /etc/nginx/sites-available/mybeacon.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Готово! 🎉