Skip to main content
Documentation

Deployment Guide

Deploy Dits in production environments with high availability, scalability, and security. Choose from Docker, Kubernetes, or cloud-managed solutions.

Deployment Options

Self-Hosted
Full control with Docker/Kubernetes
  • Complete data sovereignty
  • Custom scaling policies
  • On-premise deployment
  • Enterprise security
Most Flexible
Cloud Managed
Hosted platform with Ditshub
  • Zero infrastructure management
  • Automatic scaling
  • Built-in backups
  • Global CDN
Easiest
Hybrid
Mix of self-hosted and cloud
  • Sensitive data on-premise
  • Public assets in cloud
  • Geographic compliance
  • Cost optimization
Balanced

Architecture Overview

Core Components

API Server

REST API, authentication, metadata

Storage Service

Chunk storage, deduplication, retrieval

Database

PostgreSQL for metadata, Redis for caching

Worker Queue

Background processing, cleanup, maintenance

Data Flow

Client uploads file via API
Storage service chunks and stores
Metadata saved to database
Workers handle cleanup and optimization

Prerequisites

Compute Requirements
API Server:
2-4 vCPUs, 4-8GB RAM
Storage Service:
4-8 vCPUs, 16-32GB RAM
Database:
4-8 vCPUs, 16-32GB RAM
Workers:
2-4 vCPUs, 8-16GB RAM
Scaling Guidelines
Small Teams (1-50 users):

Single server, 8-16 vCPUs total

Medium Teams (50-500 users):

3-5 servers, load balancing

Large Organizations:

Kubernetes cluster, auto-scaling

Quick Start Deployments

Docker Compose (Development)
Perfect for testing and small teams
Components:
  • PostgreSQL database
  • Redis cache
  • Dits API server
  • MinIO object storage
Setup time: 5-10 minutes
View Docker deployment guide →
Kubernetes (Production)
Scalable production deployment
Features:
  • Auto-scaling
  • Rolling updates
  • Persistent storage
  • Service mesh
Setup time: 30-60 minutes
View Kubernetes deployment guide →

Configuration

Environment Variables

VariableDescriptionDefaultRequired
DATABASE_URLPostgreSQL connection string-
REDIS_URLRedis connection URLredis://localhost:6379-
JWT_SECRETSecret for JWT token signing-
STORAGE_TYPEStorage backend (local, s3, minio)local-
API_PORTPort for API server8080-

Security Considerations

Network Security
  • HTTPS/TLS 1.3 encryption
  • Network segmentation
  • Firewall rules
  • VPN for admin access
  • Data Security
  • At-rest encryption
  • Content integrity verification
  • Backup encryption
  • Secure key management
  • Monitoring & Maintenance

    Key Metrics to Monitor

    Performance
  • API response times
  • Chunk upload/download speeds
  • Database query latency
  • Cache hit rates
  • Resources
  • CPU utilization
  • Memory usage
  • Disk I/O
  • Network bandwidth
  • Business
  • Active users
  • Storage usage
  • Repository count
  • API call volume
  • Backup & Recovery

    Backup Strategy

    Database Backups

    • Daily full backups
    • Hourly incremental backups
    • Point-in-time recovery
    • Encrypted storage

    Chunk Storage Backups

    • Cross-region replication
    • Immutable backups
    • Content verification
    • Retention policies

    Support & Resources

    Professional Services
    • Deployment consulting
    • Performance optimization
    • Enterprise integration
    • Custom development