Purchase a Virtual Dedicated Server with Odoo Installation

Take complete control of your company's growth with Odoo's powerful, all-in-one platform. By connecting essential tools like CRM, inventory, and financial tracking into one central system, Odoo eliminates manual effort and cross-team confusion. Dive into this article to learn how streamlining your core processes can transform the way you run your business.

This article explains how to purchase a Bluehost Virtual Dedicated Server (VDS) hosting plan and set up and manage your Odoo installation.

Why Choose Odoo?

Choose Odoo to eliminate scattered software and manage your entire business from one connected platform. Its modular design lets you start with the essential apps you need today and seamlessly add new tools as your company grows. With an intuitive interface, Odoo helps your team work faster, reduce errors, and scale as your business grows.

Uses of Odoo

You run Odoo on a VDS to unify every area of your business, with the dedicated resources and control to keep each module fast and reliable.

  • CRM and Sales Management - You manage customer relationships, track leads, and automate sales workflows, while your VDS keeps response times fast as your pipeline grows.
  • Inventory and Warehouse - You monitor stock levels, streamline order fulfillment, and optimize supply chain management, backed by the processing power a VDS provides during high-volume periods.
  • Accounting and Finance - You automate invoicing, payments, and financial reporting, and your VDS protects sensitive financial data with dedicated security and full control over access.
  • Human Resources - You manage employee information, payroll, recruiting, and performance evaluations, all running on infrastructure you control end to end.
  • E-commerce - You build online stores integrated with the rest of your business operations, and your VDS handles traffic spikes without slowing down checkout.
  • Manufacturing - You plan production schedules, track work orders, and manage quality control, with the consistent uptime a VDS gives your operations around the clock.

Choose a VDS for Odoo, and you get the flexibility, performance, and control to unify and simplify every part of your business.

How to Purchase a Virtual Dedicated Server with Odoo Installation

Odoo can be installed on a Bluehost Virtual Dedicated Server (VDS). You can choose to have Odoo installed during the initial VDS purchase or install it manually at a later time.

  1. In your browser, go to https://www.bluehost.com.
  2. Click Hosting in the top menu, then select Virtual Dedicated Server.

    Bluehost - Hosting tab - Virtual Dedicated Server
     

    You can also go to this link directly: https://www.bluehost.com/vds-hosting.

  3. On the Virtual Dedicated Server Hosting page, click Explore Plans. You can also scroll down to the hosting plans section.

    Bluehost - Hosting tab - Virtual Dedicated Server
     

  4. Choose a plan from either tab — Standard or High Performance — by clicking Choose Plan.

    VDS hosting - Choose plan
     

    Pricing is subject to change. Please visit https://www.bluehost.com/vds-hosting for the current introductory/sign-up offer for the Bluehost Virtual Dedicated Server hosting. For the most up-to-date renewal pricing, visit your Bluehost Portal's Renewal Center.
  5. On the next page, configure your VDS hosting to meet your requirements. The configuration options are divided into the following sections:
    • Location: Select your data center in this section.

      VDS hosting - Select your data center's location
       

    • Hardware: This section shows your pre-selected plan. You can also switch to another Virtual Dedicated Server plan in this section

      VDS hosting - Configure your server's hardware
       

    • Software:
      1. Under the Application tab, click on Odoo.

        VDS hosting - Software - Application tab - Odoo
         

        You can install only one application per purchase; the system will automatically select the best operating system for it.
      2. In the pop-up, click Confirm.

        VDS hosting - Software - Application tab - Odoo- pop-up
         

    • Support & Security: You can add Premium Support - Recurring, which provides priority access to expert assistance and faster response times.

      VDS hosting - Support & Security
       

    • Advanced Options:
      • Extra IP's: You can add IP addresses for an additional fee. Pricing changes based on how many IPs you add.
      • Hostname: Assign a custom hostname to identify your server. This is optional.

        VDS hosting - Advanced Options
         

  6. Select your billing term and review your selected items on the right pane, along with the summarized total cost.

    VDS hosting - Select billing term and order summary
     

  7. Click Continue to checkout.
  8. Do the following on the Checkout page:


    If you're new to Bluehost:

    1. Create your Bluehost account by using your email address or by connecting with your Google, Apple, or GitHub account — whichever you prefer!

      Checkout page - Create an account
       

    2. Select your preferred payment method: credit card, Google Pay, or PayPal. Enter your billing information.

      Checkout page - Billing Information
       

    If you have an account with us, you will see your Bluehost login details when you are logged into your Bluehost Portal. If you are not logged in, please click the Log In link.

    VDS hosting - Log in
     

  9. In the Shopping Cart, choose your billing term if you did not choose one on the previous page.

    VDS hosting - Shopping Cart
     

  10. Add a Promo code if you have one, and then click Submit Payment to complete your purchase.

