refactor: update systemd service configurations for deployment environment changes
Some checks failed
AITBC CI/CD Pipeline / lint-and-test (3.11) (push) Has been cancelled
AITBC CI/CD Pipeline / lint-and-test (3.12) (push) Has been cancelled
AITBC CI/CD Pipeline / lint-and-test (3.13) (push) Has been cancelled
AITBC CI/CD Pipeline / test-cli (push) Has been cancelled
AITBC CI/CD Pipeline / test-services (push) Has been cancelled
AITBC CI/CD Pipeline / test-production-services (push) Has been cancelled
AITBC CI/CD Pipeline / security-scan (push) Has been cancelled
AITBC CI/CD Pipeline / build (push) Has been cancelled
AITBC CI/CD Pipeline / deploy-staging (push) Has been cancelled
AITBC CI/CD Pipeline / deploy-production (push) Has been cancelled
AITBC CI/CD Pipeline / performance-test (push) Has been cancelled
AITBC CI/CD Pipeline / docs (push) Has been cancelled
AITBC CI/CD Pipeline / release (push) Has been cancelled
AITBC CI/CD Pipeline / notify (push) Has been cancelled
Security Scanning / Bandit Security Scan (apps/coordinator-api/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (cli/aitbc_cli) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-core/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-crypto/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (packages/py/aitbc-sdk/src) (push) Has been cancelled
Security Scanning / Bandit Security Scan (tests) (push) Has been cancelled
Security Scanning / CodeQL Security Analysis (javascript) (push) Has been cancelled
Security Scanning / CodeQL Security Analysis (python) (push) Has been cancelled
Security Scanning / Dependency Security Scan (push) Has been cancelled
Security Scanning / Container Security Scan (push) Has been cancelled
Security Scanning / OSSF Scorecard (push) Has been cancelled
Security Scanning / Security Summary Report (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.11) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.12) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-cli-level1 (3.13) (push) Has been cancelled
AITBC CLI Level 1 Commands Test / test-summary (push) Has been cancelled

- Change user/group from aitbc to debian/root across services
- Update working directories from /opt/aitbc to environment-specific paths
- Modify virtual environment paths to match new deployment structure
- Update blockchain services to use combined_main and add EnvironmentFile directives
- Change adaptive-learning, modality-optimization, multimodal, openclaw-enhanced ports and module paths
- Update marketplace-
This commit is contained in:
2026-03-24 16:14:41 +01:00
parent f0535d3881
commit 26f7dd5ad0
60 changed files with 475 additions and 164 deletions

View File

@@ -1,38 +1,32 @@
[Unit] [Unit]
Description=AITBC Adaptive Learning Service (Port 8013) Description=AITBC Adaptive Learning Service
Documentation=https://docs.aitbc.bubuit.net
After=network.target aitbc-coordinator-api.service After=network.target aitbc-coordinator-api.service
Wants=aitbc-coordinator-api.service Wants=aitbc-coordinator-api.service
[Service] [Service]
Type=simple Type=simple
User=aitbc User=debian
Group=aitbc Group=debian
WorkingDirectory=/opt/aitbc/apps/coordinator-api WorkingDirectory=/home/oib/aitbc/apps/coordinator-api
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src Environment=PATH=/opt/coordinator-api/.venv/bin
Environment=PORT=8013 ExecStart=/opt/coordinator-api/.venv/bin/python -m uvicorn src.app.services.adaptive_learning_app:app --host 127.0.0.1 --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 ExecReload=/bin/kill -HUP $MAINPID
Restart=always KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true
Restart=on-failure
RestartSec=10 RestartSec=10
# Logging
StandardOutput=journal StandardOutput=journal
StandardError=journal StandardError=journal
SyslogIdentifier=aitbc-adaptive-learning SyslogIdentifier=aitbc-adaptive-learning
# Security settings # Security
NoNewPrivileges=true NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict ProtectSystem=strict
ProtectHome=true ProtectHome=true
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data /opt/aitbc/models ReadWritePaths=/home/oib/aitbc/apps/coordinator-api
LimitNOFILE=65536
# Resource limits
MemoryMax=3G
CPUQuota=250%
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,14 @@
[Unit]
Description=AITBC Advanced Learning Service
After=network.target
[Service]
Type=simple
User=aitbc
WorkingDirectory=/opt/aitbc/services
ExecStart=/usr/bin/python3 -m advanced_learning
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,14 @@
[Unit]
Description=AITBC Agent Communication Service
After=network.target
[Service]
Type=simple
User=debian
WorkingDirectory=/opt/aitbc/services
ExecStart=/usr/bin/python3 -m agent_communication
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,16 @@
[Unit]
Description=AITBC Agent Registry Service
After=network.target
[Service]
Type=simple
User=debian
Group=debian
WorkingDirectory=/opt/aitbc/apps/agent-registry/src
Environment=PYTHONPATH=/opt/aitbc
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python app.py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,17 @@
[Unit]
Description=AITBC Blockchain Node (Development)
After=network.target
[Service]
Type=exec
User=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node
Environment=PATH=/opt/aitbc/apps/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=-/opt/aitbc/.env
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m aitbc_chain.main
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,4 @@
[Service]
Environment=NODE_PORT=8025
ExecStart=
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m uvicorn aitbc_chain.app:app --host 0.0.0.0 --port 8025

