SafeDrop Server is the relay service for SafeDrop encrypted file transfers. It registers clients, creates transfer tickets, stores encrypted parcels, and lets recipients retrieve their pending files.
The server runs well in Docker and is intended to be deployed behind your normal firewall, reverse proxy, or cloud ingress.
Create a docker-compose.yml file:
services:
safedrop-server:
image: stoxellosupport/safedrop-server:latest
container_name: safedrop-server
restart: unless-stopped
ports:
- "5133:8080"
environment:
ASPNETCORE_URLS: "http://+:8080"
SafeDrop__Edition: "Production"
SafeDrop__LicenseKey: "SDROP-9J7R-ME8G-LIVE"
volumes:
- safedrop-data:/app/App_Data
volumes:
safedrop-data:Start the server:
docker compose up -dThe server will be available at:
http://localhost:5133
Check that it is running:
curl http://localhost:5133/healthCheck license status:
curl http://localhost:5133/licenseProduction deployments require a SafeDrop license key. Set it with the SafeDrop__LicenseKey environment variable in Docker Compose.
This trial key can be used for initial setup:
SDROP-9J7R-ME8G-LIVE
Example:
environment:
SafeDrop__Edition: "Production"
SafeDrop__LicenseKey: "SDROP-9J7R-ME8G-LIVE"When you receive your permanent LicenseWeb key, replace the trial key and restart the container:
docker compose up -dSafeDrop validates server licenses through LicenseWeb at https://license.stoxello.com. The server also keeps the last valid license result during the LicenseWeb offline grace period.
You can keep the license key in a .env file instead of hard-coding it in docker-compose.yml.
Create .env:
SAFEDROP_IMAGE=stoxellosupport/safedrop-server:latest
SAFEDROP_PORT=5133
SAFEDROP_LICENSE_KEY=SDROP-9J7R-ME8G-LIVEThen use this compose file:
services:
safedrop-server:
image: ${SAFEDROP_IMAGE:-stoxellosupport/safedrop-server:latest}
container_name: safedrop-server
restart: unless-stopped
ports:
- "${SAFEDROP_PORT:-5133}:8080"
environment:
ASPNETCORE_URLS: "http://+:8080"
SafeDrop__Edition: "Production"
SafeDrop__LicenseKey: "${SAFEDROP_LICENSE_KEY}"
volumes:
- safedrop-data:/app/App_Data
volumes:
safedrop-data:Start or restart:
docker compose up -dThe compose examples mount a named Docker volume at:
/app/App_Data
This keeps server data, stored encrypted parcels, and the generated server machine identity across container upgrades.
Pull the latest image and recreate the container:
docker compose pull
docker compose up -dGET /healthreturns basic readiness information.GET /licensereturns the current license status.- Client registration and transfer endpoints require a valid production license.
Point SafeDrop desktop clients at the public host and port where this server is reachable. For a local test using the compose file above, use:
http://localhost:5133