- Bump minimum Python version from 3.11 to 3.13 across all apps - Add Python 3.11-3.13 test matrix to CLI workflow - Document Python 3.11+ requirement in .env.example - Fix Starlette Broadcast removal with in-process fallback implementation - Add _InProcessBroadcast class for tests when Starlette Broadcast is unavailable - Refactor API key validators to read live settings instead of cached values - Update database models with explicit
44 lines
1.0 KiB
Desktop File
44 lines
1.0 KiB
Desktop File
[Unit]
|
|
Description=AITBC GPU Multi-Modal Service (Port 8003)
|
|
Documentation=https://docs.aitbc.bubuit.net
|
|
After=network.target aitbc-coordinator-api.service nvidia-persistenced.service
|
|
Wants=aitbc-coordinator-api.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=aitbc
|
|
Group=aitbc
|
|
WorkingDirectory=/opt/aitbc/apps/coordinator-api
|
|
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src
|
|
Environment=PORT=8003
|
|
Environment=SERVICE_TYPE=gpu-multimodal
|
|
Environment=GPU_ENABLED=true
|
|
Environment=CUDA_VISIBLE_DEVICES=0
|
|
Environment=LOG_LEVEL=INFO
|
|
ExecStart=/opt/aitbc/.venv/bin/python -m aitbc_gpu_multimodal.main
|
|
ExecReload=/bin/kill -HUP $MAINPID
|
|
Restart=always
|
|
RestartSec=10
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=aitbc-gpu-multimodal
|
|
|
|
# Security settings
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data /dev/nvidia*
|
|
LimitNOFILE=65536
|
|
|
|
# GPU access
|
|
DeviceAllow=/dev/nvidia*
|
|
DevicePolicy=auto
|
|
|
|
# Resource limits
|
|
MemoryMax=4G
|
|
CPUQuota=300%
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|