View File

@@ -1,13 +1,17 @@
[Unit] [Unit]
Description=AITBC Blockchain Node Description=AITBC Blockchain Node (Combined with P2P)
After=network.target After=network.target
[Service] [Service]
Type=simple Type=simple
User=aitbc User=root
Group=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node WorkingDirectory=/opt/aitbc/apps/blockchain-node
EnvironmentFile=/opt/aitbc/.env
Environment=PATH=/opt/aitbc/apps/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python -m aitbc_chain.main #EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m aitbc_chain.combined_main
Restart=always Restart=always
RestartSec=5 RestartSec=5
StandardOutput=journal StandardOutput=journal
@@ -15,3 +19,4 @@ StandardError=journal
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,20 @@
[Unit]
Description=AITBC Blockchain P2P Network Service
After=network.target redis.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node
Environment=PATH=/opt/aitbc/apps/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m aitbc_chain.p2p_network --host ${p2p_bind_host} --port ${p2p_bind_port} --redis ${gossip_broadcast_url} --node-id ${proposer_id}
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,16 @@
[Unit]
Description=AITBC Blockchain RPC API (Development)
After=blockchain-node-2.service
[Service]
Type=exec
User=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node
Environment=PATH=/opt/aitbc/apps/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m uvicorn aitbc_chain.app:app --host 0.0.0.0 --port 8081
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,4 @@
[Service]
Environment=RPC_PORT=8026
ExecStart=
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m uvicorn aitbc_chain.app:app --host 0.0.0.0 --port 8026

View File

