Skip to content
fedexin40 edited this page Dec 8, 2015 · 8 revisions

[Old installation instructions] (Installation-version-1.1.0-and-below)

Important Notes

The following steps have been known to work and should be followed from up to bottom. If you deviate from this guide, do it with caution and make sure you don't violate any assumptions ProxyPoS makes about its environment.

If you find a bug

If you find a bug/error in this guide please submit an issue or pull request following the contribution guide.


The ProxyPoS installation consists of setting up the following components:

  1. Dependencies
  2. Install ProxyPoS
  3. Hardware Setup
  4. Run ProxyPoS

1. Installing Dependencies

These instructions are proved for Linux Mint, instructions for other flavors of Debian-based distros should be similar.

You will first need to install the following packages:

  1. python version >= 2.6
  2. python imaging & setuptools
  3. Git for install some packages needed
  4. For support USB printers, at least one of the supported libraries (libusb 1.0, libusb 0.1 or OpenUSB)

For example, the command:

sudo apt-get install python python-imaging python-setuptools libusb-dev git

should install all these packages on most Debian-based systems with access to the proper package repositories.

1. Base libraries for ESC/PoS printers

If you are going to use the software with an USB printer, you must install pyusb Checkout the latest code from github Build and install it:

    cd /tmp
    git clone https://github.com/walac/pyusb.git
    cd pyusb
    python setup.py build
    sudo python setup.py install

2. python-escpos

This is the python module to communicate with ESC/PoS printers Checkout the latest code from github Build and install it:

    cd /tmp
    git clone https://github.com/agb80/python-escpos.git
    cd python-escpos
    python setup.py build
    sudo python setup.py install

2. Install ProxyPoS

Starting on version 1.2.0 ProxyPoS comes with a setup file for auto install using setuptools the intention is to make more simpler to install and use for not Unix experience users and prepare ProxyPoS to be Windows & Mac (maybe) compatible.

Build and install ProxyPoS:

    cd /tmp
    git clone https://github.com/Fedrojesa/ProxyPoS.git proxypos
    cd proxypos
    python setup.py build
    sudo python setup.py install

Copy config file

Starting version 1.2.0 ProxyPoS will look for the configuration file on your user home directory so you are going to need to create a folder for host the ProxyPoS files and copy the default ProxyPos config files onto your home directory:

    mkdir ~/.proxypos/config -p
    cp config/proxypos.yaml.example ~/.proxypos/config/proxypos.yaml

Log files

Standard location for log files is /var/log/proxypos so we are going to need to create folder and set permissions to allow write files on it. You can also change the location on the proxypos.yaml configuration to place where is most convenient for you.

    sudo mkdir /var/log/proxypos
    sudo chmod a+w /var/log/proxypos

3. Hardware Setup

3.1 USB Printers

  1. Get the Product ID and Vendor ID from the lsusb command
    lsusb
    Bus 002 Device 001: ID 1a2b:1a2b Device name
  1. Write the values on the proxypos.yaml file
    vi ~/.proxypos/config/proxypos.yaml

Use host: 0.0.0.0 for listen on all interfaces including external in ~/.proxypos/config/proxypos.yaml

     host: 0.0.0.0
     port: 8069
  1. Create a udev rule to let users belonging to dialout group use the printer. You can create the file /etc/udev/rules.d/99-escpos.rules and add the following:
    SUBSYSTEM=="usb", GROUP="dialout", MODE="0664"
    SUBSYSTEMS=="usb", GROUP="dialout", MODE="0664"
  1. Restart udev
    sudo udevadm trigger
    sudo service udev restart

3.2 Serial Printers

  1. Must of the default values set by the DIP switches for the serial printers, have been set as default on the serial printer class, so the only thing you need to know is which serial port the printer is hooked up. devfile is an alphanumeric device file name under /dev filesystem, default value is /dev/ttyS0

  2. Write the correct values on the proxypos.yaml file

    vi ~/.proxypos/config/proxypos.yaml

3.3 Network Printers

  1. You only need the IP of your printer, either because it is getting its IP by DHCP or you set it manually. host is an alphanumeric host name, could be either DNS host name or IP address.

  2. Write the correct values on the proxypos.yaml file

    vi ~/.proxypos/config/proxypos.yaml

4. Run ProxyPoS

From now on you can just open a terminal and type proxypos-server to run ProxyPoS. Autostart ProxyPoS when turn it on you machine will depend on the exact configuration from your installation.