After completing the purchase, your VDS hosting will begin provisioning. You can access and manage your new VDS hosting in the Hosting tab of your Bluehost Portal.

If you have questions about purchasing the Virtual Dedicated Server (VDS) hosting, please contact us for assistance.

How to Set Up Odoo

Once installation is complete, continue with the steps below to configure and start using the application.

p>
  1. Log in to your Bluehost Portal.
  2. In the left-hand menu, click the Hosting tab.

    Self Managed VPS
     

  3. Locate the server you want to manage, then click View Details in the bottom-left corner to expand the section and access additional server information.

    Self Managed VPS
     

  4. Click the Reset Password.

    Self Managed VPS
     

  5. In the pop-up window, type your new root password, then click Reset Password again to confirm and save the changes.

    Self Managed VPS
     

 

  1. Log in to your server via SSH.
    When you log in to your server for the first time via SSH, you're greeted with a welcome message that includes all the essential commands and instructions for setting up Odoo.
    ssh root@your_server_ip
    Example Output:
    
    Welcome to Ubuntu 24.04.4 LTS (GNU/Linux 6.8.0-111-generic x86_64)
    ********************************************************************************
    
    Odoo is running on this server.
    
    The UFW firewall is enabled.
    All ports are BLOCKED except 22 (SSH), 80 (HTTP), 443 (HTTPS), and 8069 (Odoo).
    
    In a web browser, you can access Odoo at:
     * Direct Odoo URL: http://50.6.6.130:8069
    
    First-time setup notes:
     * Odoo will show a "Create Database" screen on first access
     * The Odoo Master Password is stored in: /root/.app_passwords
    
    Use the following guidance on the setup screen:
     * Master Password:
          Use the value shown above or retrieve it with:
          grep ODOO_MASTER_PASSWORD /root/.app_passwords
     * Database Name:
          Choose a name such as: odoo_prod
     * Email:
          This becomes the first Odoo administrator login
     * Password:
          This becomes the first Odoo administrator password
     * Load Demonstration Data:
          Leave UNCHECKED for production use
    
    Important locations on the server:
     * Odoo config: /etc/odoo/odoo.conf
     * Odoo log:    /var/log/odoo/odoo.log
     * Passwords:   /root/.app_passwords
    
    Helpful commands:
        systemctl status odoo                  # Check Odoo service status
        systemctl restart odoo                 # Restart Odoo service
        tail -100 /var/log/odoo/odoo.log       # View recent Odoo logs
    
    For more details please refer /root/README.md
    
    To delete this message of the day:  rm -f /etc/update-motd.d/99-odoo
    
        
  2. See full server documentation (recommended):
    Run the following to view all useful info about your Odoo server:
    cat /root/README.md
    Example Output:
    
    # Odoo Server Image
    ## Image contents
    
    This template installs and configures:
    
    * Odoo 17 from the official GitHub repository (`branch 17.0`)
    * PostgreSQL local database service
    * Nginx web server
    * UFW firewall rules for SSH, HTTP, HTTPS, and Odoo
    * Python 3 virtual environment under `/opt/odoo/venv`
    * Odoo config at `/etc/odoo/odoo.conf`
    * Odoo logs at `/var/log/odoo/odoo.log`
    * First-boot injection script at `/var/lib/cloud/scripts/per-instance/001_onboot`
    * App password store at `/root/.app_passwords`
    
    ## Services
    
    Service     | Ports     | Purpose
    ----------- | --------- | -----------------------------------------------------------
    Odoo        | 8069      | Primary Odoo HTTP interface
    PostgreSQL  | local     | Database backend for Odoo
    Nginx       | 80, 443   | Installed and enabled, but Odoo is exposed directly on 8069
    OpenSSH     | 22        | Remote access
    
    Ports are protected using UFW.
    
    ## Odoo configuration
    
    The default Odoo configuration file is `/etc/odoo/odoo.conf`.
    
    Key settings include:
    
    * `admin_passwd = CHANGE_ME_ON_FIRST_BOOT` - replaced at first boot by the
      per-instance cloud-init script
    * `db_host = False` and `db_port = False` - use local PostgreSQL
    * `db_user = odoo`
    * `addons_path = /opt/odoo/odoo-server/addons,/opt/odoo/custom-addons`
    * `logfile = /var/log/odoo/odoo.log`
    * `xmlrpc_port = 8069`
    * `proxy_mode = True`
    * `data_dir = /opt/odoo/.local/share/Odoo`
    
        
  3. First-time browser access: create your Odoo instance and database.
    1. Open your browser and go to:
      http://<server-ip>:8069
    2. On the "Create Database" screen, fill out:
      • Master Password: Get the value with
        grep ODOO_MASTER_PASSWORD /root/.app_passwords
        Example Output:
        
        ODOO_MASTER_PASSWORD="abctest@12456979cdbe5e0"
                    
      • Database Name: Example: odoo_prod
      • Email & Password: These become your Odoo admin login.
      • Load Demonstration Data: Leave UNCHECKED for production.
      • Click Create database

        Self-Maanged VPS - Odoo Web UI - Create Database

  4. Check Odoo and related service status:
    • Check Odoo:
      systemctl status odoo
      Example Output:
      
      ● odoo.service - Odoo Open Source ERP and CRM
         Loaded: loaded (/etc/systemd/system/odoo.service; enabled; vendor preset: enabled)
         Active: active (running)
              
    • Check PostgreSQL:
      systemctl status postgresql
      Example Output:
      
      ● postgresql.service - PostgreSQL RDBMS
         Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
         Active: active (exited)
              
    • Check Nginx:
      systemctl status nginx
      Example Output:
      
      ● nginx.service - A high performance web server
         Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
         Active: active (running)
              
  5. To verify logs or troubleshoot:
    tail -100 /var/log/odoo/odoo.log
    Example Output:
    
    2024-06-05 11:53:21,340 340 INFO odoo_prod odoo.addons.base: Base setup ready.
    2024-06-05 11:53:21,401 340 INFO odoo_prod odoo.service.server: Server running...
        
    journalctl -u odoo -n 100 --no-pager
  6. Show or retrieve the master password:
    grep ODOO_MASTER_PASSWORD /root/.app_passwords
    Example Output:
    
    ODOO_MASTER_PASSWORD="testabc123440ea977d89d2285e0"
        
  7. Validation test (optional):
    prove /root/app_test/main.t
    Example Output:
    
    /root/app_test/main.t .. ok
    All tests successful.
    Files=1, Tests=8,  1 wallclock secs ( 0.04 usr  0.01 sys +  0.13 cusr  0.04 csys =  0.22 CPU)
    Result: PASS
        
  • The Odoo master password is the database manager password (for creating/restoring databases), and is different from your Odoo admin login password.
  • Odoo runs on port 8069. Nginx is enabled by default; to set up a secure reverse proxy, see Odoo HTTPS Deployment Docs.
  • Odoo Documentation