@@ -4,10 +4,14 @@ After=network.target aitbc-blockchain-node.service
[Service] [Service]
Type=simple Type=simple
User=aitbc User=root
Group=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node WorkingDirectory=/opt/aitbc/apps/blockchain-node
EnvironmentFile=/opt/aitbc/.env
Environment=PATH=/opt/aitbc/apps/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python -m uvicorn aitbc_chain.app:app --host 127.0.0.1 --port 8006 --log-level info EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m uvicorn aitbc_chain.app:app --host ${rpc_bind_host} --port ${rpc_bind_port}
Restart=always Restart=always
RestartSec=5 RestartSec=5
StandardOutput=journal StandardOutput=journal
@@ -15,3 +19,4 @@ StandardError=journal
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,26 @@
[Unit]
Description=AITBC Blockchain Chain Synchronization Service (Dev)
After=network.target redis.service aitbc-blockchain-node-dev.service aitbc-blockchain-rpc-dev.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node
Environment=PATH=/opt/aitbc/apps/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=-/opt/aitbc/.env
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m aitbc_chain.chain_sync \
--redis redis://localhost:6379 \
--node-id follower-dev \
--rpc-port 8026 \
--leader-host 127.0.0.1 \
--source-host 127.0.0.1 --source-port 8006 \
--import-host 127.0.0.1 --import-port 8026
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,21 @@
[Unit]
Description=AITBC Blockchain Chain Synchronization Service
After=network.target redis.service aitbc-blockchain-node.service aitbc-blockchain-rpc.service
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/aitbc/apps/blockchain-node
EnvironmentFile=/opt/aitbc/.env
Environment=PATH=/opt/aitbc/apps/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-node/src:/opt/aitbc/apps/blockchain-node/scripts
EnvironmentFile=/opt/aitbc/apps/blockchain-node/.env.production
ExecStart=/opt/aitbc/apps/blockchain-node/.venv/bin/python3 -m aitbc_chain.chain_sync --redis redis://localhost:6379 --node-id ait18yefwwclgmyu2a74zvv0hj3a3xw6gxsn4akrj963kp069j9xy5ns3kurun --rpc-port 8006 --leader-host 10.1.223.40 --source-host 10.1.223.40 --source-port 8006 --import-host 10.1.223.40 --import-port 8006
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,24 +1,16 @@
[Unit] [Unit]
Description=AITBC Coordinator API Service (Python 3.13.5+) Description=AITBC Coordinator API
After=network.target After=network.target
Wants=network.target
[Service] [Service]
Type=simple Type=simple
User=aitbc User=root
WorkingDirectory=/opt/aitbc/apps/coordinator-api WorkingDirectory=/opt/aitbc/apps/coordinator-api/src
Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 8000
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src
Environment=MINER_API_KEYS=["miner_test_abc123"]
# Python version validation
ExecStartPre=/bin/bash -c "python3 --version || (echo 'Python 3.13.5+ required' && exit 1)"
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python -m uvicorn main:app --host 0.0.0.0 --port 8000
ExecReload=/bin/kill -HUP $MAINPID
Restart=always Restart=always
RestartSec=5 RestartSec=5
StandardOutput=journal StandardOutput=journal
StandardError=journal StandardError=journal
SyslogIdentifier=aitbc-coordinator-api
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,14 @@
[Unit]
Description=AITBC Cross Chain Reputation Service
After=network.target
[Service]
Type=simple
User=aitbc
WorkingDirectory=/opt/aitbc/services
ExecStart=/usr/bin/python3 -m cross_chain_reputation
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,13 @@
[Unit]
Description=AITBC Edge Node Monitoring - aitbc1-edge-secondary
After=network.target
[Service]
Type=simple
User=root
ExecStart=/tmp/aitbc-monitoring/monitor.sh
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,17 +1,15 @@
[Unit] [Unit]
Description=AITBC Exchange API Service (Python 3.13.5+) Description=AITBC Exchange API Service
After=network.target After=network.target
Wants=network.target Wants=network.target
[Service] [Service]
Type=simple Type=simple
User=aitbc User=debian
Group=aitbc Group=debian
WorkingDirectory=/opt/aitbc/apps/trade-exchange WorkingDirectory=/opt/aitbc/apps/exchange
Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin
# Python version validation ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python simple_exchange_api.py
ExecStartPre=/bin/bash -c "python3 --version || (echo 'Python 3.13.5+ required' && exit 1)"
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python simple_exchange_api.py --port 8001
ExecReload=/bin/kill -HUP $MAINPID ExecReload=/bin/kill -HUP $MAINPID
Restart=always Restart=always
RestartSec=5 RestartSec=5

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,3 @@
[Service]
ExecStart=
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python simple_exchange_api.py --port 8001

View File

