Deploy static sites
to Cubbit S3
A Go CLI to publish static sites on Cubbit with optional AES-256-GCM client-side encryption. Zero backend. Zero server. Zero dependencies.
$ cubbit-pages setup
$ cubbit-pages deploy ./my-site --encrypt
Features
One-command deploy
Point to a folder, specify a bucket. Cubbit Pages uploads everything with the correct MIME types and public ACL.
AES-256-GCM encryption
Every file encrypted client-side. Auto-generated login page. In-browser decryption via Web Crypto API. Password stays in localStorage.
Parallel uploads
Configurable concurrency. Per-file ACL or bucket policy. Dry-run mode to verify before deploying.
Cross-platform
Standalone Go binary. Linux, macOS, Windows. AMD64 and ARM64. Zero runtime dependencies.
Ready-made snippets
Auto-generates bucket policy, CORS, IAM policy and lifecycle commands with a single command.
One-time setup
Run cubbit-pages setup once to save credentials to ~/.cubbit/pages/config.yaml. No flags needed on every deploy.
Open source
Code on GitHub. CI/CD with GitHub Actions. Reusable action for your own workflows. Companion project to Cubbit Seal.
GitHub Action
Cubbit Pages ships as a reusable GitHub Action you can drop into any workflow. Deploy your static site to Cubbit S3 in a single step — no setup, no install, no scripts.
- uses: marcodellemarche/cubbit-pages@main
with:
source-dir: ./dist
bucket: my-bucket
access-key: ${{ secrets.CUBBIT_ACCESS_KEY }}
secret-key: ${{ secrets.CUBBIT_SECRET_KEY }}
Supports all CLI flags: encrypt, password,
public-bucket, prefix, concurrency,
and version pinning. See the
README for full reference.
Installation
Automatic script
curl -sSL \
https://github.com/marcodellemarche/cubbit-pages/releases/latest/download/install.sh \
| bash
Build from source
git clone https://github.com/marcodellemarche/cubbit-pages.git
cd cubbit-pages
make build
Download binaries
Download the precompiled binary for your platform.
Quick start
Save your credentials
One-time interactive setup. Creates the bucket if it doesn't exist. Saves to ~/.cubbit/pages/config.yaml.
cubbit-pages setup
Configure your bucket
cubbit-pages snippets --bucket my-bucket
Deploy in the clear
cubbit-pages deploy ./my-site
Or deploy encrypted
cubbit-pages deploy ./my-site \
--encrypt --password "my-secret-password"