This project provides a complete Docker Compose setup for running n8n (workflow automation) and Qdrant (vector database) together in a development environment.
- n8n: Workflow automation platform (v1.94.1)
- Qdrant: Vector database for AI/ML applications
- PostgreSQL: Database for n8n
-
Clone and Setup Environment
git clone <repository-url> cd n8n-workflows cp .env.example .env
-
Configure Environment Variables Edit the
.envfile and update the following required values:POSTGRES_PASSWORD: Strong password for PostgreSQLN8N_BASIC_AUTH_PASSWORD: Password for n8n web interfaceN8N_ENCRYPTION_KEY: 32-character encryption key for n8n
Generate a secure encryption key:
openssl rand -hex 16
-
Start Services
docker-compose -f docker-compose.dev.yml up -d
-
Access Services
- n8n: http://localhost:5678 (username: admin, password: from .env)
- Qdrant: http://localhost:6333
- Workflow automation platform with web UI
- Connected to PostgreSQL for persistence
- Basic auth enabled by default
- Webhooks available at configured URL
- Vector database for AI/ML applications
- HTTP API on port 6333
- gRPC API on port 6334
- Web UI available at HTTP port
POSTGRES_DB: Database name for n8nPOSTGRES_USER: Database user for n8nPOSTGRES_PASSWORD: Database password for n8nPOSTGRES_PORT: PostgreSQL port (default: 5432)
N8N_BASIC_AUTH_ACTIVE: Enable/disable basic authN8N_BASIC_AUTH_USER: Username for n8n loginN8N_BASIC_AUTH_PASSWORD: Password for n8n loginN8N_HOST: Hostname for n8nN8N_PORT: Port for n8n web interfaceN8N_PROTOCOL: Protocol (http/https)N8N_WEBHOOK_URL: Base URL for webhooksN8N_ENCRYPTION_KEY: 32-character encryption key
QDRANT_HTTP_PORT: HTTP API port (default: 6333)QDRANT_GRPC_PORT: gRPC API port (default: 6334)QDRANT_LOG_LEVEL: Logging level
# Start all services
docker-compose -f docker-compose.dev.yml up -d
# View logs
docker-compose -f docker-compose.dev.yml logs -f
# Stop all services
docker-compose -f docker-compose.dev.yml down
# Stop and remove volumes (destructive)
docker-compose -f docker-compose.dev.yml down -v
# Restart specific service
docker-compose -f docker-compose.dev.yml restart n8n
# Access service shell
docker-compose -f docker-compose.dev.yml exec n8n shAll services use Docker volumes for data persistence:
postgres_data: n8n PostgreSQL datan8n_data: n8n workflows and settingsqdrant_data: Qdrant vector database
All services include health checks:
- PostgreSQL: Database connection test
- n8n: HTTP health endpoint
- Qdrant: HTTP health endpoint
- Change all default passwords in the
.envfile - Use strong, unique passwords for all services
- For production, consider using Docker secrets
- Ensure firewall rules are properly configured
- Use HTTPS in production environments
- Port conflicts: Check if ports are already in use
- Database connection issues: Verify PostgreSQL is healthy
- Permission errors: Check Docker daemon permissions
- Memory issues: Ensure sufficient RAM for all services
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request