This repository is a Cockpit web UI plugin for managing file sharing services on Linux servers, developed by 45Drives. It provides a single-page application with separate tabs for Samba (CIFS), NFS, iSCSI (using SCST driver, both single-server and clustered with Pacemaker), and S3 object storage (supporting MinIO, RustFS, Ceph RGW, and Garage backends). The architecture is a Vue 3 + TypeScript frontend that communicates with the server by executing shell commands, parsing configuration files (e.g., /etc/exports, smb.conf), and interacting with backend-specific CLIs (mc, radosgw-admin, garage) and S3-compatible APIs. Key entry points include App.vue for top-level routing, and per-tab main components (SambaTabMain, NFSTabMain, ISCSITabMain, S3ManagementMain). Data flows are user-driven: configuration changes are applied via system commands and written to configuration files, with systemd service management for start/stop/status. The codebase demonstrates reasonable engineering practices with error handling using neverthrow, but has some legacy code in file-sharing-old/ and significant coupling in the iSCSI cluster driver. It is actively maintained with frequent releases and many open issues.
This is a Flutter-based cross-platform peer-to-peer file sharing application designed for local network transfers without server reliance. The app enables sharing of files, text, clipboard content, and folders between Android, iOS, Windows, macOS, Linux, and Web devices. Architecture follows a modular pattern with GetX for state management, featuring separate controllers (chat, device, settings, download), services (HTTP-based messaging via shelf, file serving, UDP discovery, clipboard), and platform-specific adapters. Key workflows include device discovery via multicast, HTTP-based message/file transfer, and adaptive UI rendering. The application demonstrates solid engineering practices with platform abstraction, reusable UI components, and thoughtful handling of cross-platform file operations, though exhibits some coupling between controllers and platform-specific code paths.
Pingvin Share is a self-hosted file sharing platform designed as an alternative to services like WeTransfer. It provides a full-stack application with a NestJS backend and a Next.js frontend, featuring user authentication (local, OAuth2, TOTP, LDAP), file uploads with chunked transfers, password-protected and expiring shares, reverse shares for receiving files, an administrative panel for managing users and system configuration, and support for multiple storage backends (local filesystem or S3). The application includes virus scanning via ClamAV, email notifications, and extensive internationalization. The backend employs a modular architecture with distinct modules for authentication, user management, share handling, file storage, configuration, and scheduled jobs. Key reusable patterns include an abstracted file storage service (supporting local and S3 providers), a strategy-based OAuth provider interface, and a dynamic configuration service that loads settings from the database with optional YAML file overrides and runtime update notifications. The frontend presents a polished user interface with custom hooks for configuration and user state, reusable input components for timespans and file sizes, and a sophisticated chunked file upload UI with progress tracking and error recovery. Although the original repository has been archived (as of June 2025) with a recommendation to use a maintained fork, the codebase demonstrates solid engineering practices, clear separation of concerns, and several reusable components that could be adapted for similar projects. The Dockerized deployment and comprehensive feature set make it a viable self-hosted solution for file sharing needs.
goploader is a self-hosted file sharing system consisting of a Go-based command-line client and web server. The server provides both a web interface and REST API for file uploads/downloads, featuring optional client-side encryption (where encryption keys are never stored server-side), automatic expiration-based cleanup, and metadata storage via BoltDB. The client supports terminal-based uploads with features like progress bars, screenshot capture, and clipboard integration. Architecture follows a layered design with separation between HTTP handlers (views), data models, and utility components. While the core functionality is well-implemented, the codebase shows signs of technical debt including outdated frontend dependencies (Font Awesome 4.7.0), inconsistent Go version references, and a cryptographic concern (static IV in AES encryption mode). The maintainer explicitly notes the technology is outdated but maintains the repository in a working state.
MicroBin is a self-hosted pastebin and URL shortener implemented as a monolithic Rust web application using actix-web. It stores pastes (text, files, or URL redirects) in either SQLite (default) or a JSON file, with all state held in memory behind a single global Mutex. The application supports server-side and client-side AES encryption, expiration and burn-after-read limits, QR code generation, server-side syntax highlighting via syntect, multiple file attachments, and animal-name or hash-based opaque identifiers. It is configured entirely through CLI arguments or environment variables, and ships as a single static binary with templates and assets embedded via rust-embed and askama. The architecture is straightforward: actix-web route handlers in src/endpoints process HTTP requests, while src/util contains the database backends, encryption helpers, ID encoders, telemetry, and HTTP client construction. The system is designed for single-instance self-hosting with a small memory footprint. External dependencies include actix-web, rusqlite, askama, syntect, magic-crypt, and reqwest. A background telemetry thread posts anonymized configuration to api.microbin.eu every 24 hours unless disabled, and the admin panel checks for updates against the same API. Maintenance is active with recent commits, multi-platform release CI, and clippy analysis. Technical drift is medium: clap 3, env_logger 0.9, and askama 0.10 lag behind current major versions, and the CI pipeline uses deprecated actions-rs tooling and ::set-output syntax. The codebase has notable duplication (six near-identical auth handlers, repeated SQL schema definitions across every db_sqlite function) and a latent bug in the JSON database path where remove_expired calls delete(None, ...) which panics in JSON mode; the JSON path also hardcodes pasta_data/database.json instead of honoring the data_dir argument. The encryption scheme pads passwords with '#' instead of using a proper KDF, a design weakness for a security-focused feature.
WebDrop is a peer-to-peer file and message sharing web application built with Vue.js that enables direct device-to-device transfers without installation. It uses WebRTC via the P2PT library for peer discovery and communication, simple-peer-files for file transfers, and Vuex for state management. The application features automatic LAN device discovery, internet sharing via room codes, resume capability for interrupted transfers, and a responsive UI with multiple views for managing files, messages, and connected devices. The architecture follows Vue.js best practices with clear separation between components, state management, and routing.
SparkleShare is a cross-platform desktop file synchronization application that uses Git as its backend, similar to a self-hosted Dropbox. It provides a system-tray-based GUI for Linux (GTK+), macOS (Cocoa), and Windows (WPF), allowing users to sync folders with remote Git repositories via SSH. The application supports encryption (AES-256-CBC), Git LFS for large files, and real-time sync signals via a centralized announcement service. The core sync logic is implemented in the shared 'Sparkles' library, with platform-specific controllers and UIs. The codebase is written in C# using Mono/Xamarin and targets .NET 4.5. The project has been in maintenance mode since its last release in November 2020, with the author seeking sponsors. The architecture is a monolith with a shared core and platform-specific frontends, but the technology stack is aging (GTK+2, WebKit, jQuery 1.6.1) and the build system is fragmented (meson + legacy .csproj). There is minimal test coverage and several abandoned features (e.g., listener layer). Despite these issues, the core sync engine and SSH abstraction demonstrate reasonable engineering for its era.
This repository serves as the documentation and configuration hub for a public OneDrive file-sharing service. It contains no application code; the only source files are a comprehensive README.md explaining how to access the files via WebDAV, Rclone, and web browsing, and a GitHub Actions workflow that copies the README to multiple cloud storage remotes (likely Backblaze B2 or similar) for redundancy. The workflow uses rclone to sync the README to a set of configured remotes on every push to main. While the repository is popular (1915 stars) and actively maintained, it is essentially a static documentation repo with a simple CI/CD pipelineβno reusable software components, no tests, and no application logic. It is best understood as a metadata repository for a larger file hosting service.