Skip to content
This is documentation for version 1.X.X, which may no longer be maintained. Go to the latest version (2.2).

Storage targets and CDN

1.1.0 is about where files live and how they travel; liman is Turkish for harbour. Manage it under AACP → Maintenance → Storage & CDN.

Defaults

Nothing switches on by itself. Storage targets, the nightly sweep and the CDN ship off; install 1.1.0 and touch nothing, and the site behaves as it did on 1.0.0.

Storage targets

  • Amazon S3, Cloudflare R2 and FTP/FTPS. Every S3-compatible service works through the same driver: MinIO, DigitalOcean Spaces, Backblaze B2.
  • No AWS SDK is installed. Requests are signed with SigV4 directly; about 90 MB of service definitions for three HTTP verbs would be felt on every install of a package operators upload over FTP.
  • The FTP target requires ext-ftp; the card says so up front when it is missing.

Save and test in one button

A target is not used until it has passed a live write probe against the configuration now stored: the probe writes a real file, reads it back and deletes it. A bucket policy that allows listing but denies writes, or a read-only FTP account, passes every lighter check.

Media offload

Uploads are written to public/uploads first and then copied to the selected target. The original stays on this server: thumbnails are generated from disk, the .htaccess hardening does not travel to a bucket, and the files backup keeps containing the media. If the remote is unreachable the site still serves images from its own disk.

Nightly sweep

Collects files whose upload-time push failed, and thumbnails. It works from a cursor: each run continues where the last stopped and wraps around. Turn it on when moving an existing site across for the first time. Off by default.

Off-site backups

The archive is uploaded after it is written and then read back from the destination to confirm it arrived. With keep the local copy off, the local archive is removed only after that confirmation. cp:backup:create returns a non-zero exit code when the off-site copy fails.

CDN for images

One setting covers both setups: the base URL replaces the /uploads part. For a pull zone use https://cdn.example.com/uploads; for a public bucket use https://pub-xxxx.r2.dev. The CDN is independent of offload.

Limits

  • The remote target is always a copy. Remote-primary storage is not in 1.x.
Last updated: 16.10.2026