Supporting Information and Sample Output

You can run cat /root/README.md to see more information and useful commands:

Example Output:

root@server-123456:~# cat /root/README.md
# Odoo

## Description

Odoo is an all-in-one business management platform that helps you
manage sales, operations, accounting, and more in one place. It offers
a wide range of integrated applications such as CRM, invoicing,
inventory, eCommerce, and HR, allowing you to streamline processes,
improve visibility, and run your entire business more efficiently from
a unified platform.

This install includes Odoo 17 and is configured to use a local
PostgreSQL backend and a Python virtual environment.

The image is built from Ubuntu cloud image sources, installs required
packages, clones the Odoo 17 source tree, creates an isolated virtualenv,
and configures systemd, UFW, and first-boot initialization.

## Image contents

This template installs and configures:

* Odoo 17 from the official GitHub repository (`branch 17.0`)
* PostgreSQL local database service
* Nginx web server
* UFW firewall rules for SSH, HTTP, HTTPS, and Odoo
* Python 3 virtual environment under `/opt/odoo/venv`
* Odoo config at `/etc/odoo/odoo.conf`
* Odoo logs at `/var/log/odoo/odoo.log`
* First-boot injection script at `/var/lib/cloud/scripts/per-instance/001_onboot`
* App password store at `/root/.app_passwords`

