FAQ

FAQ Category: Installation

## At the terminal, and from your LedgerSMB directory:
### Start Starman

starman  tools/starman.psgi

Default port is 5000.

starman -l :8080 tools/starman.psgi

Start with 8080 specified as the port.

Note: some documentation specifies the switch

--preload-app

It has been sugggested that this may give performance advantages in a production environment but isn't recommended while developing.
The manpage has more to say on this.

man starman

Based on that we currently would not recommend using --preload-app even on a production server

### While Starman is running

#### Reload Starman

pkill -HUP -f "starman master"

#### Restart Starman {#RestartStarman}

pkill -TERM -f "starman master"

#### Release the port if Starman is terminated
NOTE: try [Restart Starman](#RestartStarman) before doing this.

pkill -KILL -f "starman master"

In general: neither. The advice is to have the full source tree in /opt/ledgersmb/<version>.

Installing the LedgerSMB modules in the standard Perl search path works, but interferes with running different versions side-by-side.

To undo installation in /usr/local:

  • remove /usr/local/share/perl/5.XX.X/LedgerSMB/
  • delete /usr/local/share/perl/5.XX.X/LedgerSMB.pm; and
  • find and remove the .pl files that come in LedgerSMB's project root directory and bin/ and LedgerSMB/Scripts/ directories.

FAQ Category: Contributing

Getting all the development dependencies and a working copy for LedgerSMB can be time consuming and complex. However, using our Docker Compose infrastructure reduces this to four simple steps:

  1. Install Docker (v1.13+ have "compose" built in)
  2. Clone the LedgerSMB repository from GitHub
  3. Clone the LedgerSMB Development Docker repository from GitHub

(And start the infrastructure from the docker compose file.)

Example

The example below works on Debian Stretch:

Install Docker

$ sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
   $(lsb_release -cs) \
   stable"
$ sudo apt-get update
$ sudo apt-get install docker-ce

Clone the LedgerSMB repository from GitHub (checks out 'master' branch)

$ git clone https://github.com/ledgersmb/LedgerSMB.git ledgersmb

Clone the LedgerSMB Development Docker repository from GitHub

$ git clone https://github.com/ledgersmb/ledgersmb-dev-docker.git lsmb-dev-docker

 

At this point you are set up to start developing and testing LedgerSMB; in order to test your changes in a running LedgerSMB instance, run:

$ cd ledgersmb
$ ../lsmb-dev-docker/lsmb-dev master up -d

This command starts the container infrastructure (using the names "ldmaster-lsmb", "ldmaster-proxy" and "ldmaster-db" for the LedgerSMB, NGinx and PostgreSQL containers respectively), taking the sources in the current directory (ledgersmb) to run the application. It also starts a Selenium grid to allow browser tests.

Notes

File permissions

You may run into problems with file permissions if you want to run commands inside the containers which try to modify your local repository. You will need to either recursively set the file ownership to this user in your local tree, assign liberal 0777 (directory) and 0666 (file) permissions or execute the commands inside the container as root.

Example using www-data user, after you fix your file permissions:

docker exec -ti ldmaster-lsmb bash
www-data@90451823cb57:/srv/ledgersmb$ make dojo

Example using root inside the container:

docker exec -ti --user=root ldmaster-lsmb bash

Cache issues

The container is set up with template caching enabled. This means that you'll need to restart the container after code changes to see them. This is a simple:

$ ../lsmb-dev-docker/lsmb-dev master restart

Supported versions

The development container infrastructure only supports development of 1.5 and never versions of LedgerSMB.

Enjoy!

FAQ Category: Support

For real-time help try our Matrix (IRC like) room  #ledgersmb - you will usually find most of the core team hanging out there. The most feature-full and commonly used client is Element. It is available as a web client (for computers) and also as Android and iOS clients from within the appropriate app stores. We suggest you create a matrix account as that will allow you to log back in later to see our response to your question.

There are people there who range from users to developers who are willing to help. We have agreed to adopt the Ubuntu code of conduct for our community. Please read it if you plan on joining.

Please keep in mind that the community (especially the people you may need help from) are scattered around the world and will likely be in a different timezone to you. This means that it can sometimes take quite a few hours before someone responds. (although these days on IRC there is someone around almost all of the time). For email lists this is not a big problem, but if you are using Matrix (directly or via a matrix guest session) you will need to stay connected until someone answers otherwise we have no way to contact you :-)

If you ask for help as a signed up Matrix user, please log back in and check for a response occasionally, we will always respond as soon as someone is available.

NOTE: there is a nice feature of the Riot web app (a bell shaped icon near the top right) that shows all the messages that mention your name.
This is useful when you come back after a while to see if someone has responded to your question.
Just click on a message there to jump to that point in the chat history

Connecting to MATRIX

Read more about using Matrix  and Element Client

Webclient

You can use a browser-based matrix client to join the channel.
It defaults to guest access with reduced features, but it is trivial to sign up and get additional benefits like channel history and other things.

Dedicated Chat client