- Add setup.sh that handles complete AITBC installation - Creates virtual environments and installs dependencies - Installs systemd services with fallback manual startup - Adds health check and management scripts - Include comprehensive SETUP.md documentation
3.0 KiB
3.0 KiB
AITBC Setup Guide
Quick Setup (New Host)
Run this single command on any new host to install AITBC:
sudo bash <(curl -sSL https://raw.githubusercontent.com/oib/aitbc/main/setup.sh)
Or clone and run manually:
sudo git clone https://gitea.bubuit.net/oib/aitbc.git /opt/aitbc
cd /opt/aitbc
sudo chmod +x setup.sh
sudo ./setup.sh
What the Setup Script Does
-
Prerequisites Check
- Verifies Python 3.8+, pip3, git, systemd
- Checks for root privileges
-
Repository Setup
- Clones AITBC repository to
/opt/aitbc - Handles multiple repository URLs for reliability
- Clones AITBC repository to
-
Virtual Environments
- Creates Python venvs for each service
- Installs dependencies from
requirements.txtwhen available - Falls back to core dependencies if requirements missing
-
Systemd Services
- Installs service files to
/etc/systemd/system/ - Enables auto-start on boot
- Provides fallback manual startup
- Installs service files to
-
Service Management
- Creates
/opt/aitbc/start-services.shfor manual control - Creates
/opt/aitbc/health-check.shfor monitoring - Sets up logging to
/var/log/aitbc-*.log
- Creates
Service Endpoints
| Service | Port | Health Endpoint |
|---|---|---|
| Wallet API | 8003 | http://localhost:8003/health |
| Exchange API | 8001 | http://localhost:8001/api/health |
| Coordinator API | 8000 | http://localhost:8000/health |
| Blockchain RPC | 8545 | http://localhost:8545 |
Management Commands
# Check service health
/opt/aitbc/health-check.sh
# Restart all services
/opt/aitbc/start-services.sh
# View logs
tail -f /var/log/aitbc-wallet.log
tail -f /var/log/aitbc-coordinator.log
tail -f /var/log/aitbc-exchange.log
# Systemd control
systemctl status aitbc-wallet
systemctl restart aitbc-coordinator-api
systemctl stop aitbc-exchange-api
Troubleshooting
Services Not Starting
- Check logs:
tail -f /var/log/aitbc-*.log - Verify ports:
netstat -tlnp | grep ':800' - Check processes:
ps aux | grep python
Missing Dependencies
The setup script handles missing requirements.txt files by installing core dependencies:
- fastapi
- uvicorn
- pydantic
- httpx
- python-dotenv
Port Conflicts
Services use these default ports. If conflicts exist:
- Kill conflicting processes:
kill <pid> - Modify service files to use different ports
- Restart services
Development Mode
For development with manual control:
cd /opt/aitbc/apps/wallet
source .venv/bin/activate
python simple_daemon.py
cd /opt/aitbc/apps/exchange
source .venv/bin/activate
python simple_exchange_api.py
cd /opt/aitbc/apps/coordinator-api/src
source ../.venv/bin/activate
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000
Production Considerations
For production deployment:
- Configure proper environment variables
- Set up reverse proxy (nginx)
- Configure SSL certificates
- Set up log rotation
- Configure monitoring and alerts
- Use proper database setup (PostgreSQL/Redis)