Configuration Guide#
Table of Contents#
Overview#
The DLP3D Web Backend uses a flexible configuration system that supports multiple environments and deployment scenarios. This guide covers all configuration options available for the service.
Configuration Files#
The system supports multiple configuration files for different environments:
| File | Purpose | Environment |
|---|---|---|
configs/community.py |
Docker deployment configuration for community | Containerized |
configs/online.py |
Production environment configuration | Production |
Configuration File Structure#
Each configuration file contains settings for:
Database connections
Service ports and hosts
Logging levels
Cache settings
Security configurations
Environment Variables#
The following environment variables can be used to configure the DLP3D Web Backend service, especially important for Docker deployments:
Application Database Connection#
| Variable | Description | Default Value |
|---|---|---|
MONGODB_HOST |
MongoDB server hostname | mongodb |
MONGODB_PORT |
MongoDB server port | 27017 |
MONGODB_DATABASE |
Application database name | web_database |
MONGODB_AUTH_DATABASE |
Authentication database name | web_database |
MONGODB_USERNAME |
Application username for database access | web_user |
MONGODB_PASSWORD |
Application password for database access | web_password |
Database Bootstrap (Admin Access)#
| Variable | Description | Default Value |
|---|---|---|
MONGODB_ADMIN_USERNAME |
MongoDB admin username for database bootstrap | admin |
MONGODB_ADMIN_PASSWORD |
MongoDB admin password for database bootstrap | (empty) |
Connection Flow#
The service follows a two-stage connection process to ensure robust database connectivity:
Stage 1: Primary Connection Attempt#
The service first attempts to connect using the application credentials:
Username:
MONGODB_USERNAMEPassword:
MONGODB_PASSWORDDatabase:
MONGODB_DATABASE
Stage 2: Bootstrap on Failure#
If the primary connection fails (indicating first-time setup), the service automatically uses admin credentials to:
Create Application Database: Creates the target database if it doesn’t exist
Create Application User: Creates a user with
readWritepermissions on the target databaseSet Up Database Structure: Initializes necessary collections and indexes
Stage 3: Retry with Application Credentials#
After successful bootstrap, the service retries the connection using application credentials.
Usage Examples#
Basic Configuration#
# Using default configuration
python main.py
# Using specific configuration file
python main.py --config_path configs/community.py
Docker Environment Variables#
# Set environment variables for Docker deployment
export MONGODB_HOST=your_mongodb_host
export MONGODB_PORT=27017
export MONGODB_ADMIN_USERNAME=admin
export MONGODB_ADMIN_PASSWORD=your_admin_password
# Run with Docker
docker run -e MONGODB_HOST=your_mongodb_host \
-e MONGODB_ADMIN_PASSWORD=your_admin_password \
dlp3d/web_backend:latest
Production Configuration#
# Production deployment with secure credentials
export MONGODB_HOST=mongodb_hostname.namespace
export MONGODB_PORT=27017
export MONGODB_DATABASE=dlp3d_web_database
export MONGODB_USERNAME=dlp3d_web_user
export MONGODB_PASSWORD=secure_production_password
export MONGODB_ADMIN_USERNAME=admin
export MONGODB_ADMIN_PASSWORD=secure_admin_password
Best Practices#
Security Considerations#
First-time deployment: Only admin credentials need to be configured initially
Existing deployments: Only application credentials are required for normal operation
Automatic setup: The service handles database and user creation automatically on first run