---
title: "Deploy Client File Handoff with PairDrop"
description: "Password-gated browser file handoff with WebSocket fallback disabled."
category: "Other"
url: https://railway.com/deploy/client-file-handoff-with-pairdrop
---

# Deploy Client File Handoff with PairDrop

Password-gated browser file handoff with WebSocket fallback disabled.

**[Deploy Client File Handoff with PairDrop on Railway](https://railway.com/template/client-file-handoff-with-pairdrop)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/client-file-handoff-with-pairdrop/manifest.json

- **Creator:** dankeewithtwoes's Projects
- **Category:** Other

## Template content

### Gateway

- **Image:** caddy@sha256:d8542f48d34a9cf4e4c11a478865229840e87e4c96ea3f439101f31a5d35f75f
- **Start command:** `/bin/sh -c 'set -eu; hash=$(caddy hash-password --plaintext "$GATEWAY_PASSWORD"); printf "{\n admin off\n auto_https off\n}\n:8080 {\n header X-Robots-Tag noindex\n basic_auth {\n operator %s\n }\n reverse_proxy %s {\n header_up X-Forwarded-Proto https\n }\n}\n" "$hash" "$UPSTREAM" > /tmp/Caddyfile; exec caddy run --config /tmp/Caddyfile --adapter caddyfile'`
- **Public domain:** Yes

### App

- **Image:** linuxserver/pairdrop@sha256:2e673eebd640beea33f131f4426b90548354e620ae593336a73be9374bb70bc2

## Documentation

# Deploy and Host Client File Handoff with PairDrop on Railway

Password-gated browser file handoff with WebSocket fallback disabled.

## About Hosting Client File Handoff with PairDrop

Small teams sending files directly between browsers during client calls.

Give the intended recipient the operator gateway credentials, open the HTTPS page on both devices, and use a pairing code or room. Confirm the recipient on screen before sending. Keep both browser tabs open until completion.

### Included services and storage

| Service | Persistent storage | Public access |
| --- | --- | --- |
| App | None; container state is disposable | Private network only |
| Gateway | None; container state is disposable | HTTPS domain |

### First deployment

1. Review required inputs in the deploy form and supply your own administrator email where requested.
2. Deploy the services and wait for the application and any database migrations to finish.
3. Open the generated HTTPS domain and follow the workflow above.
4. For the first browser prompt use username `operator` and the generated `Gateway.GATEWAY_PASSWORD` from Railway variables. App-specific accounts, where present, remain separate. The App service has no public domain.

## Why Deploy Client File Handoff with PairDrop on Railway

The definition supplies an HTTPS endpoint, generated credentials where supported and explicit storage paths. PostgreSQL, when present, stays private. Public upstream image manifests are locked to immutable digests so an upstream tag change does not silently replace a running version.

## Common Use Cases

- Send a client a working file during a call.
- Move screenshots between your devices.
- Share short-lived review material.

## Dependencies for Client File Handoff with PairDrop

- [Upstream application and its documentation](https://github.com/schlagmichdoch/PairDrop). The upstream authors own the application and its license. This recipe does not claim application authorship or official endorsement.
- Caddy gateway using generated Basic authentication and WebSocket-capable reverse proxying.
- A Railway plan with resources sufficient for these services. Hosting, storage and outbound traffic are billed by Railway; no software subscription, bank connection, SMTP account or provider credit is included.

### Operational limits and backups

Files are not stored as a server-side download archive. Peer connections can fail behind restrictive NAT; no TURN server is included. WebSocket file relay fallback is disabled, so the template does not silently turn Railway into a file-transfer relay. Gateway credentials are shared workspace access, not per-client authorization.

Run one replica for volume-backed applications. Schedule volume backups and export important application data; a persistent volume is not a backup. Keep generated secrets with the backups and review upstream migration notes before changing the pinned image. Credentials cannot all be rotated by changing first-run environment variables after accounts already exist.

### Validation status

Prepared on 2026-10-18 from upstream installation documentation and public image manifests. Railway schema, variable references and publication metadata are checked before publication. Application runtime boot checks were not performed. This is an independently authored deployment recipe for existing software, not a claim of novel software, audited security or Railway partner verification.


## Deploy this recipe

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/new/template/client-file-handoff-with-pairdrop?utm_source=railway-marketplace&amp;utm_medium=listing&amp;utm_campaign=toolkit-discovery&amp;utm_content=client-file-handoff)

Review the required inputs and hosting resource costs before deploying.

### Related deployment recipes

- [Twenty CRM with Worker &amp; Shared S3](https://railway.com/template/twenty-crm-with-worker-and-shared-s3) — CRM with Postgres, Redis, background worker and shared S3 file storage.
- [Ubuntu Browser Terminal Starter](https://railway.com/template/ubuntu-browser-terminal-starter) — Password-protected Ubuntu web terminal with a persistent workspace volume.
- [Ubuntu SSH and AI CLI Starter](https://railway.com/template/ubuntu-ssh-and-ai-cli-starter) — SSH development container with generated credentials and durable workspace.

These are separate deployments; no preconfigured integration between the applications is implied.

Disclosure: this template is maintained independently. Its maintainer may earn Railway usage kickbacks when other people deploy it. Railway bills hosting separately; no paid software subscription or provider credits are included.



## Similar templates

- [Rocky Linux](https://railway.com/deploy/rocky-linux) — Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀
- [Foundry Virtual Tabletop](https://railway.com/deploy/X5tR6G) — A Self-Hosted & Modern Roleplaying Platform
- [Letta Code Remote](https://railway.com/deploy/letta-code-remote) — Run a Letta Code agent 24/7. No inbound ports, just deploy.

Open this page in a browser: https://railway.com/deploy/client-file-handoff-with-pairdrop
