Install PlikShare with Caddy.
The simplest production setup. Caddy handles HTTPS automatically: it requests certificates on first run, renews them on its own, and redirects HTTP to HTTPS without any extra configuration.
sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/damian-krychowski/plikshare/refs/heads/main/deployment/plikshare-install-caddy.sh)"Prefer to read before you run? Inspect the script on GitHub first.
Before you run it
Make sure your domain points at your server's IP address. Add an A record in your DNS configuration:
- Record type: A
- Host: your domain or subdomain (e.g. plikshare.yourdomain.com)
- Points to: your server's IP address
Caddy uses this DNS record to obtain a Let's Encrypt certificate on first boot via the HTTP-01 challenge. No two-phase setup, no Certbot.
What the script does
- Installs prerequisites - Docker, plus the Uncomplicated Firewall (UFW) opening 22, 80 and 443.
- Collects setup details - domain, admin email, initial admin password, encryption passwords and storage volumes.
- Installs PlikShare - generates a Docker Compose file with two services (PlikShare and Caddy) and a three-line Caddyfile that reverse-proxies traffic to PlikShare.
- Starts the stack - Caddy requests a certificate from Let's Encrypt automatically on first boot and starts serving HTTPS. No Certbot, no manual cert swap.
- Sets up cron jobs - optional nightly PlikShare updates. No certificate renewal cron is needed; Caddy renews on its own.
When it finishes, PlikShare is reachable over HTTPS. HTTP requests redirect automatically. Caddy handles HTTP/2 and HTTP/3 out of the box.
See the installation in action
Rather not run it yourself?
If you'd like a hand getting PlikShare running, or you want it fully managed by someone else, let's have a quick chat.
- Initial setup on your server - Docker, SSL, reverse proxy
- Storage (S3 / R2 / B2 / Azure / GCS) and email provider
- Ongoing updates, backups and migrations