Getting Started
Deploy First Environment

Deploy your first environment

This guide picks up where Create Your First Project left off. By the end, you'll have a running Odoo instance accessible over HTTPS.

Before you start, make sure you have:

  • A server added and showing "Running" status
  • A project created (with or without a Git repo)
  • Available resource quota (check Settings > Usage)

Create the environment

  1. Go to Projects and open your project
  2. Click the Environments tab, then Add Environment

Pick the basics

Environment name - Auto-generated from your project slug and type (e.g., acme-development). You can change it, but the auto-generated name is fine.

Environment type - Start with Development. You can always clone it to staging or production later.

Server - Pick from the dropdown. Each entry shows available capacity. If the server shows "Offline", check your SSH connection in Settings > Servers.

Allocate resources

Use the presets for a quick start:

PresetCPURAMDiskGood for
Small1 core2 GB10 GBDevelopment, small apps
Medium2 cores4 GB20 GBStaging, moderate traffic
Large4 cores8 GB50 GBProduction
X-Large8 cores16 GB100 GBHeavy workloads

Start small and scale up later if needed. You can resize without losing data.

PostgreSQL gets 30% of your CPU and RAM by default. The rest goes to Odoo. You can customize this split under Advanced PostgreSQL Settings if your workload is database-heavy.

Configure domain and Git branch

Subdomain - Auto-generated (e.g., acme-development.apps.oec.sh). You can customize it. OEC.SH checks availability as you type.

Custom domain - Optional. You can add one later. For production, you'll probably want erp.yourcompany.com instead of the system subdomain.

Git branch - Defaults to your project's main branch. For development environments, you might want develop or a feature branch instead.

Create it

Click Create Environment. This takes about a second.

A dialog asks: Deploy now?

Click Deploy Now to start the deployment immediately.


Watch the deployment

The deployment modal shows real-time progress through 16 steps. The important ones:

  1. Connecting - SSH into your server
  2. Cloning repos - Pulling your code from Git
  3. Starting PostgreSQL - Creating the database container
  4. Pulling Odoo image - Downloading the Docker image (slow on first deploy, cached after)
  5. Starting Odoo - Launching the application container
  6. Installing dependencies - Running pip install for your requirements.txt
  7. Initializing database - Setting up the Odoo schema
  8. Health check - Verifying Odoo responds to HTTP requests

The modal auto-refreshes every 2 seconds. When you see a green Success badge and 100% progress, you're done.

Typical timing: 3-5 minutes for the first deploy, 2-3 minutes for subsequent deploys.


Access your Odoo instance

After deployment completes:

  1. Click the environment URL shown in the modal (e.g., https://acme-development.apps.oec.sh)
  2. Log in:
    • Email: admin
    • Password: Find it in the environment details page under Admin Credentials (click "Reveal Password")
⚠️

Change the admin password immediately after your first login. Go to Settings > Users > admin > Change Password.

From here you can install modules, configure your company, and start building.


What to do next

Set up backups - Go to your environment's Backups tab and create a backup policy. Don't skip this.

Add a custom domain - For production, see Add Custom Domain.

Clone to staging - When development looks good, clone the environment to staging for testing. See Clone Environment.

Enable auto-deploy - In the environment's Repositories tab, toggle auto-deploy so pushing to your Git branch triggers a new deployment.


If something goes wrong

Deployment stuck on "Pulling Image"

First deploys need to download the Odoo Docker image (~500-800 MB). On slow connections this can take a few minutes. Wait it out - subsequent deploys skip this step entirely.

"Database initialization failed"

Usually a code problem in your custom modules. Check:

  • Python syntax errors in your addons
  • Missing packages in requirements.txt
  • Broken __manifest__.py dependencies

The Logs tab on your environment page shows the full error output.

"Health check failed"

Odoo started but crashed. Common causes:

  • Not enough RAM - Increase to at least 2 GB (4 GB recommended)
  • Missing Python dependency - Check requirements.txt
  • Module error - Check the Odoo container logs for the traceback

"Failed to connect to server"

Your server is unreachable. Check:

  • Server is powered on
  • SSH credentials are correct (test in Settings > Servers)
  • Firewall allows SSH from OEC.SH

"Quota exceeded"

You've used all your plan's resources. Either stop/delete unused environments to free up quota, or upgrade your plan in Settings > Billing.


Need more help? Check the Troubleshooting Guide or email support@oec.sh.