Skip to main content

Getting Started

Creating a project takes one pass through a wizard. At the end, a real server is ordered and Odoo is installed on it.

caution

Every project provisions a real, billable machine. There is no dry-run mode. If you only want to look around, talk to us first: it@zebroo.de.

1. Sign in with GitHub​

zCloud authenticates through GitHub. It asks for repository access so it can:

  • list your repositories, so you can point a project at one
  • create a new repository from a template, if you want to start fresh
  • clone the repository onto the machine during provisioning

If your addons live in a private repository, this is what lets the server read it.

2. Create a project​

Dashboard → New project. The wizard walks through seven steps:

StepWhat you choose
ProjectThe name. It identifies the project everywhere else
InfrastructurePremium Hosting (Zebroo's own hardware), 3rd Party Hosting, or your own machine
MachineSize from S to XXL — see Plans and Extras
OdooVersion 17, 18 or 19, and Community or Enterprise
Source codeA new repository from a template, an existing repository, or none
StagingWhether to add a staging instance alongside production
ExtrasBackups, point-in-time recovery, second location, dedicated CPU, pre-installed OCA connectors or zSYNC

A price bar follows you down the page and updates as you choose, so the monthly cost is visible before you commit rather than after.

Choosing Enterprise​

Enterprise needs read access to Odoo's private enterprise repository. Your own GitHub token cannot read it, so zCloud uses a separate source token. If that token is not configured, the interface says so explicitly rather than showing an empty version list.

Bringing your own machine​

Your own machine skips provisioning: you supply a server, and zCloud installs and manages Odoo on it. Useful when the hardware has to stay somewhere specific — a customer's data centre, or a machine you already pay for.

Access works through one key per project. You add it to the authorized_keys of the user we sign in as — root unless you enter another user on the project page.

With root the setup takes care of everything: system packages, Docker, hardening (fail2ban, SSH, firewall), the monitoring agent, and a user of its own for the instance.

With another user (for example odoo) we work without any root rights, during the setup and afterwards. For that:

  • the user must be in the docker group, so it can use Docker without sudo,
  • Docker (with docker compose) must already be installed,
  • git, curl, python3, openssl, crontab and flock must be there.

The instance then lives in ~/odoo of that user. Left out, because they need root: system packages, hardening, firewall rules, the monitoring agent and the Docker log rotation — those stay with you. Logs, updates, the SQL console and the terminal sign in as that user as well.

Check machine signs in as exactly that user and says whether it worked; with another user it also says whether that user can use Docker, and what is missing.

3. Watch it provision​

After Create project, the detail page shows progress and polls for updates. There are four phases:

  1. Order placed
  2. Machine is being cloned and booted
  3. Docker and Odoo are being installed
  4. Odoo is running

Provisioning runs cloud-init on the fresh machine: it installs Docker, starts Odoo and PostgreSQL, applies the security hardening, and clones your repository if you linked one.

4. Open Odoo​

Once the last phase completes, the Overview tab shows what you need:

  • the URL to reach Odoo
  • the IP address of the machine
  • the Odoo master password, for creating the database
  • the monitoring password
  • the GitHub repository the project is linked to

Open Odoo and create your database using the master password shown.

What happens to your addons​

If you linked a repository, it is cloned onto the machine during provisioning and its addons/ directory is mounted into the Odoo container. Changes you push afterwards are deployed from the Code & updates tab — see Working with a Project.

Next​