Public | Automated Build

Last pushed: 2 months ago
Short Description
Accounting System on Debian with support for HTTP, HTTPS, and HSTS.
Full Description


FrontAccounting (FA) on Debian 8 (Jessie) with support for HTTP, HTTPS, and HSTS.

For more infomation, see my article: Why FrontAccounting.


Updated to support FA 2.4! Over 5.4K pulls on docker. Thank you.

  • upgraded FA to 2.4.3 (default)
  • upgraded OS to Debian 8.10
  • updated Quick Start and notes to use MySQL 5.6
  • improved help and this readme

Please note, that this image remains on Debian 8 and recommends MySQL 5.6 to avoid open issues with FA.

Quick Start

(1) Spin-up mysql container and create database for FA:

$ docker pull mysql:5.6
$ docker run -d -P --name fa_db -e MYSQL_ROOT_PASSWORD=quickDIRTY mysql:5.6
$ docker exec -it fa_db mysqladmin -u root -p create fa24
  (enter quickDIRTY for password)

(2) Spin-up FA container:

$ docker pull genebarker/frontaccounting
$ docker run -d -p 80:80 --link fa_db:fa_db genebarker/frontaccounting --http

(3) Open browser, enter your host's URL, and on Step 2: Database Server Settings:

  • Server Host: fa_db
  • Database Name: fa24
  • Database User: root
  • Database Password: quickDIRTY

(4) Enjoy!

How to Use

For usage info, just run the image without a command:

$ docker run --rm genebarker/frontaccounting

Which produces the following:

frontaccounting - FrontAccounting on Debian 8 Docker Container

usage: genebarker/frontaccounting [options]

  -p, --http         Run FA using plain HTTP (port 80)
  -s, --https FQDN   Run FA using HTTPS (port 443)
  -S, --hsts FQDN    Run FA using HSTS (ports 80 and 443)
  -t, --tag TAG      Version of FA webapp to use
                     (defaults to 2.4.3)
  -b, --branch NAME  Use latest commit in given branch of
                     FA webapp repository
  -O, --overwrite    Overwrite existing FA webapp content with
                     the repository's version (careful!)
  -h, --help         Display this message

To use FA webapp content on the host, mount it, i.e.:
  $ docker run -d -p 80:80 \
      -v /home/me/frontacc:/var/www/html \
      genebarker/frontaccounting --http

  (if host dir empty, the container will initialize it)

To run FA with HTTPS creating new self-signed keys:
  $ docker run -d -p 443:443 \
      genebarker/frontaccounting --https

To run FA with HTTPS using your own keys, mount them, i.e.:
  $ docker run -d -p 443:443 \
      -v /etc/ssl:/etc/ssl \
      genebarker/frontaccounting --https

  (the cert's CN must match the FQDN)

To run FA with HSTS, map both web ports, i.e.:
  $ docker run -d -p 80:80 -p 443:443 \
      genebarker/frontaccounting --hsts

To link FA with a MySQL container named 'fa_db', i.e.:
  $ docker run -d -p 80:80 \
      --link fa_db:fa_db \
      genebarker/frontaccounting --http

  (then use 'fa_db' for the MySQL hostname)

To bypass script, just enter desired command, i.e.:
  $ docker run -it genebarker/frontaccounting bash

FA webapp repository: (see its Wiki)

Key paths in the container:
  /var/www/html  - FA webapp content
  /etc/ssl       - SSL keys and certificates
  /etc/ssl/private/ssl-cert-snakeoil.key  - Private SSL key
  /etc/ssl/certs/ssl-cert-snakeoil.pem    - Public SSL cert

FA requires a MySQL DB for data storage, we recommend using:
  mysql:5.6 at


  • FA requires a MySQL 5.6 database for data storage. This FA container does not include such a database - this is best served by using your own or even better, using the official MySQL container image (mysql).
  • The --tag and --branch options allow you to use this docker image for the different versions of FA. Check the source repository's Wiki to see the tags and branches currently available.
  • This image uses a forked copy genebarker/FA of the official FA repository. I use this fork to tag the official releases and hold copies of my changes in different branches. For more, see the repository's Wiki.
Docker Pull Command
Source Repository