Sign inSign up

sdraeger1/ddalab-docker-ext

By sdraeger1

โ€ขUpdated 12 months ago

Image
0

10K+

sdraeger1/ddalab-docker-ext repository overview

โ DDALAB Manager - Docker Desktop Extension

Docker Hub Docker Image Size Docker Pulls

A Docker Desktop extension for managing DDALAB (Delay Differential Analysis Laboratory) installations directly from Docker Desktop's Extensions tab.

โ ๐Ÿงช What is DDALAB?

DDALAB (Delay Differential Analysis Laboratory) is a comprehensive scientific computing platform for performing Delay Differential Analysis on EDF (European Data Format) and ASCII files. It is planned to be used in neuroscience research for analyzing brain activity patterns and detecting anomalies in EEG and other physiological data.

โ ๐Ÿš€ Features

โ ๐Ÿ“Š Service Management
  • Real-time Status Monitoring - View the health and status of all DDALAB services
  • One-click Service Control - Start, stop, and restart DDALAB stack with ease
  • Resource Monitoring - Track CPU, memory, and uptime for each service
โ ๐Ÿ“‹ Log Management
  • Live Log Streaming - View real-time logs from all DDALAB services
  • Log Filtering - Filter logs by service, log level, or time range
  • Log Export - Download logs for debugging and analysis
โ ๐Ÿ”ง Configuration Management
  • Environment Configuration - Manage DDALAB environment variables
  • Service Configuration - Configure individual service settings
  • Backup & Restore - Create and restore configuration backups
โ ๐Ÿณ Docker Integration
  • Native Docker Desktop Integration - Seamlessly integrated into Docker Desktop UI
  • Container Management - Direct control over DDALAB containers
  • Network Monitoring - View container networking and port mappings

โ ๐Ÿ“ฆ Installation

โ Prerequisites
  • Docker Desktop 4.10.0+ with Extensions support
  • Docker Engine 20.10+
  • 4GB RAM minimum (8GB recommended for DDALAB)
  • 10GB free disk space for DDALAB data and containers
โ Install from Docker Desktop
  1. Open Docker Desktop
  2. Navigate to the Extensions tab
  3. Search for "DDALAB Manager"
  4. Click Install
โ Install from Command Line
# Install the extension
docker extension install sdraeger1/ddalab-docker-ext:latest

# Verify installation
docker extension ls
โ Manual Installation
# Clone the repository
git clone https://github.com/sdraeger/DDALAB.git
cd DDALAB/docker-extension

# Build and install locally
docker extension install .

โ ๐ŸŽฏ Quick Start

โ 1. Launch DDALAB Manager

After installation, find "DDALAB Manager" in your Docker Desktop Extensions tab.

โ 2. Initialize DDALAB
  • Click "Initialize DDALAB" to set up the required services
  • The extension will automatically pull and configure:
    • DDALAB API Server (Python FastAPI)
    • PostgreSQL Database
    • Redis Cache
    • MinIO Object Storage
    • Traefik Reverse Proxy
โ 3. Monitor Services
  • View real-time status of all DDALAB components
  • Monitor resource usage and health checks
  • Access service logs and metrics
โ 4. Access DDALAB

Once services are running, access DDALAB at:

โ ๐Ÿ—๏ธ Architecture

DDALAB Manager orchestrates a complete microservices stack:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   React UI      โ”‚    โ”‚  DDALAB API     โ”‚    โ”‚  PostgreSQL     โ”‚
โ”‚   (Frontend)    โ”‚โ—„โ”€โ”€โ–บโ”‚  (FastAPI)      โ”‚โ—„โ”€โ”€โ–บโ”‚  (Database)     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚                        โ”‚                        โ”‚
        โ–ผ                        โ–ผ                        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Traefik       โ”‚    โ”‚     Redis       โ”‚    โ”‚     MinIO       โ”‚
โ”‚   (Proxy)       โ”‚    โ”‚    (Cache)      โ”‚    โ”‚   (Storage)     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ Services Included
ServicePurposePortHealth Check
ddalabMain API server with GraphQL8000โœ… Built-in
postgresPrimary database5432โœ… Built-in
redisCaching and sessions6379โœ… Built-in
minioObject storage for EDF files9000/9001โœ… Built-in
traefikReverse proxy with SSL80/443โœ… Built-in

โ ๐Ÿ“‹ Usage Examples

โ Basic Service Management
# Start DDALAB stack
curl -X POST http://localhost:8080/api/v1/start

# Check service status
curl http://localhost:8080/api/v1/status

# View logs
curl http://localhost:8080/api/v1/logs/ddalab

# Stop services
curl -X POST http://localhost:8080/api/v1/stop
โ Configuration Management

The extension provides a user-friendly interface for:

  • Managing environment variables
  • Configuring service settings
  • Creating configuration backups
  • Monitoring resource usage
โ Advanced Features
  • Custom Deployment Profiles - Switch between development and production configurations
  • Automated Backups - Schedule regular backups of DDALAB data
  • Performance Monitoring - Track system performance and resource usage
  • Log Analysis - Built-in log parsing and analysis tools

