BAR - the OpenSource Reservation System

BAR is currently not under active development. Newer versions of Python (post 2.1) no longer support some of the features required by BAR and may cause problems. Further development of BAR will be restarted only in case of significant interest. Assistance and funding would be most welcome.

BAR is a full reservations system intended for the usage of small to medium-sized tour operators and travel agents. The system has been in continuous usage since early 1999 and has proven to be reliable and stable.

BAR Features

  • Full PNR management, inclusive of:
    • Itinerary
    • PAX (name, address, remarks)
    • Unlimited number of PAX per PNR (groups)
    • Accounting information (prices, invoicing)
    • Agent commission
  • Inventory management for:
    • Flights
    • Hotels
    • Rental Cars
  • Booking from Inventory for:
    • Flight
    • Hotel
    • Rental Car
  • On Request booking (e.g. without Inventory) for:
    • Flight
    • Hotel
    • Rental Car
    • Tour/excursion
    • Transfer
  • Itinerary remarks
  • Agent tracking and commissioning (multiple commission levels)
  • Reporting:
    • Legs with Request Status
    • Unpaid PNR's
    • Passenger Name Lists
  • Document printing:
    • Invoices
    • Flight tickets (non-IATA)
    • Vouchers
    • PAX Itineraries

However, BAR is released under the terms and conditions of the GNU Public License (which is a copy of the original page at http://www.gnu.org). This basically means that you may copy it, modify it, use it and give it to your friends - you don't owe us anything, you just have to keep the copyright notice on it. It also means that no warranty is implied and that Apsis GmbH cannot be held liable for anything that happens as a result of your using this program.

Should you want us to install, configure, maintain or customize BAR for you we will charge you a fee. Please feel free to contact us at the above address.


In order to install BAR you will need to perform the following steps:

  1. Download and unpack the BAR source code. This will create a directory on your disk called Bar.
  2. Install Python on your server. We have tested BAR with Python 1.5.2 to 2.1.1. Python is usually bundled with your Linux distributions, but versions exists for all Unix systems we know about, all Windoze versions after 95 inclusive and the Mac (as of MacOS 7 and up, including X).
  3. Make sure you have Postgres installed on your server. Postgres is usually bundled with most Linux distributions, but it can also run on Windoze servers with the excellent Cygwin toolkit and probably on the Mac under system X.
  4. Make sure you have the 'pg' python package installed - it allows Python programs to access Postgres. Again, this is usually bundled with your Linux distribution and is part of Postgres.
  5. Install Pyro. You can download it from its home page or from here.
  6. Install Pmw. You can download it from its home page or from here.
  7. Make sure you have a postscript printer defined on your server. BAR will use it. Additionally you will need the regular Unix text processing stuff: tbltroff (with the me macros) and grops.
  8. Edit 'printer.py' to reflect your name, address and formats. Some testing would probably be in order - the current settings reflect what one user required. Tip: search for the string YOUR in the file... NOTEThe current settings are for specific pre-printed forms used by one of the BAR users. You will probably need to adjust your margins and positioning of text and possibly add headers/footers if you want to use plain paper.
  9. Create a Postgres database (and preferably user) called cash. Modify 'factory.py' to reflect your user and password.
  10. Create the tables required by BAR. Under the db directory you will find a small psql script that does all that is required. Usage might be something like 'psql bar < db/cr.sql‹.
  11. Start the server: 'python -O server.py'. This will start the Pyro nameserver, create the connection to the database and activate the GUI for the printing. Make sure the server is active at all times - you may want it to start automagically during boot.
  12. Start the client: 'python -O bar.py‹.
  13. Install PythonPmw and Pyro on your client machines. Copy the BAR python files there and start the client in the same way. NOTE: we have seen problems with Pyro on Mac clients. This was due to a bug in the Python socket code, but it was with Python 1.5.2, so things may have changed since. If you still have problems with it we can look into it again.
  14. Enjoy your new reservations system.

To Do

Quite a bit. High priority, in our opinion:

  • User Manual. Volunteers are welcome...
  • Link to some GDS. Unfortunately, we have not yet found a decent toolkit for this.
  • Automatic Pricing.


No bugs are known or open. The system has been in use since early 1999 and has proven stable and reliable.

Request a project now

Do you need support with your WordPress website? Contact me for a non-binding initial assessment.