3.2 KiB
3.2 KiB
youtube-microservice
Примечание: сервис не имеет каких либо ограничении с точки зрения верификации => её нужно реализовать самому, как пример доступ к API только через внутренний IP адрес или составить белый список IP, который может взаимодействовать через Traefik/NGINX
uv
curl -LsSf https://astral.sh/uv/install.sh | sh
Deno
curl -fsSL https://deno.land/install.sh | sh
Redis
sudo apt install redis
Environment
- Переименовать
.env.exampleв.env - Добавить конфигурацию для Redis (объязательно)
- По желанию добавить (если включен в app.core.config работу с S3 как uploader_backend) конфигурацию для S3
Конфигурация для systemd
- Получить полный путь к директории проекта
pwd
# /home/.../youtube-microservice
- Получить полный путь к uv
which uv
# /home/.../.local/bin/uv
Для FastAPI (/etc/systemd/system/fastapi-service.service):
[Unit]
Description=FastAPI Service
After=network.target
[Service]
Type=simple
User=your_username # Замените на имя вашего пользователя
WorkingDirectory=/path/to/your/project # Замените на путь к проекту
ExecStart=/usr/bin/uv run fastapi run --host 0.0.0.0 --port 1234
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Для Celery (``):
[Unit]
Description=Celery Worker
After=network.target fastapi-service.service # Зависимость от FastAPI (опционально)
[Service]
Type=simple
User=your_username # Замените на имя вашего пользователя
WorkingDirectory=/path/to/your/project # Замените на путь к проекту
ExecStart=/usr/bin/uv run celery -A app.core.celery.celery_app worker --loglevel=info
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Активация и запуск
# Перезагружаем конфигурацию systemd
sudo systemctl daemon-reload
# Включаем автозапуск при загрузке системы
sudo systemctl enable fastapi-service.service
sudo systemctl enable celery-worker.service
# Запускаем сервисы
sudo systemctl start fastapi-service.service
sudo systemctl start celery-worker.service
Мониторинг и управление
- Проверить статус:
sudo systemctl status fastapi-service.service
sudo systemctl status celery-worker.service
- Посмотреть логи:
sudo journalctl -u fastapi-service.service -f
sudo journalctl -u celery-worker.service -f
- Остановить сервис:
sudo systemctl stop fastapi-service.service
- Перезапустить сервис:
sudo systemctl restart celery-worker.service