When you deploy from the CLI without app metadata, your canisters still run, but the console has no name or icon to show. So instead of a named app you see a bare canister ID like `im3ew-u...aaa-cai`, one row per canister.
This is a metadata-only fix. You tag the canisters with a few `__META_*` environment variables at deploy time. Your code and how the app works do not change.
Give it a name
Set these on each canister at deploy time:
- `__META_PROJECT` — the application name. Canisters that share the same value are grouped into one app, so use the same value on all of them.
- `__META_NAME` — the per-canister label, for example `Frontend` or `Backend`.
Once set, the bare ID rows become a single named app with labelled canisters.
Add an icon (optional)
On your main canister (the frontend), also set:
- `__META_BASE_URL` — the app's public base as an absolute `https://` URL, for example `https://<frontend-canister-id>.icp.net`.
- `__META_ICON_PATH` — the path to an icon your frontend serves, for example `/favicon.svg`.
The console builds the icon as `__META_BASE_URL` + `__META_ICON_PATH`. Both must be present for the icon to appear. Your frontend canister ID is only known after the first deploy, so the usual flow is to deploy once, set these, then deploy again.
The easy way: use a coding agent
If you deploy with a coding agent, the `deploy-to-cloud-engine` skill sets all of this for you. Install it once, then ask your agent to ship the app to your engine. It tags the canisters with the right metadata so the app shows up named and with an icon.
Comments
0 comments
Please sign in to leave a comment.