Optional S3 Storage¶
Version: Snotic Self-Hosted 0.1.30~rc1 | Status: Early Access
S3 is optional. Local encrypted backup and restore do not require AWS. Install AWS CLI from the server's approved package source before enabling S3.
Credential modes¶
- Stored static credentials
-
Backward-compatible Self-Hosted mode. Snotic encrypts the configured access key and secret key using
/etc/hipanel/secrets.key. Use a dedicated, least-privilege IAM identity and rotate it through the Storage page. - EC2 instance role
-
Uses the standard AWS CLI credential provider chain. Snotic stores no access key, secret key, session token, or metadata-service credential. Enter only the approved bucket and Region in the browser.
Prefix compatibility¶
The application always adds a case-sensitive HiPanel/ root. Configuration
stores only the suffix.
For example, configured suffix application produces the effective namespace:
HiPanel/application/
IAM and lifecycle policies must target the effective namespace. Do not put
HiPanel/application into s3_prefix, because that would duplicate the root.
The rc1 browser UI displays the configured suffix but does not edit it. To use a
suffix, set s3_prefix in /etc/hipanel/config.json before saving storage
settings, then restart hipanel.service. Leave it empty to use the
HiPanel/ root directly.
sudo systemctl restart hipanel.service
curl --fail --silent --show-error http://127.0.0.1:8080/readyz
The object families are:
| Purpose | Effective key pattern |
|---|---|
| Connection probe | HiPanel/<suffix>/probe/probe-<unique-id> |
| Site registry | HiPanel/<suffix>/registry/sites.json |
| Site backups | HiPanel/<suffix>/<domain>/<backup-name> |
| Restore lookup | Lists HiPanel/<suffix>/<domain>/ and downloads the selected object |
| Retention pruning | Lists the same domain prefix and deletes backups older than the configured count |
The connection probe performs bounded list, put, get, content comparison, and delete operations. Its temporary object is removed when the probe completes.
Configure in the browser¶
Danger
On an application with no registered sites and no prior S3 restore marker, Save Storage runs the connection probe and automatically queues an S3 bootstrap after that probe succeeds. The bootstrap can restore the remote registry, site files, databases, backups, and certificates. Before saving, confirm the bucket and effective prefix belong to this installation and keep the host isolated from user traffic until recovery is verified.
- Open Storage.
- Select the credential mode.
- Enter the bucket and Region. Confirm the displayed S3 configuration shows the intended prefix.
- For static mode, enter the dedicated access and secret keys. Leaving an existing credential field empty preserves its stored value.
- Select Save Storage. If an automatic bootstrap is queued, monitor it to a terminal success or failure and verify restored state before continuing.
- Select Test Connection and require every list/put/get/delete check to pass when no bootstrap is running.
Grant only the required bucket-level listing and object get/put/delete access under the effective prefix. Do not grant account-wide S3 administration.
Danger
Queue S3 bootstrap restore after save forces that destructive recovery even when a restore marker or non-empty site store would normally prevent it. It is not a connectivity test. Use it only under an approved recovery plan with a separately confirmed destination.
For an intentional empty-host recovery after configuration is reviewed:
sudo /opt/hipanel/bin/hipanel recovery bootstrap -config /etc/hipanel/config.json -confirm restore-from-s3
The command refuses an already-restored or non-empty local state unless
-force is also supplied. Treat -force as a separate destructive approval.