OKLABS Docker Infrastructure Documentation

Container Overview

This document provides a comprehensive overview of all Docker containers running in the OKLABS core-stack environment.

Service Architecture

Core Application Services

1. ProviderTrack (Shipment Tracking System)

  • Main App: track (Container: d2e28ed1e9c9)

    • Image: track:latest
    • Port: 8077:8000
    • Status: Healthy
    • Purpose: Main Django application for shipment tracking
    • URL: https://track.oklabs.my.id
  • Background Workers:

    • Celery Worker: track-celery (Container: ef0456842189)
      • Status: Restarting (issue detected)
      • Purpose: Asynchronous task processing
    • Celery Beat: track-celery-beat (Container: 2024affa2049)
      • Status: Restarting (issue detected)
      • Purpose: Scheduled task execution
  • Database: track-db (Container: 1a387a39fbb3)

    • Image: postgres:15
    • Status: Healthy
    • Purpose: Primary database for ProviderTrack
  • Cache: track-redis (Container: 556294dca089)

    • Image: redis:7
    • Status: Healthy
    • Purpose: Caching and session storage

2. CEISA Dashboard

  • Container: ceisa-dashboard (Container: 4cd075711f7d)
    • Image: ceisa-dashboard:latest
    • Port: 5000:5000
    • Purpose: Indonesian customs clearance dashboard
    • URL: https://ceisa.oklabs.my.id (if configured)

Documentation & Knowledge Management

3. GitBook Documentation

  • Container: gitbook (Container: 6727dade0ac6)
    • Image: yanqd0/gitbook
    • Port: 4000:4000, 35729 (live reload)
    • Purpose: Central documentation hub
    • URL: https://how.oklabs.my.id

4. Paperless Document Management

  • Main App: paperless (Container: 1d074896199c)

    • Image: ghcr.io/paperless-ngx/paperless-ngx:latest
    • Port: 8000:8000
    • Status: Healthy
    • Purpose: Document management and OCR
    • URL: https://paperless.oklabs.my.id
  • Database: paperless-db (Container: 80837ed72d52)

    • Image: postgres:15
    • Purpose: Paperless database
  • Cache: paperless-redis (Container: 01d5d2fd7485)

    • Image: redis:7
    • Purpose: Paperless caching

Analytics & Business Intelligence

5. Apache Superset

  • Container: bi-core (Container: a384a9f5f153)

  • Database: superset-db (Container: 10985c29f603)

    • Image: postgres:15
    • Purpose: Superset metadata database

IT Service Management

6. GLPI Asset Management

  • Main App: glpi (Container: 122308a318a7)

  • Database: glpi-db (Container: 1086fd94b6fe)

    • Image: mysql:8.0
    • Status: Healthy
    • Purpose: GLPI database

Workflow Automation

7. n8n Automation

  • Container: n8n-core (Container: 9a0afae3378d)

Monitoring & Management

8. Uptime Kuma

  • Container: uptime-core (Container: 50d18d556e35)
    • Image: louislam/uptime-kuma:1
    • Port: 3001:3001
    • Status: Healthy
    • Purpose: System health monitoring and alerts
    • URL: https://uptime.oklabs.my.id

9. Netdata

  • Container: netdata-core (Container: ca1b7cdbddd6)
    • Image: netdata/netdata
    • Port: 19999:19999
    • Status: Healthy
    • Purpose: Real-time system metrics and monitoring
    • URL: https://netdata.oklabs.my.id

10. Portainer

  • Container: portainer (Container: 2bd53dad5098)

Service Summary Table

Service Container Image Port Status Purpose URL
ProviderTrack track track:latest 8077:8000 ✅ Healthy Shipment tracking API track.oklabs.my.id
Track Celery track-celery track:latest - ⚠️ Restarting Background tasks -
Track Celery Beat track-celery-beat track:latest - ⚠️ Restarting Scheduled tasks -
Track Database track-db postgres:15 5432 ✅ Healthy Main database -
Track Cache track-redis redis:7 6379 ✅ Healthy Redis cache -
CEISA Dashboard ceisa-dashboard ceisa-dashboard:latest 5000:5000 ✅ Running Customs dashboard ceisa.oklabs.my.id
Documentation gitbook yanqd0/gitbook 4000:4000 ✅ Running GitBook docs how.oklabs.my.id
Document Mgmt paperless paperless-ngx:latest 8000:8000 ✅ Healthy Document OCR/storage paperless.oklabs.my.id
Paperless DB paperless-db postgres:15 5432 ✅ Running Paperless database -
Paperless Cache paperless-redis redis:7 6379 ✅ Running Paperless cache -
Analytics bi-core apache/superset 8088:8088 ✅ Healthy Data visualization analytics.oklabs.my.id
Superset DB superset-db postgres:15 5432 ✅ Running Superset database -
Asset Mgmt glpi glpi/glpi:11.0.0-beta7 8080:80 ✅ Running IT asset management assets.oklabs.my.id
GLPI Database glpi-db mysql:8.0 3306 ✅ Healthy GLPI database -
Automation n8n-core n8nio/n8n 5678:5678 ✅ Running Workflow automation automation.oklabs.my.id
Monitoring uptime-core louislam/uptime-kuma:1 3001:3001 ✅ Healthy System monitoring uptime.oklabs.my.id
Metrics netdata-core netdata/netdata 19999:19999 ✅ Healthy Real-time metrics netdata.oklabs.my.id
Container Mgmt portainer portainer/portainer-ce 9000:9000, 9443:9443 ✅ Running Docker management portainer.oklabs.my.id

