Skip to content

SimplicityGuy/apollonia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Apollonia - Intelligent Media Catalog System

πŸš€ CI/CD Status

CI/CD Pipeline Performance Benchmarks Dependencies

πŸ“¦ Project Info

License: MIT Python 3.12 Node.js 22+ Docker

πŸ› οΈ Code Quality

pre-commit Ruff mypy Code style: black uv

πŸ§ͺ Testing & Security

pytest Vitest Security: bandit Dependencies: pip-audit Containers: Trivy

πŸ“Š Project Metrics

GitHub issues GitHub pull requests GitHub last commit GitHub repo size codecov

Pronunciation: aΒ·polΒ·lonΒ·ia

Overview

Apollonia is a comprehensive media catalog system that automatically detects, classifies, and analyzes audio and video files using machine learning. Built with a modern microservices architecture, it provides real-time processing, advanced analytics, and a responsive web interface for managing large media collections.

Key Features

  • Automatic Media Detection: Monitors directories and automatically processes new media files
  • ML-Powered Analysis: Uses TensorFlow and Essentia for audio/video feature extraction
  • Real-time Processing: Event-driven architecture with AMQP message queuing
  • Comprehensive API: RESTful and GraphQL APIs with JWT authentication
  • Modern Web Interface: React-based UI with real-time updates and analytics
  • Scalable Architecture: Microservices design with Docker containerization
  • Multi-format Support: Handles various audio (MP3, WAV, FLAC) and video (MP4, AVI, MOV) formats

πŸ› οΈ Technologies & Tools

Core Technologies

Development Tools

Infrastructure & DevOps

Frontend Libraries

Media Processing

Architecture

The system consists of several specialized services:

Requirements

  • Python 3.12 (for TensorFlow/Essentia compatibility)
  • Docker and Docker Compose for containerized deployment
  • PostgreSQL for primary data storage
  • RabbitMQ for message queuing
  • Redis for caching
  • Neo4j for graph relationships (optional)
  • Node.js 22+ for frontend development

Quick Start

Prerequisites

  • Docker and Docker Compose (v2.0+)
  • Git
  • 8GB RAM minimum (16GB recommended for ML features)
  • 20GB free disk space

Installation

  1. Clone the repository:

    git clone https://github.com/SimplicityGuy/apollonia.git
    cd apollonia
  2. Start the services:

    docker-compose up -d

    This will start:

    • PostgreSQL database
    • RabbitMQ message broker
    • Redis cache
    • Neo4j graph database
    • All microservices
    • Frontend web application
  3. Monitor the logs:

    docker-compose logs -f
  4. Access the web interface:

    Open http://localhost:3000 in your browser

    Default credentials:

    • Username: admin
    • Password: admin123
  5. Add media files:

    # Copy files to monitored directories
    cp your-music/* ./data/music/
    cp your-videos/* ./data/videos/
    
    # Or use the web interface upload feature

    The system will automatically:

    • Detect new files
    • Extract metadata
    • Analyze content using ML models
    • Index for searching
    • Generate thumbnails and previews

Development

For detailed development instructions, see the Development Guide.

Quick Development Setup

The project uses Just as a command runner for all development tasks.

# Install Just (if not already installed)
cargo install just

# Or on macOS
brew install just

# Set up development environment
just install

# Start all services
just up

# Run tests
just test

# Run quality checks
just check

# See all available commands
just --list

Alternative Setup (without Just)

# Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install dependencies
uv sync --all-extras

# Install pre-commit hooks
uv run task install-hooks

# Run quality checks
uv run task check

Development Tools Overview

  • πŸš€ Package Manager: uv - Ultra-fast Python package installer and resolver
  • 🎯 Task Runner: Just - Command runner for development workflows
  • 🧹 Code Formatter: Ruff - Extremely fast Python linter and formatter
  • πŸ” Type Checker: mypy - Static type checker for Python
  • πŸ§ͺ Testing: pytest for Python | Vitest for Frontend
  • πŸ›‘οΈ Security: Bandit | pip-audit | Trivy
  • πŸͺ Git Hooks: pre-commit - Multi-language pre-commit framework
  • πŸ“¦ Containerization: Docker with multi-stage builds and health checks

Documentation

License

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

Author

Robert Wlodarczyk - [email protected]

Sponsor this project

Contributors 3

  •  
  •  
  •