openLobby is a modular management platform built with Django. It features a dynamic dashboard with role-based access control, automated Docker deployment, and a robust PostgreSQL integration.
- Modular Dashboard: Applications register themselves automatically via their internal configuration.
- Role-Based Access Control (RBAC): Integrated permission checks for specific user groups (e.g., "Premium" status).
- Dockerized Environment: Fully automated setup including database migrations and static file management.
- Clean UI: Responsive design using Bootstrap 5, custom CSS, and dynamic iconography.
| Layer | Technology |
|---|---|
| Backend | Python 3.11, Django 4.2+ |
| Database | PostgreSQL 15 |
| Infrastructure | Docker & Docker Compose |
| Frontend | Bootstrap 5, Bootstrap Icons, Custom CSS |
git clone https://github.com/ykilian/openLobby.git
cd openLobbyThe project uses default credentials for development in the docker-compose.yml file. For production environments, update the POSTGRES_PASSWORD and DATABASE_URL variables accordingly.
Run the following command to build the image and start the containers:
docker-compose up --build -dThe -d flag runs the containers in the background.
The application should now be available at http://localhost:8000.
The system automatically handles database migrations and admin creation upon startup. To create another superuser account:
docker-compose exec web python manage.py createsuperuserYou can also do that by
- Navigate to http://localhost:8000/admin/
- Log in with your superuser credentials
- Under Authentication and Authorization, click on Users
- Click Add User and fill in the required fields
- Save the user
index/: Main application logic and dashboard viewsapplist/: Logic for application discovery and permission filteringstatic/: Global assets including CSS and imagestemplates: Base HTML structures and navigation componentsdocker-compose.yml: Orchestration of web and database servicesDockerfile: Instructions for building the Python environmententrypoint.sh: Script for automated migration and service initialization
To integrate a new application into the dashboard:
- Create the Django app:
python manage.py startapp my_new_app - Register the app in settings.py
3. Define these metadata in your apps.py
class MyNewAppConfig(AppConfig):
name = 'my_new_app'
display_name = "My New Module"
description = "A brief description of this module's purpose."
icon = "bi-star"
required_group = "Premium"
- Define the apps url in urls.py
urls.py - OPTIONAL: If you gave the app a different
required_group, you need to create this group in the admin panel and assign it to the users you want to have access to it.
The app comes with a predefined superuser account.
IMPORTANT! Default Credentials (Development only):
Username: admin
Password: admin
Use these credentials to log in.
If you click on Apps in the navigation bar, you should see a list of all installed applications, that you have access to.
- bookings/: Booking management system
This project is licensed under the MIT Lic



