$ show depado/goploader
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.
The LLM identified 2 files worth highlighting for reuse:
Leverages Go's embed feature to bundle static assets (CSS, JS, images) directly into the binary, providing an http.FS for serving files. Demonstrates a modern, isolated pattern for deploying self-contained web applications with zero external asset dependencies. Dependencies limited to standard library, making it trivially reusable in any Go web project.
Defines and initializes Prometheus metrics (upload counters, etc.) in a self-contained package. Shows the pattern of declaring metrics as package-level variables with an Init function for setup. Minimal coupling (only depends on Prometheus client library) allows easy extraction into other Go services for standardized metrics collection.