Skip to content

dynamicdev-official/BASES_ON-PROJECT

πŸ“Š BASES_ON

Extreme Performance | Modern UI | dynamicdev_ Standard

A premium PostgreSQL database management interface β€” reimagined.

License Docker PostgreSQL Built by


Features β€’ Quick Start β€’ Screenshots β€’ Documentation β€’ License


🎯 What is bases_on?

bases_on is a battle-tested fork of pgAdmin 4 β€” the world's most advanced PostgreSQL administration tool β€” completely rebuilt with dynamicdev_ design language:

pgAdmin 4 (upstream)
    β”‚
    β”œβ”€> Fork & Rebrand
    β”œβ”€> Dark Crimson Theme (#7F1D1D)
    β”œβ”€> Inter Typography System
    β”œβ”€> Alpine Docker Optimization
    └─> dynamicdev_ Identity
         β”‚
         └─> BASES_ON πŸ”΄

🎨 Design First

  • Dark crimson Material-UI theme
  • Inter font system (400-800 weights)
  • Custom gradient SVG logo
  • Glassmorphism UI elements

⚑ Performance Driven

  • Multi-stage Alpine build
  • Native package optimization
  • Reduced image size (~40% smaller)
  • Sub-3s container startup

✨ Features

🎨 Visual & Branding
  • βœ… Complete rebrand β€” No pgAdmin remnants in UI
  • βœ… Dark crimson accent β€” #7F1D1D primary color throughout
  • βœ… Custom logo system β€” SVG gradient + PNG assets (128px/256px)
  • βœ… Footer copyright bar β€” dynamicdev_ branding on all pages
  • βœ… Modern login UI β€” Navy background with crimson CTA
  • βœ… PWA-ready icons β€” 192x192 manifest icon
🐳 Docker & Deployment
  • βœ… Alpine Linux base β€” Minimal attack surface
  • βœ… Multi-stage build β€” Optimized layer caching
  • βœ… Native packages β€” Pre-compiled cryptography/bcrypt/psutil
  • βœ… Custom paths β€” /var/lib/bases_on data directory
  • βœ… Volume persistence β€” Database & config separation
  • βœ… Compose-ready β€” Drop-in to dynamicdev_ stack
πŸ”§ Technical Improvements
  • βœ… Yarn Berry (v3) β€” Modern package management
  • βœ… Corepack enabled β€” Consistent tooling across builds
  • βœ… CSP-compliant CSS β€” Injected via SCSS (no inline styles)
  • βœ… Entrypoint hardening β€” Permission checks & graceful errors
  • βœ… Theme reduction β€” Dark-only mode (removed standard theme)

πŸš€ Quick Start

Prerequisites

βœ“ Docker Engine 20.10+
βœ“ Docker Compose 2.0+
βœ“ 2GB RAM minimum

Option 1: Docker Compose (Recommended)

Create docker-compose.yml:

services:
  bases_on:
    container_name: bases_on
    image: bases_on:latest
    build: .
    ports:
      - "5050:80"
    volumes:
      - bases_on-data:/var/lib/bases_on
      - pgadmin-data:/var/lib/pgadmin
    environment:
      PGADMIN_DEFAULT_EMAIL: ${EMAIL:-bases_on@dynamicdev.asia}
      PGADMIN_DEFAULT_PASSWORD: ${PASSWORD:-changeme}
      PGADMIN_LISTEN_PORT: 80
    networks:
      - dynamicdev-net
    restart: unless-stopped

volumes:
  pgadmin-data:
  bases_on-data:

networks:
  dynamicdev-net:
    external: true
# Start the stack
docker compose up -d

# View logs
docker compose logs -f bases_on

# Access UI
open http://localhost:5050

Option 2: Docker Run (Standalone)

# Clone repository
git clone https://github.com/dynamicdev-official/BASES_ON-PROJECT.git
cd bases_on

# Build image (takes ~15min on first build)
docker build -t bases_on:custom .

# Run container
docker run -d \
  --name bases_on \
  -p 5050:80 \
  -e PGADMIN_DEFAULT_EMAIL=admin@example.com \
  -e PGADMIN_DEFAULT_PASSWORD=ChangeMe123 \
  bases_on:custom

# Check build logs
docker logs -f bases_on

πŸ“Έ Screenshots

Login Page β€” Custom Security UI

Navy background with dynamicdev_ branding and crimson accent

Login Page

Add Server β€” Connection Configuration

Streamlined server connection form with dark theme

Add Server

Monitoring Dashboard β€” Database Insights

Real-time database monitoring with performance metrics

Monitoring Dashboard

Dark Theme β€” Crimson Interface

Custom Material-UI theme with #7F1D1D primary color

Dark Theme

Alternative Theme β€” Light Mode

Clean white interface for bright environments

White Theme

πŸ”§ Configuration

Environment Variables

Variable Required Default Description
PGADMIN_DEFAULT_EMAIL βœ… Yes bases_on@dynamicdev.asia Admin login email
PGADMIN_DEFAULT_PASSWORD βœ… Yes changeme Admin password (min 8 chars)
PGADMIN_LISTEN_PORT No 80 Internal container port
PGADMIN_LISTEN_ADDRESS No 0.0.0.0 Bind address (use 127.0.0.1 for localhost-only)
PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION No True Cookie security settings

πŸ› οΈ Development

Project Structure

bases_on/
β”œβ”€β”€ πŸ“ assets/                              # Branding source files
β”‚   β”œβ”€β”€ πŸ–ΌοΈ favicon.ico                      # Browser tab icon
β”‚   β”œβ”€β”€ πŸ–ΌοΈ logo.png                         # Master logo file
β”‚   └── πŸ–ΌοΈ bases_on192x192.png              # PWA manifest icon
β”‚
β”œβ”€β”€ πŸ“ docs/                                # Documentation (WIP)
β”‚
β”œβ”€β”€ πŸ“ pkg/                                 # Packaging configs per platform
β”‚   β”œβ”€β”€ πŸ“ docker/                          # Docker runtime files
β”‚   β”‚   β”œβ”€β”€ 🐳 entrypoint.sh                # Container startup script
β”‚   β”‚   β”œβ”€β”€ πŸ“„ gunicorn_config.py           # Gunicorn WSGI server config
β”‚   β”‚   └── πŸ“„ run_pgadmin.py               # pgAdmin bootstrap runner
β”‚   β”œβ”€β”€ πŸ“ debian/                          # Debian packaging
β”‚   β”œβ”€β”€ πŸ“ redhat/                          # RPM packaging
β”‚   β”œβ”€β”€ πŸ“ win32/                           # Windows packaging
β”‚   └── πŸ“ mac/                             # macOS packaging
β”‚
β”œβ”€β”€ πŸ“ runtime/                             # Desktop app wrapper
β”‚
β”œβ”€β”€ πŸ“ scripts/                             # Dev & build utility scripts
β”‚   β”œβ”€β”€ πŸ“„ copyright_updater.py             # License header management
β”‚   β”œβ”€β”€ πŸ“„ dependency_inventory.py          # Dependency audit tool
β”‚   β”œβ”€β”€ πŸ“„ setup-python-env.sh              # Python env bootstrap
β”‚   └── πŸ“„ sql_keywords.py                  # SQL keyword extractor
β”‚
β”œβ”€β”€ πŸ“ web/                                 # Main application source
β”‚   β”œβ”€β”€ πŸ“„ branding.py                      # ✨ App identity config
β”‚   β”œβ”€β”€ πŸ“„ config.py                        # Core Flask/pgAdmin configuration
β”‚   β”œβ”€β”€ πŸ“„ pgAdmin4.py                      # Application entry point
β”‚   β”œβ”€β”€ πŸ“„ pgadmin.themes.json              # Theme registry (dark only)
β”‚   β”œβ”€β”€ πŸ“ pgadmin/
β”‚   β”‚   β”œβ”€β”€ πŸ“ static/
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ–ΌοΈ favicon.ico              # Browser tab icon (rebranded)
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ img/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ–ΌοΈ logo-128.png         # Navbar logo
β”‚   β”‚   β”‚   β”‚   └── πŸ–ΌοΈ logo-256.png         # Large logo
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ js/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🎨 AppMenuBar.jsx       # Navbar with Bases_on logo
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ 🎨 BrowserComponent.jsx # Footer injection
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“ Theme/
β”‚   β”‚   β”‚   β”‚   β”‚   └── 🎨 dark.js          # Crimson dark theme
β”‚   β”‚   β”‚   β”‚   └── πŸ“ SecurityPages/
β”‚   β”‚   β”‚   β”‚       └── 🎨 BasePage.jsx     # Login page layout
β”‚   β”‚   β”‚   └── πŸ“ scss/resources/
β”‚   β”‚   β”‚       └── 🎨 _default.variables.scss  # Inter font + CSS vars
β”‚   β”‚   β”œβ”€β”€ πŸ“ dashboard/static/js/
β”‚   β”‚   β”‚   β”œβ”€β”€ 🎨 WelcomeDashboard.jsx     # Welcome screen
β”‚   β”‚   β”‚   └── 🎨 PgAdminLogo.jsx          # SVG gradient logo
β”‚   β”‚   └── πŸ“ templates/
β”‚   β”‚       └── 🎨 base.html                # Google Fonts injection
β”‚   └── πŸ“ migrations/                      # DB schema migrations
β”‚
β”œβ”€β”€ 🐳 Dockerfile                           # Multi-stage Alpine build
β”œβ”€β”€ πŸ“„ docker-compose.yml                   # One-command deployment
β”œβ”€β”€ πŸ“„ requirements.txt                     # Python dependencies
β”œβ”€β”€ πŸ“„ .env.example                         # Env template + descriptions
β”œβ”€β”€ πŸ“„ LICENSE                              # Apache 2.0
β”œβ”€β”€ πŸ“„ DEPENDENCIES                         # Full dependency list
└── πŸ“„ README.th.md                         # Thai README

Key Modifications from Upstream

Full documentation: bases_on_modifications.md

Component Original (pgAdmin 4) Modified (bases_on)
App Name pgAdmin 4 bases_on
Primary Color #234d7e (Blue) #7F1D1D (Crimson)
Font Family System default Inter (400-800)
Logo Elephant icon Custom SVG gradient
Footer None dynamicdev_ copyright bar
Data Path /var/lib/pgadmin /var/lib/bases_on

Building Locally

# Install build dependencies
docker --version  # Docker 20.10+
node --version    # Node 18+ (for local development)

# Clone & build
git clone https://github.com/dynamicdev-official/BASES_ON-PROJECT.git
cd bases_on

# Build with build args
docker build \
  --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
  --build-arg VCS_REF=$(git rev-parse --short HEAD) \
  -t bases_on:dev .

# Run with debug logging
docker run -it --rm \
  -e PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10 \
  -p 5050:80 \
  bases_on:dev

πŸ“š Documentation

Related Resources

Internal Documentation


🀝 Contributing

This is a private fork maintained by dynamicdev_ for internal infrastructure use.

Reporting Issues

Found a bug specific to bases_on (not pgAdmin 4 upstream)?

  1. Check existing issues
  2. Open a new issue with:
    • πŸ› Bug description
    • πŸ“‹ Steps to reproduce
    • πŸ–ΌοΈ Screenshots (if applicable)
    • 🐳 Docker version & environment details

Suggesting Enhancements

Have an idea for bases_on?

  1. Open an issue tagged enhancement
  2. Describe the feature & use case
  3. Explain how it fits dynamicdev_ design language

Code Contributions

Style Guidelines:

// βœ… Good β€” Inter font, crimson accents
const theme = {
  palette: { primary: { main: '#7F1D1D' } },
  typography: { fontFamily: '"Inter", sans-serif' }
}

// ❌ Bad β€” Off-brand colors
const theme = {
  palette: { primary: { main: '#2196f3' } }  // Don't use blue
}

Commit Message Format:

feat(theme): add gradient overlay to login background
fix(docker): resolve permission issue in entrypoint.sh
docs(readme): update quick start section
chore(deps): bump Material-UI to v5.14.0

πŸ”’ Security

Reporting Vulnerabilities

DO NOT open public issues for security vulnerabilities.

Email: admin@dynamicdev.asia with:

  • Description of the vulnerability
  • Steps to reproduce
  • Potential impact
  • Suggested fix (if any)

We aim to respond within 48 hours.

Security Best Practices

# βœ… Use strong passwords
PGADMIN_DEFAULT_PASSWORD: "$(openssl rand -base64 32)"

# βœ… Run behind reverse proxy with TLS
# βœ… Limit network exposure
networks:
  - internal  # No direct internet access

# βœ… Regular updates
docker pull ghcr.io/dynamicdev-official/BASES_ON-PROJECT:latest
docker compose up -d

πŸ“„ License

Apache License 2.0

This project is a derivative work of pgAdmin 4 (PostgreSQL License, BSD-like).

Original Work:  pgAdmin 4 Β© pgAdmin Development Team
Modifications:  bases_on Β© 2026 dynamicdev_ | BASES_ON PROJECT

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.

See LICENSE file for full terms.
See NOTICE file for attribution details.

Third-Party Licenses

This software includes components from:

  • pgAdmin 4 β€” PostgreSQL License
  • Material-UI β€” MIT License
  • React β€” MIT License
  • Flask β€” BSD License
  • PostgreSQL β€” PostgreSQL License

Full attribution in NOTICE.


πŸ™ Acknowledgments


pgAdmin Team
For the incredible PostgreSQL tool

PostgreSQL
The world's most advanced database

Material-UI
React component framework

Google Fonts
Inter typeface

πŸ“ž Contact & Support

dynamicdev_ β€” IT Infrastructure & Services

Website Email Location


Repository Links

Issues β€’ Discussions β€’ Releases β€’ Docker Hub β€’


Built with ❀️ in Bangkok | Powered by PostgreSQL | Designed by dynamicdev_

Built to run. πŸ”΄

About

πŸ“Š Next-gen database management interface custom-tailored PostgreSQL environment for the dynamicdev_ ecosystem.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors