https://github.com/vicnasdev/drp
Drop text or files instantly. No account — just a key. Share the link.
https://github.com/vicnasdev/drp
clipboard cloudinary django file-sharing open-source pastebin privacy python railway self-hosted
Last synced: 4 months ago
JSON representation
Drop text or files instantly. No account — just a key. Share the link.
- Host: GitHub
- URL: https://github.com/vicnasdev/drp
- Owner: vicnasdev
- License: other
- Created: 2026-02-18T15:39:03.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-02-22T18:44:37.000Z (4 months ago)
- Last Synced: 2026-02-22T19:43:05.684Z (4 months ago)
- Topics: clipboard, cloudinary, django, file-sharing, open-source, pastebin, privacy, python, railway, self-hosted
- Language: Python
- Homepage: https://drp.vicnas.me
- Size: 880 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# drp 
Drop files or paste text, get a link instantly.
**[Live →](https://drp.vicnas.me)**
```bash
pipx install drp-cli
drp setup && drp up "hello world"
```
## Deploy
> ⚠️ Self-hosting for personal or internal use only — see [LICENSE](LICENSE).
[](https://railway.com?referralCode=ZIdvo-)
1. Fork → Railway → connect repo → add PostgreSQL
2. Set env vars (see below)
3. Start command:
```
python manage.py collectstatic --noinput && python manage.py migrate && gunicorn project.wsgi --bind 0.0.0.0:$PORT --workers 17 --worker-class gthread --threads 2
```
4. Create superuser via Railway shell: `python manage.py createsuperuser`
## Environment variables
| Variable | Required | Description |
|---|---|---|
| `SECRET_KEY` | ✓ | Django secret key |
| `DOMAIN` | ✓ | e.g. `hello.me` |
| `DB_URL` | ✓ | PostgreSQL connection string (Railway injects this) |
| `B2_KEY_ID` | ✓ | Backblaze B2 application key ID |
| `B2_APP_KEY` | ✓ | Backblaze B2 application key secret |
| `B2_BUCKET_NAME` | ✓ | e.g. `drp-files` |
| `B2_ENDPOINT_URL` | ✓ | e.g. `https://s3.us-east-005.backblazeb2.com` |
| `ADMIN_EMAIL` | — | Shown on error pages |
| `RESEND_API_KEY` | — | Transactional email via Resend |
| `DEFAULT_FROM_EMAIL` | — | Defaults to `noreply@{DOMAIN}` |
| `LEMONSQUEEZY_API_KEY` | — | Billing via Lemon Squeezy |
| `LEMONSQUEEZY_SIGNING_SECRET` | — | Webhook signature verification |
| `LEMONSQUEEZY_STORE_ID` | — | Lemon Squeezy store ID |
| `LEMONSQUEEZY_STARTER_VARIANT_ID` | — | Starter plan variant ID |
| `LEMONSQUEEZY_PRO_VARIANT_ID` | — | Pro plan variant ID |
| `ADSENSE_CLIENT` | — | e.g. `ca-pub-xxxxxxxxxxxxxxxx` — enables AdSense |
| `ADSENSE_SLOT` | — | AdSense slot ID |
| `DEBUG` | — | `True` only for local dev, never in production |
## Run locally
```bash
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
```
Set env vars in your shell or a `.env` file:
```bash
SECRET_KEY=any-random-string
DEBUG=True
# B2 vars required for file uploads/downloads
B2_KEY_ID=...
B2_APP_KEY=...
B2_BUCKET_NAME=drp-files
B2_ENDPOINT_URL=https://s3.us-east-005.backblazeb2.com
```
## Plans
| | Free | Starter ($3/mo) | Pro ($8/mo) |
|---|---|---|---|
| Max file | 200 MB | 1 GB | 5 GB |
| Storage | — | 5 GB | 20 GB |
| Locked drops | ✗ | ✓ | ✓ |
| Renewable | ✗ | ✓ | ✓ |
## License
Server: source-available, personal/internal use only.
See [LICENSE](LICENSE).
CLI (`cli/`): MIT.