# Deployment URL: /bengal/docs/0.5.0/building/deployment/ Section: deployment Tags: deployment, hosting, ci-cd -------------------------------------------------------------------------------- Deploy Your Site Bengal generates static HTML, CSS, and JavaScript files. This means you can host your site anywhere that serves static files (e.g., GitHub Pages, Netlify, Vercel, AWS S3, Nginx). The Production Build When you are ready to ship, run the build command: bengal build --environment production This command: Loads configuration from config/environments/production.yaml (if it exists) Minifies HTML output (enabled by default) Generates the public/ directory with your complete site Common Build Flags Flag Description Use Case --environment production Loads production config overrides. Always use for shipping. --strict Fails the build on template errors. Highly Recommended for CI/CD. --clean-output Cleans the public/ directory before building. Recommended to avoid stale files. --fast Maximum performance (quiet output, full parallelism). Fast CI builds. --verbose Shows detailed build output (phase timing, stats). Useful for debugging CI failures. Example full command for CI: bengal build --environment production --strict --clean-output GitHub Pages Deploy using GitHub Actions. Create .github/workflows/deploy.yml: name: Deploy to GitHub Pages on: push: branches: [main] permissions: contents: read pages: write id-token: write jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.14' - name: Install Bengal run: pip install bengal - name: Build Site run: bengal build --environment production --strict --clean-output - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: './public' deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 Netlify Create a netlify.toml in your repository root: [build] publish = "public" command = "bengal build --environment production" [build.environment] PYTHON_VERSION = "3.14" Vercel Configure your project: Build Command: bengal build --environment production Output Directory: public Ensure your requirements.txt includes bengal. Automatic Platform Detection Bengal auto-detects your deployment platform and configures baseurl automatically: Platform Detection Baseurl Source GitHub Pages GITHUB_ACTIONS=true Inferred from GITHUB_REPOSITORY Netlify NETLIFY=true URL or DEPLOY_PRIME_URL Vercel VERCEL=true VERCEL_URL You can override auto-detection with the BENGAL_BASEURL environment variable: BENGAL_BASEURL="https://custom-domain.com" bengal build --environment production Pre-Deployment Checklist Before you merge to main or deploy: Run bengal config doctor: Checks for common configuration issues. Run bengal build --strict locally: Ensures no template errors. Run bengal check: Runs health checks on your site content. Check config/environments/production.yaml: Ensure your baseurl is set to your production domain. # config/environments/production.yaml site: baseurl: "https://example.com" Info Seealso Configuration — Environment-specific settings Multi-Variant Builds — OSS vs Enterprise, brand variants Performance — Optimize build times -------------------------------------------------------------------------------- Metadata: - Author: lbliii - Word Count: 394 - Reading Time: 2 minutes