mirror of
https://github.com/ledgersmb/ledgersmb-docker.git
synced 2025-10-14 08:10:30 -04:00
Compare commits
100 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
966c1fd043 | ||
|
ba98f4c5c0 | ||
|
20bd26798a | ||
|
f4bc2c874f | ||
|
0897045096 | ||
|
53ab84cbaa | ||
|
760c5c0138 | ||
|
8930ac395d | ||
|
1bbf65543b | ||
|
ba202372fa | ||
|
3197f4feab | ||
|
46a5386e54 | ||
|
6122921674 | ||
|
db957f3880 | ||
|
7e059e5dc1 | ||
|
421c153249 | ||
|
1f40452e92 | ||
|
98c38f998a | ||
|
6d3b30720c | ||
|
aa66d87e15 | ||
|
e06638b048 | ||
|
d71609cae1 | ||
|
8bc4fd8583 | ||
|
52fdf5b65e | ||
|
29abd11efd | ||
|
e9edcaf9ae | ||
|
3a74802fe1 | ||
|
1b9701511e | ||
|
1ff4cc42c3 | ||
|
26b679fe7d | ||
|
82e2dd4839 | ||
|
4cb2cad5c1 | ||
|
c5c0575c94 | ||
|
b4ed837573 | ||
|
fae1cd333e | ||
|
75f3dfd642 | ||
|
5afb58f246 | ||
|
a5d89bc9fe | ||
|
b8795c4811 | ||
|
b828cffad3 | ||
|
36bc6d5ffc | ||
|
59be4f4afa | ||
|
f898c2bb63 | ||
|
c2573f6a7e | ||
|
38ab58e93a | ||
|
d45d0a7182 | ||
|
d640f5e6a0 | ||
|
d7c3bd6038 | ||
|
9c2c5a20c6 | ||
|
ebb6a521ef | ||
|
058848a29a | ||
|
a0053b33b6 | ||
|
a5ca6aa894 | ||
|
c616d6f8ab | ||
|
f69a36a5d3 | ||
|
dbed029289 | ||
|
dfa82a63bf | ||
|
9353e8187f | ||
|
a1ea9d9895 | ||
|
0f8af754bd | ||
|
da48259b68 | ||
|
774e6ef6e2 | ||
|
0d8517ebc4 | ||
|
f7cfcc72ec | ||
|
847efed2d0 | ||
|
9d5b62b6bb | ||
|
e23e85fea8 | ||
|
c4a1a6f1cc | ||
|
90764650c5 | ||
|
795fdf3f95 | ||
|
6cceef46f6 | ||
|
e29aa14d57 | ||
|
a22ed7ac49 | ||
|
1f1df000b8 | ||
|
fe867c9925 | ||
|
9ff64318ab | ||
|
46ae598da0 | ||
|
1387c10fd1 | ||
|
cbb3a0d843 | ||
|
0e41af2b67 | ||
|
a30d23bbb6 | ||
|
e10bd36b80 | ||
|
1a56d1523d | ||
|
aa260dcec9 | ||
|
402f541a5e | ||
|
9499b6ffc1 | ||
|
d0384889a8 | ||
|
2d4bb886f8 | ||
|
8e3f80f65f | ||
|
cd29bd895f | ||
|
42e6eb783e | ||
|
09cf2e16b7 | ||
|
2a5dff2dd7 | ||
|
e2bf781058 | ||
|
1148c219ec | ||
|
e5c6072505 | ||
|
728840ce4c | ||
|
5f45abdf2d | ||
|
8afea54d65 | ||
|
326790de44 |
106
Dockerfile
106
Dockerfile
@@ -1,46 +1,88 @@
|
||||
FROM perl:5
|
||||
FROM debian:stretch-slim
|
||||
MAINTAINER Freelock john@freelock.com
|
||||
|
||||
# Build time variables
|
||||
ARG LSMB_VERSION="1.7.15"
|
||||
ARG LSMB_DL_DIR="Releases"
|
||||
|
||||
# Install Perl, Tex, Starman, psql client, and all dependencies
|
||||
RUN DEBIAN_FRONTENT=noninteractive && \
|
||||
apt-get update && apt-get -y install \
|
||||
libcgi-emulate-psgi-perl libcgi-simple-perl libconfig-inifiles-perl \
|
||||
libdbd-pg-perl libdbi-perl libdatetime-perl \
|
||||
libdatetime-format-strptime-perl libdigest-md5-perl \
|
||||
libfile-mimeinfo-perl libjson-xs-perl libjson-perl \
|
||||
# Without libclass-c3-xs-perl, performance is terribly slow...
|
||||
# Without libclass-accessor-lite-perl, HTML::Entities won't build from CPAN
|
||||
# libnet-cidr-lite-perl is a dependency for Plack::Builder::Conditionals
|
||||
# which is being installed from CPAN
|
||||
# libtest-requires-perl is a dependency of Module-Build-Pluggable-PPPort
|
||||
# on which HTML::Escape depends
|
||||
|
||||
# Installing psql client directly from instructions at https://wiki.postgresql.org/wiki/Apt
|
||||
# That mitigates issues where the PG instance is running a newer version than this container
|
||||
|
||||
# for Buster, add:
|
||||
# libhtml-escape-perl \
|
||||
# libplack-middleware-builder-conditionals-perl \
|
||||
# libplack-request-withencoding-perl \
|
||||
#libversion-compare-perl
|
||||
RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> /etc/apt/apt.conf && \
|
||||
mkdir -p /usr/share/man/man1/ && \
|
||||
mkdir -p /usr/share/man/man2/ && \
|
||||
mkdir -p /usr/share/man/man3/ && \
|
||||
mkdir -p /usr/share/man/man4/ && \
|
||||
mkdir -p /usr/share/man/man5/ && \
|
||||
mkdir -p /usr/share/man/man6/ && \
|
||||
mkdir -p /usr/share/man/man7/ && \
|
||||
DEBIAN_FRONTEND="noninteractive" apt-get update -q && \
|
||||
DEBIAN_FRONTEND="noninteractive" apt-get dist-upgrade -y -q && \
|
||||
DEBIAN_FRONTEND="noninteractive" apt-get -y -q install \
|
||||
wget ca-certificates gnupg \
|
||||
libcgi-emulate-psgi-perl libconfig-inifiles-perl \
|
||||
libdbd-pg-perl libdbi-perl libdata-uuid-perl libdatetime-perl \
|
||||
libdatetime-format-strptime-perl \
|
||||
libio-stringy-perl \
|
||||
libcpanel-json-xs-perl liblist-moreutils-perl \
|
||||
liblocale-maketext-perl liblocale-maketext-lexicon-perl \
|
||||
liblog-log4perl-perl libmime-base64-perl libmime-lite-perl \
|
||||
libmath-bigint-gmp-perl libmoose-perl libnumber-format-perl \
|
||||
liblog-log4perl-perl libmime-lite-perl libmime-types-perl \
|
||||
libmath-bigint-gmp-perl libmodule-runtime-perl libmoose-perl \
|
||||
libmoosex-nonmoose-perl libnumber-format-perl \
|
||||
libpgobject-perl libpgobject-simple-perl libpgobject-simple-role-perl \
|
||||
libpgobject-util-dbmethod-perl libplack-perl libtemplate-perl \
|
||||
libpgobject-type-bigfloat-perl libpgobject-type-datetime-perl \
|
||||
libpgobject-type-bytestring-perl libpgobject-util-dbmethod-perl \
|
||||
libpgobject-util-dbadmin-perl libplack-perl \
|
||||
libplack-middleware-reverseproxy-perl \
|
||||
libtemplate-perl libtext-csv-perl libtext-csv-xs-perl \
|
||||
libtext-markdown-perl libxml-simple-perl \
|
||||
libnamespace-autoclean-perl \
|
||||
libfile-find-rule-perl \
|
||||
libtemplate-plugin-latex-perl libtex-encode-perl \
|
||||
libmoosex-nonmoose-perl \
|
||||
libclass-c3-xs-perl libclass-accessor-lite-perl \
|
||||
libnet-cidr-lite-perl \
|
||||
texlive-latex-recommended \
|
||||
texlive-xetex \
|
||||
texlive-xetex fonts-liberation \
|
||||
starman \
|
||||
libopenoffice-oodoc-perl \
|
||||
postgresql-client \
|
||||
lpr \
|
||||
ssmtp
|
||||
|
||||
# Build time variables
|
||||
ENV LSMB_VERSION 1.5.5
|
||||
|
||||
# Install LedgerSMB
|
||||
RUN cd /srv && \
|
||||
curl -Lo ledgersmb-$LSMB_VERSION.tar.gz "http://downloads.sourceforge.net/project/ledger-smb/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fledger-smb%2Ffiles%2FReleases%2F$LSMB_VERSION%2F&ts=1483124209&use_mirror=superb-sea2" && \
|
||||
tar -xvzf ledgersmb-$LSMB_VERSION.tar.gz
|
||||
# https://sourceforge.net/projects/ledger-smb/files/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz/download && \
|
||||
|
||||
WORKDIR /srv/ledgersmb
|
||||
|
||||
# 1.5 requirements
|
||||
RUN cpanm --quiet --notest \
|
||||
ssmtp \
|
||||
lsb-release && \
|
||||
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
|
||||
(wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -) && \
|
||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
|
||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install postgresql-client && \
|
||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install git cpanminus make gcc libperl-dev && \
|
||||
wget --quiet -O /tmp/ledgersmb-$LSMB_VERSION.tar.gz "https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" && \
|
||||
tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
|
||||
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
|
||||
cpanm --notest \
|
||||
--with-feature=starman \
|
||||
--with-feature=latex-pdf-ps \
|
||||
--with-feature=openoffice \
|
||||
--installdeps .
|
||||
--installdeps /srv/ledgersmb/ && \
|
||||
apt-get purge -q -y git cpanminus make gcc libperl-dev && \
|
||||
apt-get autoremove -q -y && \
|
||||
apt-get autoclean -q && \
|
||||
rm -rf ~/.cpanm/ && \
|
||||
rm -rf /var/lib/apt/lists/* /usr/share/man/*
|
||||
|
||||
|
||||
WORKDIR /srv/ledgersmb
|
||||
|
||||
# master requirements
|
||||
|
||||
# Configure outgoing mail to use host, other run time variable defaults
|
||||
|
||||
@@ -71,8 +113,6 @@ RUN mkdir -p /tmp && \
|
||||
|
||||
# Internal Port Expose
|
||||
EXPOSE 5762
|
||||
# If ledgersmb.conf does not exist, www-data user needs to be able to create it.
|
||||
RUN chown www-data /srv/ledgersmb
|
||||
USER www-data
|
||||
|
||||
USER www-data
|
||||
CMD ["start.sh"]
|
||||
|
214
README.md
214
README.md
@@ -1,112 +1,216 @@
|
||||
# ledgersmb-docker
|
||||
|
||||
Dockerfile for LedgerSMB Docker image
|
||||
|
||||
This is a work in progress to make a docker image for running LedgerSMB. It should not be relied upon for production use!
|
||||
# Supported tags
|
||||
|
||||
# Supported tags and respective `Dockerfile` links
|
||||
|
||||
- `1.5.x`, `latest` - Latest release tarball from 1.5 branch
|
||||
- `1.4`, `1.4.x` - Latest tagged release of git 1.4 branch
|
||||
- `dev-master` - Master (1.6) branch from git, unstable, updated only on demand
|
||||
- `1.5` - Develop HEAD of 1.5 branch, updated only on demand
|
||||
- `1.8` - Preview version for the 1.8 branch
|
||||
- `1.7`, `1.7.x`, `latest` - Latest official release from 1.7 branch
|
||||
- `1.6`, `1.6.x` - Latest official release from 1.6 branch
|
||||
- `1.5`, `1.5.30` - Last official release from 1.5 branch
|
||||
- `1.4`, `1.4.42` - Last official release from 1.4 branch
|
||||
- `master` - Master branch from git, unstable
|
||||
|
||||
Containers supporting the development process are provided
|
||||
through the ledgersmb-dev-docker project. See https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started.
|
||||
|
||||
# What is LedgerSMB?
|
||||
The LedgerSMB project's priority is to provide an extremely capable yet user-friendly accounting and ERP solution to small to mid-size businesses in all locales where there is interest in using the software. The focus on small to mid-size businesses offers an opportunity to provide a positive user experience in ways which are not present in larger organizations. LedgerSMB ought to strive to be both the ideal SMB accounting/ERP package and also a solution that a start-up will never outgrow. The goals mentioned above will help us provide this ideal solution by allowing us to focus both on technical architecture and on user experience.
|
||||
|
||||
LedgerSMB is a user-friendly accounting and ERP solution for small to
|
||||
mid-size businesses. It comes with support for many languages and support
|
||||
for different locales.
|
||||
|
||||
The project aims to be the solution a start-up never outgrows.
|
||||
|
||||
|
||||
# How is this image designed to be used?
|
||||
|
||||
This Docker image is built to provide a self-contained LedgerSMB instance. To be functional, you need to connect it to a running Postgres installation. The official Postgres container will work as is, if you link it to the LedgerSMB instance at startup, or you can provide environment variables to an appropriate Postgres server.
|
||||
This image is designed to be used in conjunction with a running PostgreSQL
|
||||
instance (such as may be provided through a separate image).
|
||||
|
||||
LedgerSMB provides an http interface built on Starman out of the box, listening on port 5762. We do not recommend exposing this port, because we strongly recommend encrypting all connections using SSL/TLS. For production use, we recommend running a web server configured with SSL, such as Nginx or Apache, and proxying connections to LedgerSMB.
|
||||
This image exposes port 5762 running a Starman HTTP application server. We
|
||||
do recommend not exposing this port publicly, because
|
||||
|
||||
The other services you will need to put this in production are an SMTP gateway (set environment variables for SSMTP at container startup) and optionally a local print server (e.g. CUPS) installation. The print service is not currently supported in this Docker image, but pull requests are welcomed ;-)
|
||||
1. The Starman author recommends not exposing it
|
||||
2. We strongly recommend TLS encryption of all application traffic
|
||||
|
||||
While the exposed port can be used for quick evaluation, it's recommended
|
||||
to add the TLS layer by applying Nginx or Apache as reverse proxy.
|
||||
|
||||
Enabling optional functionalities such as outgoing e-mail and printing
|
||||
could require additional setup of a mail service or CUPS printer service.
|
||||
|
||||
# How to use this image
|
||||
|
||||
## Start a postgres instance
|
||||
This image can be installed either automatically with the Docker compose file
|
||||
or manually with docker only.
|
||||
|
||||
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
|
||||
## Docker-Compose installation and start
|
||||
|
||||
This image includes `EXPOSE 5432` (the postgres port), so standard container linking will make it automatically available to the linked containers. The default `postgres` user and database are created in the entrypoint with `initdb`.
|
||||
This image provides `docker-compose.yml` which can be used to pull related
|
||||
images, install them, establish an internal network for their communications,
|
||||
adjust environment variables, start and stop LedgerSMB. The only instructions
|
||||
required, after the optional edition of the file to adjust the environment
|
||||
variables, are:
|
||||
|
||||
> The postgres database is a default database meant for use by users, utilities and third party applications.
|
||||
> [postgresql.org/docs](http://www.postgresql.org/docs/9.3/interactive/app-initdb.html)
|
||||
```plain
|
||||
$ docker-compose pull
|
||||
$ docker-compose up
|
||||
```
|
||||
|
||||
## Start LedgerSMB
|
||||
This will set up two containers: (1) a PostgreSQL container with persistent
|
||||
storage which is retained between container updates and (2) a LedgerSMB
|
||||
container configured to connect to the PostgreSQL container as its database
|
||||
server.
|
||||
|
||||
docker run --name myledger --link some-postgres:postgres -d ledgersmb/ledgersmb
|
||||
The database username and password are:
|
||||
|
||||
## Set up LedgerSMB
|
||||
```plain
|
||||
username: postgres
|
||||
password: abc
|
||||
```
|
||||
|
||||
Visit http://myledger:5762/setup.pl (you can forward port 5762 to the host machine, or lookup the IP address for the "myledger" container if running on localhost)
|
||||
From here, follow the steps as detailed in the instructions for
|
||||
[preparing for first use](https://ledgersmb.org/content/preparing-ledgersmb-17-first-use).
|
||||
|
||||
Log in with the "postgres" user and the password you set when starting up the Postgres container, and provide the name of a company database you want to create.
|
||||
## Manual installation
|
||||
|
||||
Once you have completed the setup, you have a fully functional LedgerSMB instance running!
|
||||
This section assumes availability of a PostgreSQL server to attach to the
|
||||
LedgerSMB image as the database server.
|
||||
|
||||
Visit http://myledger:5762/login.pl to log in and get started.
|
||||
### Start LedgerSMB
|
||||
|
||||
```plain
|
||||
$ docker run -d -p 5762:5762 --name myledger \
|
||||
-e POSTGRES_HOST=<ip/hostname> ledgersmb/ledgersmb:latest
|
||||
```
|
||||
|
||||
This command maps port 5762 of your container to port 5762 in your host. The
|
||||
web application inside the container should now be accessible through
|
||||
http://localhost:5762/setup.pl and http://localhost:5762/login.pl.
|
||||
|
||||
Below are more variables which determine container configuration,
|
||||
like `POSTGRES_HOST` above.
|
||||
|
||||
# Set up LedgerSMB
|
||||
|
||||
* Visit http://myledger:5762/setup.pl.
|
||||
* Log in with the "postgres" user and the password `abc` as given above -
|
||||
or with the credentials of your own database server in case of a manual
|
||||
setup - and provide the name of a company (= database name) you want to
|
||||
create.
|
||||
* Go over the steps presented in the browser
|
||||
|
||||
Once you have completed the setup steps, you have a fully functional
|
||||
LedgerSMB instance running!
|
||||
|
||||
Visit http://localhost:5762/login.pl to log in and get started.
|
||||
|
||||
# Updating the LedgerSMB container
|
||||
|
||||
No persistant data is stored in the LedgerSMB container. All LedgerSMB data is stored in Postgres, so you can stop/destroy/run a new LedgerSMB container, and as long as you link it to the Postgres database, you should be able to pick up where you left off.
|
||||
No persistant data is stored in the LedgerSMB container.
|
||||
|
||||
All LedgerSMB data is stored in Postgres, so you can stop/destroy/run a
|
||||
new LedgerSMB container as often as you want.
|
||||
|
||||
# Environment Variables
|
||||
|
||||
The LedgerSMB image uses several environment variables which are easy to miss. While none of the variables are required, they may significantly aid you in using the image.
|
||||
The LedgerSMB image uses several environment variables. They are all optional.
|
||||
|
||||
### `POSTGRES_HOST` = 'postgres'
|
||||
|
||||
This environment variable is used to specify the hostname of the Postgres server. The default is "postgres", which will find the container linked in.
|
||||
## `POSTGRES_HOST`
|
||||
|
||||
If you set this to another hostname, LedgerSMB will attempt to connect to that hostname instead.
|
||||
Default: postgres
|
||||
|
||||
## `POSTGRES_PORT` = 5432
|
||||
Specifies the hostname of the PostgreSQL server to connect to. If you use
|
||||
a PostgreSQL image, set it to the name of that image.
|
||||
|
||||
Port to connect to Postgres on. Use to connect to a Postgres server running on an alternate port.
|
||||
## `POSTGRES_PORT`
|
||||
|
||||
## `DEFAULT_DB` = lsmb
|
||||
Default: 5432
|
||||
|
||||
Set this if you want to automatically log in to a particular LSMB database.
|
||||
Port on which the PostgreSQL server is running.
|
||||
|
||||
### `SSMTP_ROOT` `SSMTP_MAILHUB` `SSMTP_HOSTNAME` `SSMTP_USE_STARTTLS` `SSMTP_AUTH_USER` `SSMTP_AUTH_PASS` `SSMTP_METHOD` `SSMTP_FROMLINE_OVERRIDE`
|
||||
## `DEFAULT_DB`
|
||||
|
||||
Default: lsmb
|
||||
|
||||
Set this if you want to automatically log in to a particular LedgerSMB database
|
||||
without needing to enter the name of that database on the login.pl login screen.
|
||||
|
||||
## `LSMB_WORKERS`
|
||||
|
||||
Default: 5
|
||||
|
||||
Set this if you want to run in a memory-constrained environment. E.g. set it to
|
||||
2 when running in a 1 GB memory setup. Please do note that this may adversely
|
||||
affect the performance experience of users.
|
||||
|
||||
## Mail configuration
|
||||
|
||||
### Before 1.8.0
|
||||
|
||||
These variables are used to set outgoing SMTP defaults.
|
||||
|
||||
* `SSMTP_ROOT` (config: `Root` -- DEPRECATED)
|
||||
* `SSMTP_MAILHUB` (config: `Mailhub`)
|
||||
* `SSMTP_HOSTNAME` (config: `Hostname`)
|
||||
* `SSMTP_USE_STARTTLS` (config: `UseSTARTTLS`)
|
||||
* `SSMTP_AUTH_USER` (config: `AuthUser`)
|
||||
* `SSMTP_AUTH_PASS` (config: `AuthPass`)
|
||||
* `SSMTP_AUTH_METHOD` (config: `AuthMethod` -- DEPRECATED)
|
||||
* `SSMTP_FROMLINE_OVERRIDE` (config: `FromLineOverride` -- DEPRECATED)
|
||||
|
||||
`SSMTP_MAILHUB` defaults to the default docker0 interface, so if your host is
|
||||
already configured to relay mail, this should relay successfully with only
|
||||
the root and hostname set.
|
||||
|
||||
Use the other environment variables to relay mail through a different host.
|
||||
Use the [ssmtp.conf man
|
||||
page](https://www.systutorials.com/docs/linux/man/5-ssmtp.conf/) to look up
|
||||
the meaning and function of each of the mail configuration keys.
|
||||
|
||||
### 1.8.0 and higher (under development)
|
||||
|
||||
As of 1.8.0, the image is based on Debian Buster instead of Debian Stretch;
|
||||
with Buster, the `ssmtp` program has been removed from Debian, this image
|
||||
had to change strategy. The main application always came with built-in e-mail
|
||||
yet with the deprecation, the abilities have expanded.
|
||||
|
||||
The following parameters are now supported to set mail preferences:
|
||||
|
||||
* `LSMB_MAIL_SMTPHOST`
|
||||
* `LSMB_MAIL_SMTPPORT`
|
||||
* `LSMB_MAIL_SMTPTLS`
|
||||
* `LSMB_MAIL_SMTPSENDER_HOSTNAME`
|
||||
* `LSMB_MAIL_SMTPUSER`
|
||||
* `LSMB_MAIL_SMTPPASS`
|
||||
* `LSMB_MAIL_SMTPAUTHMECH`
|
||||
|
||||
These variables are used to set outgoing SMTP defaults. To set the outgoing email address, set SSMTP_ROOT, and SSMTP_HOSTNAME at a minimum -- SSMTP_MAILHUB defaults to the default docker0 interface, so if your host is already configured to relay mail, this should relay successfully with only those two set.
|
||||
|
||||
Use the other environment variables to relay mail through another host.
|
||||
|
||||
# Troubleshooting/Developing
|
||||
|
||||
You can connect to a running container using:
|
||||
Currently the LedgerSMB installation is in /srv/ledgersmb
|
||||
and the startup & config script is /usr/bin/start.sh.
|
||||
|
||||
> docker exec -ti myledger /bin/bash
|
||||
|
||||
... this will give you a shell inside the container where you can inspect/troubleshoot the installation.
|
||||
|
||||
Currently the LedgerSMB installation is in /srv/ledgersmb, and the startup/config script is /usr/bin/start.sh.
|
||||
|
||||
|
||||
# Supported Docker versions
|
||||
|
||||
This image is officially supported on Docker version 1.11.1.
|
||||
|
||||
Support for older versions is provided on a best-effort basis.
|
||||
|
||||
# User Feedback
|
||||
|
||||
## Documentation
|
||||
|
||||
This is a brand new effort, and we will be adding documentation to the http://ledgersmb.org site when we get a chance.
|
||||
|
||||
## Issues
|
||||
|
||||
If you have any problems with or questions about this image or LedgerSMB, please contact us on the [mailing list](http://ledgersmb.org/topic/support/mailing-lists-rss-and-nntp-feeds) or through a [GitHub issue](https://github.com/ledgersmb/ledgersmb-docker/issues).
|
||||
If you have any problems with or questions about this image or LedgerSMB,
|
||||
please contact us on the [mailing list](http://ledgersmb.org/topic/support/mailing-lists-rss-and-nntp-feeds)
|
||||
or through a [GitHub issue](https://github.com/ledgersmb/ledgersmb-docker/issues).
|
||||
|
||||
You can also reach some of the official LedgerSMB maintainers via the `#ledgersmb` IRC channel on [Freenode](https://freenode.net), or on the bridged [Matrix](https://matrix.org) room in [#ledgersmb:matrix.org](https://matrix.to/#/#ledgersmb:matrix.org). The [Vector.im](https://vector.im/beta/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended.
|
||||
You can also reach some of the official LedgerSMB maintainers via the
|
||||
`#ledgersmb` IRC channel on [Freenode](https://freenode.net), or on the
|
||||
bridged [Matrix](https://matrix.org) room in [#ledgersmb:matrix.org](https://matrix.to/#/#ledgersmb:matrix.org).
|
||||
The [Riot.im](https://riot.im/app/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended.
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
|
||||
You are invited to contribute new features, fixes, or updates, large or small;
|
||||
we are always thrilled to receive pull requests, and do our best to process
|
||||
them as fast as we can.
|
||||
|
72
docker-compose.yml
Normal file
72
docker-compose.yml
Normal file
@@ -0,0 +1,72 @@
|
||||
# This docker-compose file creates one
|
||||
# compose 'project' consisting of two containers
|
||||
#
|
||||
# 1. The PostgreSQL data container
|
||||
# 2. The LedgerSMB application container
|
||||
#
|
||||
# LedgerSMB persists all its data in the database,
|
||||
# so no special care needs to be taken on
|
||||
# container upgrades. With PostgreSQL, data is
|
||||
# persisted across upgrades by the use of a
|
||||
# special 'dbdata' volume
|
||||
|
||||
version: "3.2"
|
||||
services:
|
||||
# Note that the container needs to be named "postgres" here,
|
||||
# because that allows us to use the default hostname ("postgres")
|
||||
# from the LedgerSMB configuration
|
||||
postgres:
|
||||
image: postgres:9.6-alpine
|
||||
environment:
|
||||
# Replace the password below for a secure setup
|
||||
POSTGRES_PASSWORD: abc
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
networks:
|
||||
- internal
|
||||
volumes:
|
||||
- "pgdata:/var/lib/postgresql/data"
|
||||
lsmb:
|
||||
depends_on:
|
||||
- postgres
|
||||
image: ledgersmb/ledgersmb:1.7
|
||||
networks:
|
||||
- internal
|
||||
- default
|
||||
# Uncomment the 'ports' section to map the LedgerSMB container port (5762)
|
||||
# to the host's port of the same number, thus making LedgerSMB
|
||||
# available on http://<host-dns-or-ip>:5762/
|
||||
# SECURITY NOTE: Do this for evaluation purposes only!
|
||||
# In production, be sure to use SSL/TLS to protect user's passwords
|
||||
# and other sensitive data
|
||||
# ports:
|
||||
# - "5762:5762"
|
||||
environment:
|
||||
# The LSMB_WORKERS environment variable lets you select the number
|
||||
# of processes serving HTTP requests. The default number of 2 workers
|
||||
# is geared toward limited-memory situations (1 GB). In order to
|
||||
# improve the performance experience, increase memory and the
|
||||
# number of workers
|
||||
#
|
||||
LSMB_WORKERS: 2
|
||||
#
|
||||
#
|
||||
# SSMTP_ROOT:
|
||||
# SSMTP_HOSTNAME:
|
||||
# SSMTP_MAILHUB:
|
||||
# SSMTP_AUTH_USER:
|
||||
# SSMTP_AUTH_PASS:
|
||||
# SSMTP_AUTH_METHOD:
|
||||
# SSMTP_USE_STARTTLS:
|
||||
# SSMTP_FROMLINE_OVERRIDE:
|
||||
|
||||
# having the dbdata volume is required to persist our
|
||||
# data between PostgreSQL container updates; without
|
||||
# that, the data is contained in the same volume as
|
||||
# the rest of the image and on update/upgrade, the
|
||||
# data will be lost.
|
||||
volumes:
|
||||
pgdata:
|
||||
|
||||
|
||||
networks:
|
||||
internal:
|
48
start.sh
48
start.sh
@@ -4,32 +4,30 @@ update_ssmtp.sh
|
||||
cd /srv/ledgersmb
|
||||
|
||||
if [[ ! -f ledgersmb.conf ]]; then
|
||||
cp conf/ledgersmb.conf.default ledgersmb.conf
|
||||
sed -i \
|
||||
-e "s/\(cache_templates = \).*\$/cache_templates = 1/g" \
|
||||
-e "s/\(host = \).*\$/\1$POSTGRES_HOST/g" \
|
||||
-e "s/\(port = \).*\$/\1$POSTGRES_PORT/g" \
|
||||
-e "s/\(default_db = \).*\$/\1$DEFAULT_DB/g" \
|
||||
-e "s%\(sendmail = \).*%\1/usr/sbin/ssmtp%g" \
|
||||
/srv/ledgersmb/ledgersmb.conf
|
||||
cat <<EOF >/tmp/ledgersmb.conf
|
||||
[main]
|
||||
cache_templates = 1
|
||||
|
||||
[database]
|
||||
host = $POSTGRES_HOST
|
||||
port = $POSTGRES_PORT
|
||||
default_db = $DEFAULT_DB
|
||||
|
||||
[mail]
|
||||
sendmail = /usr/sbin/ssmtp
|
||||
|
||||
EOF
|
||||
export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf'
|
||||
fi
|
||||
|
||||
# Currently unmaintained/untested
|
||||
# if [ ! -z ${CREATE_DATABASE+x} ]; then
|
||||
# perl tools/dbsetup.pl --company $CREATE_DATABASE \
|
||||
# --host $POSTGRES_HOST \
|
||||
# --postgres_password "$POSTGRES_PASS"
|
||||
#fi
|
||||
|
||||
# Needed for modules loaded by cpanm
|
||||
export PERL5LIB
|
||||
for PerlLib in /usr/lib/perl5* /usr/local/lib/perl5*/site_perl/* ; do
|
||||
[[ -d "$PerlLib" ]] && {
|
||||
PERL5LIB="$PerlLib";
|
||||
echo -e "\tmaybe: $PerlLib";
|
||||
}
|
||||
done ;
|
||||
echo "Selected PERL5LIB=$PERL5LIB";
|
||||
if [ ! -d "/tmp/ledgersmb" ]; then
|
||||
mkdir -p /tmp/ledgersmb
|
||||
fi
|
||||
|
||||
# start ledgersmb
|
||||
exec starman --port 5762 tools/starman.psgi
|
||||
# --preload-app allows application initialization to kill the entire
|
||||
# starman instance (instead of just the worker, which will immediately
|
||||
# get restarted); it also has a positive effect on memory use
|
||||
|
||||
exec starman --port 5762 --workers ${LSMB_WORKERS:-5} -I lib -I old/lib \
|
||||
--preload-app bin/ledgersmb-server.psgi
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
ConfiguredComment='# install script update_ssmtp.sh has configured ssmtp'
|
||||
grep -qc "$ConfiguredComment" /etc/ssmtp.conf && {
|
||||
grep -qc "$ConfiguredComment" /etc/ssmtp/ssmtp.conf && {
|
||||
echo "smtp configured."
|
||||
exit
|
||||
}
|
||||
|
Reference in New Issue
Block a user