Recent content https://ledgersmb.org/index.php/ en Screenshots for 1.9 https://ledgersmb.org/index.php/content/screenshots-19 <span class="field field--name-title field--type-string field--label-hidden">Screenshots for 1.9</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>ehu</span></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 10/21/2021 - 23:36</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/141" hreflang="en">Screenshots</a></div> </div> </div> <div class="field field--name-field-release field--type-entity-reference field--label-above"> <div class="field__label">Release</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/149" hreflang="en">1.9</a></div> </div> </div> <div class="field field--name-field-media field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/f48e21d47d7d1544ed74faa1ef4ec3d3-step-post-5.png" title="1.9 login screen" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 login screen&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/f48e21d47d7d1544ed74faa1ef4ec3d3-step-post-5.png?itok=GZpJswAy" width="325" height="250" alt="1.9 login screen" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/f48e21d47d7d1544ed74faa1ef4ec3d3-step-post-2.png" title="1.9 Setup application login screen" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Setup application login screen&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/f48e21d47d7d1544ed74faa1ef4ec3d3-step-post-2.png?itok=l3pCP8Cc" width="325" height="250" alt="1.9 Setup application login screen" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/ff8dcc516037939d5fbcf5ef6db85e35-step-post-1.png" title="1.9 Welcome screen (after login)" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Welcome screen (after login)&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/ff8dcc516037939d5fbcf5ef6db85e35-step-post-1.png?itok=RIrCw8St" width="325" height="250" alt="1.9 Welcome screen (after login)" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-183.png" title="1.9 configuration screen" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 configuration screen&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-183.png?itok=WfwPZ96B" width="325" height="250" alt="1.9 configuration screen" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-26.png" title="1.9 AR transaction entry" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 AR transaction entry&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-26.png?itok=S5MJuSEt" width="325" height="250" alt="1.9 AR transaction entry" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-197.png" title="1.9 Tax configuration" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Tax configuration&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-197.png?itok=C6gqVseo" width="325" height="250" alt="1.9 Tax configuration" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/1e697f84931add8190179970614c7c8f-step-post-4.png" title="1.9 batch posting (approval)" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 batch posting (approval)&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/1e697f84931add8190179970614c7c8f-step-post-4.png?itok=rXHNtoSj" width="325" height="250" alt="1.9 batch posting (approval)" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-91.png" title="1.9 Chart of Accounts overview" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Chart of Accounts overview&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-91.png?itok=7g-6ixcW" width="325" height="250" alt="1.9 Chart of Accounts overview" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-96.png" title="1.9 Journal entry" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Journal entry&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-96.png?itok=PTA08WvO" width="325" height="250" alt="1.9 Journal entry" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/67b9ff63df723ffc820c4c63f77016f1-step-post-14.png" title="1.9 Balance sheet report" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Balance sheet report&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/67b9ff63df723ffc820c4c63f77016f1-step-post-14.png?itok=e4ifXq0p" width="325" height="250" alt="1.9 Balance sheet report" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/823cfa711d89778dd6e0d74b6d772f48-step-post-12.png" title="1.9 Reconciliation screen" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Reconciliation screen&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/823cfa711d89778dd6e0d74b6d772f48-step-post-12.png?itok=Tu1ISTu3" width="325" height="250" alt="1.9 Reconciliation screen" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/b9fcc2b78d79669910495ccbc554aeae-step-post-6.png" title="1.9 Account configuration screen" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Account configuration screen&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/b9fcc2b78d79669910495ccbc554aeae-step-post-6.png?itok=S0Jew5HE" width="325" height="250" alt="1.9 Account configuration screen" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/cb74c50a4f5fdfa84f0f9eb25fad296f-step-post-23.png" title="1.9 Exchange rate entry" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Exchange rate entry&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/cb74c50a4f5fdfa84f0f9eb25fad296f-step-post-23.png?itok=jqU6pBej" width="325" height="250" alt="1.9 Exchange rate entry" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/d7f00066a13ac7cf6ce4b669a33cc02d-step-post-10.png" title="1.9 User preferences screen" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 User preferences screen&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/d7f00066a13ac7cf6ce4b669a33cc02d-step-post-10.png?itok=hvAhTOco" width="325" height="250" alt="1.9 User preferences screen" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/d9b476f2b5609e8fd818d54b25262d4d-step-post-59.png" title="1.9 Payment entry screen" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Payment entry screen&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/d9b476f2b5609e8fd818d54b25262d4d-step-post-59.png?itok=zwcCiPzh" width="325" height="250" alt="1.9 Payment entry screen" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-151.png" title="1.9 Add sales order" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Add sales order&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/11054eefee3130c019ef7ce14a538d0c-step-post-151.png?itok=mNm3oyA4" width="325" height="250" alt="1.9 Add sales order" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> <div class="field__item"><article class="media media--type-screenshots media--view-mode-full"> <div class="field field--name-field-image field--type-image field--label-hidden field__item"> <a href="https://ledgersmb.org/sites/default/files/2021-10/205d71829069c419143bbbd51af13889-step-post-12.png" title="1.9 Sales invoice entry" data-colorbox-gallery="gallery-all-CSPNAONi3EI" class="colorbox" data-cbox-img-attrs="{&quot;alt&quot;:&quot;1.9 Sales invoice entry&quot;}"><img src="/sites/default/files/styles/max_325x325/public/2021-10/205d71829069c419143bbbd51af13889-step-post-12.png?itok=YxwWyLWv" width="325" height="230" alt="1.9 Sales invoice entry" loading="lazy" class="image-style-max-325x325" /> </a> </div> </article> </div> </div> <section class="field field--name-comment-node-article field--type-comment field--label-hidden comment-wrapper"> </section> Fri, 22 Oct 2021 06:36:18 +0000 ehu 565 at https://ledgersmb.org Using Docker to develop LedgerSMB https://ledgersmb.org/index.php/content/using-docker-develop-ledgersmb <span class="field field--name-title field--type-string field--label-hidden">Using Docker to develop LedgerSMB</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Getting all the development dependencies and a working copy for LedgerSMB can be time consuming and complex. However, using our <a href="https://docs.docker.com/compose/">Docker Compose</a> infrastructure reduces this to four simple steps:</p> <ol> <li><a href="https://docs.docker.com/engine/installation/">Install Docker</a></li> <li><a href="https://docs.docker.com/compose/install/">Install Docker Compose</a></li> <li>Clone the <a href="https://github.com/ledgersmb/LedgerSMB">LedgerSMB repository</a> from GitHub</li> <li>Clone the <a href="https://github.com/ledgersmb/ledgersmb-dev-docker">LedgerSMB Development Docker repository</a> from GitHub</li> </ol> <p>(And start the infrastructure from the docker compose file.)</p> <h1>Example</h1> <p>The example below works on Debian Stretch:</p> <h2 class="perl">Install Docker</h2> <div class="geshifilter"><pre class="perl geshifilter-perl">$ sudo apt<span class="sy0">-</span>get install \ apt<span class="sy0">-</span>transport<span class="sy0">-</span>https \ ca<span class="sy0">-</span>certificates \ curl \ gnupg2 \ software<span class="sy0">-</span>properties<span class="sy0">-</span>common $ curl <span class="sy0">-</span>fsSL https<span class="sy0">://</span>download<span class="sy0">.</span>docker<span class="sy0">.</span>com<span class="sy0">/</span>linux<span class="sy0">/</span><span class="co5">$(</span><span class="sy0">.</span> <span class="sy0">/</span>etc<span class="sy0">/</span>os<span class="sy0">-</span>release<span class="sy0">;</span> echo <span class="st0">"$ID"</span><span class="br0">)</span><span class="sy0">/</span>gpg <span class="sy0">|</span> sudo apt<span class="sy0">-</span>key add <span class="sy0">-</span> $ sudo add<span class="sy0">-</span>apt<span class="sy0">-</span>repository \ <span class="st0">"deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "</span><span class="re0">$ID</span><span class="st0">") <span class="es0">\</span> $(lsb_release -cs) <span class="es0">\</span> stable"</span> $ sudo apt<span class="sy0">-</span>get update $ sudo apt<span class="sy0">-</span>get install docker<span class="sy0">-</span>ce</pre></div> <h2>Install Docker Compose</h2> <p>Check the latest release at <a href="https://github.com/docker/compose/releases/">https://github.com/docker/compose/releases/</a> (and replace 1.17.0 with it)</p> <div class="geshifilter"><pre class="bash geshifilter-bash">$ <span class="kw2">sudo</span> curl <span class="re5">-L</span> https:<span class="sy0">//</span>github.com<span class="sy0">/</span>docker<span class="sy0">/</span>compose<span class="sy0">/</span>releases<span class="sy0">/</span>download<span class="sy0">/</span>1.17.0<span class="sy0">/</span>docker-compose-<span class="sy0">`</span><span class="kw2">uname</span> -s<span class="sy0">`</span>-<span class="sy0">`</span><span class="kw2">uname</span> -m<span class="sy0">`</span> \ <span class="re5">-o</span> <span class="sy0">/</span>usr<span class="sy0">/</span>local<span class="sy0">/</span>bin<span class="sy0">/</span>docker-compose $ <span class="kw2">sudo</span> <span class="kw2">chmod</span> +x <span class="sy0">/</span>usr<span class="sy0">/</span>local<span class="sy0">/</span>bin<span class="sy0">/</span>docker-compose</pre></div> <h2>Install docker compose bash completion (optional)</h2> <div class="geshifilter"><pre class="bash geshifilter-bash">$ <span class="kw2">sudo</span> curl <span class="re5">-L</span> https:<span class="sy0">//</span>raw.githubusercontent.com<span class="sy0">/</span>docker<span class="sy0">/</span>compose<span class="sy0">/</span>1.17.0<span class="sy0">/</span>contrib<span class="sy0">/</span>completion<span class="sy0">/</span>bash<span class="sy0">/</span>docker-compose \ <span class="re5">-o</span> <span class="sy0">/</span>etc<span class="sy0">/</span>bash_completion.d<span class="sy0">/</span>docker-compose</pre></div> <h2>Clone the LedgerSMB repository from GitHub (checks out 'master' branch)</h2> <div class="geshifilter"><pre class="bash geshifilter-bash">$ <span class="kw2">git clone</span> https:<span class="sy0">//</span>github.com<span class="sy0">/</span>ledgersmb<span class="sy0">/</span>LedgerSMB.git ledgersmb <span class="co0"># and, for 1.8 or earlier, additionally:</span> $ <span class="kw3">cd</span> ledgersmb <span class="sy0">&amp;&amp;</span> <span class="kw2">git submodule</span> update <span class="re5">--init</span> <span class="re5">--recursive</span> <span class="sy0">&amp;&amp;</span> <span class="kw3">cd</span> ..</pre></div> <h2 class="perl">Clone the LedgerSMB Development Docker repository from GitHub</h2> <div class="geshifilter"><pre class="bash geshifilter-bash"><span class="co4">$ </span><span class="kw2">git clone</span> https:<span class="sy0">//</span>github.com<span class="sy0">/</span>ledgersmb<span class="sy0">/</span>ledgersmb-dev-docker.git lsmb-dev-docker</pre></div> <p class="perl"> </p> <p>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:</p> <div class="geshifilter"><pre class="bash geshifilter-bash">$ <span class="kw3">cd</span> ledgersmb $ ..<span class="sy0">/</span>lsmb-dev-docker<span class="sy0">/</span>lsmb-dev master up <span class="re5">-d</span></pre></div> <p>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.</p> <h1>Notes</h1> <h2>File permissions</h2> <p>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.</p> <h2>Example using www-data user, after you fix your file permissions:</h2> <div class="geshifilter"><pre class="bash geshifilter-bash">docker <span class="kw3">exec</span> <span class="re5">-ti</span> ldmaster-lsmb <span class="kw2">bash</span> www-data<span class="sy0">@</span>90451823cb57:<span class="sy0">/</span>srv<span class="sy0">/</span>ledgersmb$ <span class="kw2">make</span> dojo</pre></div> <h3>Example using root inside the container:</h3> <div class="geshifilter"><pre class="bash geshifilter-bash">docker <span class="kw3">exec</span> <span class="re5">-ti</span> <span class="re5">--user</span>=root ldmaster-lsmb <span class="kw2">bash</span></pre></div> <h2>Cache issues</h2> <p>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:</p> <div class="geshifilter"><pre class="bash geshifilter-bash"><span class="co4">$ </span>..<span class="sy0">/</span>lsmb-dev-docker<span class="sy0">/</span>lsmb-dev master restart</pre></div> <h2>Supported versions</h2> <p>The development container infrastructure only supports development of 1.5 and never versions of LedgerSMB.</p> <p>Enjoy!</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>freelock</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 01/14/2017 - 09:38</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/topics/development" hreflang="en">Development</a></div> </div> </div> <div class="field field--name-field-operating-system field--type-entity-reference field--label-above"> <div class="field__label">Operating system</div> <div class="field__items"> <div class="field__item"><a href="/index.php/operating-system/linux" hreflang="en">Linux</a></div> </div> </div> <div class="field field--name-field-release field--type-entity-reference field--label-above"> <div class="field__label">Release</div> <div class="field__items"> <div class="field__item"><a href="/index.php/release/15" hreflang="en">1.5</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/142" hreflang="en">1.6</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/146" hreflang="en">1.7</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/147" hreflang="en">1.8</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/149" hreflang="en">1.9</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/150" hreflang="en">1.10</a></div> </div> </div> <div class="field field--name-field-faq-category field--type-entity-reference field--label-above"> <div class="field__label">FAQ Category</div> <div class="field__item"><a href="/index.php/faq-categories/contributing" hreflang="en">Contributing</a></div> </div> <section class="field field--name-comment-node-article field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 14 Jan 2017 17:38:23 +0000 freelock 369 at https://ledgersmb.org System requirements https://ledgersmb.org/index.php/content/system-requirements <span class="field field--name-title field--type-string field--label-hidden">System requirements</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1>Hardware requirements</h1> <p>The hardware required to run LedgerSMB greatly depends on the number of users. However, with a small number of users (up to 10 or so), a 32bit server with 512MB to 1GB of memory (including Linux Server OS) and just a few hundred MB of storage (excluding OS) should be enough to get good performance.<br /> For a 64bit server, you probably need 1GB to 2GB of memory, but otherwise the requirements are the same.</p> <h1>Operating system requirements</h1> <p>LedgerSMB runs on Linux/Unix (for the Server) and any platform with a compatible Web Browser (for the Client).<br /> Platforms that have known-compatible browsers are Linux, Windows, MacOS, most smart phones and tablets should also work although the current UI requires a large screen for optimum usability. (Minimal size: 9.7" tablet in landscape mode.)</p> <p>Unix includes all flavours (variants) of Linux including</p> <ul> <li>Debian</li> <li>Mint</li> <li>Ubuntu</li> <li>RedHat</li> <li>Fedora</li> <li>BSD</li> <li>MacOS / OS X</li> <li>and many more</li> </ul> <h2>MS Windows</h2> <ul> <li>While in the past the server would run on Windows as well, this is currently not tested and expected to break.</li> <li>LedgerSMB has a client / server architecture, so while it is often better to run the server on Linux, this will not stop you from running the clients on windows. In fact this is a common situation and is fully supported.</li> </ul> <p>For more information on running on windows please look at the FAQ item <a href="http://ledgersmb.org/faq/can-i-use-ledgersmb-ms-windows">Can I use LedgerSMB on MS Windows?</a></p> <h1>Software requirements (client)</h1> <p>On the client, LedgerSMB requires a compatible browser. As of version 1.9, the development team keeps track of which exact browser capabilities that are used by LedgerSMB to determine which browser versions are supported and which ones are not. On versions 1.8 and older, the indicated minimum requirement is based on the indication provided by the <a href="https://dojotoolkit.org/reference-guide/1.10/releasenotes/1.10.html#user-agent-support">Dojo Toolkit development team</a> in combination with a rough impact estimation of additional capabilities used by LedgerSMB's own JavaScript.</p> <table border="1" cellpadding="1" cellspacing="1"> <caption>Minimum browser versions supported by LedgerSMB (by version)</caption> <thead> <tr> <th rowspan="2" scope="row"> </th> <th class="text-align-center" colspan="2" rowspan="2" scope="col">Chrome</th> <th class="text-align-center" colspan="2" scope="col">Safari</th> <th class="text-align-center" rowspan="2" scope="col">Firefox</th> <th class="text-align-center" rowspan="2" scope="col">Opera</th> <th class="text-align-center" rowspan="2" scope="col">Edge</th> <th class="text-align-center" rowspan="2" scope="col">Internet<br /> Explorer</th> </tr> <tr> <th class="text-align-center" scope="col">Desktop</th> <th class="text-align-center" scope="col">Mobile</th> </tr> </thead> <tbody> <tr> <th scope="row">1.4</th> <td class="text-align-center" colspan="2" rowspan="5">13</td> <td class="text-align-center" colspan="2" rowspan="5">5</td> <td class="text-align-center" colspan="1" rowspan="5">3.6</td> <td class="text-align-center" colspan="1" rowspan="5">10.50</td> <td class="text-align-center" colspan="1" rowspan="5">(all)</td> <td class="text-align-center">8</td> </tr> <tr> <th scope="row">1.5</th> <td class="text-align-center" colspan="1" rowspan="3">10</td> </tr> <tr> <th scope="row">1.6</th> </tr> <tr> <th scope="row">1.7</th> </tr> <tr> <th scope="row">1.8</th> <td class="text-align-center">n/a</td> </tr> <tr> <th scope="row">1.9</th> <td class="text-align-center" colspan="2" rowspan="1">2017-09 (61)</td> <td class="text-align-center">2017-03 (10.1)</td> <td class="text-align-center">2017-03 (10.3)</td> <td class="text-align-center">2018-05 (60)</td> <td class="text-align-center">2017-09 (48)</td> <td class="text-align-center">2017-10 (16)</td> <td class="text-align-center">n/a</td> </tr> <tr> <th scope="row">1.10</th> <td class="text-align-center" colspan="2" rowspan="1">2017-09 (61)</td> <td class="text-align-center">2017-03 (10.1)</td> <td class="text-align-center">2017-03 (10.3)</td> <td class="text-align-center">2018-05 (60)</td> <td class="text-align-center">2017-09 (48)</td> <td class="text-align-center">2017-10 (16)</td> <td class="text-align-center">n/a</td> </tr> </tbody> </table> <p>Please note that on Android, browsers are being pushed to end-user devices so that most devices always have the latest Chrome, FireFox or Opera browser. To that extent, there's little point in mentioning the oldest supported version. If you would be interested to know anyway: the desktop versions of the same browsers are a good indication of support of the required capabilities on mobile as well.</p> <h1>Software requirements (server)</h1> <p>LedgerSMB builds upon technology of some very widely used - proven - projects:</p> <ul> <li><a href="https://www.postgresql.org/">PostgreSQL</a> - the enterprise level quality open source database</li> <li>Starman (perl webserver)</li> <li><a href="http://www.perl.org/">Perl</a> - the programming language of the web</li> <li>(Xe)LaTeX - the typesetting language (optional)<br /> This is used by the Templating system to generate PDF and Postscript output for printing, email or saving to disk</li> </ul> <p>Each version of LedgerSMB has its own requirements. The high level requirements are listed in the table below.</p> <table border="1" cellpadding="1" cellspacing="1"> <caption>Requirements by LedgerSMB version</caption> <thead> <tr> <th rowspan="2" scope="row"> </th> <th rowspan="2" scope="col">Status</th> <th rowspan="2" scope="col">PostgreSQL</th> <th rowspan="2" scope="col">Application server<br /> / HTTP server</th> <th rowspan="2" scope="col">Perl</th> <th class="text-align-center" colspan="2" scope="col">PDF</th> </tr> <tr> <th class="text-align-center" scope="col">PDF</th> <th class="text-align-center" scope="col"><abbr title="PDF for Archiving, also known as ISO 19005-1">PDF/A</abbr></th> </tr> </thead> <tbody> <tr> <th scope="row">1.4</th> <td colspan="1" rowspan="3">End-Of-Life<br /> (no community support)</td> <td>8.4 and up</td> <td>Apache 1.3 and up</td> <td colspan="1" rowspan="2">5.10 and up</td> <td rowspan="7">LaTeX for ASCII or<br /> XeLaTeX for UTF-8 characters</td> <td rowspan="7">LuaTeX with pdfx TeX package</td> </tr> <tr> <th scope="row">1.5</th> <td colspan="1" rowspan="3">9.4 and up</td> <td colspan="1" rowspan="6">Starman*</td> </tr> <tr> <th scope="row">1.6</th> <td>5.14 and up</td> </tr> <tr> <th scope="row">1.7</th> <td>old old stable</td> <td>5.18 and up</td> </tr> <tr> <th scope="row">1.8</th> <td>old stable</td> <td>9.6 and up</td> <td>5.20 and up</td> </tr> <tr> <th scope="row">1.9</th> <td>stable</td> <td>10 and up</td> <td>5.24 and up</td> </tr> <tr> <th scope="row">1.10</th> <td>unstable</td> <td>13 and up</td> <td>5.32 and up</td> </tr> </tbody> </table> <p>* While Starman is the prefered (and tested) webserver for 1.5 and newer.<br />       It should <strong>ALWAYS</strong> be reverse proxied as HTTPS using Apache/Nginx or possibly other HTTP servers.<br />       It may be possible to run directly from another HTTPD server, but this is not a supported configuration.<br />       Also, in most cases there are performance gains to be had by using Starman.</p> <h2>Perl module dependencies</h2> <p>The Perl module dependencies are listed in the <a href="https://github.com/ledgersmb/LedgerSMB/blob/master/cpanfile">'cpanfile' in the root of the project tree</a>. Many distributions include at least <em>some</em> of the dependencies in their repositories, so that it <em><strong>shouldn't</strong></em> be necessary to install <em><strong>all</strong></em> the dependencies listed in the cpanfile from <a href="http://www.cpan.org/">CPAN</a>.</p> <p>During the installation process, the availability of the "cpanm" binary is required.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>ehu</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 06/30/2012 - 05:58</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/faq-categories/installation" hreflang="en">Installation</a></div> <div class="field__item"><a href="/index.php/topic/installation" hreflang="en">Installation</a></div> </div> </div> <section class="field field--name-comment-node-page field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 30 Jun 2012 12:58:33 +0000 ehu 164 at https://ledgersmb.org Preparing LedgerSMB 1.9 for first use https://ledgersmb.org/index.php/content/preparing-ledgersmb-19-first-use <span class="field field--name-title field--type-string field--label-hidden">Preparing LedgerSMB 1.9 for first use</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><span id="cke_bm_103S" style="display: none;"> </span> </p> <p>This page explains how to set up LedgerSMB's first company after having completed installation, e.g. through <a href="https://github.com/ledgersmb/ledgersmb-docker/tree/1.9">the docker-compose.yml file</a>. Please note that your full URL may differ depending on your installation method.</p> <p><!--break--></p> <p>In case you just completed the quick-start instructions, the base URL at which LedgerSMB is accessible is http://localhost:5762 (If you have a full production setup, you shouldn't need the port indicator [the ":5762" part]). There are two URLs (entry-points) you can use to access the application:</p> <ul> <li>/setup.pl [full URL: http://localhost:5762/setup.pl ]</li> <li>/login.pl [full URL: http://localhost:5762/login.pl ]</li> </ul> <p>The two entry points each serve their own purpose: setup.pl is the main tool for the database admin (lsmb_dbadmin); it serves to create new companies, create copies of companies, add users to companies and reset user's passwords. login.pl provides access to all other types of users.</p> <h2>Creating the first company</h2> <p>After browsing to setup.pl, the browser should show:</p> <p><img alt="Setup login screen" data-entity-type="file" data-entity-uuid="8e63bc73-d413-42b4-a37a-1dcc2ec9caaf" src="/sites/default/files/inline-images/2021-08-28_16-16.png" width="572" height="410" loading="lazy" /></p> <p>In case the screen only shows the "Database" field, this indicates problems with JavaScript not having loaded correctly. Fill out the fields as follows:</p> <ul> <li>Super-user login: <em>lsmb_dbadmin</em></li> <li>Password: <em>&lt;the password used in the installation&gt;</em></li> <li>Database: <em>testcompany</em></li> </ul> <p>Confirm the screen by clicking "Create". When the server is done creating the database for the company, a new screen will be returned. This can take up to 20 seconds.</p> <p>The resulting screen shows:</p> <p><img alt="Chart of account selection (step 1: country)" data-entity-type="file" data-entity-uuid="075f0173-f7a4-4897-ae05-1e7e47748fa1" src="/sites/default/files/inline-images/2021-08-28_16-17.png" width="1895" height="362" loading="lazy" />Click "Skip" in order to skip loading a pre-defined Chart of Accounts. Select a country code and click Next to list the pre-defined charts of accounts.</p> <p>The resulting screen then shows a list of available Charts of Accounts:</p> <p><img alt="Chart of accounts selection step 2 (country-chart &amp; gifi selection)" data-entity-type="file" data-entity-uuid="336440d8-6bfe-457f-8bc2-8ad9ccf76350" src="/sites/default/files/inline-images/2021-08-28_16-18.png" width="1906" height="329" loading="lazy" /></p> <p>The screen above isn't shown when "Skip" was selected in the step before. Clicking "Skip" in this screen skips loading a pre-defined chart of accounts.</p> <p>Regardless of whether CoA loading was skipped or performed, the following screen will be presented:</p> <p><img alt="Selection of templates for printed documents (invoices, etc.)" data-entity-type="file" data-entity-uuid="15150b01-2bed-4c48-9e82-f9a4e4162607" src="/sites/default/files/inline-images/2021-08-28_16-19.png" width="1920" height="217" loading="lazy" /></p> <p>Select 'demo' templates for use with LaTeX; select 'xedemo' templates for use with XeLaTeX (which has better support for UTF-8 / accented characters and non-latin character sets). The exact choice made in this step is not highly important: templates can later be changed by loading new ones into the database. After confirming the selection by clicking "Load Templates", the following screen shows:</p> <p><img alt="Creation of the first user" data-entity-type="file" data-entity-uuid="0c9f2c6f-b492-4c79-9fc5-c62ece65b660" src="/sites/default/files/inline-images/2021-08-28_16-20.png" width="1920" height="464" loading="lazy" /></p> <p>With this screen, the first user for this company gets created. There are two modes:</p> <ul> <li>Import (Yes): Assumes the username already exists in the database (e.g. because it is already used for another company; re-uses the existing username+password)</li> <li>Create (No): Assumes the username does <em>not</em> already exist; will create a new username</li> </ul> <p>The "Assign Permissions" selection determines the rights assigned to the user:</p> <ul> <li>"Full Permissions": The user may perform <em>any</em> task in the application</li> <li>"Manage Users": The user has just enough rights to create new users who have appropriate rights</li> </ul> <p>For the purpose of this quick-start guide, enter the following details:</p> <ul> <li>Username: <em><strong>first_user</strong></em></li> <li>Password: <em><strong>first_user</strong></em></li> <li>Import: <em><strong>No</strong></em></li> <li>Salutation: <em><strong>Mr</strong></em></li> <li>First Name: <em><strong>First</strong></em></li> <li>Last Name: <em><strong>User</strong></em></li> <li>Employee Number: <em><strong>1</strong></em></li> <li>Date of Birth: <em>(today's date)</em></li> <li>Tax ID/SSN: <strong><em>1</em></strong></li> <li>Country: <em>(your country)</em></li> <li>Assign Permissions: <em><strong>Full Permissions</strong></em></li> </ul> <p>After confirming these data by clicking the "Create User" button, the following screen shows:</p> <h2><img alt="Confirmation of database creation (completed)" data-entity-type="file" data-entity-uuid="926c3ddb-36a2-4ab5-b313-27f71694e029" src="/sites/default/files/inline-images/2021-08-28_16-21.png" width="1920" height="539" loading="lazy" />First user login</h2> <p>The "Start Using LedgerSMB" link opens the main application login screen, which can be used to log in using the initial user created above:</p> <p><img alt="Application login" data-entity-type="file" data-entity-uuid="96a23e98-69eb-4c02-bbaa-53bbbb4b998c" src="/sites/default/files/inline-images/2021-08-28_16-22.png" width="410" height="478" loading="lazy" /></p> <p>Confirming login results in the following page*:</p> <p><img alt="Initial application screen" data-entity-type="file" data-entity-uuid="3ae71dd8-b11d-4f38-9103-87308d00f041" src="/sites/default/files/inline-images/2021-08-28_16-22_1.png" width="815" height="448" loading="lazy" /></p> <p>* Note that the picture shows company name "test", but when succinctly following the instructions, it should show "testcompany".</p> <h2>Database administration of first company</h2> <p>Once the <em>testcompany</em> has been created, it can be logged into through setup.pl as well as through login.pl. When logging in through setup.pl, the following screen with database administration functions shows:</p> <h2><img alt="Database management console (setup.pl)" data-entity-type="file" data-entity-uuid="645310e2-cba5-4e3c-9e4c-8bdeee55d85d" src="/sites/default/files/inline-images/2021-08-28_16-23.png" width="1182" height="544" loading="lazy" />What's next?</h2> <p>The system is now set up for evaluation and testing. The project has multiple channels to contact other users or the developers. Read all about that on the <a href="http://ledgersmb.org/project-resources">community project resources</a> page.</p> <p>Any comments as to this specific article? Please <a href="http://ledgersmb.org/user/register">sign up</a> to the site and leave your comments below!</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>ehu</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 08/28/2021 - 06:59</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/152" hreflang="en">Draft (148</a></div> </div> </div> <div class="field field--name-field-release field--type-entity-reference field--label-above"> <div class="field__label">Release</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/149" hreflang="en">1.9</a></div> </div> </div> <section class="field field--name-comment-node-article field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 28 Aug 2021 13:59:38 +0000 ehu 552 at https://ledgersmb.org 1.9 release notes https://ledgersmb.org/index.php/content/19-release-notes <span class="field field--name-title field--type-string field--label-hidden">1.9 release notes</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1>What's new and notable in LedgerSMB 1.9</h1> <ul> <li>Customer/Vendor drop-down on invoices searchable</li> <li>E-mailed documents stored in the database</li> <li>Searching open invoices for payment by customer/vendor name</li> <li>A new command line application for administrative tasks and automation</li> <li>"GIFI" selections are now hidden when no GIFI is configured</li> <li>Replace "Ignore Year-ends" with opening or closing balances on balance sheet report</li> <li>Mailing of aging reports</li> <li>'Update' no longer clobbers saved invoices and transactions</li> <li>Optimized HTML and JavaScript responses for faster page loading</li> </ul> <h1>New features</h1> <h2>Mailing of aging reports</h2> <p>Versions of LedgerSMB up to and including 1.4 had a function to mail aging reports to customers. With the release of 1.5, this functionality was accidentally removed: forgotten to be implemented in the refactoring of the last reporting functionalities being moved to "the new reporting framework". This was in 2016. Finally, this function has been <em><strong>added back</strong></em> into LedgerSMB as of the 1.9 release.</p> <h2>Customer/Vendor drop-down on invoices (and transactions) searchable</h2> <p>The customer/vendor selection drop-down on AR/AP transactions and invoices has been replaced with an input element which filters available names based on input entered. Before, there was a regular drop-down listing a fixed list of choices. However, when the number of customers gets too big, that's an impractical way of selecting a customer or vendor. Therefore, another input selection mechanism was available where a regular textbox was used to search the desired customer/vendor on 'Update'. This new feature provides good middle ground. If your database is configured to use the regular textbox, entering a high enough number in the "Max per drop-down" setting in the "System &gt; Defaults" screen enables this new functionality (for drop-downs no larger than the specified number of items).</p> <h2>E-mailed documents stored in the database</h2> <p>Invoices and aging reports, when mailed, are now stored in the database. This provides the opportunity to download the documents for inspection from the e-mail entry screen as well as that it serves as an archive of what has been sent to whom. In the past, there was no way to check emails having been sent, other than by including oneself as a Bcc recipient.</p> <h2>Searching open invoices for bulk payment by customer/vendor name</h2> <p>This release adds the option to select invoices offered for payment in the bulk-payment screen by vendor/customer name in addition to the (existing) option to select invoices by vendor/customer number.</p> <h2>A new command line application for administrative tasks and automation</h2> <p>A new command line application "ledgersmb-admin" offers the ability to run a number of administrative commands from the command line (instead of from "setup.pl"). The following commands have been implemented so far:</p> <ul> <li>Database management commands <ul> <li>backup<br /> creates backups of a database</li> <li>copy<br /> creates copies of a database</li> <li>create<br /> creates a new database, optionally with configuration and a user</li> <li>destroy<br /> removes a database</li> <li>rename<br /> renames a database, while retaining access rights for existing users</li> <li>restore<br /> restores a database from a backup file created with the "backup" command</li> <li>upgrade<br /> upgrades a database's schema and stored procedures for a new application version</li> </ul> </li> <li>Company management commands <ul> <li>template<br /> imports, exports and lists templates in a company</li> </ul> </li> </ul> <p>More commands are expected to be available on 1.10 or later.</p> <h2>Replace "Ignore Year-ends" with opening or closing balances on balance sheet report</h2> <p>Before this release, there was an option to either include or ignore "year ends" when running the balance sheet report. This type of input was deemed too technical: the actual question the application was trying to ask was whether the user is trying to run an opening or a closing balance at the given date. Exactly <em>how</em> the application achieves that, is an implementation detail that involves date calculus and in-/exclusion of "year ends". These technicalities have now been hidden from the user.</p> <p>The Income Statement and Trial balance report have been aligned to reconcile with the "Closing balance" report (the default) of the balance sheet: both reports run from the opening balance of the start date to the closing balance of the end date.</p> <h1>Notable changes</h1> <h2>'Update' no longer clobbers saved invoices and transactions</h2> <p>For a long time the function has existed in LedgerSMB whereby a user can save a transaction in order to store it and either work on it later, or post it later. The function has been broken for quite a while due to the fact that clicking "Update" on a saved transaction (or invoice) would restore the transaction to its saved state - undoing all work done on the saved transaction to prepare it for posting. Technically, it was a complex task to prevent the entered data from being reverted to the original state, but the 1.9 release finally fixes this issue which was filed in 2015.</p> <h2>Optimized HTML and JavaScript responses for faster page loading</h2> <p>Extensive research has been performed on what determined the response times for HTML pages. Many small code changes were implemented to speed up page response times, shaving off some 30% of the response time of a huge GL search report.</p> <p>Additionally, a lot of research went into finding ways to reduce the size of the JavaScript files being used by the application as well as reducing the number of requests to load these files into the browser. As a result, LedgerSMB now uses <a href="https://webpack.js.org/guides/installation/">Webpack</a> to process JavaScript source files from our own project, <a href="https://dojotoolkit.org/">Dojo Toolkit</a> and JS dependencies from NPM. Further research to increase JS performance is on-going, even after the 1.9 release, all in terms of number of dependencies, code size and execution speed.</p> <h2>"GIFI" selections are now hidden when no GIFI is configured</h2> <p>Most installations don't need GIFI codes for their accounts: it's a canadian coding system required by law to support government reporting. Often, it's being used for alternative reporting classifications for companies outside of Canada. When neither is the case, GIFI would be offered as a search delimiter in many places. Now, GIFI input boxes are being suppressed when no GIFI is configured for the company. As soon as a single GIFI code is configured, the codes will show in the UI again.</p> <h1>Other user-visible changes</h1> <ul> <li>The list of country names in the preferences screen is now translated to the selected language</li> <li>The invoice entry screen now links to the customer/vendor screen with the customer/vendor preselected</li> <li>Faster calculation of the balance sheet report</li> <li>Faster population of the list of currencies (applies to all screens with a currency drop-down)</li> <li>All non-required drop-downs now contain an empty value that can be selected to undo the selection of a non-empty value</li> <li>Orders and invoices show history: e.g. saving, posting, printing and mailing</li> <li>Improved error reporting and handling on failure with Print buttons</li> <li>E-mailed invoices generated based on the data in the database instead of the data visible (and editable!) on-screen ensuring consistency between invoice and stored data</li> </ul> <h1>Known problems</h1> <p> </p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>ehu</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sun, 08/22/2021 - 06:58</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/145" hreflang="en">Release notes</a></div> </div> </div> <div class="field field--name-field-release field--type-entity-reference field--label-above"> <div class="field__label">Release</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/149" hreflang="en">1.9</a></div> </div> </div> <section class="field field--name-comment-node-article field--type-comment field--label-hidden comment-wrapper"> </section> Sun, 22 Aug 2021 13:58:02 +0000 ehu 545 at https://ledgersmb.org Download https://ledgersmb.org/index.php/content/download <span class="field field--name-title field--type-string field--label-hidden">Download</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1>Maintained releases</h1> <p>The current stable release line is 1.8. For more information about older versions, see <a href="http://ledgersmb.org/faq/support/which-versions-do-you-support">the FAQ item about supported releases</a>. Versions 1.2 and older should no longer be used due to known security issues that cannot be resolved in that code base.</p> <h1>Official release distribution</h1> <div data-embed-button="file_browser" data-entity-embed-display="image:image" data-entity-type="file" data-entity-uuid="db4ffe70-23c4-48ef-8c9f-0405eb494751" class="align-left embedded-entity" data-langcode="und"> <img src="/sites/default/files/lsmb_0%20%281%29.jpg" /> </div> <p> The latest <strong>official release</strong> of LedgerSMB is always at <a href="http://download.ledgersmb.org/f/">download site</a>. Releases are signed with GPG to assert integrity. Our public GPG key can be found on <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x39A629558DA0AF10">MIT's key server</a> or on <a href="http://pgpkeys.eu/pks/lookup?op=get&amp;search=0x39A629558DA0AF10">pgpkeys.eu</a>. <a href="https://ledgersmb.org/content/installing-ledgersmb-15">Install  </a>and <a href="https://ledgersmb.org/content/upgrading-ledgersmb-15">upgrade</a> info.</p> <p>You can verify the release with the command</p> <div class="geshifilter"><pre class="bash geshifilter-bash"><span class="co4">$ </span>gpg <span class="re5">--verify</span> ledgersmb-<span class="sy0">&lt;</span>version<span class="sy0">&gt;</span>.tar.gz.asc ledgersmb-<span class="sy0">&lt;</span>version<span class="sy0">&gt;</span>.tar.gz</pre></div> <h1>Docker images</h1> <p><img alt="Docker logo" data-entity-type="file" data-entity-uuid="fb9cc1b3-c021-4959-9ae7-8f6b4253a098" height="77" src="/sites/default/files/inline-images/small_v-trans_0.png" width="87" loading="lazy" class="align-left" />There are production level <a href="https://docs.docker.com/">Docker</a> images <a href="https://hub.docker.com/r/ledgersmb/ledgersmb/">available on the Docker hub</a>. New containers are released on every stable (1.9) and old-stable release. Docker images are around 200MB in size.</p> <p>The docker repository identifier is "ledgersmb/ledgersmb" with the "latest" tag always pointing to the most recent stable release, which is currently the most recent 1.9.x release. The "master" tag points to the most recent alpha or beta of the development version (1.10).</p> <h1>Distribution packages</h1> <div data-embed-button="file_browser" data-entity-embed-display="image:image" data-entity-type="file" data-entity-uuid="1d5cf6f4-3ed1-4df8-a1e4-309812de8639" class="align-left embedded-entity" data-langcode="und"> <img src="/sites/default/files/openlogo-nd-25_1.png" /> </div> <p> A <strong>Debian</strong> package is available in Debian v11 (stable, 'bullseye') and Debian v10 (oldstable, 'buster') but was <em>not</em> available in Debian v9 (Stretch, oldoldstable) due to problems with the Dojo dependency (which failed to build). Note that the current LedgerSMB version that is recommended for use is one in the 1.9.x series, which is not in Debian. We're working to get 1.8.x or 1.9.x packages into Debian.</p> <p>Newer packages than those distributed by Debian can be found in the <a href="https://apt.ledgersmb.org/">LedgerSMB APT</a> repository (along with their updated dependancies as necessary).</p> <div data-embed-button="file_browser" data-entity-embed-display="image:image" data-entity-type="file" data-entity-uuid="667831a5-e5bd-4c88-b4f4-a7888392a414" class="align-left embedded-entity" data-langcode="und"> <img src="/sites/default/files/ubuntu_0_1.png" /> </div> <p><strong> Ubuntu</strong> packages are available in the standard distributions based off of the Debian packages.</p> <p>Newer packages than those distributed in Ubuntu can be found in the <a href="https://launchpad.net/~ledgersmb/+archive/ubuntu/main/+packages">LedgerSMB PPA</a><a href="https://repo.ledgersmb.org/"> </a>repository.</p> <div data-embed-button="file_browser" data-entity-embed-display="image:image" data-entity-type="file" data-entity-uuid="83035d31-c255-4445-9a55-855637a29250" class="align-left embedded-entity" data-langcode="und"> <img src="/sites/default/files/rpm_logo1_0.png" /> </div> <p> <strong>RPM</strong> Packaging contributions solicited.</p> <div data-embed-button="file_browser" data-entity-embed-display="image:image" data-entity-type="file" data-entity-uuid="03989031-93cc-478e-bde5-816a93069d95" class="align-left embedded-entity" data-langcode="und"> <img src="/sites/default/files/freebsd_0.png" /> </div> <p><strong>FreeBSD</strong> Packaging contributions solicited</p> <div data-embed-button="file_browser" data-entity-embed-display="image:image" data-entity-type="file" data-entity-uuid="c371efe2-7772-4c1a-9600-76c376e8ba47" class="align-left embedded-entity" data-langcode="und"> <img src="/sites/default/files/ppuf_0_0.png" /> </div> <p> <strong>OpenBSD</strong> Packaging contributions solicited.</p> <div data-embed-button="file_browser" data-entity-embed-display="image:image" data-entity-type="file" data-entity-uuid="106c6ca2-81f6-4434-b470-75da3589fb42" class="align-left embedded-entity" data-langcode="und"> <img src="/sites/default/files/Virtualbox_logo_0.png" /> </div> <p><strong> Virtual Box</strong> No up-to-date images at this time.<contribute one=""></contribute></p> <h1>Keeping up with the latest developments</h1> <p>The latest 1.7.x, 1.8.x and 1.9.x are available directly from <strong>GitHub</strong> as a .zip file (it's not an official release, but has the latest fixes you may need) <a href="https://github.com/ledgersmb/LedgerSMB/archive/1.7.zip">1.7.x from GitHub</a>, <a href="https://github.com/ledgersmb/LedgerSMB/archive/1.8.zip">1.8.x from GitHub</a>, <a href="https://github.com/ledgersmb/LedgerSMB/archive/1.9.zip">1.9.x from GitHub</a>. Check the repository for the change log in <a href="https://github.com/ledgersmb/LedgerSMB/blob/1.9/Changelog">1.9.x from GitHub</a> or <a href="https://github.com/ledgersmb/LedgerSMB/blob/master/Changelog">the changes in bleeding edge ('master')</a>.</p> <p><strong>LedgerSMB public GPG key</strong><br /> The LedgerSMB GPG public key can be found on the<a href="http://pgp.mit.edu/"> MIT key server.</a>  Here is the <a href="http://pgp.mit.edu:11371/pks/lookup?op=get&amp;search=0x39A629558DA0AF10">direct link</a>.</p> <div id="cke_pastebin" style="position: absolute; top: 508.8px; width: 1px; height: 1px; overflow: hidden; left: -1000px;"> </div> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Anonymous (not verified)</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 04/01/2017 - 05:28</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/topic/installation" hreflang="en">Installation</a></div> </div> </div> <div class="field field--name-field-operating-system field--type-entity-reference field--label-above"> <div class="field__label">Operating system</div> <div class="field__items"> <div class="field__item"><a href="/index.php/operating-system/windows" hreflang="en">Windows</a></div> <div class="field__item"><a href="/index.php/operating-system/other" hreflang="en">Other</a></div> <div class="field__item"><a href="/index.php/operating-system/ios" hreflang="en">iOS</a></div> <div class="field__item"><a href="/index.php/operating-system/freebsd" hreflang="en">FreeBSD</a></div> <div class="field__item"><a href="/index.php/operating-system/linux" hreflang="en">Linux</a></div> <div class="field__item"><a href="/index.php/operating-system/centos" hreflang="en">CentOS</a></div> <div class="field__item"><a href="/index.php/operating-system/debian" hreflang="en">Debian</a></div> <div class="field__item"><a href="/index.php/operating-system/fedora" hreflang="en">Fedora</a></div> <div class="field__item"><a href="/index.php/operating-system/linux/gentoo" hreflang="en">Gentoo</a></div> <div class="field__item"><a href="/index.php/operating-system/redhat-enterprise-linux" hreflang="en">RedHat Enterprise Linux</a></div> <div class="field__item"><a href="/index.php/operating-system/linux/ubuntu" hreflang="en">Ubuntu</a></div> <div class="field__item"><a href="/index.php/operating-system/macos-x" hreflang="en">MacOS X</a></div> <div class="field__item"><a href="/index.php/operating-system/openbsd" hreflang="en">OpenBSD</a></div> <div class="field__item"><a href="/index.php/operating-system/android" hreflang="en">Android</a></div> </div> </div> <section class="field field--name-comment-node-page field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 01 Apr 2017 12:28:25 +0000 Anonymous 140 at https://ledgersmb.org Open Source ERP: accounting, invoicing and more https://ledgersmb.org/index.php/content/open-source-erp-accounting-invoicing-and-more <span class="field field--name-title field--type-string field--label-hidden">Open Source ERP: accounting, invoicing and more</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1>Mission</h1> <p><a href="/statement-direction-ledgersmb">The LedgerSMB project</a> provides small and mid-size businesses with open source <a href="https://en.wikipedia.org/wiki/Accounting_software">accounting software</a>: integrating invoicing, order processing, quotations and more (<a href="https://en.wikipedia.org/wiki/Enterprise_resource_planning">ERP</a>). LedgerSMB aims to provide a strong (multi-currency accounting) basis to build your business on -- without vendor lock-in.</p> <h1><span style="line-height: 36.4000015258789px;">Features</span></h1> <ul> <li>Sales (Invoices, Orders, Quotations)</li> <li>Receivables &amp; Payables</li> <li>General ledger</li> <li>Inventory management</li> <li>Fixed asset accounting &amp; depreciation</li> <li>Profit &amp; cost centers, departments, projects</li> <li>Output documents in PDF, HTML, CSV, Office formats</li> <li>Mail documents (e.g. invoices) from within the application</li> <li>Translatable to your language (comes with 45 languages)</li> <li><a href="http://ledgersmb.org/features">and more</a></li> </ul> <p>The fact that LedgerSMB is <a href="https://opensource.org/osd">open source</a> - meaning that the source code is freely available - makes it even more customizable and flexible.</p> <h1 style="line-height: 36.4px;">Use-cases</h1> <h2>By industry</h2> <p>While LedgerSMB will generally work in any industry for its basic accounting functionalities, it is known to have been deployed in the following types of businesses:</p> <ul> <li>Communications<br /> e.g. VOIP services</li> <li>Factoring<br /> i.e. invoicing of others</li> <li>(IT) Services<br /> e.g. Website design, IT Support, hourly services</li> <li>Financial services<br /> e.g. Investment firms</li> <li>Rental<br /> e.g. Housing rental, IT Hosting</li> <li>Retail<br /> e.g. Sewing necessities</li> <li>Trade<br /> e.g. Trading pet foods</li> </ul> <p>Many of these applications include integration with domain-specific applications to perform specific business functions.</p> <p>Next to the ones listed above, various manufacturing setups have been deployed, ranging from standard (batch based) mass production, to make-to-order one-time product configurations. The latter being supported by a custom developed product configuration plugin.</p> <h2>By country</h2> <p>Although the nature of open source projects makes it hard to know where our software is being used; however, the project is aware of installations in the <span class="mx_MTextBody mx_EventTile_content"><span class="mx_EventTile_body" dir="auto">US, Canada, EU (Netherlands, Hungary, Estonia, United Kingdom), Indonesia, Myanmar, Philippines, Hong Kong, Malaysia, Australia, Barbados and Colombia.</span></span></p> <p><span class="mx_MTextBody mx_EventTile_content"><span class="mx_EventTile_body" dir="auto">The software can run in a different language for each user. Also: documents (invoices, orders, etc) can be produced in selectable languages, different from the user's language.</span></span></p> <h1>Contributions</h1> <p>The project welcomes any and all contributions. With lots of areas which would benefit from more attention, we like to invite newcomers to read our <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="c8075f26-dba4-48f6-bf53-3702c418dbdd" href="/index.php/content/community-guide" title="Community guide">community guidelines</a> and start out simple. Good (and helpful!) starting points are <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="3fc7f2b0-0844-4ae0-868b-90b968686d0f" href="/index.php/community-guide/community-guide/translating" title="Translating">translation contributions</a> as well as reviewing our (beginners) documentation.</p> <h1 style="line-height: 36.4px;">Current versions</h1> <p>Our current stable version is <a href="https://github.com/ledgersmb/LedgerSMB/tree/1.9"><em><strong>1.9</strong></em></a> - initially released on Sep 24, 2021. This release has a wide variety of improvements and code cleanups: it features faster loading of pages, restored ability to mail aging reports regressed from 1.4, e-mailed documents (invoices, orders, etc) being stored in the database and much more... More details about this release can be found in the <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="59544c34-caac-4ca5-9a28-97b5b6a1c8f1" href="/index.php/content/19-release-notes" title="1.9 release notes">release notes</a>. This release will see its End-Of-Life for community support at <strong>Sep 24, 2023</strong>.</p> <p>Our old stable version is <a href="https://github.com/ledgersmb/LedgerSMB/tree/1.8"><em><strong>1.8</strong></em></a> - initially released on Sep 04, 2020. This release has a wide variety of improvements and code cleanups: it features faster loading of the menu, fixed migrations from 1.2, the ability to upload a logo into the database and include it in printed documents and much more... More details about this release can be found in the <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="ff891fb8-f65b-486c-a374-1510c5c24975" href="/index.php/content/18-release-notes" title="1.8 release notes">release notes</a>. This release will see its End-Of-Life for community support at <strong>Sep 04, 2022</strong>.</p> <p>Our current oldest supported version is <em><a href="https://github.com/ledgersmb/LedgerSMB/tree/1.7"><strong>1.7</strong></a></em> - initially released on Oct 04, 2019. This release focusses on improved support for foreign currency transactions, lifting the restriction of a single rate per currency per day; UI improved by showing both the functional and foreign currency amounts. Additionally, a lot of work has been spent on increasing the application stability through more rigorous testing and code cleanup. A full summary of the changes since 1.6 can be found in the release announcement. More details on this release can be found in the <a href="https://ledgersmb.org/content/17-release-notes">release notes</a>. This release will see its End-Of-Life for community support at <strong>Oct 04, 2022</strong>.</p> <h1>Older versions</h1> <p>Version <strong><em>1.6</em></strong> has been declared End-Of-Life on 2021, June 10th (released on June 10 2018). With 33 patch releases, we consider this version highly stable. Although there are more patch releases for 1.6 than thee are for 1.5, their size is on average smaller, attesting to the project's promise of delivering increasing software quality.</p> <p>Version <em><strong>1.5</strong></em> has been declared End-Of-Life on 2019, Dec 23rd (released on 2016-12-23). With 30 patch releases, we consider this version highly stable. We believe that the lower number of patch releases over a similar life-span as 1.4 is an indication of better stability of the initial 1.5.0 release. We conclude that the project is delivering on its promise of increasing stability of minor releases.</p> <p>Version <em><strong>1.4</strong></em> has been declared End-Of-Life on 2017, Sep 15th (released on 2014-09-15). With 42 patch releases, we consider this version highly stable.</p> <p>Version <em><strong>1.3</strong></em> has been declared End-Of-Life on 2015, Dec 23rd (released on 2011-10-11). With a total of 48 patch releases since the initial release in October 2011, we consider this version highly stable.</p> <p>Although their use is highly discouraged for both security reasons and data stability issues, older versions are still available for <a href="http://download.ledgersmb.org/f/Releases/">download</a>. When using LedgerSMB versions 1.2 or earlier, you should to do so in only in a highly restricted network environment.</p> <p>It's project policy to provide at least 24 months of community support for every 1.x release series; note that this policy was updated: releases 1.7 and earlier had 36 months community support. As such, there's no community support available for 1.5 or earlier LedgerSMB versions. Vendors may be willing to provide <a href="http://ledgersmb.org/topic/commercial-support">support or migration services</a>.</p> <h1><a id="history" name="history"></a>History</h1> <p>LedgerSMB began in 2006 as a fork of the popular general ledger software package called <a class="ext" href="http://www.sql-ledger.com/" style="text-decoration: underline; ">SQL-Ledger</a> largely written and maintained by Dieter Simader since 1999. Versions 1.2 and earlier are heavily based on SQL-Ledger's code.<br /> As of 1.3 our codebase is quickly moving away from what we inherited.<br /> As of 1.5 our User Interface has moved to Dojo Javascript libraries providing a more dynamic feel.<br /> Some of the improvements that we've made to the code base so far include:</p> <ul> <li>Enhanced security</li> <li>More reports</li> <li>Better data integrity controls</li> <li>More code quality control measures</li> <li>Major code size reduction while growing functionality</li> <li>Unit testing Infrastructure to help ensure once an issue is fixed it stays fixed</li> <li>BDD (headless automated browser) Testing infrastructure</li> <li>A very large number of tests against both testing frameworks</li> </ul> <p>Travel in our history with Internet Archive and <a href="http://wayback.archive.org/web/*/http://www.ledgersmb.org">WayBackMachine</a>.</p> <p> </p> <p>Matrix support request ownership proof: ehuels@gmail.com</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Chris Travers</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 03/17/2007 - 23:08</span> <section class="field field--name-comment-node-page field--type-comment field--label-hidden comment-wrapper"> </section> Sun, 18 Mar 2007 06:08:41 +0000 Chris Travers 153 at https://ledgersmb.org Which versions do you support? https://ledgersmb.org/index.php/faq/which-versions-do-you-support <span class="field field--name-title field--type-string field--label-hidden">Which versions do you support?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>ehu</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sun, 12/30/2012 - 03:17</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1>Active support</h1> <p>Versions 1.7 and higher are under active development and are supported by the community. Planned end-of-life dates for current releases are:</p> <ul> <li>1.7: Planned End-of-life date: 2022-10-04 (released: 2019-10-04)</li> <li>1.8: Planned End-of-life date: 2022-09-04 (released 2020-09-04)</li> <li>1.9: Planned End-of-life date: 2023-09-24 (released 2021-09-24)</li> </ul> <h1 style="line-height: 36px;">End of life</h1> <p>If you're looking for help on how to use EOL-ed versions, please try mailing <a href="https://lists.ledgersmb.org/mailman/listinfo/users">the users mailing</a> list.<br /> If you're looking for someone to create bugfixes, please check with one of the parties providing <a href="http://ledgersmb.org/topic/commercial-support">commercial support</a> or for less urgent fixes <a href="https://github.com/ledgersmb/LedgerSMB/issues">LedgerSMB Issues</a></p> <p>Version 1.6 has been declared end-of-life on 2021-06-10. The last release in the series is 1.6.33. No further releases will be made by the community.</p> <p>Version 1.5 has been declared end-of-life on 2019-12-23. The last release in the series is 1.5.30. No further releases will be made by the community.</p> <p>Version 1.4 has been declared end-fo-life on 2017-09-16. The last release in the series is 1.4.42. No further releases will be made by the community.</p> <p>Version 1.3 has been declared end-of-life on 2015-12-23. The last release in the series is 1.3.47. No further releases will be made by the community.</p> <p>LedgerSMB versions 1.0, 1.1 and 1.2 won't be maintained any further due to the fact that there are some known security issues which can't be fixed.<!--break--></p> </div> <div class="field field--name-field-release field--type-entity-reference field--label-above"> <div class="field__label">Release</div> <div class="field__items"> <div class="field__item"><a href="/index.php/release/all-versions" hreflang="en">All Versions</a></div> <div class="field__item"><a href="/index.php/release/10" hreflang="en">1.0</a></div> <div class="field__item"><a href="/index.php/release/11" hreflang="en">1.1</a></div> <div class="field__item"><a href="/index.php/release/12" hreflang="en">1.2</a></div> <div class="field__item"><a href="/index.php/release/13" hreflang="en">1.3</a></div> <div class="field__item"><a href="/index.php/release/14" hreflang="en">1.4</a></div> <div class="field__item"><a href="/index.php/release/15" hreflang="en">1.5</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/142" hreflang="en">1.6</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/146" hreflang="en">1.7</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/147" hreflang="en">1.8</a></div> <div class="field__item"><a href="/index.php/taxonomy/term/149" hreflang="en">1.9</a></div> <div class="field__item"><a href="/index.php/release/20" hreflang="en">2.0</a></div> </div> </div> <div class="field field--name-field-faq-category field--type-entity-reference field--label-above"> <div class="field__label">FAQ Category</div> <div class="field__item"><a href="/index.php/faq-categories/support" hreflang="en">Support</a></div> </div> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/topics/support" hreflang="en">Support</a></div> <div class="field__item"><a href="/index.php/topics/security" hreflang="en">Security</a></div> <div class="field__item"><a href="/index.php/topics/end-life" hreflang="en">End Of Life</a></div> </div> </div> <section class="field field--name-comment-node-faq field--type-comment field--label-hidden comment-wrapper"> </section> Sun, 30 Dec 2012 11:17:51 +0000 ehu 217 at https://ledgersmb.org Upgrade to LedgerSMB 1.9 https://ledgersmb.org/index.php/content/upgrade-ledgersmb-19 <span class="field field--name-title field--type-string field--label-hidden">Upgrade to LedgerSMB 1.9</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1>Overview</h1> <p>Company database upgrades are supported all the way back from 1.4 directly to 1.9, using the 1.9 software. Company database upgrades from 1.3 and 1.2 are also supported, but due to the different nature of the upgrade process are called "migrations". The important difference being that when doing a migration, a copy of the data is being created in the 1.9 structure, while upgrades adjust the existing structure for 1.9. When upgrading from versions earlier than 1.8, please read the release notes and upgrade instructions and release notes of all the intermediate versions: these still apply but are not repeated here.</p> <p>Before starting, please remember:</p> <ul> <li>Create a backup</li> <li>Don't do this when you're in a hurry</li> <li>When running into problems, check out the "Support" page</li> </ul> <h1>Technical upgrade</h1> <p>Upgrading the software works the same as with prior versions. Please refer to <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="4685b86d-228f-422b-bbe2-dd4972cca35d" href="/index.php/content/upgrade-ledgersmb-18" title="Upgrade to LedgerSMB 1.8">the procedure to upgrade a tarball installation for 1.</a><a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="7fc47818-9b1b-429e-8dc9-1324df2aa367" href="/index.php/content/upgrade-ledgersmb-17-16-or-15" title="Upgrade to LedgerSMB 1.7 (from 1.6 or 1.5)">7</a> for the 1.9 upgrade. Be sure to install the <a href="https://github.com/ledgersmb/LedgerSMB/blob/1.9/Changelog#L74-L90">new and updated Perl module dependencies listed in the Changelog</a>. Also note that the Docker image definition contains <a href="https://github.com/ledgersmb/ledgersmb-docker/blob/1.9/Dockerfile#L30">a comprehensive list of Debian Buster package dependencies</a>.</p> <p><em>Especially note that the minimum versions for Perl and PostgreSQL have been updated. The minimum required <strong>Perl version is now 5.24</strong> and the minimum required <strong>PostgreSQL version is now 10</strong>. </em>(If you run Docker images, the Perl dependency is taken care of for you. The PostgreSQL dependency needs your attention.)</p> <p>Prior versions of LedgerSMB run fine against PostgreSQL, so there is no reason to combine the 1.9 upgrade with the upgrade of PostgreSQL: you could upgrade to PostgreSQL 10+ before upgrading LedgerSMB to 1.9.</p> <h2>Docker Compose upgrade</h2> <p>The docker compose infrastructure for all versions prior to 1.9 all used PostgreSQL 9.6. Since 1.9 requires at least PostgreSQL 10, the docker compose infrastructure has been upgraded to use PostgreSQL 12. Unfortunately, the docker container does not upgrade the database itself -- meaning you'll need to export your PostgreSQL databases using <a href="https://www.postgresql.org/docs/current/app-pg-dumpall.html">pg_dumpall</a> and restore it into the new database using <a href="https://www.postgresql.org/docs/current/app-pg-dumpall.html#APP-PG-DUMPALL-EX">psql as per the example</a>.</p> <p>(More comprehensive upgrade instructions are solicited; i.e. "help wanted".)</p> <h1>Company database upgrade</h1> <p>Technically, this process hasn't changed since 1.7 and <a data-entity-substitution="canonical" data-entity-type="node" data-entity-uuid="7fc47818-9b1b-429e-8dc9-1324df2aa367" href="/index.php/content/upgrade-ledgersmb-17-16-or-15" id="#upgrade-database" title="Upgrade to LedgerSMB 1.7 (from 1.6 or 1.5)">the instructions for 1.7</a> still apply.</p> <p>Each new LedgerSMB release has tightened the checks on validity of the data stored in the database. 1.9 continues on that path and adds yet more checks - this helps us find bugs and prevents undesirable data entering into the ledger. During the upgrade, existing data is checked against these new quality criteria and optionally offered for correction (or deletion, depending on the type of inconsistency).</p> <h2>Before you begin</h2> <ul> <li>Verify that all Reconciliation Reports have been either approved or deleted<br /> If you forget this step, the migration will offer to delete it for you; approval isn't supported during migration. Note that this does <em>not</em> refer to <em>transactions</em>; unapproved transactions can safely exist during upgrade.</li> <li>Create a backup</li> <li>Tell users not to use your system during upgrade</li> </ul> <h2><a id="after-upgrade" name="after-upgrade"></a>After the upgrade</h2> <p>&lt;No known items at the moment&gt;</p> <ul> </ul> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>ehu</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 08/28/2021 - 07:51</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/topics/upgrade" hreflang="en">Upgrade</a></div> <div class="field__item"><a href="/index.php/topic/installation" hreflang="en">Installation</a></div> </div> </div> <div class="field field--name-field-release field--type-entity-reference field--label-above"> <div class="field__label">Release</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/149" hreflang="en">1.9</a></div> </div> </div> <section class="field field--name-comment-node-article field--type-comment field--label-hidden comment-wrapper"> </section> Sat, 28 Aug 2021 14:51:53 +0000 ehu 554 at https://ledgersmb.org Installing LedgerSMB 1.8 https://ledgersmb.org/index.php/content/installing-ledgersmb-18 <span class="field field--name-title field--type-string field--label-hidden">Installing LedgerSMB 1.8</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h1>Installation from tarballs</h1> <p>This page contains the comprehensive version with the installation instructions for LedgerSMB 1.8 targetting a production installation <strong>from release tarballs</strong> and deals with these steps:</p> <ul> <li>Installing the LedgerSMB Perl module dependencies</li> <li>Configuring the PostgreSQL server</li> <li>Configuring a webserver</li> <li>Configuring LedgerSMB</li> </ul> <p>If you already have all of the above, please proceed to the <a href="http://ledgersmb.org/topic/preparing/preparing-ledgersmb-15-first-use">"Preparing for first use" guide</a>.</p> <p><!--break--></p> <p><em><strong>These are </strong></em><strong>not</strong><em><strong> the <a href="https://github.com/ledgersmb/LedgerSMB#quick-start">Quick start instructions</a>, but instructions for setting up a full production system. Also, please note that if you're in a position to use <a href="https://hub.docker.com/r/ledgersmb/ledgersmb/">LedgerSMB's Docker images</a>, or <a href="/node/140">packages for your Unix/Linux distribution</a>, using those will be far quicker and easier than following the instructions below.</strong></em></p> <p><em>Feel free to log in and share your experiences in the comments at the end of the article.</em></p> <h2><a>System requirements</a></h2> <p>Requirements are documented on the <a href="https://ledgersmb.org/content/system-requirements">system requirements page</a>.</p> <h3>Client</h3> <p>There are no specific requirements for LedgerSMB clients (web browsers) other than that they should be able to run recente enough (post-2017) JavaScript. In summary, a broad range of browsers is supported (Chrome, FireFox, Opera, ...), including Microsoft Edge.</p> <p>Browsers explicitly not supported are:</p> <ul> <li>Lynx</li> <li>w3m</li> <li>Internet Explorer</li> </ul> <h2>Unpacking the release tarball</h2> <p>According to the <a href="https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard">Filesystem Hierarchy Standard</a>, both /usr/local/ledgersmb and /opt/ledgersmb could be chosen as install locations. Unpack the tarball by running (as "root" user):</p> <pre> # tar xf ledgersmb-1.8.x.tar.gz --directory /usr/local/</pre> <h2><a>Installing the LedgerSMB Perl module dependencies</a></h2> <p>Please note that some distributions (e.g. Fedora) do not by default install <em>all</em> core modules, but rather, install a subset. LedgerSMB doesn't list core modules as dependencies as they should be available.</p> <p>The instructions below assume all dependencies will be installed from CPAN. It is however possible to install most modules from distribution repositories. The Docker image can be consulted for <a href="https://github.com/ledgersmb/ledgersmb-docker/blob/1.6/Dockerfile#L27-L56">an example</a>.</p> <p><code><strong># Installation of LedgerSMB Perl dependencies from CPAN</strong><br /> cpanm --quiet --notest --with-feature=starman --installdeps /usr/local/ledgersmb/</code></p> <p>Then, there are a number of features which need additional modules.<br /> The above command includes the Starman Feature which is required for most installations.<br /> The modules required for each feature can be installed by appending "--with-feature=&lt;feature-name&gt;" to the above command line.</p> <p>These features are supported:</p> <table> <thead> <tr> <th>Feature</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>latex-pdf-ps</code></td> <td>Enable PDF and PostScript output<br /> <em>Note</em>: In order to make use of this functionality, the server must also have 'latex' or 'xelatex' installed. On many distributions, these packages are called 'texlive-latex' and 'texlive-tetex' respectively.</td> </tr> <tr> <td><code>latex-pdf-images</code></td> <td>Image size detection for PDF output</td> </tr> <tr> <td><code>starman</code></td> <td>Starman Perl/PSGI (standalone) web server</td> </tr> <tr> <td><code>openoffice</code></td> <td>OpenOffice.org document output</td> </tr> <tr> <td><code>edi</code></td> <td>(EXPERIMENTAL) X12 EDI support</td> </tr> </tbody> </table> <p> </p> <p><code><strong># Installation of LedgerSMB Perl dependencies directly from CPAN<br /> # With Starman and PDF &amp; Postscript output</strong><br /> cpanm --quiet --notest --with-feature=starman --with-feature=latex-pdf-ps \<br /> --installdeps /usr/local/ledgersmb/</code></p> <h2><a>Configuring the PostgreSQL server</a></h2> <p>There are only two requirements for the PostgreSQL database server. This section instructs how to configure an pre-installed PostgreSQL installation to meet those requirements. It's assumed that the LedgerSMB server and PostgreSQL are being run on the same system. The requirements to meet are:</p> <ol> <li>A database administrator user (in PostgreSQL called a 'role') for creation and administration of LedgerSMB company databases</li> <li>Authorization setup so the database administrator can log into the database through LedgerSMB's 'setup.pl' program</li> </ol> <h3><a>Creating the company database administrator account</a></h3> <p>The database administrator user account needs to have at the bare minimum:</p> <ul> <li>The right to create databases (CREATEDB)</li> <li>The right to create roles (CREATEROLE)</li> <li>The right to log in (LOGIN)</li> <li>A password to authenticate logins</li> </ul> <p>The following command issued as root user, creates a user named "lsmb_dbadmin" (which isn't a super user):</p> <p><code><code># su - postgres -c 'createuser -S -d -r -l -P lsmb_dbadmin'<br /> Enter password for new role: <strong>************</strong><br /> Enter it again: <strong>************</strong></code></code></p> <h3><a>Configuring database access rights</a></h3> <p>PostgreSQL takes its access configuration through a file called 'pg_hba.conf'. The location of this file may differ per distribution:</p> <ul> <li>Debian derivatives: /etc/postgresql/&lt;version&gt;/&lt;cluster&gt;/pg_hba.conf</li> <li>RedHat derivatives: /var/lib/pgsql/&lt;version&gt;/data/pg_hba.conf</li> </ul> <p>On most systems, this file has four effective lines:</p> <p><code>local   all             postgres                                peer<br /> local   all             all                                     peer<br /> host    all             all             127.0.0.1/32            peer<br /> host    all             all             ::1/128                 peer</code></p> <p>These lines mean that each system user can connect to the database system with an equally named database user; the connecting source doesn't make a difference: unix and TCP/IP sockets have the same configuration.</p> <p>The LedgerSMB software needs to be able to connect to the database system as 'lsmb_dbadmin' or as a LedgerSMB user, not as the user that runs the server process. The new content should look like:</p> <p><code>local   all             postgres                         peer<br /> local   all             all                              peer<br /> host    all             postgres         127.0.0.1/32     reject<br /> host    all             postgres        ::1/128      reject<br /> host    postgres,template0,template1   lsmb_dbadmin         127.0.0.1/32     md5<br /> host    postgres,template0,template1   lsmb_dbadmin         ::1/128      md5<br /> host    postgres,template0,template1   all          127.0.0.1/32     reject<br /> host    postgres,template0,template1   all          ::1/128      reject<br /> host    all             all             127.0.0.1/32     md5<br /> host    all             all             ::1/128          md5</code></p> <p>This configuration takes advantage of the fact that each connection method (unix sockets vs TCP/IP sockets/addresses) can be separately configured. While the default connection method of the 'psql' tool is to connect over the 'local' (unix socket method), the default connection method for LedgerSMB is to use 'localhost' (127.0.0.1/32 or ::1/128).</p> <p>The above configuration means that the user 'postgres' can't be used any longer to connect from 'localhost', no user can connect to the 'postgres' database through 'localhost' [reject] and all other combinations of users and database names need password authentication [md5].</p> <p>Notes:</p> <ol> <li>PostgreSQL matches the lines first to last and uses the first matching line, so <strong>the order of the lines is very importance</strong>.</li> <li>For more information about the pg_hba.conf configuration options, see the <a href="https://www.postgresql.org/docs/9.4/static/auth-pg-hba-conf.html">PostgreSQL pg_hba.conf documentation</a></li> <li>The databases 'template1' and 'template0' are system databases available in every cluster; this configuration blocks those for access from LedgerSMB as well.</li> </ol> <p>After reconfiguring pg_hba.conf, the PostgreSQL service needs to be restarted. this works with one of the following commands (depending on your distribution):</p> <p><code><strong># restarting postgresql service (as root)</strong><br /> # service postgresql restart<br /> <strong># - or -:</strong><br /> $ service postgresql-&lt;version&gt; restart</code></p> <p><a>Verifying database access</a></p> <p>To verify access for the database admin user 'lsmb_dbadmin', an accessible database - not named 'postgres', 'template0' or 'template1' - is required. On new installs, these are the only databases. So the next example creates one. Here's how to verify the setup:</p> <p><code><strong># Verify access configuration (run as root)</strong><br /> $ su - postgres -c 'createdb lsmb_access_test_db'<br /> $ psql -h localhost -U lsmb_dbadmin -d lsmb_access_test_db -c "select version()"<br /> PostgreSQL 9.6.3 &lt;--- this line indicates success("9.6.3" is just an example version number)<br /> $ su - postgres -c 'dropdb lsmb_access_test_db'</code></p> <p><a>Configuring a web server</a></p> <p>Regardless of your web server setup, configuration of an "application server" is required. The application server used with LedgerSMB can be any PSGI compatible server. The default application server is Starman, which is widely considered the fastest available. The Starman server process lives behind a <a href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a>. While Starman deals specifically with those HTTP requests which require "application logic", all other requests (mostly static content, such as images or CSS) are dealt with by the proxy.</p> <h3><a>Configuring the Starman application server</a></h3> <p>Depending on the distribution, a startup method must be installed; this can be one of:</p> <ul> <li>SysV init script</li> <li>Upstart configuration</li> <li>Systemd configuration</li> </ul> <p>At the time of writing, the only configuration that comes with LedgerSMB's tarball is the systemd configuration. The following common setup is required regardless of the system used to manage services on the target system.</p> <p>To support priviledge separation, the Starman server should be running as a user which meets these criteria:</p> <ul> <li>Not the same user as the web server</li> <li>Does not have write access to the LedgerSMB directories</li> </ul> <p>To that extent, identify an existing (unused) system user, or create one with this command:</p> <p><code><strong># create 'ledgersmb' user for Starman server to run</strong><br /> $ useradd -d /non-existent -r -U -c "LedgerSMB/Starman service system user" ledgersmb</code></p> <h4><a>Configuring systemd for Starman</a></h4> <p>In the directory conf/systemd/ from the tarbal, there is a preconfigured systemd service file, which needs to be copied into place. In case you decided to install dependencies into a local::lib, the service file needs to be edited to set a PERL5LIB environment variable before you can succesfully start the service.</p> <p><code><strong># 'copy' systemd service configuration, enable and start</strong><br /> $ sed -e "s#WORKING_DIR#$PWD#" conf/systemd/ledgersmb_starman.service \<br /> | sudo tee /etc/systemd/system/ledgersmb-starman.service</code><br /> <code>$ systemctl enable ledgersmb-starman<br /> $ service ledgersmb-starman start</code></p> <p>Note that the above assumes that the commands are being run from the root of the unpacked tarball. It also assumes that the tarball has been unpacked at its installation path.</p> <p>To verify that the service started up correctly, run:</p> <p><code><strong># verify that the Starman/LedgerSMB server started correctly</strong><br /> $ journalctl -u ledgersmb-starman.service --since="today" -l -e</code></p> <h3><a>Configuring a reverse proxy</a></h3> <p>For a quick test-run or demo setup running on localhost only, configuration of a proxy isn't mandatory. However, for a production setup with LedgerSMB being network or even web-exposed, it's ill-advised to run without the reverse proxy for - at least - the following reasons:</p> <ul> <li>The proxy can serve static content [much] more efficiently (performance)</li> <li>The proxy can support HTTP/2 which multiplexes requests (performance)</li> <li>The proxy guards Starman against public exposure (security)</li> <li>The proxy adds TLS (security)</li> </ul> <p>With TLS certificates being completely free these days through <a href="https://letsencrypt.org/">Let's Encrypt</a>, and only a few dollars for the simplest of certificates from commercial vendors, there's really no reason <em>not</em> to secure traffic to the server. Further documentation below assumes you have such a certificate. As for getting Let's Encrypt certificates, use their <a href="https://letsencrypt.org/getting-started/">Getting Started guide</a>.</p> <p>For simplicity, only the configuration of nginx as a reverse proxy is documented here.</p> <h4><a>Configuring nginx</a></h4> <p>The tarball contains an example virtual host configuration file to set up a reverse proxy with nginx. It needs to be included in the 'http { }' block in your nginx configuration. On Debian derived systems, this is done by copying the file to /etc/nginx/sites-available/ledgersmb.conf. On RedHat/Fedora derivatives, the copying goes to /etc/nginx/conf.d/ledgersmb.conf. After editing the file, replacing the following variables:</p> <ul> <li><working_dir> Same replacement as before</working_dir><br /></li> <li>SSL_CERT_FILE<br /> Should be where your certificate file is stored; probably /etc/certs/your_host.example.com.pem</li> <li>SSL_KEY_FILE<br /> Probably the same as the SSL_CERT_FILE, but with '.key' extension</li> <li>YOUR_SERVER_NAME<br /> If nothing else, should be replaced by the output of the command 'hostname -f'</li> </ul> <p>NOTE: by default snakeoil certificates will be used by at least our nginx sample config files.<br /> These certificates are locally created and will normally require your browser clients to override something before they can be used.</p> <p>On Debian derivatives, activate this file after it has been edited, using:</p> <p><code><strong># On Debian/Ubuntu/Mint activate the virtual host</strong><br /> $ ln -s /etc/nginx/sites-available/ledgersmb.conf /etc/nginx/sites-enabled/</code></p> <p>On RedHat/Fedora derivatives, no symlinking is necessary: the configuration is active immediately. Now, verify that the configuration is acceptable:</p> <p><code><strong># (Re)start nginx service to make nginx reconfigure itself and validate configuration</strong><br /> $ service nginx restart</code></p> <h2><a>Configuring LedgerSMB</a></h2> <p>The tarball has a default LedgerSMB configuration file conf/ledgersmb.conf.default. Install the configuration file with:</p> <p><code><strong># Install the default ledgersmb.conf configuration file</strong><br /> $ cp conf/ledgersmb.conf.default ledgersmb.conf</code></p> <p>That is it.</p> <p>In case the in-app e-mail feature is going to be used, check the values in the [mail] section and optionally adjust for the mail setup of the target system.</p> <h2>Next steps</h2> <p>Now follow the instructions in the <a href="http://ledgersmb.org/topic/preparing/preparing-ledgersmb-15-first-use">"Prepare LedgerSMB for first use" guide</a>.</p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>ehu</span></span> <span class="field field--name-created field--type-created field--label-hidden">Fri, 09/04/2020 - 11:34</span> <div class="field field--name-field-topic field--type-entity-reference field--label-above"> <div class="field__label">Topic</div> <div class="field__items"> <div class="field__item"><a href="/index.php/topic/installation" hreflang="en">Installation</a></div> </div> </div> <div class="field field--name-field-release field--type-entity-reference field--label-above"> <div class="field__label">Release</div> <div class="field__items"> <div class="field__item"><a href="/index.php/taxonomy/term/147" hreflang="en">1.8</a></div> </div> </div> <section class="field field--name-comment-node-article field--type-comment field--label-hidden comment-wrapper"> </section> Fri, 04 Sep 2020 18:34:36 +0000 ehu 484 at https://ledgersmb.org