Skip to main content

Django multi-tenant app where each subdomain is a tenant

Project description

django_subdomain_tenancy CHANGELOG

django-subdomain-tenancy is a Django multi-tenant app where each subdomain is a tenant, simplifying deployment, scalability, and per-client management.

Detailed documentation is in the "docs" directory.

Quick start

1. Add django_subdomain_tenancy.apps.SubdomainConfig to your INSTALLED_APPS setting like this:

    INSTALLED_APPS = [
        ...,
        "django_subdomain_tenancy.apps.SubdomainConfig",
    ]

2. Add this configs in settings.py:

    AUTH_USER_MODEL = 'subdomain.CustomUser'
    LOGIN_URL = '/accounts/login/' 
    LOGIN_REDIRECT_URL = "/"
    LOGOUT_REDIRECT_URL = "/"

    LANGUAGE_CODE = "pt-BR" OR "en"

    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    
    EMAIL_HOST = XXXXXXXXX
    EMAIL_PORT = XXXXXXXXX
    EMAIL_USE_TLS = XXXXXXXXX
    EMAIL_HOST_USER = XXXXXXXXX
    EMAIL_HOST_PASSWORD = XXXXXXXXX
    DEFAULT_FROM_EMAIL = XXXXXXXXX

3. Include the polls URLconf in your project urls.py like this::

    path("", include("django_subdomain_tenancy.urls")),

4. Run python3 manage.py migrate to create the models.

5. Create a record in instance table for master dubdomain:

    insert into django_subdomain_tenancy_intance 
    values(1, "Master Tenant", "master", 1);

6. Create SuperUser administrator

(It needs to be this way, because they're the only user who can log in to all the subdomains.), 
and set id instance `1`:

``python3 manage.py createsuperuser``

7. Visit the / For Login in the system fronend,

`/admin/` Logging is only allowed using the master subdomain.

8. For the development environment, add one more instance; I'll use the test subdomain cobaia:

    insert into django_subdomain_tenancy_intance 
    values(2, "Cobaia Tenant", "cobaia", 1);

If use Linux or Mac add the following lines to the /etc/hosts file:

    127.0.0.1 master.localhost
    127.0.0.1 cobaia.localhost

If you're using Windows, you're starting the project the wrong way.

9. Access tenant urls:

    master.localhost:8000
    cobaia.localhost:8000

Simple Login Frontend: /accounts/login/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_subdomain_tenancy-0.2.2.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_subdomain_tenancy-0.2.2-py3-none-any.whl (18.5 kB view details)

Uploaded Python 3

File details

Details for the file django_subdomain_tenancy-0.2.2.tar.gz.

File metadata

  • Download URL: django_subdomain_tenancy-0.2.2.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for django_subdomain_tenancy-0.2.2.tar.gz
Algorithm Hash digest
SHA256 21d8308bc4683003d5c55c28de8e7e8456d8b5362c5da16a54d28ca62cd3f7b7
MD5 edc6fd3f8009abaeed26e65cb845eee0
BLAKE2b-256 b9c294a8b0876b471b7824e89340a61f4c5b5939e28bd827d990912bcd169d76

See more details on using hashes here.

File details

Details for the file django_subdomain_tenancy-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for django_subdomain_tenancy-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7c8da2c01a8fa40ee8f91ead0ce8c51256cbdf452772b48604e467e3b9aa8d7c
MD5 a6c511cc93ea47dc1415e81448556514
BLAKE2b-256 3cc0d82a4d46d997efe22dccb769a6ced89d995d778ed2bf191a0afdff348485

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page