Add comprehensive Docker setup with PostgreSQL, Redis, ChromaDB, and Qdrant

- Enhanced install.py with Docker detection and automatic service setup
- Added docker-compose.services.yml for standalone database services
- Created docker-services.sh management script for easy service control
- Added DOCKER.md documentation with complete setup instructions
- Updated requirements.txt for Python 3.13 compatibility
- Added multiple test scripts and configuration files
- Enhanced collaborative creative projects with proper database integration
- Fixed SQLAlchemy metadata field conflicts in database models
- Added comprehensive quickstart and testing guides

Services now available:
- PostgreSQL with Docker
- Redis with Docker
- ChromaDB vector database
- Qdrant vector database (recommended)
- PgAdmin for database administration

The setup script now automatically detects Docker and offers streamlined
installation with one-command service deployment.
This commit is contained in:
2025-07-05 10:01:41 -07:00
parent 1b586582d4
commit 824b118e93
29 changed files with 2738 additions and 92 deletions

56
run_test.py Normal file
View File

@@ -0,0 +1,56 @@
#!/usr/bin/env python3
"""
Test runner that properly sets up the Python path
"""
import sys
import os
from pathlib import Path
# Set up the Python path correctly
project_root = Path(__file__).parent
src_path = project_root / "src"
sys.path.insert(0, str(src_path))
# Set environment variables
os.environ['DATABASE_URL'] = 'sqlite+aiosqlite:///fishbowl_test.db'
os.environ['ENVIRONMENT'] = 'development'
os.environ['LOG_LEVEL'] = 'INFO'
def main():
print("🚀 Discord Fishbowl Test Runner")
print("=" * 50)
# Test 1: Basic imports
print("\n📦 Testing imports...")
try:
import database.models
import rag.vector_store
import collaboration.creative_projects
print("✅ All imports successful")
except Exception as e:
print(f"❌ Import failed: {e}")
return False
# Test 2: Simple functionality test
print("\n🔧 Testing basic functionality...")
try:
from utils.config import get_settings
settings = get_settings()
print(f"✅ Configuration loaded: {settings.database.url}")
except Exception as e:
print(f"❌ Config test failed: {e}")
return False
print("\n🎉 Basic tests passed!")
print("\nFor full system testing:")
print("1. Install Ollama: https://ollama.ai/")
print("2. Pull a model: ollama pull llama2")
print("3. Run: python src/main.py (requires Discord tokens)")
print("4. Or test individual components with demo scripts")
return True
if __name__ == "__main__":
success = main()
sys.exit(0 if success else 1)