Getting Started
Create Your First Project

Create your first project

A project represents one Odoo codebase. It has a Git repo, an Odoo version, and one or more environments (dev, staging, production).


Create the project

  1. Go to Projects in the sidebar
  2. Click Create Project

The wizard has two steps:

Step 1: Project info and repository

Project name - Lowercase, hyphens and underscores allowed, 3-50 characters. Examples: acme-erp, client-portal-v2.

Odoo version - Pick the version your codebase targets. This can't be changed after creation.

VersionStatusNotes
18.0StableRecommended. Supports read replicas.
17.0StableBattle-tested, long-term support.
19.0BetaLatest features, not production-ready.
16.0LegacyStill works, limited new features.
15.0/14.0DeprecatedNot recommended for new projects.

Git repository - Connect your GitHub or GitLab repo:

  • OAuth (recommended): Click "Connect GitHub/GitLab", authorize, and select your repo from the list
  • Personal Access Token: Generate a PAT with repo and admin:repo_hook scopes, paste it in

You can skip the Git connection and add it later. Without Git, environments deploy with base Odoo only.

Default branch - Usually main or master. Each environment can override this later.

OEC.SH automatically sets up webhooks on your repo so pushing code can trigger deployments. If webhook setup fails (usually a permissions issue), you can configure it manually in project settings.

Step 2: Review and create

Confirm your settings and click Create Project. Takes about a second.


Repository structure

OEC.SH uses official Odoo Docker images and mounts your custom addons on top. Your repo should look something like:

my-repo/
├── addons/              # or put modules at the repo root
│   ├── my_module/
│   │   ├── __init__.py
│   │   ├── __manifest__.py
│   │   └── models/
│   └── another_module/
├── requirements.txt     # Python dependencies (optional)
└── apt.txt              # System packages (optional)

If you need addons from multiple repos (e.g., OCA modules, a themes repo), add them as Addon Repositories in project settings after creation.


What to know about Odoo versions

  • Can't change after creation. If you need to upgrade, create a new project with the target version and clone your environment over.
  • Read replicas (Odoo 18.0+ only) aren't available on older versions.
  • Enterprise: If you have an Odoo Enterprise license, you can use custom Docker images. Configure this in project settings under Docker Image.

Common issues

"Slug already taken" - Project names must be unique within your organization. Try a more specific name like acme-inventory-erp instead of erp.

"Project quota limit reached" - Your plan limits how many projects you can create. Delete unused projects or upgrade your plan in Settings > Billing.

"Failed to connect to repository" - Your OAuth token or PAT may have expired. Reconnect in Settings > Git Connections.

"Webhook setup failed" - Your token needs admin:repo_hook permissions. You can set up webhooks manually in your Git provider's settings.


Next steps

Your project is ready. Now create an environment to run it:

Deploy your first environment - Create a dev environment and deploy Odoo.