`copyparty` operates as a monolithic, multi-protocol network service, centered around its **Core Server & Orchestration** component which manages the application's lifecycle and coordinates all other services. Incoming client requests are handled by the **Network Protocol Handlers**, which support various protocols like HTTP, FTP, and SMB, or by the specialized **Web Interface & API** for web-based interactions and SPA serving. Both protocol handlers and the web interface rely on the **Authentication & Access Control** component to validate user credentials and enforce permissions, which in turn influences the **File System & Media Management** component to provide authorized access to files, generate media thumbnails, and stream archives on demand. This architecture ensures a cohesive flow from network reception to secure data delivery.
Components
Core Server & Orchestration
The central control plane responsible for the application's lifecycle, service orchestration, and inter-process communication. It initializes and manages other core components.
Network Protocol Handlers
Manages all network communication, implementing various protocols (HTTP, FTP, SMB, TFTP) and discovery services (mDNS, SSDP) to serve content and respond to client requests.
Authentication & Access Control
Handles user authentication, authorization, rate limiting, and manages the Virtual File System (VFS) to enforce access permissions and content visibility.
Web Interface & API
Dedicated to serving the Single-Page Application (SPA) assets, processing web-based client requests, and exposing API endpoints for functionalities like file uploads (`up2k`) and user-to-index mapping.
File System & Media Management
Provides core utilities for file system interaction, media metadata handling, and on-the-fly operations such as streaming archive creation (TAR, ZIP) and media thumbnail generation.