Flick is a sleek and lightweight file sharing tool built with Go and Next.js. It's not here to replace WeTransfer or Dropbox but rather to offer a simple, modern, and hassle-free way to share files.
Use it right away on flick.d3l.tech. Our hosted server is free for anyone, no account or setup needed.
Or self-host it for your organization: private groups, team management, and full control over your data and infrastructure.
You send a file and Flick gives you a short code that is easy to remember or say out loud. The other person enters the code, from the website or the terminal, and gets the file. Files clean themselves up: they expire after a while or after a few downloads.
$ flick myfile.pdf
Uploading the file myfile.pdf... (2097152 bytes)
Uploading 100% |████████████████████████████████| (2.1/2.1 MB, 46 MB/s)
Code: ocean-tiger-42 [15m left]
Code copied to clipboard.
$ flick
Specify the code: ocean-tiger-42
Searching the code ocean-tiger-42...
Downloading 100% |████████████████████████████████| (2.1/2.1 MB, 51 MB/s)
✅ No accounts, no long links: just a short code, easy to say over the phone
✅ Self-destructing files: expire by time, by download count, or both
✅ Use it instantly on our free hosted server at flick.d3l.tech
✅ Self-host for your org: private groups, your own rules, your infrastructure
✅ Open-source: your files never leave your server
A "flick" is a quick, effortless movement of the finger. That's exactly how sharing a file should feel. 😄
Get Flick running in minutes.
All you need is Docker installed on your server.
git clone https://github.com/Flick-Corp/flick.git
cd flick
# Create your configuration
cp .env.example .env
# Start everything: database, migrations, API, web app
make up
Open http://localhost. 🎉
Important
Set a strong POSTGRES_PASSWORD in .env before starting for the first time.
Note
Everything goes through the bundled Caddy reverse proxy.
To serve Flick on your own domain with automatic HTTPS (Let's Encrypt) and HTTP/3,
just set it in .env:
FLICK_SITE_ADDRESS=flick.example.comNo certificate to generate or manage: Caddy takes care of it.
Tip
Already running your own reverse proxy? (Nginx Proxy Manager, Traefik, another
Caddy...) Let it keep handling TLS and tell Flick's bundled Caddy to serve plain
HTTP, otherwise the two fight over HTTPS and you get a redirect loop
(ERR_TOO_MANY_REDIRECTS):
# .env - keep the http:// scheme, no trailing slash
FLICK_SITE_ADDRESS=http://flick.example.comThen point your reverse proxy at the Flick host on port 80 (HTTP), and make sure
it forwards the X-Forwarded-Proto and X-Forwarded-Host headers so uploads keep
working.
To stop Flick, run make down. Your data is kept safe.
Use the dev stack when you want to hack on Flick: the API is rebuilt from source and the web app hot-reloads.
make dev # start the dev stack
make down-dev # stop and clean up
make help # see all available commands
Prefer the terminal? On Debian/Ubuntu, install flick straight from the APT repository:
curl -fsSL https://apt.d3l.tech/apt/flick.gpg | sudo tee /usr/share/keyrings/flick.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/flick.gpg] https://apt.d3l.tech/apt stable main" | sudo tee /etc/apt/sources.list.d/flick.list
sudo apt update && sudo apt install flickOn macOS, install via Homebrew:
brew install Flick-Corp/flick/flickOn other platforms (Windows, other Linux), grab the flick binary from
apt.d3l.tech/releases - the CLI keeps itself up to date afterwards.
# Send a file
flick holiday-photos.zip
# Send with custom rules: expires in 1 hour, max 3 downloads
flick holiday-photos.zip --exp 1h --mdc 3
# Receive a file (it will ask you for the code)
flick
# Set your defaults (server address, expiration...)
flick configureYou can also build the binaries yourself:
make build # requires Go 1.26+, outputs to build/bin/Flick combines effortless sharing with full control over your server.
- Human-friendly codes in the
word-word-numberformat, easy to type and remember - Share code copied automatically to your clipboard after upload
- Self-destructing files: expiration by time, by download count, or both
- Fast transfers with HTTP/3 (QUIC) and automatic HTTPS, served at the edge by Caddy
- Send: drag and drop a file, get your code
- Receive: enter a code, download the file
- Dashboard for admins with stats, users and server settings
- Localized interface with light and dark mode
- Configurable max file size, default and max expiration, download counts
- Rate limiting per user, per IP, and global hourly caps
- PostgreSQL persistence with automatic database migrations
Flick is built for easy self-hosting. Docker Compose gets you up in minutes with a database, API, web app, and a Caddy reverse proxy that handles automatic HTTPS.
Perfect for organizations that want private groups, custom limits, and full data sovereignty.
See the Quick Start section above to get started.
- Go with Cobra
- Caddy for automatic HTTPS and HTTP/3 at the edge
- Next.js with shadcn/ui and Tailwind CSS
- PostgreSQL with dbmate migrations
- Docker Compose for one-command deployment
Contributions are welcome! Feel free to open an issue or submit a pull request.
Made with ❤️ · © 2026 Flick. All rights reserved.
