๐Ÿณ autobase

Automated database platform for PostgreSQLยฎ - Your own DBaaS.

Docker Ready 5 Services Ports: 80, 443, 9876 4,173 stars
1. Pull Image docker pull autobase/console_api
2. 1-Click Launch Command docker run -d -p 80:80 --name autobase autobase/console_api:2.10.0
3. Compose Deployment docker compose up -d
console/docker-compose.caddy.yml
Download .yml
---
services:
  caddy:
    image: lucaslorentz/caddy-docker-proxy:ci-alpine
    container_name: caddy
    ports:
      - 80:80
      - 443:443
    environment:
      - CADDY_INGRESS_NETWORKS=caddy
    networks:
      - caddy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - caddy_data:/data
    restart: unless-stopped
    depends_on:
      autobase-console-ui:
        condition: service_healthy
    labels:
      caddy.email: ${EMAIL}

  autobase-console-api:
    image: autobase/console_api:2.10.0
    container_name: autobase-console-api
    healthcheck:
      test: ["CMD", "curl", "-fsS",
            "-H", "accept: application/json",
            "-H", "Authorization: Bearer ${AUTH_TOKEN}",
            "http://localhost:8080/api/v1/version"]
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped
    depends_on:
      autobase-console-db:
        condition: service_healthy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /tmp/ansible:/tmp/ansible
    environment:
      - PG_CONSOLE_AUTHORIZATION_TOKEN=${AUTH_TOKEN}
      - PG_CONSOLE_LOGGER_LEVEL=${PG_CONSOLE_LOGGER_LEVEL:-INFO}
      - PG_CONSOLE_DB_HOST=autobase-console-db
    networks:
      - autobase
      - caddy

  autobase-console-ui:
    image: autobase/console_ui:2.10.0
    container_name: autobase-console-ui
    healthcheck:
      test: [ "CMD", "curl", "http://localhost:80/" ]
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped
    depends_on:
      autobase-console-api:
        condition: service_healthy
    labels:
      caddy: ${DOMAIN}
      caddy.reverse_proxy: autobase-console-ui:80
    environment:
      - PG_CONSOLE_AUTHORIZATION_TOKEN=${AUTH_TOKEN}
      - PG_CONSOLE_API_HOST=autobase-console-api
      - PG_CONSOLE_DBDESK_STUDIO_HOST=dbdesk-studio
      - PG_CONSOLE_DBDESK_STUDIO_PORT=${PG_CONSOLE_DBDESK_STUDIO_PORT:-9876}
    networks:
      - autobase
      - caddy

  autobase-console-db:
    image: autobase/console_db:2.10.0
    container_name: autobase-console-db
    healthcheck:
      test: pg_isready -U postgres -h 127.0.0.1
      interval: 5s
      timeout: 5s
      retries: 10
    restart: unless-stopped
    volumes:
      - console_postgres:/var/lib/postgresql
    networks:
      - autobase

  dbdesk-studio:
    image: docker.io/bhavikagarwal2001/dbdesk-studio:0.1.5
    container_name: dbdesk-studio
    ports:
      - 9876:9876  # nginx (frontend + /api/ proxy); Express listens internally on PORT
    healthcheck:
      test: ["CMD", "curl", "-fsS", "http://localhost:6789/health"]
      interval: 10s
      timeout: 5s
      retries: 5
    restart: unless-stopped
    volumes:
      - dbdesk_studio_data:/opt/dbdesk-studio
    environment:
      - PORT=6789
      - CORS_ORIGIN=${CORS_ORIGIN:-*}
      - NODE_ENV=production
      - DEFAULT_SSL_MODE=require
      - STORAGE_PATH=/opt/dbdesk-studio/data
    networks:
      - autobase

volumes:
  console_postgres:
    name: console_postgres
  caddy_data:
    name: caddy_data
  dbdesk_studio_data:
    name: dbdesk_studio_data

networks:
  autobase:
    name: autobase
  caddy:
    name: caddy