Server dimensioning
What should you use for a server? Pretty much any physical server these days is more than enough to handle an average sized Odoo instance with about 20 simultaneous users. Since virtual machines typically have fewer resources provisioned, you will need to pay a little more attention to this if you are planning to run on a VM. Here are a few key figures to get you started. Obviously, they will need fine tuning to match your use of Odoo.
A small Odoo instance needs at least 1 GB of RAM. Don't be shy on this; the last thing you want to happen is your server swapping. 2 to 4 GB is a good starting point. Give your server, at the very least, two CPU/cores. If you are running the PostgreSQL server on the same host, provision at least four CPU/cores, and add 1 GB of RAM for the database. The additional CPU/cores will be used by the Odoo workers that are covered in the next recipe, Adapting the configuration file for production.
The source code of your instance will eat up 1 to 2 GB of hard disk if you are keeping the Git history, which we recommend in this recipe. The file store (data_dir in the configuration file) will grow as the instance is used, and the growth heavily depends on what you are doing in the instance. Start with 5 GB, which should give you plenty of time before getting full, and monitor the disk usage. If you are running the database on the same host, give plenty of disk space to the partition that will contain the database working files, starting at 50 GB.
You will also need space for the on-site backups, both of the database and the file store. A lot can depend on your backup plan; 200 GB is a good starting point.