2025-08-01 17:04:10 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
# Start test environment for manual testing
|
|
|
|
|
|
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
|
|
|
|
|
|
echo "🚀 Starting mail2couch test environment..."
|
|
|
|
|
|
|
|
|
|
# Start containers
|
|
|
|
|
echo "Starting containers..."
|
|
|
|
|
podman-compose -f podman-compose.yml up -d
|
|
|
|
|
|
|
|
|
|
# Wait for services
|
|
|
|
|
echo "Waiting for services to be ready..."
|
|
|
|
|
sleep 10
|
|
|
|
|
|
|
|
|
|
# Check CouchDB
|
|
|
|
|
echo "Checking CouchDB..."
|
|
|
|
|
timeout=30
|
|
|
|
|
while ! curl -s http://localhost:5984/_up > /dev/null 2>&1; do
|
|
|
|
|
timeout=$((timeout - 1))
|
|
|
|
|
if [ $timeout -le 0 ]; then
|
|
|
|
|
echo "❌ CouchDB failed to start"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
sleep 1
|
|
|
|
|
done
|
|
|
|
|
echo "✅ CouchDB is ready at http://localhost:5984"
|
|
|
|
|
|
|
|
|
|
# Check IMAP
|
|
|
|
|
echo "Checking IMAP server..."
|
|
|
|
|
timeout=30
|
|
|
|
|
while ! nc -z localhost 3143 > /dev/null 2>&1; do
|
|
|
|
|
timeout=$((timeout - 1))
|
|
|
|
|
if [ $timeout -le 0 ]; then
|
|
|
|
|
echo "❌ IMAP server failed to start"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
sleep 1
|
|
|
|
|
done
|
|
|
|
|
echo "✅ IMAP server is ready at localhost:3143"
|
|
|
|
|
|
|
|
|
|
# Populate test data
|
|
|
|
|
echo "Populating test messages..."
|
feat: add comprehensive README documentation and clean up configuration
## Documentation Enhancements
- Create comprehensive README with installation, configuration, and usage examples
- Add simple, advanced, and provider-specific configuration examples
- Document all features: incremental sync, wildcard patterns, keyword filtering, attachment support
- Include production deployment guidance and troubleshooting section
- Add architecture documentation with database structure and document format examples
## Configuration Cleanup
- Remove unnecessary `database` field from CouchDB configuration
- Add `m2c_` prefix to all CouchDB database names for better namespace isolation
- Update GenerateAccountDBName() to consistently prefix databases with `m2c_`
- Clean up all configuration examples to remove deprecated database field
## Test Environment Simplification
- Simplify test script structure to eliminate confusion and redundancy
- Remove redundant populate-test-messages.sh wrapper script
- Update run-tests.sh to be comprehensive automated test with cleanup
- Maintain clear separation: automated tests vs manual testing environment
- Update all test scripts to expect m2c-prefixed database names
## Configuration Examples Added
- config-simple.json: Basic single Gmail account setup
- config-advanced.json: Multi-account with complex filtering and different providers
- config-providers.json: Real-world configurations for Gmail, Outlook, Yahoo, iCloud
## Benefits
- Clear documentation for users from beginner to advanced
- Namespace isolation prevents database conflicts in shared CouchDB instances
- Simplified test workflow eliminates user confusion about which scripts to use
- Comprehensive examples cover common email provider configurations
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-01 21:26:53 +02:00
|
|
|
python3 ./populate-greenmail.py
|
2025-08-01 17:04:10 +02:00
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
echo "🎉 Test environment is ready!"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Services:"
|
|
|
|
|
echo " - CouchDB: http://localhost:5984 (admin/password)"
|
|
|
|
|
echo " - CouchDB Web UI: http://localhost:5984/_utils"
|
|
|
|
|
echo " - IMAP Server: localhost:3143"
|
|
|
|
|
echo " - IMAPS Server: localhost:3993"
|
|
|
|
|
echo " - SMTP Server: localhost:3025"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Test accounts:"
|
|
|
|
|
echo " - testuser1:password123"
|
|
|
|
|
echo " - testuser2:password456"
|
|
|
|
|
echo " - syncuser:syncpass"
|
|
|
|
|
echo " - archiveuser:archivepass"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "To run mail2couch:"
|
|
|
|
|
echo " cd ../go && ./mail2couch -config ../test/config-test.json"
|
|
|
|
|
echo ""
|
2025-08-02 14:57:51 +02:00
|
|
|
echo "📧 MAIL2COUCH DATABASE ACCESS:"
|
|
|
|
|
echo "After running mail2couch, you can access the stored emails via CouchDB:"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "📋 Database Access (examples after sync):"
|
|
|
|
|
echo " - All databases: http://localhost:5984/_all_dbs"
|
|
|
|
|
echo " - Specific database: http://localhost:5984/m2c_specific_folders_only"
|
|
|
|
|
echo " - All documents: http://localhost:5984/m2c_specific_folders_only/_all_docs"
|
|
|
|
|
echo " - Individual message: http://localhost:5984/m2c_specific_folders_only/INBOX_12"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "🔍 Raw Data Access:"
|
|
|
|
|
echo " - Database info: http://localhost:5984/m2c_specific_folders_only"
|
|
|
|
|
echo " - Document with content: http://localhost:5984/m2c_specific_folders_only/INBOX_12"
|
|
|
|
|
echo ""
|
2025-08-01 17:04:10 +02:00
|
|
|
echo "To stop the environment:"
|
|
|
|
|
echo " ./stop-test-env.sh"
|