@@ -5,12 +5,11 @@ Wants=network.target
[Service] [Service]
Type=simple Type=simple
User=aitbc User=root
Group=aitbc Group=root
WorkingDirectory=/opt/aitbc/apps/trade-exchange WorkingDirectory=/root/aitbc/apps/trade-exchange
Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin Environment=PATH=/root/aitbc/.venv/bin
Environment=PYTHONPATH=/opt/aitbc/apps/trade-exchange ExecStart=/root/aitbc/.venv/bin/python server.py --port 3002
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python server.py --port 3002
ExecReload=/bin/kill -HUP $MAINPID ExecReload=/bin/kill -HUP $MAINPID
Restart=always Restart=always
RestartSec=5 RestartSec=5

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,12 @@
[Unit]
Description=AITBC Exchange Mock API (trades/orderbook/wallet-connect)
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/python3 /var/www/aitbc.bubuit.net/api/exchange_mock_api.py
Restart=always
RestartSec=2
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,15 @@
[Unit]
Description=AITBC Trade Exchange
After=network.target
[Service]
Type=exec
User=debian
WorkingDirectory=/opt/aitbc/apps/exchange
Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python server.py --port 3002
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,19 +1,18 @@
[Unit] [Unit]
Description=AITBC Blockchain Explorer UI Description=AITBC Blockchain Explorer UI
After=network.target aitbc-blockchain-rpc.service After=network.target aitbc-blockchain-rpc-1.service aitbc-blockchain-rpc-2.service
[Service] [Service]
Type=simple Type=simple
User=aitbc User=root
Group=aitbc
WorkingDirectory=/opt/aitbc/apps/blockchain-explorer WorkingDirectory=/opt/aitbc/apps/blockchain-explorer
Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin:/usr/local/bin:/usr/bin:/bin # Using the blockchain node venv since the coordinator one is broken
Environment=PYTHONPATH=/opt/aitbc/apps/blockchain-explorer Environment=PATH=/opt/blockchain-node/.venv/bin:/usr/local/bin:/usr/bin:/bin
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python main.py ExecStart=/opt/blockchain-node/.venv/bin/python3 main.py
Restart=always Restart=always
RestartSec=5 RestartSec=5
StandardOutput=journal StandardOutput=syslog
StandardError=journal StandardError=syslog
SyslogIdentifier=aitbc-explorer SyslogIdentifier=aitbc-explorer
[Install] [Install]

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -5,16 +5,11 @@ Wants=network.target
[Service] [Service]
Type=simple Type=simple
User=aitbc User=debian
Group=aitbc Group=debian
WorkingDirectory=/opt/aitbc WorkingDirectory=/home/debian/aitbc
Environment=PYTHONPATH=/opt/aitbc/dev/gpu Environment=PYTHONPATH=/home/debian/aitbc
Environment=VIRTUAL_ENV=/opt/aitbc/.venv ExecStart=/home/debian/aitbc/venv/bin/python /home/debian/aitbc/gpu_miner_simple.py
Environment=PYTHONUNBUFFERED=1
Environment=PYTHONIOENCODING=utf-8
Environment=FORCE_COLOR=1
Environment=PATH=/opt/aitbc/.venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ExecStart=/bin/bash -c 'exec /opt/aitbc/apps/coordinator-api/.venv/bin/python -u /opt/aitbc/dev/gpu/gpu_miner_host.py 2>&1 | tee -a /opt/aitbc/logs/host_gpu_miner.log'
Restart=on-failure Restart=on-failure
RestartSec=30 RestartSec=30
StartLimitInterval=300 StartLimitInterval=300
@@ -27,8 +22,7 @@ SyslogIdentifier=aitbc-gpu-miner
NoNewPrivileges=true NoNewPrivileges=true
PrivateTmp=true PrivateTmp=true
ProtectSystem=strict ProtectSystem=strict
ProtectHome=true ReadWritePaths=/home/debian/aitbc
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data /opt/aitbc/dev/gpu
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,37 @@
[Unit]
Description=AITBC GPU Multi-Modal Processing Service
After=network.target aitbc-coordinator-api.service
Wants=aitbc-coordinator-api.service
[Service]
Type=simple
User=debian
Group=debian
WorkingDirectory=/home/oib/aitbc/apps/coordinator-api
Environment=PATH=/opt/coordinator-api/.venv/bin
Environment=CUDA_VISIBLE_DEVICES=0
ExecStart=/opt/coordinator-api/.venv/bin/python -m uvicorn src.app.services.gpu_multimodal_app:app --host 127.0.0.1 --port 8003
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true
Restart=on-failure
RestartSec=10
# Logging
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-gpu-multimodal
# Security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/home/oib/aitbc/apps/coordinator-api
# GPU Access
DeviceAllow=/dev/nvidia0 rwm
DevicePolicy=auto
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,28 +1,31 @@
[Unit] [Unit]
Description=AITBC Enhanced Marketplace Service (Port 8014) Description=AITBC Enhanced Marketplace Service
Documentation=https://docs.aitbc.bubuit.net After=network.target aitbc-coordinator-api.service
After=network.target aitbc-coordinator-api.service postgresql.service Wants=aitbc-coordinator-api.service
Wants=aitbc-coordinator-api.service postgresql.service
[Service] [Service]
Type=simple Type=simple
User=aitbc User=root
Group=aitbc
WorkingDirectory=/opt/aitbc/apps/coordinator-api WorkingDirectory=/opt/aitbc/apps/coordinator-api
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin
Environment=PORT=8014 ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python -m uvicorn src.app.routers.marketplace_enhanced_app:app --host 127.0.0.1 --port 8021
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/apps/coordinator-api/.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 8014
ExecReload=/bin/kill -HUP $MAINPID ExecReload=/bin/kill -HUP $MAINPID
Restart=always KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true
Restart=on-failure
RestartSec=10 RestartSec=10
# Logging
StandardOutput=journal StandardOutput=journal
StandardError=journal StandardError=journal
SyslogIdentifier=aitbc-marketplace-enhanced SyslogIdentifier=aitbc-marketplace-enhanced
# Security
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/aitbc/apps/coordinator-api
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,15 @@
[Unit]
Description=AITBC Marketplace UI
After=network.target
[Service]
Type=exec
User=root
WorkingDirectory=/root/aitbc/apps/marketplace-ui
Environment=PATH=/root/aitbc/.venv/bin
ExecStart=/root/aitbc/.venv/bin/python server.py --port 3001
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,13 @@
[Unit]
Description=AITBC Miner Dashboard
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/aitbc-miner-dashboard
ExecStart=/usr/bin/python3 dashboard_server.py
Restart=always
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,37 +1,32 @@
[Unit] [Unit]
Description=AITBC Modality Optimization Service (Port 8012) Description=AITBC Modality Optimization Service
Documentation=https://docs.aitbc.bubuit.net
After=network.target aitbc-coordinator-api.service After=network.target aitbc-coordinator-api.service
Wants=aitbc-coordinator-api.service Wants=aitbc-coordinator-api.service
[Service] [Service]
Type=simple Type=simple
User=aitbc User=debian
Group=aitbc Group=debian
WorkingDirectory=/opt/aitbc/apps/coordinator-api WorkingDirectory=/home/oib/aitbc/apps/coordinator-api
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src Environment=PATH=/opt/coordinator-api/.venv/bin
Environment=PORT=8012 ExecStart=/opt/coordinator-api/.venv/bin/python -m uvicorn src.app.services.modality_optimization_app:app --host 127.0.0.1 --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 ExecReload=/bin/kill -HUP $MAINPID
Restart=always KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true
Restart=on-failure
RestartSec=10 RestartSec=10
# Logging
StandardOutput=journal StandardOutput=journal
StandardError=journal StandardError=journal
SyslogIdentifier=aitbc-modality-optimization SyslogIdentifier=aitbc-modality-optimization
# Security settings # Security
NoNewPrivileges=true NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict ProtectSystem=strict
ProtectHome=true ProtectHome=true
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data ReadWritePaths=/home/oib/aitbc/apps/coordinator-api
LimitNOFILE=65536
# Resource limits
MemoryMax=1G
CPUQuota=150%
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,37 +1,32 @@
[Unit] [Unit]
Description=AITBC Multi-Modal Agent Service (Port 8010) Description=AITBC Multi-Modal Agent Service
Documentation=https://docs.aitbc.bubuit.net
After=network.target aitbc-coordinator-api.service After=network.target aitbc-coordinator-api.service
Wants=aitbc-coordinator-api.service Wants=aitbc-coordinator-api.service
[Service] [Service]
Type=simple Type=simple
User=aitbc User=debian
Group=aitbc Group=debian
WorkingDirectory=/opt/aitbc/apps/coordinator-api WorkingDirectory=/home/oib/aitbc/apps/coordinator-api
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src Environment=PATH=/opt/coordinator-api/.venv/bin
Environment=PORT=8010 ExecStart=/opt/coordinator-api/.venv/bin/python -m uvicorn src.app.services.multimodal_app:app --host 127.0.0.1 --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 ExecReload=/bin/kill -HUP $MAINPID
Restart=always KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true
Restart=on-failure
RestartSec=10 RestartSec=10
# Logging
StandardOutput=journal StandardOutput=journal
StandardError=journal StandardError=journal
SyslogIdentifier=aitbc-multimodal SyslogIdentifier=aitbc-multimodal
# Security settings # Security
NoNewPrivileges=true NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict ProtectSystem=strict
ProtectHome=true ProtectHome=true
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data ReadWritePaths=/home/oib/aitbc/apps/coordinator-api
LimitNOFILE=65536
# Resource limits
MemoryMax=2G
CPUQuota=200%
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -0,0 +1,23 @@
[Unit]
Description=AITBC Blockchain Node Service
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/root/aitbc/apps/blockchain-node
Environment=PATH=/root/aitbc/.venv/bin
Environment=PYTHONPATH=/root/aitbc/apps/blockchain-node
Environment=RUST_LOG=info
ExecStart=/root/aitbc/.venv/bin/python -m node.main --datadir /root/aitbc/data --rpc-bind 0.0.0.0:8545
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-node
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,39 +1,32 @@
[Unit] [Unit]
Description=AITBC OpenClaw Enhanced Service (Port 8015) Description=AITBC OpenClaw Enhanced Service
Documentation=https://docs.aitbc.bubuit.net
After=network.target aitbc-coordinator-api.service After=network.target aitbc-coordinator-api.service
Wants=aitbc-coordinator-api.service Wants=aitbc-coordinator-api.service
[Service] [Service]
Type=simple Type=simple
User=aitbc User=debian
Group=aitbc Group=debian
WorkingDirectory=/opt/aitbc/apps/coordinator-api WorkingDirectory=/home/oib/aitbc/apps/coordinator-api
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src Environment=PATH=/opt/coordinator-api/.venv/bin
Environment=PORT=8015 ExecStart=/opt/coordinator-api/.venv/bin/python -m uvicorn src.app.routers.openclaw_enhanced_app:app --host 127.0.0.1 --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 ExecReload=/bin/kill -HUP $MAINPID
Restart=always KillMode=mixed
TimeoutStopSec=5
PrivateTmp=true
Restart=on-failure
RestartSec=10 RestartSec=10
# Logging
StandardOutput=journal StandardOutput=journal
StandardError=journal StandardError=journal
SyslogIdentifier=aitbc-openclaw-enhanced SyslogIdentifier=aitbc-openclaw-enhanced
# Security settings # Security
NoNewPrivileges=true NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict ProtectSystem=strict
ProtectHome=true ProtectHome=true
ReadWritePaths=/opt/aitbc/logs /opt/aitbc/data ReadWritePaths=/home/oib/aitbc/apps/coordinator-api
LimitNOFILE=65536
# Resource limits
MemoryMax=2G
CPUQuota=200%
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env