## Services

Service     | Ports     | Purpose
----------- | --------- | -----------------------------------------------------------
Odoo        | 8069      | Primary Odoo HTTP interface
PostgreSQL  | local     | Database backend for Odoo
Nginx       | 80, 443   | Installed and enabled, but Odoo is exposed directly on 8069
OpenSSH     | 22        | Remote access

Ports are protected using UFW.

## Odoo configuration

The default Odoo configuration file is `/etc/odoo/odoo.conf`.

Key settings include:

* `admin_passwd = CHANGE_ME_ON_FIRST_BOOT` - replaced at first boot by the
  per-instance cloud-init script
* `db_host = False` and `db_port = False` - use local PostgreSQL
* `db_user = odoo`
* `addons_path = /opt/odoo/odoo-server/addons,/opt/odoo/custom-addons`
* `logfile = /var/log/odoo/odoo.log`
* `xmlrpc_port = 8069`
* `proxy_mode = True`
* `data_dir = /opt/odoo/.local/share/Odoo`

The systemd service unit is `/etc/systemd/system/odoo.service` and starts Odoo
as the `odoo` user from the source tree.

## First boot behavior

On the first boot, the cloud-init per-instance script
`/var/lib/cloud/scripts/per-instance/001_onboot`:

* generates a random `ODOO_MASTER_PASSWORD`
* stores it securely in `/root/.app_passwords`
* updates `/etc/odoo/odoo.conf`
* ensures runtime directories exist and are owned by `odoo`
* waits for PostgreSQL readiness
* restarts Odoo

This guarantees that no master password is baked into the image.

## First-time access (How-to-use)

After the VM boots, access Odoo at:

* `http://:8069`

On the first screen, create the first database using:

* Master Password: value from `/root/.app_passwords`
* Database Name: any name you choose
* Email: Odoo administrator login email
* Password: Odoo administrator login password

## Useful commands

* Check Odoo service:
  `systemctl status odoo`
* Check PostgreSQL service:
  `systemctl status postgresql`
* Check Nginx service:
  `systemctl status nginx`
* View Odoo logs:
  `tail -100 /var/log/odoo/odoo.log`
* View systemd logs:
  `journalctl -u odoo -n 100 --no-pager`
* Show current master password:
  `grep ODOO_MASTER_PASSWORD /root/.app_passwords`

## Validation tests

The template includes a validation script at `/root/app_test/main.t` that checks:

* `postgresql`, `nginx`, and `odoo` are enabled
* `/etc/odoo/odoo.conf` exists
* `/etc/systemd/system/odoo.service` exists
* first-boot script exists and is executable
* Odoo is active and listening on port 8069

## Notes

* The Odoo master password is the database manager password.
* It is different from the Odoo administrator password you create in the UI.
* Nginx is installed and enabled, but this starter image exposes Odoo directly
  on port 8069.
* A reverse proxy can be added later if desired. See https://www.odoo.com/documentation/17.0/administration/on_premise/deploy.html#https for how to do this.

## Links

* Manage: [http://{server_ip}:8069](http://{server_ip}:8069)
* Documentation: [https://www.odoo.com/documentation/17.0/](https://www.odoo.com/documentation/17.0/)root@server-646875:~#

Summary

Purchase and automatically install Odoo on a Bluehost Virtual Dedicated Server (VDS) to manage your sales, inventory, and accounting from one unified platform. This setup provides dedicated server resources to keep your business operations fast, secure, and available around the clock. Once your server provisions, simply retrieve your master password via SSH and complete the database setup in your browser to start using Odoo.