Update Python version requirements and fix compatibility issues
- 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
This commit is contained in:
38
systemd/aitbc-adaptive-learning.service
Normal file
38
systemd/aitbc-adaptive-learning.service
Normal file
@@ -0,0 +1,38 @@
|
||||
[Unit]
|
||||
Description=AITBC Adaptive Learning Service (Port 8005)
|
||||
Documentation=https://docs.aitbc.bubuit.net
|
||||
After=network.target aitbc-coordinator-api.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=8005
|
||||
Environment=SERVICE_TYPE=adaptive-learning
|
||||
Environment=LEARNING_MODE=online
|
||||
Environment=LOG_LEVEL=INFO
|
||||
ExecStart=/opt/aitbc/.venv/bin/python -m aitbc_adaptive_learning.main
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=aitbc-adaptive-learning
|
||||
|
||||
# Security settings
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data /opt/aitbc/models
|
||||
LimitNOFILE=65536
|
||||
|
||||
# Resource limits
|
||||
MemoryMax=3G
|
||||
CPUQuota=250%
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=AITBC Coordinator API Service
|
||||
Description=AITBC Coordinator API Service (Python 3.11+)
|
||||
After=network.target
|
||||
Wants=network.target
|
||||
|
||||
@@ -10,6 +10,8 @@ Group=oib
|
||||
WorkingDirectory=/opt/coordinator-api
|
||||
Environment=PATH=/opt/coordinator-api/.venv/bin
|
||||
Environment=PYTHONPATH=/opt/coordinator-api/src
|
||||
# Python version validation
|
||||
ExecStartPre=/bin/bash -c "python3.11 --version || (echo 'Python 3.11+ required' && exit 1)"
|
||||
ExecStart=/opt/coordinator-api/.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 8000
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=AITBC Exchange API Service
|
||||
Description=AITBC Exchange API Service (Python 3.11+)
|
||||
After=network.target
|
||||
Wants=network.target
|
||||
|
||||
@@ -9,6 +9,8 @@ User=root
|
||||
Group=root
|
||||
WorkingDirectory=/opt/exchange-api
|
||||
Environment=PATH=/opt/exchange-api/.venv/bin
|
||||
# Python version validation
|
||||
ExecStartPre=/bin/bash -c "python3.11 --version || (echo 'Python 3.11+ required' && exit 1)"
|
||||
ExecStart=/opt/exchange-api/.venv/bin/python simple_exchange_api.py
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
|
||||
43
systemd/aitbc-gpu-multimodal.service
Normal file
43
systemd/aitbc-gpu-multimodal.service
Normal file
@@ -0,0 +1,43 @@
|
||||
[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
|
||||
40
systemd/aitbc-marketplace-enhanced.service
Normal file
40
systemd/aitbc-marketplace-enhanced.service
Normal file
@@ -0,0 +1,40 @@
|
||||
[Unit]
|
||||
Description=AITBC Enhanced Marketplace Service (Port 8006)
|
||||
Documentation=https://docs.aitbc.bubuit.net
|
||||
After=network.target aitbc-coordinator-api.service postgresql.service
|
||||
Wants=aitbc-coordinator-api.service postgresql.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=aitbc
|
||||
Group=aitbc
|
||||
WorkingDirectory=/opt/aitbc/apps/coordinator-api
|
||||
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src
|
||||
Environment=PORT=8006
|
||||
Environment=SERVICE_TYPE=marketplace-enhanced
|
||||
Environment=DATABASE_URL=postgresql://aitbc:password@localhost:5432/aitbc
|
||||
Environment=ROYALTY_ENABLED=true
|
||||
Environment=LICENSING_ENABLED=true
|
||||
Environment=LOG_LEVEL=INFO
|
||||
ExecStart=/opt/aitbc/.venv/bin/python -m aitbc_marketplace_enhanced.main
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=aitbc-marketplace-enhanced
|
||||
|
||||
# Security settings
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data
|
||||
LimitNOFILE=65536
|
||||
|
||||
# Resource limits
|
||||
MemoryMax=2G
|
||||
CPUQuota=200%
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
37
systemd/aitbc-modality-optimization.service
Normal file
37
systemd/aitbc-modality-optimization.service
Normal file
@@ -0,0 +1,37 @@
|
||||
[Unit]
|
||||
Description=AITBC Modality Optimization Service (Port 8004)
|
||||
Documentation=https://docs.aitbc.bubuit.net
|
||||
After=network.target aitbc-coordinator-api.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=8004
|
||||
Environment=SERVICE_TYPE=modality-optimization
|
||||
Environment=LOG_LEVEL=INFO
|
||||
ExecStart=/opt/aitbc/.venv/bin/python -m aitbc_modality_optimization.main
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=aitbc-modality-optimization
|
||||
|
||||
# Security settings
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data
|
||||
LimitNOFILE=65536
|
||||
|
||||
# Resource limits
|
||||
MemoryMax=1G
|
||||
CPUQuota=150%
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
37
systemd/aitbc-multimodal.service
Normal file
37
systemd/aitbc-multimodal.service
Normal file
@@ -0,0 +1,37 @@
|
||||
[Unit]
|
||||
Description=AITBC Multi-Modal Agent Service (Port 8002)
|
||||
Documentation=https://docs.aitbc.bubuit.net
|
||||
After=network.target aitbc-coordinator-api.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=8002
|
||||
Environment=SERVICE_TYPE=multimodal
|
||||
Environment=LOG_LEVEL=INFO
|
||||
ExecStart=/opt/aitbc/.venv/bin/python -m aitbc_multimodal.main
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=aitbc-multimodal
|
||||
|
||||
# Security settings
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data
|
||||
LimitNOFILE=65536
|
||||
|
||||
# Resource limits
|
||||
MemoryMax=2G
|
||||
CPUQuota=200%
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=AITBC Blockchain Node Service
|
||||
Description=AITBC Blockchain Node Service (Python 3.11+)
|
||||
After=network.target
|
||||
Wants=network.target
|
||||
|
||||
@@ -11,6 +11,8 @@ WorkingDirectory=/opt/blockchain-node
|
||||
Environment=PATH=/opt/blockchain-node/.venv/bin
|
||||
Environment=PYTHONPATH=/opt/blockchain-node
|
||||
Environment=RUST_LOG=info
|
||||
# Python version validation
|
||||
ExecStartPre=/bin/bash -c "python3.11 --version || (echo 'Python 3.11+ required' && exit 1)"
|
||||
ExecStart=/opt/blockchain-node/.venv/bin/python -m node.main --datadir /opt/blockchain-node/data --rpc-bind 0.0.0.0:8545
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
|
||||
39
systemd/aitbc-openclaw-enhanced.service
Normal file
39
systemd/aitbc-openclaw-enhanced.service
Normal file
@@ -0,0 +1,39 @@
|
||||
[Unit]
|
||||
Description=AITBC OpenClaw Enhanced Service (Port 8007)
|
||||
Documentation=https://docs.aitbc.bubuit.net
|
||||
After=network.target aitbc-coordinator-api.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=8007
|
||||
Environment=SERVICE_TYPE=openclaw-enhanced
|
||||
Environment=EDGE_COMPUTING_ENABLED=true
|
||||
Environment=AGENT_ORCHESTRATION_ENABLED=true
|
||||
Environment=LOG_LEVEL=INFO
|
||||
ExecStart=/opt/aitbc/.venv/bin/python -m aitbc_openclaw_enhanced.main
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
SyslogIdentifier=aitbc-openclaw-enhanced
|
||||
|
||||
# Security settings
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=strict
|
||||
ProtectHome=true
|
||||
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data
|
||||
LimitNOFILE=65536
|
||||
|
||||
# Resource limits
|
||||
MemoryMax=2G
|
||||
CPUQuota=200%
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=AITBC Wallet Daemon Service
|
||||
Description=AITBC Wallet Daemon Service (Python 3.11+)
|
||||
After=network.target
|
||||
Wants=network.target
|
||||
|
||||
@@ -10,6 +10,8 @@ Group=root
|
||||
WorkingDirectory=/opt/wallet-daemon
|
||||
Environment=PATH=/opt/wallet-daemon/.venv/bin
|
||||
Environment=PYTHONPATH=/opt/wallet-daemon
|
||||
# Python version validation
|
||||
ExecStartPre=/bin/bash -c "python3.11 --version || (echo 'Python 3.11+ required' && exit 1)"
|
||||
ExecStart=/opt/wallet-daemon/.venv/bin/python -m wallet_daemon.main --host 0.0.0.0 --port 8001
|
||||
ExecReload=/bin/kill -HUP $MAINPID
|
||||
Restart=always
|
||||
|
||||
Reference in New Issue
Block a user