Soft UI Dashboard - Start fast with Bootstrap 5, Django and Docker
Tags: boostrap5, django, docker, opensource
Published: 2021-12-14 19:10:50

---
title: Soft UI Dashboard - Start fast with Bootstrap 5, Django and Docker
published: true
description: Open-source seed project crafted in Django, styled with Boostrap 5 and powered by Docker
tags: boostrap5, django, docker, opensource
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sbhmyyawjh92cd3gastn.jpg
---
Hello Coders!

This article presents an open-source Django starter that uses Bootstrap 5 for the frontend layer and Docker for deployment automation. **[Django Soft Dashboard](https://appseed.us/product/django-soft-ui-dashboard)** comes with all the bare minimum essentials required by a new simple dashboard powered by Django: authentication, integrated UI and deployment support. For newcomers, Django is a leading framework actively supported and versioned by programming experts and open-source enthusiasts. 

--- 

> *Thanks for reading!* Here are the links for fast runners: 

- 👉 [Django Soft UI Dashboard](https://django-soft-ui-dashboard.appseed-srv1.com/) - LIVE Demo
- 👉 [Django Soft UI Dashboard](https://github.com/app-generator/django-soft-ui-dashboard) - source code 

---

The permissive (MIT) license unlocks the usage for unlimited hobby & commercial products and eLearning activities. 

--- 

![Soft UI Dashboard, the VR page provided by an open-source starter powered by Django.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cjxx8nu7telqiu4y4h4y.jpg)

--- 

## ✨ Product Features 

In order to provide something useful and usable for developers, the codebase is provided with the latest stable Django version, `unopionated` structure, and a `production-ready` layer powered by Docker. 

- `Up-to-date dependencies`: **Django 3.2.6 LTS**
- `SCSS compilation` - simple Gulp tooling 
- `DB Tools`: **SQLite**, Django Native ORM
- Session-Based Authentication, Forms validation
- `Deployment`: **Docker**, Gunicorn / Nginx
- Support via Github (issues tracker) and [Discord](https://discord.gg/fZC6hup).

--- 

## ✨ How to use the product 

Probably the most easier way to start the product is to execute the Docker setup that is basically a `one-line` command: 

👉 **Step #1** - Clone/download [sources](https://github.com/app-generator/django-soft-ui-dashboard) from Github

```bash
$ git clone https://github.com/app-generator/django-soft-ui-dashboard.git
$ cd django-soft-ui-dashboard
```

--- 

👉 **Step #2** - Start the app in Docker

```bash
$ docker-compose up --build
```

At this point, we should be able to access the app in the browser, register new users, and access the private pages provided by the app. 

--- 

## ✨ The Docker Layer

Docker is a popular virtualization software that executes our application using a `cross-platform` sandboxed environment. In other words we can hope for a successful execution of our app on Windows, Ubuntu or CentOS without taking into account any OS specificities during the product deployment. 

> The architecture 

- Django App managed by Gunicorn WSGI Server
  - Guninorn starts on port `5005`
- Nginx as a proxy server 
  - exposes the public port `85`
  - routes the client requests to inner port `5005`
- `Dockerfile` does the following: 
  - upgrade the `PIP` installer
  - install app deps listed on `requirements.txt`
  - Migrate the database (aka `create tables`)
  - call Gunicorn to start the app
  - Start Nginx and listen for new connections 

If all goes well, the app can be accessed on `http://localhost:85` and the guest users are redirected to authenticate. 

---

![Soft UI Dashboard, login page powered by Django, a leading web framework written in Python.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rh2ovk4abuup5xk43sry.png)

---

The manual build involves the classic steps recommended for all Python apps: 

- create a `virtual environment`
- install the dependencies 
- setup/migrate the database 
- start the app using a development server 

Let's do this! 

---

👉 **Step #1** - Clone the [sources](https://github.com/app-generator/django-soft-ui-dashboard)

```bash
$ git clone https://github.com/app-generator/django-soft-ui-dashboard.git
$ cd django-soft-ui-dashboard
```

--- 

👉 **Step #2** - Create a `virtual environment` 

```bash
$ virtualenv env
$ source env/bin/activate
```

--- 

👉 **Step #3** - Install modules

```bash
$ # Install modules 
$ pip3 install -r requirements.txt
```

--- 

👉 **Step #4** - Migrate Database  (aka create tables)

```bash
$ python manage.py makemigrations
$ python manage.py migrate
```

---

👉 **Step #5** - Start the app using Django embedded server

```bash
$ # Start the application (development mode)
$ python manage.py runserver 
```

By default, Django starts on port `8000` but we can easily change this with the following command:

```bash
$ # Start the app - custom port
$ # python manage.py runserver 9999
```

At this point, the app runs with `LIVE reload` and we can write new code and track all errors in real time. 

--- 

> Thanks for reading! For more resources and support:

- `AMA` in the comments - I'm here on Dev almost daily 
- **[Free Dashboards](https://appseed.us/admin-dashboards/open-source)** - index provided for `Django`, Flask and **React**
- Follow me on [Twitter](https://twitter.com/Sm0keDev) - for OSS posts only