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.
- In your browser, go to https://www.bluehost.com.
- Click Hosting in the top menu, then select Virtual Dedicated Server.

You can also go to this link directly: https://www.bluehost.com/vds-hosting.
- On the Virtual Dedicated Server Hosting page, click Explore Plans. You can also scroll down to the hosting plans section.

- Choose a plan from either tab — Standard or High Performance — by clicking 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. - 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.

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

- Software:
If the selected plan does not meet the app's minimum requirements, the app will be grayed out.
- Under the Application tab, click on Odoo.

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

- Under the Application tab, click on Odoo.
- Support & Security: You can add Premium Support - Recurring, which provides priority access to expert assistance and faster response times.

- 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.

- Location: Select your data center in this section.
- Select your billing term and review your selected items on the right pane, along with the summarized total cost.

- Click Continue to checkout.
- Do the following on the Checkout page:
If you're new to Bluehost:- Create your Bluehost account by using your email address or by connecting with your Google, Apple, or GitHub account — whichever you prefer!

- Select your preferred payment method: credit card, Google Pay, or PayPal. Enter your 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.

- Create your Bluehost account by using your email address or by connecting with your Google, Apple, or GitHub account — whichever you prefer!
- In the Shopping Cart, choose your billing term if you did not choose one on the previous page.

- 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.
How to Set Up Odoo
Once installation is complete, continue with the steps below to configure and start using the application.
p>- Log in to your Bluehost Portal.
- In the left-hand menu, click the Hosting tab.

- 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.

- Click the Reset Password.

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

- 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.Replaceyour_server_ipwith your actual server IP address.
Example Output:ssh root@your_server_ipWelcome 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 - See full server documentation (recommended):
Run the following to view all useful info about your Odoo server:Example Output:cat /root/README.md# 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` - First-time browser access: create your Odoo instance and database.
- Open your browser and go to:
Replace
<server-ip>with your actual server IP address.http://<server-ip>:8069 - On the "Create Database" screen, fill out:
- Master Password: Get the value with
Example Output:grep ODOO_MASTER_PASSWORD /root/.app_passwords
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

- Master Password: Get the value with
- Open your browser and go to:
- Check Odoo and related service status:
- Check Odoo:
Example Output:systemctl status odoo
● odoo.service - Odoo Open Source ERP and CRM Loaded: loaded (/etc/systemd/system/odoo.service; enabled; vendor preset: enabled) Active: active (running) - Check PostgreSQL:
Example Output:systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS Loaded: loaded (/lib/systemd/system/postgresql.service; enabled) Active: active (exited) - Check Nginx:
Example Output:systemctl status nginx
● nginx.service - A high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled) Active: active (running)
- Check Odoo:
- To verify logs or troubleshoot:
Example Output:tail -100 /var/log/odoo/odoo.log
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 - Show or retrieve the master password:
Example Output:grep ODOO_MASTER_PASSWORD /root/.app_passwords
ODOO_MASTER_PASSWORD="testabc123440ea977d89d2285e0" - Validation test (optional):
Example Output:prove /root/app_test/main.t
/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
Notes and Links:
- 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.