Documentation
Django Revolution
v1.0.13
Installation Guide - Django Revolution
Quick Install (Recommended)
# Using pippip install django-revolution# Using poetrypoetry add django-revolution# Using requirements.txtecho "django-revolution>=1.0.13" >> requirements.txtpip install -r requirements.txt
Django Integration
# settings.pyINSTALLED_APPS = ['django_revolution',# your existing apps]
Verification
# Check statuspython manage.py revolution --status# Or use standalone CLIdjango-revolution --status
Development Installation
From Source
# Clone repositorygit clone https://github.com/markolofsen/django-revolution.gitcd django-revolution# Install in development modepip install -e .# Install development dependenciespip install -r requirements-dev.txt# Test installationpython scripts/dev_cli.py
With Poetry
# Add to projectpoetry add django-revolution# Add development dependenciespoetry add --group dev django-revolution[dev]
System Requirements
Minimum Requirements
- Python 3.9+
- Django 3.2+
- 100MB free disk space
- Internet connection (for dependency installation)
Recommended
- Python 3.11+
- Django 4.2+
- Node.js 18+ (for TypeScript generation)
- Poetry (for dependency management)
Dependencies
Auto-Installed Dependencies
Automatically installed when needed:
@hey-api/openapi-ts
- TypeScript client generationdatamodel-code-generator
- Python client generationdrf-spectacular
- OpenAPI schema generation
Pre-Installed Dependencies
Included with package:
Django>=3.2
- Web frameworkdjangorestframework>=3.12.0
- API frameworkdrf-spectacular>=0.24.0
- OpenAPI schema generationJinja2>=3.0.0
- Template enginePyYAML>=6.0
- YAML processingpydantic>=2.0.0
- Data validationpydantic-settings>=2.0.0
- Settings managementquestionary>=2.0.0
- Interactive CLIrich>=13.0.0
- Rich terminal outputdatamodel-code-generator>=0.31.0
- Python client generationdjango-filter>=22.0.0
- Filtering supportdjangorestframework-simplejwt>=5.0.0
- JWT authentication
Basic Configuration
# settings.pyfrom django_revolution.app_config import ZoneConfig, get_revolution_config# Define zoneszones = {'public': ZoneConfig(apps=['accounts', 'billing', 'payments'],title='Public API',description='API for public client applications',public=True,auth_required=False,version='v1'),'admin': ZoneConfig(apps=['admin_panel', 'services'],title='Admin API',description='Administrative API endpoints',public=False,auth_required=True,version='v1')}# Configure Django RevolutionDJANGO_REVOLUTION = get_revolution_config(project_root=BASE_DIR,zones=zones,debug=DEBUG)
Multi-Monorepo Configuration
# settings.py - With multiple monorepo configurationsfrom django_revolution.app_config import MonorepoConfig, MonorepoSettings# Configure multiple monoreposmonorepo_settings = MonorepoSettings(enabled=True,configurations=[# Main frontend monorepoMonorepoConfig(name="frontend",enabled=True,path=str(BASE_DIR.parent / 'monorepo'),api_package_path='packages/api'),# Mobile app monorepoMonorepoConfig(name="mobile",enabled=True,path=str(BASE_DIR.parent / 'mobile-monorepo'),api_package_path='packages/api-client'),])DJANGO_REVOLUTION = get_revolution_config(project_root=BASE_DIR,zones=zones,monorepo=monorepo_settings,debug=DEBUG)
URL Integration
# urls.pyfrom django_revolution.urls_integration import add_revolution_urlsurlpatterns = [# Your existing URLs]# Add Django Revolution URLsurlpatterns = add_revolution_urls(urlpatterns)
Optional Settings
# settings.py (optional customization)DJANGO_REVOLUTION = {'output_dir': 'openapi', # Default: 'openapi''auto_install_deps': True, # Default: True'typescript_enabled': True, # Default: True'python_enabled': True, # Default: True'archive_clients': True, # Default: True'monorepo': { # Optional monorepo config'enabled': False,'path': '/path/to/monorepo','api_package_path': 'packages/api/src'}}
Environment Variables
# Skip auto-installation of dependenciesexport DJANGO_REVOLUTION_NO_AUTO_INSTALL=1# Custom output directoryexport DJANGO_REVOLUTION_OUTPUT_DIR=/custom/path# Debug modeexport DJANGO_REVOLUTION_DEBUG=1
Troubleshooting
Common Installation Issues
ImportError: No module named 'django_revolution'
# Install Django Revolutionpip install django-revolution# Verify installationpython -c "import django_revolution; print('✅ Installed')"# Check versionpython -c "import django_revolution; print(django_revolution.__version__)"
ModuleNotFoundError: No module named 'django_filters'
# Install missing dependenciespip install django-filter djangorestframework-simplejwt# Or let Django Revolution install thempython manage.py revolution --install-deps# Or install from requirementspip install -r requirements.txt
Node.js Requirements
# Ubuntu/Debiancurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt-get install -y nodejs# macOS with Homebrewbrew install node# Windows with Chocolateychoco install nodejs
Permission Issues
# Fix npm permissions (Linux/macOS)sudo chown -R $(whoami) ~/.npm# Make scripts executablechmod +x scripts/*.py scripts/*.sh