View File

@@ -1,29 +1,15 @@
[Unit] [Unit]
Description=AITBC Wallet Daemon Service (Python 3.13.5+) Description=AITBC Wallet Daemon Service
After=network.target After=network.target
Wants=network.target
[Service] [Service]
Type=simple Type=simple
User=aitbc User=root
Group=aitbc WorkingDirectory=/opt/aitbc/apps/wallet-daemon/src
WorkingDirectory=/opt/aitbc/apps/coordinator-api Environment=PYTHONPATH=/opt/aitbc/packages/py/aitbc-crypto/src:/opt/aitbc/packages/py/aitbc-sdk/src
Environment=PATH=/opt/aitbc/apps/coordinator-api/.venv/bin ExecStart=/opt/aitbc/apps/wallet-daemon/.venv/bin/python -m uvicorn app.main:app --host 127.0.0.1 --port 8002
Environment=PYTHONPATH=/opt/aitbc/apps/coordinator-api/src
Environment=PYTHONUNBUFFERED=1
Environment=PYTHONIOENCODING=utf-8
Environment=PORT=8002
Environment=SERVICE_TYPE=wallet
Environment=LOG_LEVEL=INFO
# Python version validation
ExecStartPre=/bin/bash -c "python3 --version || (echo 'Python 3.13.5+ required' && exit 1)"
ExecStart=/opt/aitbc/apps/coordinator-api/.venv/bin/python -m uvicorn app.main:app --host 0.0.0.0 --port 8002
ExecReload=/bin/kill -HUP $MAINPID
Restart=always Restart=always
RestartSec=5 RestartSec=3
StandardOutput=journal
StandardError=journal
SyslogIdentifier=aitbc-wallet
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@@ -0,0 +1,2 @@
[Service]
EnvironmentFile=/opt/aitbc/.env