GNU Health/Installation

From Wikibooks, open books for an open world
Jump to: navigation, search


The latest stable GNU Health has the following requirements:

  1. Operating System: GNU Health is Operating System independent, although we highly recommend the use of a Free OS (such as GNU/Linux or FreeBSD)
  2. Database: PostgreSQL
  3. Python: >= 2.7 < 3.0
  4. Tryton: = 3.2
  5. libldap2-dev, libsasl2-dev (.deb packages), openldap-devel (rpm packages)

Installing GNU Health on GNU/Linux and FreeBSD[edit]

Please keep in mind that for the following instructions to work smoothly, you should ideally install GNU Health on a fresh installation of the respective GNU Linux operating system.

It is essential that you have not made any changes to the default PostgreSQL installation.

Creating the Operating System User[edit]

It is highly recommended that you use a dedicated user for your GNU Health Installation. The following steps will create the GNU Health operating system user:

adduser gnuhealth

Note: If your Operating System does NOT include the adduser command, you can use the useradd command

useradd -m gnuhealth

Creating the Database User[edit]

The following command switches to the postgres administration user and gives permissions to your newly created gnuhealth administrator:

Execute, as root:

su - postgres -c "createuser --createdb --no-createrole --no-superuser gnuhealth"

Downloading and Installing GNU Health[edit]

Running the GNU Health Installer[edit]

Do the installation with your newly created gnuhealth user, DO NOT use root.

The main steps are:

1. Become user gnuhealth:

su - gnuhealth

2. Download GNU Health from You can get the latest version from


3. Uncompress the file:

tar xzf gnuhealth-latest.tar.gz
cd gnuhealth-*

4. Run the script:


Finally, enable the BASH envrironment for the gnuhealth user.

source $HOME/.gnuhealthrc

Activate Network Devices for the JSON-RPC Protocol[edit]

The Tryton GNU Health server listens to localhost at port 8000, not allowing direct connections from other workstations.


You can change the line with the parameter jsonrpc, to activate the network device so workstations in your net can connect. For example, the line

jsonrpc = *:8000

will allow to connect to the server in the different devices of your system.

Setting up a Local Directory for Attachments[edit]

By default, Tryton uses a system-wide directory to store the attachments. In GNU Health is advisable to keep the attachments in the gnuhealth user space.

With a text editor, open the server configuration file trytond.conf and enter the attach directory, for instance:


data_path = /home/gnuhealth/attach

Configuring the Log File[edit]

Symbol version newer.svg

This section applies to version 2.8 of GNU Health.

Since GNU Health 2.8, the way the server logs and tracks events is based on a log configuration file, that resides in the config directory ( ${GNUHEALTH_DIR}/tryton/server/config ).

A default version is shipped, called "gnuhealth_log.conf". It looks something like this:

keys: simple
keys: rotate, console
keys: root
format: [%(asctime)s] %(levelname)s:%(name)s:%(message)s
datefmt: %a %b %d %H:%M:%S %Y
class: handlers.TimedRotatingFileHandler
args: ('/home/gnuhealth/gnuhealth/logs/gnuhealth.log', 'D', 1, 30)
formatter: simple
class: StreamHandler
formatter: simple
args: (sys.stdout,)
level: NOTSET
handlers: rotate, console

In this example (and in the standard file) the log file is written in the default logs directory. You can change it to fit your specific installation.

In order to use logging, you need to provide the --logconf argument with the path to the log configuration file ("gnuhealth_log.conf") when invoking the Tryton server, in the next section.

For more information, check the following resources:

Booting up the Tryton Server[edit]

Change to your newly installed system (use the alias cdexe since 2.2.1)


and boot the server.


You should see something like this. Pay attention at the last line INFO:server:starting JSON-RPC protocol on *:8000

Helpful Hint!
use the --logconf option to write the log file
[Wed Jan 14 11:01:20 2015] INFO:server:using /home/gnuhealth/gnuhealth/tryton/server/config/log.conf as logging configuration file
[Wed Jan 14 11:01:20 2015] INFO:trytond.server:using /home/gnuhealth/gnuhealth/tryton/server/config/trytond.conf as configuration file
[Wed Jan 14 11:01:20 2015] INFO:trytond.server:initialising distributed objects services
[Wed Jan 14 11:01:20 2015] INFO:trytond.server:starting JSON-RPC protocol on *:8000

Installation of the Tryton Client[edit]

Standard Method[edit]

FreeBSD, GNU/Linux and other *NIX[edit]

Download and extract the Tryton client from the tryton site [1]

Untar the client tarball:

tar -xzvf tryton-3.2.3.tar.gz

Excute the client:

cd tryton-3.2.3/bin 

Microsoft Windows[edit]

Download the Tryton client [2].

Follow the instructions.

Alternative Method (PIP)[edit]

Note: There are some issues with the local installation of the Tryton client and PIP. We recommend using the standard method. Following are the instructions on how to install the client system-wide (without the --user option).

pip install "tryton>=3.2,<3.3"

If you have an older Tryton client (installed with PIP), you can upgrade it to the latest version with the following command:

pip install --upgrade tryton

The following command will boot your tryton client


Setting the Tryton Client Tabs Position for GNU Health[edit]

Before you start the installation of the database, you need to set the tabs position to be on "Top". This will produce the optimal navigation.

The following action in the Tryton client will set it: Options → Form → Tabs Position → Top.

Setting the tabs position

Finally, save your client preferences Options → Save Options.

You can also change the default value to "top" on the Tryton client configuration file, that resides in your $HOME directory, ($HOME/.config/tryton/x.y/tryton.conf). So for a Tryton version 2.8, you can check the value of your tab positions by doing:

cd $HOME/.config/tryton/3.2
grep form_tab tryton.conf

It should give back form_tab = top. If it has another value, please change it to "top".

Creating the GNU Health database[edit]

The first step is to create a database that will hold all the information for your GNU Health system.

All GNU Health information is stored in a PostgreSQL database, and processed by the Tryton kernel. No action is needed at the operating system level to create or manage the database, as all can be done via the Tryton / GNU Health frontend.

To create a database, open your Tryton client. You will be presented with the following login popup window:

Login Screen

Click on Manage profiles, then click on Add. Give your new connection a name on the left side, and fill the fields on the right side. If you're doing the installation on the same machine, choose localhost as the hostname. Example:

Connection Profile

Click on the Create button, the following popup appears:

Create Database

The default Tryton server password is admin (you can change it later). Give your database a name, and enter a new admin password twice. Note: this will be the password of the super-user for your new database, so use a strong password when dealing with production servers.

Check in the server log (or console) if any error occurs. If so, try to fix the problem (ie. any Python module missing or some unmet dependencies), drop the database just created and repeat the procedure.

After the database is created, click OK. You're now ready to log in!

Logging into the Application[edit]

Now that you're back at the login screen, you'll notice that the selected profile is the one you've just created. Fill in the login form:

  • User name: the one you used previously usually, admin
  • Password: the one entered twice in the previous section

Installing the Default Modules[edit]

From this point on, you will use the client for almost every process. Start with the installation of the basic functionality:

  1. After you've created the database, the system will ask you to create some new users. You can skip this step for now.
  2. You are then presented with a list of modules that will provide the functionality you desire. If you don't see the Modules window, navigate to it on the right side: Administration → Modules → Modules.
  3. Select the health_profile module, and click on Mark for installation:
    GNU Health Module selection.png
  4. Click on the Action icon (a blue rotated square) and select Perform Pending Installation/Upgrade:
    GNU Health Module selection - Marked for installation.png
  5. Tryton will automatically select all the dependent modules required for the installation:
    GNU Health Perform Pending Installation-Upgrade.png
  6. Click on Start Upgrade. This process will take a while, depending on the computer where GNU Health is being installed on. Once it's done, the following message appears:
    GNU Health system upgrade done message.png

Congratulations, you have successfully installed GNU Health!

Creating a Company[edit]

The next thing you need to do is to create the initial company, that will be your health center. You will be presented with a wizard to create it.

Create Initial company

Press F3 to create the new company.

Note: At the party form, please make sure you set the institution attribute . You will link this company to your main health institution later on. Please refer to the screenshot provided in this section for details.

Initial configuration. Creating the main company associated to the party (health institution)

Congratulations! You have completed the initial installation of GNU Health. In the next chapter we will discuss how to add functionality by installing additional modules.