Creating & Managing Sites | Canopy Docs - Canopy
Documentation

Migrated user-facing app documentation, including screenshots and the same step-by-step document flow.

Creating & Managing Sites

Create a site

  1. File → New Site (Cmd+N).
  2. Choose your project folder (it can live anywhere).
  3. Pick a template and a domain.
  4. Save. Canopy writes the nginx config, links the folder internally when needed, adds a hosts entry, and reloads nginx.

Link an existing nginx config

If your project already has nginx.conf in the repo root:

  1. File → Link Project (Shift+Cmd+N).
  2. Select the project folder.
  3. Canopy links the config so edits in your repo are reflected immediately.

Edit and reload

Open a site and use Save & Reload to apply changes to its nginx config. Site config editor view with Save and Reload workflow

Remove a site

Use the site’s remove action to delete its config and hosts entry.

Templates you can choose from

Built-in templates include:

  • laravel
  • php
  • static
  • spa
  • vite-dev
  • node-dev
  • node-ssr
  • python-dev
  • django-dev
  • fastapi-dev
  • flask-dev
  • proxy

If you need advanced routing or a non-standard setup, link your own nginx.conf instead.

Example generated nginx config (trimmed)

Canopy generates config from templates and fills in your domain, project path, and default PHP upstream.

server {
    listen 80;
    server_name my-app.test;                 # your local domain
    root /var/www/my-app/public;             # project path inside the container

    location / {
        try_files $uri $uri/ /index.php?$query_string; # front-controller fallback
    }

    location ~ \.php$ {
        fastcgi_pass php83:9000;
        include fastcgi_params;
    }
}

For advanced rules, use Link Project with your own nginx.conf.

Project onboarding (when available)

If Canopy detects your framework, it can guide you through setup steps like site creation, database setup, and .env preparation. You’ll see a step-by-step progress checklist while it runs.

Next up