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

34
test_main.py Normal file
View File

@@ -0,0 +1,34 @@
#!/usr/bin/env python3
"""
Test main.py without Discord
"""
import sys
import os
from pathlib import Path
# Set environment for testing
os.environ['DATABASE_URL'] = 'sqlite+aiosqlite:///fishbowl_test.db'
os.environ['ENVIRONMENT'] = 'development'
os.environ['LOG_LEVEL'] = 'INFO'
os.environ['DISCORD_TOKEN'] = 'test_token'
os.environ['DISCORD_APPLICATION_ID'] = 'test_app_id'
os.environ['DISCORD_GUILD_ID'] = 'test_guild_id'
# Change to src directory
os.chdir(Path(__file__).parent / "src")
# Now try to import main
try:
import main
print("✅ Main module imported successfully")
print("🎉 System appears to be working!")
print("\nTo run the full system:")
print("1. Install Ollama and pull a model")
print("2. Get Discord bot tokens")
print("3. Update the .env file with real tokens")
print("4. Run: cd src && python main.py")
except Exception as e:
print(f"❌ Import failed: {e}")
import traceback
traceback.print_exc()