Critical Issues Detected

⚠️ Immediate Attention Required

  1. Track Celery Worker (Container: ef0456842189)

    • Status: Restarting continuously
    • Impact: Background tasks (tracking updates, notifications) not processing
    • Recommended Action: Check container logs and restart
  2. Track Celery Beat (Container: 2024affa2049)

    • Status: Restarting continuously
    • Impact: Scheduled tasks (periodic tracking updates) not running
    • Recommended Action: Check container logs and restart

Troubleshooting Commands

# Check Celery worker logs
docker logs track-celery

# Check Celery beat logs
docker logs track-celery-beat

# Restart Celery services
docker restart track-celery
docker restart track-celery-beat

# Check all container health
# Check all container health
docker ps

Network Architecture

External Access Ports

  • 3001: Uptime Kuma monitoring
  • 4000: GitBook documentation
  • 5000: CEISA dashboard
  • 5678: n8n automation
  • 8000: Paperless document management
  • 8077: ProviderTrack main application
  • 8080: GLPI asset management
  • 8088: Apache Superset analytics
  • 9000/9443: Portainer management
  • 19999: Netdata metrics

Internal Services

  • PostgreSQL databases: Multiple instances on port 5432
  • Redis caches: Multiple instances on port 6379
  • MySQL database: GLPI on port 3306

Reverse Proxy Configuration (Caddy)

The following Caddy configuration should be used to route external domains:

# Documentation
how.oklabs.my.id {
    reverse_proxy localhost:4000
}

# Main ProviderTrack API
track.oklabs.my.id {
    reverse_proxy localhost:8077
}

# Monitoring
uptime.oklabs.my.id {
    reverse_proxy localhost:3001
}

# Analytics
analytics.oklabs.my.id {
    reverse_proxy localhost:8088
}

# Document Management
paperless.oklabs.my.id {
    reverse_proxy localhost:8000
}

# Asset Management
assets.oklabs.my.id {
    reverse_proxy localhost:8080
}

# Automation
automation.oklabs.my.id {
    reverse_proxy localhost:5678
}

# Container Management
portainer.oklabs.my.id {
    reverse_proxy localhost:9000
}

# System Metrics
netdata.oklabs.my.id {
    reverse_proxy localhost:19999
}

# CEISA Dashboard
ceisa.oklabs.my.id {
    reverse_proxy localhost:5000
}

Maintenance Procedures

Daily Checks

  1. Container Health: docker ps - verify all containers are running
  2. Service Status: Check uptime.oklabs.my.id for service availability
  3. Disk Space: Monitor storage usage across all volumes
  4. Log Rotation: Ensure logs aren't consuming excessive space

Weekly Tasks

  1. Update Containers: Pull latest images for security updates
  2. Database Backups: Verify backup procedures are working
  3. Performance Review: Check Netdata for resource utilization
  4. Security Scan: Review container vulnerabilities

Emergency Procedures

Container Restart

# Restart individual service
docker restart <container-name>

# Restart all services
docker restart $(docker ps -q)

Full System Recovery

# Navigate to docker-compose directory
cd /data/core-stack

# Bring down all services
docker-compose down

# Bring up all services
docker-compose up -d

Resource Requirements

CPU Usage

  • High: ProviderTrack, Apache Superset, Netdata
  • Medium: Paperless, GLPI, n8n
  • Low: GitBook, Uptime Kuma, Portainer

Memory Usage

  • High: PostgreSQL databases, Apache Superset
  • Medium: ProviderTrack, Paperless, Redis
  • Low: GitBook, monitoring tools

Storage Requirements

  • Databases: Growing storage needs for PostgreSQL/MySQL
  • Documents: Paperless file storage
  • Logs: All containers generate logs
  • Images: Docker image storage

Security Considerations

Network Security

  • All services run in isolated Docker networks
  • External access only through Caddy reverse proxy
  • SSL/TLS termination at Caddy level

Data Protection

  • Database credentials stored in environment variables
  • Regular backups of critical data
  • Container isolation prevents cross-service access

Access Control

  • Individual authentication for each service
  • SSH access restricted to authorized keys
  • Container management through Portainer

Support & Troubleshooting

Common Issues

  1. Container Won't Start

    • Check logs: docker logs <container-name>
    • Verify port conflicts
    • Check disk space
  2. Service Unreachable

    • Verify container is running
    • Check Caddy configuration
    • Test internal port access
  3. Performance Issues

    • Monitor with Netdata
    • Check resource limits
    • Review container logs

Contact Information


OKLABS Docker Infrastructure Documentation Last Updated: August 9, 2025

results matching ""

    No results matching ""