Core Concepts | Canopy Docs - Canopy
Documentation

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

Core Concepts

Project folders

Canopy can use project folders from anywhere on your machine. When needed, it creates an internal link so Docker can mount the folder consistently.

Sites

A site maps a project folder to a local domain and an nginx config. Each site can have its own:

  • Domain (e.g. my-app.test)
  • Template or linked config
  • SSL and CORS settings

Domains and hosts

Canopy adds your site domains to your hosts file so they resolve locally (you’ll be prompted for admin access when needed).

Services

Services are shared across all sites. Canopy runs one Docker stack that includes nginx, PHP, databases, cache, and more. You start them once and reuse them for every project.

Templates

Templates are nginx configs Canopy fills in with your domain and project paths. They cover common setups like Laravel, static sites, SPAs, and proxying to dev servers.

Linked configs

If your project already has its own nginx.conf, you can link it instead of using a template. This keeps your config versioned alongside your code.

Local HTTPS

Canopy generates a local certificate authority (CA) and issues certificates for your .test domains. You’ll trust the CA once in Keychain, and then HTTPS works across all sites.

Service proxies

Many services have web UIs (Mailpit, Grafana, RabbitMQ, etc.). Canopy creates local HTTPS proxy domains (like https://mailpit.test) so you can open them without memorizing ports.

What Canopy manages

Canopy handles:

  • nginx site configs
  • hosts file entries
  • SSL certificates
  • service ports and restarts
  • Docker container lifecycle

Your project files, frameworks, and application code stay in your repo.

Next up

Learn how to create and manage sites in Creating & Managing Sites.