Skip to content

Service Architecture

The application uses two Docker networks:

  • internal_net: Bridge network for internal communication
  • external_net: Bridge network for external communication

The system uses several named volumes for data persistence:

  • DataSpace_data: Main application data (bind mount to ./volume/DataSpace_data)
  • DataSpace_db_data: PostgreSQL database data (bind mount to ./volume/DataSpace_db_data)
  • DataSpace_db_backup: Database backups (bind mount to ./volume/DataSpace_db_backup)
  • DataSpace_ollama_data: Ollama AI model data
  • DataSpace_caddy_data: Caddy web server data
  • Image: postgres:15
  • Container: DataSpace_database
  • Purpose: PostgreSQL database for application data
  • Image: prodrigestivill/postgres-backup-local
  • Container: DataSpace_pgbackups
  • Purpose: Automated database backups
  • Image: tecnativa/docker-socket-proxy
  • Container: DataSpace_docker_socket_proxy
  • Purpose: Secure Docker API access for the application
  • Image: ghcr.io/dataspaceswiss/api:${API_VERSION:-latest}
  • Container: DataSpace_api
  • Purpose: Main application API
  • Image: ghcr.io/dataspaceswiss/ollama:${OLLAMA_VERSION:-latest}
  • Container: DataSpace_ollama
  • Purpose: AI model server
  • Image: ghcr.io/dataspaceswiss/frontend:${FRONTEND_VERSION:-latest}
  • Container: DataSpace_frontend
  • Purpose: Web user interface
  • Image: caddy:latest
  • Container: DataSpace_caddy
  • Purpose: Reverse proxy and SSL termination
  • Ports: 80, 443 (exposed to host)