MCPSERV.CLUB
Drop

Drop

Self-Hosted

Open‑source DRM‑free game distribution platform

Active(89)
524stars
1views
Updated 1 day ago
Drop screenshot

Overview

Discover what makes Drop powerful

Drop is a self‑hosted, DRM‑free game distribution platform that blends the simplicity of a static site with the power of a full‑fledged application. From a technical standpoint, it functions as a **content delivery system** for binaries and associated metadata, while also providing an administrative API that exposes CRUD operations on games, collections, users, and news. The core of the application is a **Node.js/TypeScript** backend built on **NestJS**, which offers a modular architecture and dependency injection out of the box. The frontend is a **React** SPA powered by **Vite**, consuming the backend via a REST/GraphQL hybrid API. Data persistence relies on **PostgreSQL** for structured data (users, games, collections) and a **Redis** cache layer to accelerate read‑heavy operations such as catalog browsing.

Backend

Frontend

Database

Cache & Queue

Overview

Drop is a self‑hosted, DRM‑free game distribution platform that blends the simplicity of a static site with the power of a full‑fledged application. From a technical standpoint, it functions as a content delivery system for binaries and associated metadata, while also providing an administrative API that exposes CRUD operations on games, collections, users, and news. The core of the application is a Node.js/TypeScript backend built on NestJS, which offers a modular architecture and dependency injection out of the box. The frontend is a React SPA powered by Vite, consuming the backend via a REST/GraphQL hybrid API. Data persistence relies on PostgreSQL for structured data (users, games, collections) and a Redis cache layer to accelerate read‑heavy operations such as catalog browsing.

Architecture

  • Backend: NestJS (TypeScript) – modular micro‑service style, with built‑in support for JWT, OAuth2, and SSO providers. Uses TypeORM to map entities to PostgreSQL, and BullMQ for background jobs (e.g., metadata fetching from IGDB).
  • Frontend: React + Vite – a modern, tree‑shakable bundle that leverages server‑side rendering for SEO and fast first paint.
  • Database: PostgreSQL 15+ – ACID‑compliant storage for relational data; schemas are auto‑generated via TypeORM migrations.
  • Cache & Queue: Redis 7 – used for session storage, rate limiting, and job queues.
  • Containerization: Dockerfiles are provided for each service; a docker‑compose.yml bundles the stack into a single orchestrated environment, but Kubernetes manifests are also available for production deployments.

Core Capabilities

  • Metadata API: Exposes CRUD endpoints (/api/games, /api/collections) that accept rich Markdown, images, and icon uploads.
  • External Importers: Pluggable adapters for IGDB, GiantBomb, and PCGamingWiki that fetch metadata asynchronously via background jobs.
  • Store & Search: Full‑text search powered by PostgreSQL’s tsvector and an optional ElasticSearch integration for advanced faceting.
  • User Management: Supports local accounts, SSO (OAuth2/OIDC), and SCIM provisioning in the pipeline.
  • News & Notifications: REST endpoints for creating articles that surface on the client; webhooks can be configured to notify external services.
  • File Distribution: Uses a CDN‑compatible storage layer (S3, MinIO) behind signed URLs to protect downloads.

Deployment & Infrastructure

Drop is intentionally cloud‑agnostic: the Docker images run on any platform that supports Docker, and the database can be a managed PostgreSQL service or an in‑cluster Postgres. For scalability, each component is stateless except for Redis and the database, making horizontal scaling straightforward. The Docker‑Compose setup demonstrates a single‑node deployment; for high availability, you can spin up multiple backend instances behind an NGINX or Traefik reverse proxy, leveraging Redis Sentinel for failover. The application is fully self‑hosted and licensed under AGPL‑3.0, ensuring no vendor lock‑in.

Integration & Extensibility

Drop’s plugin system is built around NestJS modules: developers can drop in a new module that registers controllers, services, and providers. The API surface is documented with OpenAPI/Swagger, allowing external systems to consume or extend functionality via webhooks and REST clients. The frontend is a React library that can be embedded in other portals, exposing a customizable theme API (CSS variables) and a component library for quick UI integration.

Developer Experience

The project ships with comprehensive docs hosted on Docusaurus, covering installation, architecture, and contribution guidelines. The source code follows strict linting (ESLint + Prettier) and CI checks, ensuring a clean codebase. Community support is active on Discord and the forum; contributions are welcomed via GitHub pull requests, with a clear code of conduct. The AGPL license guarantees that any derivative works remain open, encouraging community-driven extensions.

Use Cases

  • Private Game Server: Small indie studios or hobbyist groups can host a private storefront for their releases without licensing fees.
  • Enterprise Software Distribution: Companies that need to distribute internal tools or games can use Drop’s SSO and SCIM support for seamless employee onboarding.
  • Educational Platforms: Universities can host game‑based learning modules, leveraging Drop’s metadata editor to annotate assets with markdown notes.
  • Event or Convention Booths: Organizers can quickly spin up a local Drop instance to showcase demos and downloadable content during events.

Advantages

  • Performance: Built with TypeScript/NestJS, Drop is lightweight and scales horizontally without heavy JVM or .NET runtimes.
  • Flexibility: The modular architecture allows swapping out storage backends, authentication providers, or even the UI framework without touching core logic.
  • Open Licensing: AGPL‑3.0 ensures that any improvements remain in the public domain, fostering a vibrant ecosystem of plugins and integrations.
  • Developer‑First: Rich API documentation, extensible modules, and a focus on developer ergonomics make it easier to integrate Drop into existing toolchains.

Drop is therefore an excellent choice for developers who need a fast, secure, and fully self‑hosted game distribution platform that can grow with their technical stack.

Open SourceReady to get started?

Join the community and start self-hosting Drop today