// install & deploy / caddy

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.

one-line install
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

  1. Installs prerequisites - Docker, plus the Uncomplicated Firewall (UFW) opening 22, 80 and 443.
  2. Collects setup details - domain, admin email, initial admin password, encryption passwords and storage volumes.
  3. Installs PlikShare - generates a Docker Compose file with two services (PlikShare and Caddy) and a three-line Caddyfile that reverse-proxies traffic to PlikShare.
  4. 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.
  5. 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

Want to adjust the configuration?

Every environment variable, volume layout and the update procedure are documented on the manual configuration page.

Manual configuration →
// talk to a human

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