c00ca055f2
New deployments/copyparty/: copyparty (copyparty/ac) behind Caddy/LE for the web UI/WebDAV, plus its own SFTP (password auth) and FTPS listeners published directly. Ships update.sh, which drives container updates off copyparty's security-advisories API (api.copyparty.eu/advisories) -- policies latest|security|off. - Real client IP end-to-end: Caddy XFF/X-Real-IP + copyparty xff-src: lan. - SFTP host key + self-signed FTPS cert generated/persisted in /cfg; admin password generated on first deploy; conf auto-included via the image's % /cfg. - Firewall opens 80/443 + SFTP/FTPS + passive range (colon form for ports.d). - Wired into automations.sh, README, .gitignore; cloud-init for fresh VMs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
1.3 KiB
Caddyfile
43 lines
1.3 KiB
Caddyfile
# Caddyfile for the copyparty stack.
|
|
#
|
|
# Auto-issues a Let's Encrypt cert for $COPYPARTY_DOMAIN and reverse-proxies the
|
|
# web UI / WebDAV to copyparty on :3923. SFTP and FTPS do NOT pass through here
|
|
# -- they are published straight from the copyparty container.
|
|
{
|
|
email {$ACME_EMAIL}
|
|
}
|
|
|
|
{$COPYPARTY_DOMAIN} {
|
|
encode zstd gzip
|
|
|
|
reverse_proxy copyparty:3923 {
|
|
# Real client IP: Caddy already appends the genuine remote address to
|
|
# X-Forwarded-For (it is the internet edge); copyparty trusts it via
|
|
# `xff-src` in copyparty.conf. X-Real-IP is set too for good measure.
|
|
header_up X-Real-IP {http.request.remote.host}
|
|
|
|
# Stream uploads/downloads (no buffering) and allow long-lived large
|
|
# transfers -- copyparty resumable uploads can run for a long time.
|
|
# Caddy imposes no request-body size limit by default, so big uploads
|
|
# stream straight through.
|
|
flush_interval -1
|
|
transport http {
|
|
read_timeout 1h
|
|
write_timeout 1h
|
|
}
|
|
}
|
|
|
|
header {
|
|
Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
|
X-Content-Type-Options "nosniff"
|
|
Referrer-Policy "strict-origin-when-cross-origin"
|
|
-Server
|
|
}
|
|
|
|
log {
|
|
output stdout
|
|
format console
|
|
}
|
|
}
|