Create your first project¶
A project groups everything that belongs to one customer or one product: its instances, its repositories, its environments. Every Odoo deployment in IncubaCloud lives under a project.
Why projects?
Projects let you reason about ownership, billing splits per customer, and environment promotion (staging → production). They also scope which team members can see what.
1. Open the dashboard¶
From /cloud/ui, click New Project at the top right. A side panel slides in
with the project form.
2. Fill in the basics¶
- Name — your customer's name or the product name. Shows up in lists and breadcrumbs.
- Description (optional) — a short note for your team.
- Default environment — leave on
productionunless you know you want a staging-first project.
3. Connect a Git repository (optional, recommended)¶
Paste an HTTPS or SSH URL. We auto-detect the project layout:
.copier-answers.yml→ doodba layout. We pick up the answers (Odoo version, Postgres version, repos, addons) and fill defaults for you..gitmodules→ Odoo.sh layout. We register the modules so your custom code is available at deploy time.
If you don't have a repo yet, skip this step. You can add it later from
Project detail → Settings → Repository.
Private repositories
For SSH URLs, add the platform's deploy key (visible in Project → Settings → Deploy key)
to your repo's authorized keys.
For HTTPS with private repos, use a personal access token in the URL:
https://<token>@github.com/your-org/your-repo.git.
4. Pick a backup backend (optional, recommended)¶
Select an existing backup backend or skip and configure one later from
Settings → Backups. See Set up backups for the full walkthrough.
The backend you select here applies to every instance created under this project, unless an instance overrides it.
5. Save¶
You land on the project detail page. The sidebar lists environments (none yet) and a button invites you to deploy the first instance.
Next: deploy your first instance
Environments¶
Each project supports:
- One production instance. The customer-facing one. Deploys here go through the safe-rebuild flow (boot test before swap).
- Many staging instances. For test copies. They share configuration with production but use independent databases.
You can clone production data to a staging instance at any time (see Backups → Restore).
Verify it worked¶
- The new project shows up in your
/cloud/uidashboard list. - Opening it shows the sidebar and a
Deploy instanceCTA. - If you connected a repo, the project detail shows the detected layout.
Troubleshooting¶
Repo connection says \"unable to authenticate\"
Verify the URL works from your terminal first:
git clone <your-url> /tmp/test-clone. If that succeeds, double-check the
deploy key (SSH) or token (HTTPS) is present and active.
Layout not detected
We look for .copier-answers.yml and .gitmodules in the repo root.
If neither is present, we treat the repo as a generic codebase — you can
still deploy, you just lose the auto-fill of versions and module list.