โ ๐Ÿ”ง Configuration

โ Environment Variables

The extension supports configuration through environment variables:

DDALAB_MODE=production          # deployment mode
DDALAB_DEBUG=false             # debug logging
DDALAB_HOST=localhost          # host domain
DDALAB_PORT=443                # HTTPS port
POSTGRES_PASSWORD=secure123    # database password
REDIS_PASSWORD=secure456       # Redis password
MINIO_ROOT_USER=admin         # MinIO admin user
MINIO_ROOT_PASSWORD=secure789  # MinIO admin password
โ Volume Mounts

DDALAB requires persistent storage for:

  • Database: PostgreSQL data
  • Object Storage: EDF files and analysis results
  • Configuration: Service configurations and SSL certificates
  • Logs: Application and service logs
โ Network Configuration

The extension creates a dedicated Docker network for DDALAB services with:

  • Internal communication between services
  • External access via Traefik proxy
  • SSL termination for secure connections
  • Load balancing for high availability

โ ๐Ÿ› ๏ธ Development

โ Building from Source
# Clone the repository
git clone https://github.com/sdraeger/DDALAB.git
cd DDALAB/docker-extension

# Build the UI
cd ui
npm install
npm run build
cd ..

# Build the extension
docker build -t ddalab-manager .

# Install locally
docker extension install ddalab-manager:latest
โ Extension Structure
docker-extension/
โ”œโ”€โ”€ Dockerfile              # Multi-stage build configuration
โ”œโ”€โ”€ compose.yaml            # Service composition
โ”œโ”€โ”€ metadata.json           # Extension metadata
โ”œโ”€โ”€ extension.yaml          # Extension configuration
โ”œโ”€โ”€ icon.svg               # Extension icon
โ”œโ”€โ”€ backend/               # Go backend API
โ”‚   โ”œโ”€โ”€ main.go
โ”‚   โ”œโ”€โ”€ handlers/
โ”‚   โ””โ”€โ”€ models/
โ””โ”€โ”€ ui/                    # React frontend
    โ”œโ”€โ”€ src/
    โ”œโ”€โ”€ package.json
    โ””โ”€โ”€ webpack.config.js
โ API Endpoints

The extension backend provides RESTful API endpoints:

  • GET /api/v1/health - Health check
  • GET /api/v1/status - Service status
  • POST /api/v1/start - Start services
  • POST /api/v1/stop - Stop services
  • GET /api/v1/logs/{service} - Get service logs
  • GET /api/v1/config - Get configuration
  • POST /api/v1/config - Update configuration

โ ๐Ÿงช Testing

โ Automated Testing
# Run backend tests
cd backend
go test ./...

# Run frontend tests
cd ui
npm test

# Run integration tests
npm run test:integration
โ Manual Testing
  1. Install the extension in Docker Desktop
  2. Launch DDALAB Manager from Extensions tab
  3. Initialize services and verify all components start
  4. Test service management - start, stop, restart operations
  5. Verify logging - check that logs are accessible and formatted correctly
  6. Test configuration - modify settings and verify they persist

โ ๐Ÿ“š Documentation

โ Additional Resources
โ Scientific Background

DDALAB implements advanced algorithms for:

  • Delay Differential Analysis (DDA) - Mathematical framework for analyzing time-delayed systems
  • EDF File Processing - European Data Format for biological signal storage
  • Real-time Signal Processing - Live analysis of neurological data
  • Machine Learning Integration - AI-powered pattern recognition

โ ๐Ÿ› Troubleshooting

โ Common Issues
โ Extension Won't Start
# Check Docker Desktop version
docker version

# Verify extension installation
docker extension ls

# Check extension logs
docker extension logs sdraeger1/ddalab-docker-ext
โ Services Fail to Start
# Check available resources
docker system df

# Verify port availability
netstat -an | grep :8080

# Check service logs
curl http://localhost:8080/api/v1/logs/ddalab
โ Performance Issues
  • Increase Docker Desktop memory allocation (8GB+ recommended)
  • Close other resource-intensive applications
  • Check disk space (DDALAB requires 10GB+ free space)
  • Restart Docker Desktop if services become unresponsive
โ Support Channels

โ ๐Ÿค Contributing

We welcome contributions to DDALAB Manager! Please see our Contributing Guideโ  for details.

โ Development Setup
  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and add tests
  4. Test thoroughly using the testing procedures above
  5. Submit a pull request with a clear description
โ Code of Conduct

This project follows the Contributor Covenant Code of Conductโ .

โ ๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSEโ  file for details.

โ ๐Ÿ™ Acknowledgments

  • Docker Desktop Extensions Team - For providing the extension framework
  • DDALAB Testing Team - For feedback and active testing

Made with โค๏ธ for the scientific computing community

For questions, suggestions, or support, please open an issueโ  on GitHub.

Tag summary

Content type

Image

Digest

sha256:9aeb0877eโ€ฆ

Size

44.8 MB

Last updated

12 months ago

docker pull sdraeger1/ddalab-docker-ext