Skip to content

sudoshi/Acropolis

Repository files navigation

Acropolis — Enterprise Foundation for Parthenon

Acropolis is the infrastructure and operations layer for Parthenon, providing container management, monitoring, workflow automation, data catalog, BI dashboards, and SSO — all behind a unified reverse proxy with automatic SSL.

Editions

Feature Community Enterprise
Parthenon (OHDSI research platform) Yes Yes
Portainer CE (container management) Yes Yes
pgAdmin 4 (database administration) Yes Yes
Grafana + Prometheus + Loki (observability) Yes Yes
n8n (workflow automation) Yes
Apache Superset (BI & visualization) Yes
DataHub (data catalog & lineage) Yes
Authentik (SSO / SAML / OIDC) Yes
Kubernetes Helm charts Yes
Multi-node HA deployment Yes
Priority support Yes

Quick Start

# 1. Clone
git clone https://github.com/sudoshi/Acropolis.git
cd Acropolis

# 2. Initialize (creates .env, Docker network, ACME dirs)
./acropolis.sh init

# 3. Edit .env with your domain and credentials
vim .env

# 4. Start Community Edition
./acropolis.sh up --edition community

# 5. Or Enterprise Edition
./acropolis.sh up --edition enterprise

Architecture

                         ┌──────────────────────────────────────┐
                         │         Traefik Reverse Proxy        │
                         │     (Auto SSL via Let's Encrypt)     │
                         └──────┬───────┬───────┬───────┬──────┘
                                │       │       │       │
                    ┌───────────┘       │       │       └───────────┐
                    │                   │       │                   │
              ┌─────┴─────┐   ┌────────┴──┐  ┌┴────────┐   ┌─────┴─────┐
              │ Parthenon │   │ Community  │  │Enterprise│   │  Shared   │
              │  (OHDSI)  │   │  Services  │  │ Services │   │  Infra    │
              │           │   │            │  │          │   │           │
              │ • PHP/API │   │ • Portainer│  │ • n8n    │   │ • Grafana │
              │ • React   │   │ • pgAdmin  │  │ • Super- │   │ • Prom   │
              │ • AI/LLM  │   │            │  │   set    │   │ • Loki   │
              │ • R HADES │   │            │  │ • DataHub│   │ • Alloy  │
              │ • Solr    │   │            │  │ • Auth-  │   │ • cAdv   │
              └───────────┘   └────────────┘  │   entik  │   │ • NodeEx │
                                              └──────────┘   └──────────┘
                         └──────────────────────────────────────┘
                                   acropolis_network

Service URLs

Service URL Edition
Parthenon https://parthenon.{DOMAIN} Both
Portainer https://portainer.{DOMAIN} Community
pgAdmin https://pgadmin.{DOMAIN} Community
Grafana https://grafana.{DOMAIN} Community
n8n https://n8n.{DOMAIN} Enterprise
Superset https://superset.{DOMAIN} Enterprise
DataHub https://datahub.{DOMAIN} Enterprise
Authentik https://auth.{DOMAIN} Enterprise

CLI Reference

./acropolis.sh init                      # Initialize project
./acropolis.sh up --edition community    # Start community services
./acropolis.sh up --edition enterprise   # Start all services
./acropolis.sh down                      # Stop everything
./acropolis.sh status                    # Service health overview
./acropolis.sh logs [service]            # Follow logs
./acropolis.sh urls                      # Show all service URLs
./acropolis.sh backup                    # Backup volume data
./acropolis.sh smoke-test                # Health check all services

Or use make:

make init           # Initialize
make community      # Start Community Edition
make enterprise     # Start Enterprise Edition
make status         # Service status
make logs           # Follow logs (SERVICE=grafana for specific)
make smoke-test     # Run health checks

Project Structure

Acropolis/
├── docker-compose.yml               # Base: Traefik + network
├── docker-compose.community.yml     # Community tier services
├── docker-compose.enterprise.yml    # Enterprise tier services
├── acropolis.sh                     # CLI wrapper
├── Makefile                         # Make targets
├── .env.example                     # Configuration template
├── traefik/                         # Reverse proxy config
│   ├── traefik.yml                  # Static config
│   ├── dynamic/                     # Dynamic route configs
│   └── acme/                        # Let's Encrypt certs (gitignored)
├── monitoring/                      # Observability stack configs
│   ├── grafana/provisioning/        # Datasources + dashboards
│   ├── prometheus/prometheus.yml    # Scrape targets
│   ├── loki/loki-config.yml         # Log aggregation
│   └── alloy/config.alloy           # Log collection
├── config/                          # Per-service configs
│   ├── pgadmin/servers.json         # Pre-configured DB connections
│   ├── superset/superset_config.py  # Superset settings
│   ├── n8n/                         # n8n workflows
│   ├── datahub/                     # DataHub overrides
│   └── authentik/                   # Authentik overrides
├── k8s/                             # Kubernetes deployment
│   ├── helm/                        # Helm charts
│   └── kustomize/                   # Kustomize overlays
├── scripts/                         # Utility scripts
│   └── migrate-from-parthenon.sh    # Migration helper
├── tests/                           # Smoke & integration tests
│   └── smoke-test.sh
└── docs/                            # Documentation
    ├── editions.md                  # Edition comparison
    ├── architecture.md              # Architecture details
    └── quickstart.md                # Getting started guide

Prerequisites

  • Docker Engine 24.0+
  • Docker Compose v2.20+
  • 16 GB RAM minimum (32 GB recommended for Enterprise)
  • Domain with DNS pointing to your server (for SSL)

Connecting Parthenon

Parthenon joins the Acropolis network by adding to its docker-compose.yml:

networks:
  parthenon:
    driver: bridge
  acropolis:
    external: true
    name: acropolis_network

Then add acropolis to the nginx service's networks. See scripts/migrate-from-parthenon.sh for the full migration guide.

License

  • Community Edition: Apache License 2.0
  • Enterprise Edition: Commercial license — contact sales@acumenus.net

Resources

About

Set of Server Utilities for Container, User, Process, and Security Management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors