WeTransfer-like file sharing service.
| Resource | Value |
|---|---|
| Server | hydratransfer.experiencenet.com (195.201.136.205) |
| Hetzner | cx23, nbg1 |
| Config | /var/lib/hydratransfer/config.yaml |
| Data directory | /var/lib/hydratransfer/ |
| Service | systemctl status hydratransfer |
| Logs | journalctl -u hydratransfer -f |
HydraTransfer provides simple file sharing without user authentication. Security is achieved through unguessable 16-hex-character transfer IDs. Files are uploaded in 10 MB chunks and automatically expire after 7 days.
/var/lib/hydratransfer/ssh root@195.201.136.205
ls -la /var/lib/hydratransfer/
The service automatically removes expired transfers. Verify cleanup is working:
# Check for old transfers that should have been cleaned up
find /var/lib/hydratransfer/ -maxdepth 1 -mtime +7 -type d
curl -s https://hydratransfer.experiencenet.com/api/v1/health
ssh root@hydratransfer.experiencenet.com
# or
ssh root@195.201.136.205
When a transfer completes, hydratransfer pushes the file to hydramirror (best-effort, non-blocking). The mirror path is transfers/{transfer_id}/{filename}.
Configured in config.yaml:
mirror:
url: "https://mirror-a.experiencenet.com"
token: "<admin token>"
# Check logs for mirror-push entries
journalctl -u hydratransfer --since '1 hour ago' --no-pager | grep mirror-push
# Check if a file exists on the mirror
curl -I https://mirror-a.experiencenet.com/api/v1/files/transfers/<id>/<filename>
Upload files from the command line using the built-in upload command:
hydratransfer upload --server https://hydratransfer.experiencenet.com --build-type experience --notes "description" /path/to/file.zip
Performs chunked upload (10 MB chunks) with progress display and SHA256 verification. Output includes the transfer ID and download URL.
ssh root@195.201.136.205systemctl status hydratransferjournalctl -u hydratransfer --since '10 min ago' --no-pagerdf -h /var/lib/hydratransfer/systemctl restart hydratransferLarge uploads can fill the disk. Check for stale incomplete uploads:
du -sh /var/lib/hydratransfer/*
Chunked uploads may leave incomplete transfers. The expiry cleanup handles these, but for immediate cleanup:
# List transfers older than 7 days
find /var/lib/hydratransfer/ -maxdepth 1 -mtime +7 -type d -exec rm -rf {} +