diff --git a/templates/quickdrop/assets/logo.png b/templates/quickdrop/assets/logo.png new file mode 100644 index 000000000..320f0089d Binary files /dev/null and b/templates/quickdrop/assets/logo.png differ diff --git a/templates/quickdrop/assets/screenshot.png b/templates/quickdrop/assets/screenshot.png new file mode 100644 index 000000000..7c9764df4 Binary files /dev/null and b/templates/quickdrop/assets/screenshot.png differ diff --git a/templates/quickdrop/index.ts b/templates/quickdrop/index.ts new file mode 100644 index 000000000..3f6be5829 --- /dev/null +++ b/templates/quickdrop/index.ts @@ -0,0 +1,45 @@ +import { Output, Services } from "~templates-utils"; +import { Input } from "./meta"; + +export function generate(input: Input): Output { + const services: Services = []; + + services.push({ + type: "app", + data: { + serviceName: input.appServiceName, + source: { + type: "image", + image: input.appServiceImage, + }, + env: [`PUID=1000`, `PGID=1000`, `TZ=${input.timezone || "Etc/UTC"}`].join( + "\n" + ), + domains: [ + { + host: "$(EASYPANEL_DOMAIN)", + port: 8080, + }, + ], + mounts: [ + { + type: "volume", + name: "db", + mountPath: "/app/db", + }, + { + type: "volume", + name: "log", + mountPath: "/app/log", + }, + { + type: "volume", + name: "files", + mountPath: "/app/files", + }, + ], + }, + }); + + return { services }; +} diff --git a/templates/quickdrop/meta.yaml b/templates/quickdrop/meta.yaml new file mode 100644 index 000000000..3871cb151 --- /dev/null +++ b/templates/quickdrop/meta.yaml @@ -0,0 +1,71 @@ +name: QuickDrop +description: + QuickDrop is a self-hosted file sharing app for anonymous uploads with chunked + transfers, optional encryption at rest, per-file passwords, and share tokens + with expiry and download limits. Includes an admin console for storage + policies, cleanup schedules, and notifications. +instructions: >- + Open the app to upload files right away. Set an admin password from the + settings UI to protect the admin console, and optionally enable whole-app + password mode from there too. Uploaded files, the SQLite database, and logs + are stored on persistent volumes. +changeLog: + - date: 2026-08-17 + description: first release +links: + - label: GitHub + url: https://github.com/RoastSlav/quickdrop + - label: Documentation + url: https://github.com/RoastSlav/quickdrop#readme +contributors: + - name: Ahson Shaikh + url: https://github.com/Ahson-Shaikh +schema: + type: object + required: + - appServiceName + - appServiceImage + properties: + appServiceName: + type: string + title: App Service Name + default: quickdrop + appServiceImage: + type: string + title: App Service Image + default: roastslav/quickdrop:v1.5.3 + timezone: + type: string + title: Timezone + description: "Example: America/New_York" + default: Etc/UTC +benefits: + - title: Anonymous, Chunked Uploads + description: + Accepts large-file uploads via chunked transfers with no account required + from the uploader + - title: Flexible Sharing Controls + description: + Share tokens support expiry dates and download limits, with QR codes + generated for quick sharing + - title: Privacy by Design + description: + Optional encryption at rest, per-file passwords, and the ability to hide + files from the public list or disable it entirely +features: + - title: Admin Console + description: + Manage storage policies, cleanup schedules, and feature flags from a + single-page settings UI that applies changes without a restart + - title: Built-In Previews + description: + Preview images, text, PDF, JSON, and CSV files directly in the browser + with syntax highlighting for code + - title: Notifications and Logging + description: + Get email or Discord webhook notifications, with a unified history log of + uploads, downloads, and renewals +tags: + - File Sharing + - Productivity + - Self-Hosting