A modern Django SaaS application scaffold with multi-tenant support, subdomain-based tenant routing, and per-tenant admin dashboards.
- Python 3.10+
- PostgreSQL 14+
- pip or pipenv
git clone <repo-url>
cd operon
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activatepip install -r requirements/dev.txt
pre-commit installCreate a .env file in the project root:
Create the PostgreSQL database:
createdb operon_dbRun shared migrations (creates shared schema):
python manage.py migrate_schemas --sharedpython manage.py shellfrom tenants.models import Tenant, Domain
# Create tenant
tenant = Tenant.objects.create(
schema_name='public',
name='Website',
subdomain='',
is_active=True
)
# Create domain mapping
Domain.objects.create(
domain='localhost',
tenant=tenant,
is_primary=True
)
# Create User
python manage.py create_platform_user admin admin123 --is_platform_adminpython manage.py runserverAccess the application:
- Admin Portal: http://localhost:8000
For shared schema:
python manage.py makemigrations
python manage.py migrate_schemas --shared