- MCP server with stdio transport for local use - Search episodes, transcripts, hosts, and series - 4,511 episodes with metadata and transcripts - Data loader with in-memory JSON storage 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
224 lines
18 KiB
Plaintext
224 lines
18 KiB
Plaintext
Episode: 4449
|
|
Title: HPR4449: How to install Odoo 18 on a virtual machine
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4449/hpr4449.mp3
|
|
Transcribed: 2025-10-26 00:48:39
|
|
|
|
---
|
|
|
|
This is Hacker Public Radio episode 4449 for Thursday the 21st of August 2025.
|
|
Today's show is entitled, How to Install Odo 18 on a Virtual Machine.
|
|
It is hosted by Jerome Bitten and is about 27 minutes long.
|
|
It carries a clean flag.
|
|
The summary is, in this podcast I explain how to install Odo 18 on a Virtual Machine and
|
|
start using it.
|
|
And good day to you for the second episode of Working with Odo.
|
|
And in the first episode I tried to describe the landscape of the Odo Enterprise Resource
|
|
Planning Application and in this episode I would like to discuss how to install this.
|
|
Yeah I know.
|
|
If you're into Linux it's simple, it really is.
|
|
And if you go to Odo.com website and you go to the installation you find packages there.
|
|
So that's basically what I described, but they forgot a few tiny little things.
|
|
And I know because I tested this before I made this recording as a decent, this is
|
|
that mean we do test before describing.
|
|
Okay so what I did was first create a Virtual Machine on KVM, on Linux and in my case
|
|
DBN12 because it's nice and stable and it's sort of a golden standard or it should be.
|
|
And well you do need some four gigabytes of RAM when the application is running and
|
|
say I don't know, 2230 gigabyte of disk space depends on how much your, if this is going
|
|
to be your server for production for the next, I don't know, 10 years, you may probably want
|
|
to increase that spacing especially when you're going because it's a database, so that
|
|
grows a little bit, but not as much as when you upload files and documents and etc.
|
|
But if you're just playing around or start your business because it's very easy to relocate
|
|
later, well it's relatively easy to relocate later, but that's also in this podcast.
|
|
Anyway let's go ahead and do the installation.
|
|
So it starts where you need a Postgres database.
|
|
So the first thing you do is apt install GPG because you need some key signing tool and
|
|
for the installation and Postgresql to install the Postgres database.
|
|
After that you need to download the Odo key and store that on your local system so that
|
|
the packages downloaded can be checked if they are indeed signed by the key from the Odo
|
|
organization.
|
|
And I'm not going to, I could say wget, dash q, dash capital O, etc, etc, etc, but you
|
|
won't be happy and I consider the audience not to be that moronic.
|
|
So I made a show notes so you can follow along in the show notes and copy paste from there.
|
|
But anyway, I digress.
|
|
After doing the download of the key, you add the Odo knightly build repository to your
|
|
sources, your repository sources.
|
|
And I know what you're thinking, daily build is that stable.
|
|
Well, what they do is they release a new release every year around November, October, November.
|
|
And from there, every bug they fix, that's in your daily build.
|
|
So you download at some time, a point in time version of the software.
|
|
And if you don't want to risk it, you simply don't update the Odo package.
|
|
You can, with the Debian Linux system, you can freeze a version of an application.
|
|
But that's beyond the topic of this talk.
|
|
But you can find it, no, no, it's not difficult, I guess, to find online how to do it.
|
|
Anyway, after adding the repository location, you simply do an apt-get update and an apt-get
|
|
install of Odo and install package Odo.
|
|
And then you have Odo installed.
|
|
It's as simple as that.
|
|
These are also without that works very nicely.
|
|
Then comes the first relatively, well, it's a thing you need to know.
|
|
So Odo uses the WK HTML2 PDF executable, or executable is a Python program, I believe.
|
|
I'm not sure.
|
|
Anyway, they stand lies on a specific version, because some of those versions are stable,
|
|
some are working progress.
|
|
So for this version, and we're now installing Odo 18, because it's 19, the sort 19.
|
|
Yeah, I'm old, I know, it's 20, 25.
|
|
And they are installing WK HTML2 PDF version 0.12.6.1.
|
|
The WGET command for this as well, to get it straight from the project page, the stable
|
|
version, with that specific, it's all in the show notes.
|
|
So then you install that manually with the DPKG command, so DPKG-I for install.
|
|
And then that package, and then you have that thing installed.
|
|
And you need that because the Odo application is written in Python, the output stuff in
|
|
HTML, and then to get a PDF, you use this program to simply convert it into a PDF file.
|
|
And the PDF you can use as an attachment to send to clients, for instance, with invoices,
|
|
quotes, and other kinds of documents.
|
|
Okay, after you've installed the DPKG with the DPKG, the WK HTML2 PDF,
|
|
program, you need to do an app stall, mean F, because there could be some missing dependencies,
|
|
and to fix those, you run app install dash F. After that, you need three extra Python packages,
|
|
and Odo mentions two, but actually three.
|
|
So you do app install dash, dash Y, if you like, Python dash, XLWT, Python 3 dash, num2
|
|
words, and Python 3 dash, phone numbers.
|
|
And you need all three packages to get a nicely working Odo system.
|
|
After that, you can do a system control status, Odo, and you'll find that you have the application
|
|
running. So that is pretty easy. If you do the show notes and you copy paste that into your
|
|
console, you can see what it does, and nothing really to it. Now, that's where the fun starts.
|
|
So your virtual machine has not be addressed, and it needs to be,
|
|
you need to be able to reach it from, well, your desktop.
|
|
So if you use K, if you have something, you have to look at a network setting of the VM,
|
|
that you don't use not on net, because net will get things to the outside world from your virtual
|
|
machine, but not from the outside world into your virtual machine. Just to get this working,
|
|
you need to set up bridging network bridging. Now, also network bridging is discussed multiple
|
|
times on the internet. So have a look at that. You have to change the network config of the
|
|
host where the virtual machine is running on to enable virtual bridging. And at some point,
|
|
you should be able to connect to this virtual machine. The other option that you have is
|
|
use this virtual machine completely as a separate system. So that means that you also install
|
|
the desktop packages. You log in to the virtual machine as a desktop system on your own desktop,
|
|
and start a browser there, because then that browser will connect to the same system. So
|
|
you don't need virtual bridging in that case. It's all up to you. Whatever you like. You know,
|
|
whatever makes you happy, honey. Okay. The URL to connect to is HTTP,
|
|
the colon slash slash your server IP, colon 8069. So the port number is x as 8069. Now you can
|
|
install an engine XOR Apache reverse proxy in front of it if you like, but you know, again,
|
|
that's customization and that falls out of the scope of this talk. This is just a simple
|
|
demonstration system to get you up and running. So you go to port 8669 on that system,
|
|
and then you will be relocated to the page on slash web slash database selector.
|
|
This is the page where you create, remove, define databases. And database is like
|
|
complete administrative system for a company. So suppose you have a company, let's give it a name,
|
|
okay, chipmunk incorporate it. Just the top of my head. So chipmunk incorporate it. So you can
|
|
create a database chip, chipmunk ink dash P, which stands for production. So that would be your
|
|
production database, but you can also make a chipmunk ink dash T for testing stuff and a chipmunk
|
|
ink dash A for an acceptance server. So it's all up to you.
|
|
But it's very easy to have one O2 server running multiple administrations for multiple companies.
|
|
You just have to know that you have to switch databases if you work on one system and then on
|
|
another. Anyway, then there are a few things that you'll note, a few key entry fields that you have
|
|
on your form on this database selector. So the first is the master password and the master
|
|
password is there to protect this form because you know every O2 server has this form.
|
|
And so I would say suggest a think of a good master password and don't lose it.
|
|
Then the database name. So the database name is the name that suits you. You can have as much
|
|
databases as you like on your system. Just realize that one database is for usually for one
|
|
or organization. The email address you like that will be your login into the application
|
|
into this database. The password that you like to accompany your account name with this email
|
|
address, the phone number, you can enter it if you like, but it's optional. The language,
|
|
whatever you like, if you want to English, Dutch, French, Italian, whatever you like,
|
|
it's a multi-lingual application. So just select the language of the interface that you prefer.
|
|
The country is also important because that's where the application is located.
|
|
So because every country has different text systems, different billing rules, etc., etc.
|
|
Now this is not all out of the box immediately in an ideal configuration set up. No, but nevertheless,
|
|
it helps for instance with the default currency amongst others.
|
|
And then you see a demo data checkbox and that's where or not you would like to fill this
|
|
database with some demo data. And I would suggest that you start with demo data until you are
|
|
familiar with the system. And then after that when you want to run this for your own business,
|
|
you create your database for your own business, but you don't select the demo data checkbox,
|
|
of course. So you have a completely blank and empty system.
|
|
Okay, when done, if you filled in everything that you like, just click the create database button
|
|
and you'll have to wait during which time the database will be created and the demo data if selected
|
|
will be added. After that, you'll get a login screen. You enter your email address. As mentioned
|
|
earlier, that's your user ID. The password that you wanted for this email to go along with this
|
|
email address. And you click login and you're into the system and you'll see that you are in the
|
|
slash Odo slash apps screen. Because Odo has as described in the episode earlier,
|
|
my early episode on Odo has a sort of a building app store and this one has 622 apps. So
|
|
you know, it's a lot. And how does this GUI work? Well, it's usually pretty user friendly,
|
|
but there is a lot there to discuss in a way. So the first thing is that the main menu is in the
|
|
upper left corner that's garbage icon. And if you click on that, you'll see currently it has apps
|
|
and settings. Well, we could go into settings, but that's for another time. Well, first we're
|
|
going to enable a few apps. So the first one we're going to enable is the contacts app because
|
|
everything has to do with contacts. You have clients, you have companies and they all want to do
|
|
business with you or your virtual or your real company or organization. So what you do, you type
|
|
in the search bar, you type contacts and click on the lookup. What is it? The looking glass.
|
|
And when displayed, you'll see a small rectangle saying this is the contact app and it has an
|
|
activate button. So you click on the activate button and you'll wait again a while while the
|
|
the contacts app is enabled. So there are some initialization records added to the database.
|
|
And it takes it. It depends on your the speed of your system, but hold on, it will be done and
|
|
it will be finished at some point. So when done, the same menu in the upper right corner now has
|
|
more applications. You see this costs to do contacts. The one we installed project email marketing
|
|
surveys and employees. And that's just to to get you a basic set for demonstration. So if you
|
|
if you like, these are all installed because you enabled contacts, but there is no mandatory dependency
|
|
between, for instance, project and contacts. So if you like, you could disable the project.
|
|
Now, if you think, oh, that's cool. I will simply enable everything that's not really a wise idea
|
|
for one. It's 622 applications. So it it'll take a while. And the other thing is, after that,
|
|
it will some of them are multiple multiple. What's the word for it in English? Excluding each other.
|
|
So you can't install all of them, but you can install a lot. And the other thing is then
|
|
the system has every piece of functionality that you could possibly desire and that could really
|
|
over complicate the things you would like to do with the system. So don't. Well, anyway,
|
|
we in this case, we're going to set up a small company. So you go back to the apps app.
|
|
And using the upper left squareish icon, go to the apps and you activate the sales app.
|
|
And the sales app will also install as dependency, the invoicing apps. After that, you can do
|
|
sales and invoicing. And since we have enabled demo data, you already have contacts with names
|
|
and organizations. And there are already a few invoices to play around with.
|
|
You could go to the sales app and create a quotation. And after that, quotation can say,
|
|
okay, this is agreed by the client. So confirm this quotation. And after that,
|
|
the invoice is created. And you can go to the invoice and have a look at that. And you
|
|
so what are the general things you have to be aware of? There are lists of items with selection
|
|
boxes in front of them. And as soon as you enter one, then at the top center of the page,
|
|
you will get a sort of an action menu where you can, for instance, duplicate or delete stuff.
|
|
We already saw the search bar that's available at many locations. And on the right side,
|
|
you have a selection of upper left side. You have upper right side. Sorry, you have a selection
|
|
of how do you want to visualize the visualized data? So there can be in a list, but it can also be
|
|
in separate cards or in graphs. And in the search bar on the right is a small down arrow
|
|
that you can use. And that has some pre-populated filter options where you can add even your own
|
|
filters to. But with apps, for instance, you can say, I want to see all the apps that are
|
|
installed or not installed. And with invoices, you can see I want to see only the invoices that I
|
|
send out in year, whatever. So that should keep you busy for a couple of hours playing around with
|
|
the system. And if you think, is this all there is, I would suggest you install the website app
|
|
because it has a really cool wizard to help you set up a website. And by the way, your ODO system
|
|
can handle multiple websites. So within one organization, you could have multiple websites that
|
|
respond to multiple domains. And you could even, and that's a lot more complicated, have the billing
|
|
used the correct invoice number that increments with every new invoice, but uses the logo
|
|
depending on on what website something was bought, for instance. If you want to look at the
|
|
web shop, that's the e-commerce app. Now, this will keep you probably busy for the next few hours
|
|
to play around with the system. And there's some, because we were now discussing how to install it,
|
|
some basic technical things that you need to be aware of. And it saves you a lot of searching if
|
|
you know this. So the main configuration file is in slash atc slash odo slash odo.com.
|
|
It's, yeah, I don't know, it's as simple as that. And there's a lot possible in that file.
|
|
The other thing is that there is a slash var slash lip slash odo slash dot local slash share slash
|
|
odo directory structure with add-ons. So that's where you could add additional apps that are
|
|
currently not in your package. And we are going to discuss that in the next episode.
|
|
You could also have slay, help a look at slash var lip odo dot local slash share. Again,
|
|
slash var slash lips slash odo slash dot local slash share slash odo slash file store. Because
|
|
on the file store, every database has its own separate directory name. And under that directory
|
|
name, you find all the graphic and document files that you upload into the system. So that file
|
|
store accompanies the database in postgres with the same name. And you could do a find on that
|
|
directory and see everything. If you enable demo data, there are also images of products, etc.
|
|
Add it to this directory. In slash var slash lips slash odo slash dot local slash share slash
|
|
odo slash sessions, there will be a small session descriptor file with some JSON data describing
|
|
the current user sessions. Now, if you want to have a look at the applications and the application
|
|
code, that's really very cleanly organized. So the main entry is slash user slash lips slash
|
|
Python 3 slash disk dash packages slash odo. And in that directory, you'll find the main binary
|
|
odo and also an add-ons directory. And if you have a look at odo add-ons directory sub directory.
|
|
You will see that it probably at your system as well, 622 subdirectories all describing a
|
|
separate piece of functionality. Well, that's that's a wrap for this session. Next session,
|
|
we're going to have a small look at the first steps in configuring your system a little bit.
|
|
And you have to understand odo is functionality rich and is very, very elaborate.
|
|
And it's, you know, as it with a Linux system over the years, you get to know more and more
|
|
commands to ease your work. And you find out that a Linux system is like a sort of a toolkit
|
|
with a lot of tools. Well, odo is exactly the same, but then on its own. So it has add-ons.
|
|
You can add add-ons to it. You can configure the hell out of it or the shit out of it or whatever.
|
|
And well, some of those are pretty complicated. But next edition, we're going to do some easy
|
|
configuration settings just to get you get you set up a little bit. Okay. Well, I hope you
|
|
liked this second episode of the odo series of talks here on HPR. And looking forward to
|
|
seeing you next time. Okay. Bye bye.
|
|
You have been listening to Hacker Public Radio at Hacker Public Radio.
|
|
Today's show was contributed by a HPR listener like yourself. If you ever thought of recording
|
|
podcast, you click on our contribute link to find out how easy it really is. Hosting
|
|
for HPR has been kindly provided by an honesthost.com, the internet archive, and our sings.net.
|
|
On the odois status, today's show is released under Creative Commons,
|
|
Attribution 4.0 International License.
|