Small and Medium business accounting and ERP
LedgerSMB is a free integrated web application accounting system, featuring double entry accounting, budgeting, invoicing, quotations, projects, timecards, inventory management, shipping and more ...
The UI allows world-wide accessibility; with its data stored in the
enterprise-strength PostgreSQL
open source database system, the system is known
to operate smoothly for businesses with thousands of transactions per week.
Screens and customer visible output are defined in templates, allowing easy and
fast customization. Supported output formats are PDF, CSV, HTML, ODF and more.
Directly send orders and invoices from the built-in e-mail function to your customers or RFQs (request for quotation) to your vendors with PDF attachments.
Note that these are the system requirements for LedgerSMB 1.9, the current development version. Please check the system requirements for the 1.7 old stable version and the 1.8 version.
Perl 5.24+
PostgreSQL 9.6+
- Web server (e.g.
nginx
,Apache
,lighttpd
,Varnish
)
The web external server is only required for production installs; for evaluation purposes a simpler setup can be used, as detailed below.
A Dojo
1.16 compatible web browser
is all that's required on the client; it includes all
current versions of Chrome
and FireFox
as of 3.6, as well as MS Internet Explorer
and a wide range of mobile browsers. Please note that LedgerSMB
explicitly doesn't make any attempts to support Internet Explorer.
The quickest way to get the Docker
image up and running is by using the
docker-compose file available through the GitHub
repository at:
https://github.com/ledgersmb/ledgersmb-docker/blob/1.8/docker-compose.yml
which sets up both the LedgerSMB image and a supporting database image for
production purposes (i.e. with persistent (database) data, with the
exception of one thing: setting up an Nginx
or Apache
reverse proxy
with TLS 1.2 support -- a requirement if you want to access your
installation over any type of network.
See the documentation on Docker Hub.
The instructions below are for getting started quickly; the project's site provides in-depth installation instructions for production installs.
The following non-Perl (system) dependencies need to be in place for the
cpanm
command mentioned below to work, in addition to what's documented
on the How to install CPAN modules
page on CPAN.
cpanminus
This can be manually installed, or installed as a system package. It may not be necessary to installcpanminus
if you are only going to install from debian packages.PostgreSQL
client librariesPostgreSQL
serverDBD::Pg 3.4.2+
(socpanm
recognizes that it won't need to compile it) This package is calledlibdbd-pg-perl
inDebian
andperl-DBD-Pg
inRedHat/Fedora
make
This is used bycpan
dependencies during their build process
Then, some of the features listed below have system requirements as well:
latex-pdf-ps
depends on these binaries or libraries:latex
(usually provided through atexlive
package)pdflatex
dvipdfm
dvips
pdf2ps
This section depends on a working local::lib installation
as well as an installed cpanm
executable. Both should be available from
your distribution's package repository (Debian calls them liblocal-lib-perl
and cpanminus
respectively). cpanm
depends on the make
and gcc
commands
being available.
NOTE: gcc
can be removed after all cpan
dependencies are installed.
However, it may be necessary to reinstall it if additional modules are
required during an upgrade
To install the Perl
module dependencies, run:
cpanm --quiet --notest --with-feature=starman [other features] --installdeps .
NOTES
- Don't miss the "." at the end of the
cpanm
command! - The environment variables
PERL5LIB
,PERL_MB_OPT
andPERL_MM_OPT
need to be set and thatPATH
needs to include the local::lib location. [other features]
are described in the in-depth installation instructions- The in-depth installation instructions contain a list of distribution provided packages to reduce the number of dependencies installed from CPAN.
While it's possible to use LedgerSMB with the standard postgres
user,
it's good practice to create a separate 'LedgerSMB database administrator'.
In this quickstart, we add a password to the postgres
superuser:
$ sudo -u postgres psql -U postgres \
-c "alter role postgres password 'CHANGE-ME' valid until 'tomorrow'"
NOTES
- The password is only valid until the end of the day it's assigned then you can't forget to remove the password leaving a security hole
LedgerSMB should be able to run without configuration. If you need specific settings, please
cp doc/conf/ledgersmb.conf.default ledgersmb.conf
and edit ledgersmb.conf
to match your requirements.
With the above steps completed, the system is ready to run the web server:
$ starman --preload-app -I lib -I old/lib --listen localhost:5762 \
bin/ledgersmb-server.psgi
2020/05/12-02:14:57 Starman::Server (type Net::Server::PreFork) starting! pid(xxxx)
Resolved [*]:5762 to [::]:5762, IPv6
Not including resolved host [0.0.0.0] IPv4 because it will be handled by [::] IPv6
Binding to TCP port 5762 on host :: with IPv6
Setting gid to "1000 1000 24 25 27 29 30 44 46 108 111 121 1000"
NOTES
- The command above does not need
root
privileges - Please don't use Starman's
--user
option to set the user; it badly interacts with initialization run by LedgerSMB
We support the following Environment Variables within our code
-
LSMB_WORKINGDIR
: Optional- Causes a
chdir
to the specified directory as the first thing done instarman.psgi
- If not set the current dir is used.
- An example would be
LSMB_WORKINGDIR='/usr/local/ledgersmb/' starman ...
- Causes a
We support the following Environment Variables for our dependencies
PGHOST
: Optional- Specifies the
Postgres server
Domain Name or IP address
- Specifies the
PGPORT
: Optional- Specifies the
Postgres server
Port
- Specifies the
PGSSLMODE
: Optional- Enables SSL for the
Postgres
connection
- Enables SSL for the
Please note the earlier remarks about the local::lib
environment requiring
the variables PERL5LIB
, PERL_MM_OPT
, PERL_MB_OPT
and PATH
being set
up.
The system is installed and should be available for evaluation through
http://localhost:5762/setup.pl
# creation and privileged management of company databaseshttp://localhost:5762/login.pl
# Normal login for the application
The system is ready for preparation for first use.
Web site: http://ledgersmb.org/
Live chat:
- IRC:
freenode #ledgersmb
- Matrix:
#ledgersmb:matrix.org
(bridged IRC channel)
Mailing list archives: http://archive.ledgersmb.org
Mailing lists:
Repository: https://github.com/ledgersmb/LedgerSMB
Source code contributors can be found in the project's Git
commit history
as well as in the CONTRIBUTORS file in the repository root.
Translation contributions can be found in the project's Git
commit history
as well as in the Transifex
project Timeline.
Copyright (c) 2006 - 2020 The LedgerSMB Project contributors
Copyright (c) 1999 - 2006 DWS Systems Inc (under the name SQL Ledger)