Deployment

Deploy your sukr site to any static hosting platform

sukr builds your site to public/. This directory contains self-contained static HTML, CSS, and assets — no server-side runtime needed. Upload it anywhere that serves static files. If you haven't built a site yet, start with the Getting Started guide.

Local Preview

Preview your site locally before deploying:

cd public
python3 -m http.server 8000

Open http://localhost:8000 in your browser.

GitHub Pages

  1. Push your repository to GitHub
  2. Build your site: sukr
  3. Deploy the public/ directory using one of:
    • GitHub Actions — add a workflow that runs sukr and deploys public/ to Pages
    • Manual — push the public/ contents to a gh-pages branch

Example workflow (.github/workflows/deploy.yml):

name: Deploy
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: cargo install --path .
      - run: sukr
      - uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./public

Netlify

  1. Connect your repository in the Netlify dashboard
  2. Set build command: cargo install --path . && sukr
  3. Set publish directory: public

Netlify detects changes and rebuilds automatically on push.

Cloudflare Pages

  1. Connect your repository in the Cloudflare Pages dashboard
  2. Set build command: cargo install --path . && sukr
  3. Set build output directory: public

Any Static Host

For any host that serves static files (S3, DigitalOcean Spaces, a VPS):

sukr
rsync -avz public/ user@server:/var/www/mysite/

Or use scp, aws s3 sync, or your host's CLI tool.

Security Headers

sukr outputs zero JavaScript, which means you can set a strict Content Security Policy that blocks all script execution. See Security for recommended CSP headers and platform-specific configuration.