This document verifies that AIXCL works out of the box for fresh deployments.
Note: AIXCL follows a governance model separating Runtime Core (always enabled) from Operational Services (profile-dependent). See
architecture/governance/for architectural documentation.
New: AIXCL now supports Dev Containers for a consistent, pre-configured development environment. See the Dev Container Guide for containerized setup options.
- Docker and Docker Compose installed
- Minimum 16 GB RAM available
- Minimum 128 GB free disk space
- (Optional) NVIDIA GPU with drivers for GPU acceleration
# Clone the repository
git clone https://github.com/xencon/aixcl.git
cd aixcl
# Check system requirements
./aixcl utils check-env
# Start services (automatically creates .env from .env.example if it exists)
./aixcl stack startThe following are configured automatically:
- Environment File:
.envis created from.env.exampleif it exists - Database Schema: PostgreSQL schema is created automatically on first startup
- pgAdmin Configuration: Database server connection is auto-configured
- Database Persistence: Open WebUI conversations are automatically stored in PostgreSQL
After starting services, verify database persistence is working:
# Check if database schema was created
docker exec postgres psql -U ${POSTGRES_USER} -d ${POSTGRES_DATABASE} -c "\dt"Run the test script to verify everything works:
# From project root
python3 tests/database/test_db_connection.pyExpected output:
- Database connection pool created successfully
- Database schema verified/created
- Conversation creation, retrieval, and deletion tests pass
Test the API with persistence:
# Run API integration test
# Or via platform test suite
./tests/platform-tests.sh --component apiExpected output:
- Health endpoint responds
- Chat completion works
- Deletion endpoint works
Check all services are running:
./aixcl stack statusExpected services (depending on profile):
- ollama, vllm, or llamacpp (active engine)
- open-webui
- postgres
- pgadmin
- prometheus
- grafana
- (and other monitoring services)
If the schema wasn't created automatically:
- Check logs:
./aixcl stack logs postgres - Verify
POSTGRES_USERandPOSTGRES_PASSWORDin.env
- Verify PostgreSQL is running:
docker ps | grep postgres - Test connection:
docker exec postgres psql -U ${POSTGRES_USER} -d ${POSTGRES_DATABASE} -c "SELECT 1;"
- Check Docker:
docker ps -a - View logs for all:
./aixcl stack logs - View logs for engine:
./aixcl stack logs engine - Check disk space:
df -h - Verify ports are available:
netstat -tuln | grep -E '8080|5432|5050'
After successful setup:
- Add Models (recommended defaults):
./aixcl models add qwen2.5-coder:0.5b qwen2.5-coder:1.5b qwen2.5-coder:3b
- Access Web UIs:
- Open WebUI: http://localhost:8080
- pgAdmin: http://localhost:5050
- Grafana: http://localhost:3000
- Configure OpenCode Plugin: See
README.mdfor OpenCode integration
AIXCL uses PostgreSQL for:
- webui: For Open WebUI conversations and data
- opencode*: For OpenCode plugin conversations (when configured)
Both databases are automatically created on startup. The webui database schema is initialized by Open WebUI when it starts.
- All database migrations run automatically on startup
- The system gracefully degrades if database is unavailable opencodes without persistence)
- Database credentials are shared with Open WebUI for simplicity
- Test scripts are organized by component under
tests/ - Database utility scripts are in
scripts/db/