mirror of
				https://github.com/ledgersmb/ledgersmb-docker.git
				synced 2025-10-22 04:00:30 -04:00 
			
		
		
		
	Compare commits
	
		
			62 Commits
		
	
	
		
			1.6.12
			...
			1.9.0-beta
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 236a25b767 | ||
|  | 943fa166e8 | ||
|  | a678ae39a0 | ||
|  | 3d12e4351d | ||
|  | ccd90f04a4 | ||
|  | 4d316f9019 | ||
|  | 71f876a253 | ||
|  | ab00872e02 | ||
|  | 483a1110ff | ||
|  | a2a625d193 | ||
|  | f10924cae9 | ||
|  | c13d20651c | ||
|  | 7771b8c03b | ||
|  | 1ba89cef50 | ||
|  | d7ad535199 | ||
|  | ac2553ea17 | ||
|  | 0205b40bd2 | ||
|  | 84130b47f3 | ||
|  | d27017e309 | ||
|  | f3420feb36 | ||
|  | 82445543de | ||
|  | 99a21f8e7d | ||
|  | 74aa2920da | ||
|  | 821d59fb79 | ||
|  | 409aeefd56 | ||
|  | 2608ff28bb | ||
|  | 9adee2d1ba | ||
|  | 89f9f5e449 | ||
|  | 77a6985f29 | ||
|  | f2a0c60b94 | ||
|  | b9c316569d | ||
|  | 907fc363af | ||
|  | 40ab4edab4 | ||
|  | dd6c18c5a6 | ||
|  | fe2ae210a2 | ||
|  | f8ef55726d | ||
|  | 05b8961242 | ||
|  | 385dd60c3f | ||
|  | 001e98ed38 | ||
|  | 1eb854f2d6 | ||
|  | 878111e7cd | ||
|  | 18980a353f | ||
|  | 46637422ee | ||
|  | ba202372fa | ||
|  | 3197f4feab | ||
|  | 46a5386e54 | ||
|  | 6122921674 | ||
|  | db957f3880 | ||
|  | 7e059e5dc1 | ||
|  | 421c153249 | ||
|  | 1f40452e92 | ||
|  | 98c38f998a | ||
|  | 6d3b30720c | ||
|  | aa66d87e15 | ||
|  | e06638b048 | ||
|  | d71609cae1 | ||
|  | 8bc4fd8583 | ||
|  | 52fdf5b65e | ||
|  | 29abd11efd | ||
|  | e9edcaf9ae | ||
|  | 3a74802fe1 | ||
|  | 1b9701511e | 
							
								
								
									
										134
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										134
									
								
								Dockerfile
									
									
									
									
									
								
							| @@ -1,22 +1,66 @@ | |||||||
| FROM        debian:stretch-slim |  | ||||||
| MAINTAINER  Freelock john@freelock.com |  | ||||||
|  |  | ||||||
| # Build time variables | # Build time variables | ||||||
| ENV LSMB_VERSION 1.6.4 |  | ||||||
|  | ARG SRCIMAGE=debian:bullseye-slim | ||||||
|  |  | ||||||
|  |  | ||||||
|  | FROM  $SRCIMAGE AS builder | ||||||
|  |  | ||||||
|  | ARG LSMB_VERSION="1.9.0-beta3" | ||||||
|  | ARG LSMB_DL_DIR="Beta Releases" | ||||||
|  | ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | RUN set -x ; \ | ||||||
|  |   DEBIAN_FRONTEND="noninteractive" apt-get -y update && \ | ||||||
|  |   DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \ | ||||||
|  |   DEBIAN_FRONTEND="noninteractive" apt-get -y install dh-make-perl libmodule-cpanfile-perl git wget && \ | ||||||
|  |   apt-file update | ||||||
|  |  | ||||||
|  | RUN set -x ; \ | ||||||
|  |   wget --quiet -O /tmp/ledgersmb-$LSMB_VERSION.tar.gz "$ARTIFACT_LOCATION" && \ | ||||||
|  |   tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \ | ||||||
|  |   rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \ | ||||||
|  |   cd /srv/ledgersmb && \ | ||||||
|  |   ( ( for lib in $( cpanfile-dump --with-all-features --recommends --no-configure --no-build --no-test ) ; \ | ||||||
|  |     do \ | ||||||
|  |       if dh-make-perl locate "$lib" 2>/dev/null ; \ | ||||||
|  |       then  \ | ||||||
|  |         : \ | ||||||
|  |       else \ | ||||||
|  |         echo no : $lib ; \ | ||||||
|  |       fi ; \ | ||||||
|  |     done ) | grep -v dh-make-perl | grep -v 'not found' | grep -vi 'is in Perl ' | cut -d' ' -f4 | sort | uniq | tee /srv/derived-deps ) && \ | ||||||
|  |   cat /srv/derived-deps | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # | ||||||
|  | #  The real image build starts here | ||||||
|  | # | ||||||
|  | # | ||||||
|  |  | ||||||
|  |  | ||||||
|  | FROM  $SRCIMAGE | ||||||
|  | LABEL org.opencontainers.image.authors="LedgerSMB project <devel@lists.ledgersmb.org>" | ||||||
|  |  | ||||||
|  | ARG LSMB_VERSION="1.9.0-beta3" | ||||||
|  | ARG LSMB_DL_DIR="Beta Releases" | ||||||
|  | ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" | ||||||
|  |  | ||||||
|  |  | ||||||
| # Install Perl, Tex, Starman, psql client, and all dependencies | # Install Perl, Tex, Starman, psql client, and all dependencies | ||||||
| # Without libclass-c3-xs-perl, performance is terribly slow... | # 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 | # 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 | # That mitigates issues where the PG instance is running a newer version than this container | ||||||
|  | # Install Locale::Codes Locale::Country Locale::Language from CPAN to suppress | ||||||
|  | # deprecation-as-core-module warning | ||||||
|  |  | ||||||
| RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> /etc/apt/apt.conf && \ |  | ||||||
|  | COPY --from=builder /srv/derived-deps /tmp/derived-deps | ||||||
|  |  | ||||||
|  | RUN set -x ; \ | ||||||
|  |   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/man1/ && \ | ||||||
|   mkdir -p /usr/share/man/man2/ && \ |   mkdir -p /usr/share/man/man2/ && \ | ||||||
|   mkdir -p /usr/share/man/man3/ && \ |   mkdir -p /usr/share/man/man3/ && \ | ||||||
| @@ -24,42 +68,22 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> | |||||||
|   mkdir -p /usr/share/man/man5/ && \ |   mkdir -p /usr/share/man/man5/ && \ | ||||||
|   mkdir -p /usr/share/man/man6/ && \ |   mkdir -p /usr/share/man/man6/ && \ | ||||||
|   mkdir -p /usr/share/man/man7/ && \ |   mkdir -p /usr/share/man/man7/ && \ | ||||||
|   DEBIAN_FRONTEND="noninteractive" apt-get update -q && \ |   mkdir -p /usr/share/man/man8/ && \ | ||||||
|   DEBIAN_FRONTEND="noninteractive" apt-get dist-upgrade -y -q && \ |   DEBIAN_FRONTEND="noninteractive" apt-get -y update && \ | ||||||
|   DEBIAN_FRONTEND="noninteractive" apt-get -y -q install \ |   DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \ | ||||||
|  |   DEBIAN_FRONTEND="noninteractive" apt-get -y install \ | ||||||
|     wget ca-certificates gnupg \ |     wget ca-certificates gnupg \ | ||||||
|     libcgi-emulate-psgi-perl libcgi-simple-perl libconfig-inifiles-perl \ |     $( cat /tmp/derived-deps ) \ | ||||||
|     libdbd-pg-perl libdbi-perl libdata-uuid-perl libdatetime-perl \ |     libclass-c3-xs-perl \ | ||||||
|     libdatetime-format-strptime-perl libio-stringy-perl \ |     texlive-plain-generic texlive-latex-recommended texlive-fonts-recommended \ | ||||||
|     libjson-xs-perl libcpanel-json-xs-perl liblist-moreutils-perl \ |  | ||||||
|     liblocale-maketext-perl liblocale-maketext-lexicon-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-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 \ |  | ||||||
|     libimage-size-perl \ |  | ||||||
|     libtemplate-plugin-latex-perl libtex-encode-perl \ |  | ||||||
|     libclass-c3-xs-perl libclass-accessor-lite-perl \ |  | ||||||
|     libnet-cidr-lite-perl libtest-requires-perl \ |  | ||||||
|     texlive-latex-recommended \ |  | ||||||
|     texlive-xetex fonts-liberation \ |     texlive-xetex fonts-liberation \ | ||||||
|     starman \ |  | ||||||
|     libopenoffice-oodoc-perl \ |  | ||||||
|     ssmtp \ |  | ||||||
|     lsb-release && \ |     lsb-release && \ | ||||||
|   echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \ |   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 -) && \ |   (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 -y update && \ | ||||||
|   DEBIAN_FRONTEND="noninteractive" apt-get -q -y install postgresql-client && \ |   DEBIAN_FRONTEND="noninteractive" apt-get -y install postgresql-client && \ | ||||||
|   DEBIAN_FRONTEND="noninteractive" apt-get -q -y install git cpanminus make gcc libperl-dev && \ |   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/Releases/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" && \ |   wget --quiet -O /tmp/ledgersmb-$LSMB_VERSION.tar.gz "$ARTIFACT_LOCATION" && \ | ||||||
|   tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \ |   tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \ | ||||||
|   rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \ |   rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \ | ||||||
|   cpanm --notest \ |   cpanm --notest \ | ||||||
| @@ -69,9 +93,8 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >> | |||||||
|     --installdeps /srv/ledgersmb/ && \ |     --installdeps /srv/ledgersmb/ && \ | ||||||
|   apt-get purge -q -y git cpanminus make gcc libperl-dev && \ |   apt-get purge -q -y git cpanminus make gcc libperl-dev && \ | ||||||
|   apt-get autoremove -q -y && \ |   apt-get autoremove -q -y && \ | ||||||
|   apt-get autoclean -q && \ |   apt-get clean -q && \ | ||||||
|   rm -rf ~/.cpanm/ && \ |   rm -rf ~/.cpanm/ /var/lib/apt/lists/* /usr/share/man/* | ||||||
|   rm -rf /var/lib/apt/lists/* /usr/share/man/* |  | ||||||
|  |  | ||||||
|  |  | ||||||
| WORKDIR /srv/ledgersmb | WORKDIR /srv/ledgersmb | ||||||
| @@ -80,30 +103,27 @@ WORKDIR /srv/ledgersmb | |||||||
|  |  | ||||||
| # Configure outgoing mail to use host, other run time variable defaults | # Configure outgoing mail to use host, other run time variable defaults | ||||||
|  |  | ||||||
| ## sSMTP | ## MAIL | ||||||
| ENV SSMTP_ROOT ar@example.com | ENV LSMB_MAIL_SMTPHOST 172.17.0.1 | ||||||
| ENV SSMTP_MAILHUB 172.17.0.1 | #ENV LSMB_MAIL_SMTPPORT 25 | ||||||
| ENV SSMTP_HOSTNAME 172.17.0.1 | #ENV LSMB_MAIL_SMTPSENDER_HOSTNAME (container hostname) | ||||||
| #ENV SSMTP_USE_STARTTLS | #ENV LSMB_MAIL_SMTPTLS | ||||||
| #ENV SSMTP_AUTH_USER | #ENV LSMB_MAIL_SMTPUSER | ||||||
| #ENV SSMTP_AUTH_PASS | #ENV LSMB_MAIL_SMTPPASS | ||||||
| ENV SSMTP_FROMLINE_OVERRIDE YES | #ENV LSMB_MAIL_SMTPAUTHMECH | ||||||
| #ENV SSMTP_AUTH_METHOD |  | ||||||
|  |  | ||||||
|  | ## DATABASE | ||||||
| ENV POSTGRES_HOST postgres | ENV POSTGRES_HOST postgres | ||||||
| ENV POSTGRES_PORT 5432 | ENV POSTGRES_PORT 5432 | ||||||
| ENV DEFAULT_DB lsmb | ENV DEFAULT_DB lsmb | ||||||
|  |  | ||||||
| COPY start.sh /usr/local/bin/start.sh | COPY start.sh /usr/local/bin/start.sh | ||||||
| COPY update_ssmtp.sh /usr/local/bin/update_ssmtp.sh |  | ||||||
|  |  | ||||||
| RUN chown www-data /etc/ssmtp /etc/ssmtp/ssmtp.conf && \ | RUN chmod +x /usr/local/bin/start.sh && \ | ||||||
|   chmod +x /usr/local/bin/update_ssmtp.sh /usr/local/bin/start.sh && \ |  | ||||||
|   mkdir -p /var/www |   mkdir -p /var/www | ||||||
|  |  | ||||||
| # Work around an aufs bug related to directory permissions: | # Work around an aufs bug related to directory permissions: | ||||||
| RUN mkdir -p /tmp && \ | RUN mkdir -p /tmp && chmod 1777 /tmp | ||||||
|   chmod 1777 /tmp |  | ||||||
|  |  | ||||||
| # Internal Port Expose | # Internal Port Expose | ||||||
| EXPOSE 5762 | EXPOSE 5762 | ||||||
|   | |||||||
							
								
								
									
										133
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										133
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,12 +1,19 @@ | |||||||
| # ledgersmb-docker | # ledgersmb-docker | ||||||
|  |  | ||||||
| Dockerfile for LedgerSMB Docker image | Dockerfile for LedgerSMB Docker image | ||||||
|  |  | ||||||
| # Supported tags | # Supported tags | ||||||
|  |  | ||||||
| - `1.6`, `1.6.x`, `latest` - Latest release tarball from 1.6 branch | - `1.9`, `1.9.x` - Latest official release from the 1.9 branch | ||||||
| - `1.5`, `1.5.x` - Latest release tarball from 1.5 branch | - `1.8`, `1.8.x`, `latest` - Latest official release from the 1.8 branch | ||||||
| - `1.4`, `1.4.x` - Latest tagged release of git 1.4 branch | - `1.7`, `1.7.x` - Latest official release from 1.7 branch | ||||||
|  | - `1.6`, `1.6.33` - Last 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? | # What is LedgerSMB? | ||||||
|  |  | ||||||
| @@ -23,9 +30,9 @@ This image is designed to be used in conjunction with a running PostgreSQL | |||||||
| instance (such as may be provided through a separate image). | instance (such as may be provided through a separate image). | ||||||
|  |  | ||||||
| This image exposes port 5762 running a Starman HTTP application server. We | This image exposes port 5762 running a Starman HTTP application server. We | ||||||
| do not recommend exposing this port publicly, because | do recommend not exposing this port publicly, because | ||||||
|  |  | ||||||
| 1. The Starman author recommends it | 1. The Starman author recommends not exposing it | ||||||
| 2. We strongly recommend TLS encryption of all application traffic | 2. We strongly recommend TLS encryption of all application traffic | ||||||
|  |  | ||||||
| While the exposed port can be used for quick evaluation, it's recommended | While the exposed port can be used for quick evaluation, it's recommended | ||||||
| @@ -34,61 +41,65 @@ to add the TLS layer by applying Nginx or Apache as reverse proxy. | |||||||
| Enabling optional functionalities such as outgoing e-mail and printing | Enabling optional functionalities such as outgoing e-mail and printing | ||||||
| could require additional setup of a mail service or CUPS printer service. | could require additional setup of a mail service or CUPS printer service. | ||||||
|  |  | ||||||
| # Quickstart |  | ||||||
|  |  | ||||||
| The quickest way to get this image up and running is by using the |  | ||||||
| `docker-compose` file available through the GitHub repository at: |  | ||||||
|  |  | ||||||
|   https://github.com/ledgersmb/ledgersmb-docker/blob/1.6/docker-compose.yml |  | ||||||
|  |  | ||||||
| which sets up both this image and a supporting database image for |  | ||||||
| production purposes (i.e. with persistent (database) data, with the |  | ||||||
| exception of one thing: setting up an Nginx or Apache reverse proxy |  | ||||||
| with TLS 1.2/1.3 support -- a requirement if you want to access your |  | ||||||
| installation over any type of network. |  | ||||||
|  |  | ||||||
| # How to use this image | # 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-Compose installation and start | ||||||
|  |  | ||||||
|  | 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: | ||||||
|  |  | ||||||
| ```plain | ```plain | ||||||
|  $ docker run -d --name postgres \ |  $ docker-compose pull | ||||||
|               -e POSTGRES_PASSWORD=mysecretpassword \ |  $ docker-compose up | ||||||
|               postgres:latest |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| BEWARE: The command above creates a container with the database data stored | This will set up two containers: (1) a PostgreSQL container with persistent | ||||||
| *inside* the container. Upon removal of the container, the database data will | storage which is retained between container updates and (2) a LedgerSMB | ||||||
| be removed too! | container configured to connect to the PostgreSQL container as its database | ||||||
|  | server. | ||||||
|  |  | ||||||
| To prevent destruction of the database data upon replacement of the container, | The database username and password are: | ||||||
| please use these commands instead: |  | ||||||
|  |  | ||||||
| ```plain | ```plain | ||||||
|  $ docker volume create dbdata |    username: postgres | ||||||
|  $ docker run -d --name postgres \ |    password: abc | ||||||
|               -e POSTGRES_PASSWORD=mysecretpassword \ |  | ||||||
|               -e PGDATA=/var/lib/postgresql/data/pgdata \ |  | ||||||
|               -v dbdata:/var/lib/postgresql/data \ |  | ||||||
|               postgres:latest |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ## Start LedgerSMB | From here, follow the steps as detailed in the instructions for | ||||||
|  | [preparing for first use](https://ledgersmb.org/content/preparing-ledgersmb-19-first-use). | ||||||
|  |  | ||||||
|  | ## Manual installation | ||||||
|  |  | ||||||
|  | This section assumes availability of a PostgreSQL server to attach to the | ||||||
|  | LedgerSMB image as the database server. | ||||||
|  |  | ||||||
|  | ### Start LedgerSMB | ||||||
|  |  | ||||||
| ```plain | ```plain | ||||||
|  $ docker run -d -p 5762:5762 --name myledger \ |  $ docker run -d -p 5762:5762 --name myledger \ | ||||||
|               ledgersmb/ledgersmb:latest |               -e POSTGRES_HOST=<ip/hostname> ledgersmb/ledgersmb:latest | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| This command maps port 5762 of your container to port 5762 in your host. The | 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 | web application inside the container should now be accessible through | ||||||
| http://localhost:5762/setup.pl. | http://localhost:5762/setup.pl and http://localhost:5762/login.pl. | ||||||
|  |  | ||||||
| ## Set up LedgerSMB | Below are more variables which determine container configuration, | ||||||
|  | like `POSTGRES_HOST` above. | ||||||
|  |  | ||||||
|  | # Set up LedgerSMB | ||||||
|  |  | ||||||
|  * Visit http://myledger:5762/setup.pl. |  * Visit http://myledger:5762/setup.pl. | ||||||
|  * Log in with the "postgres" user and the password `mysecretpassword` |  * Log in with the "postgres" user and the password `abc` as given above - | ||||||
|    and provide the name of a company (= database name) you want to create. |    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 |  * Go over the steps presented in the browser | ||||||
|  |  | ||||||
| Once you have completed the setup steps, you have a fully functional | Once you have completed the setup steps, you have a fully functional | ||||||
| @@ -138,30 +149,22 @@ affect the performance experience of users. | |||||||
|  |  | ||||||
| ## Mail configuration | ## Mail configuration | ||||||
|  |  | ||||||
| The docker image uses `ssmtp` to send mail. | 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. | ||||||
|  |  | ||||||
| * `SSMTP_ROOT` (config: `Root`) | The following parameters are now supported to set mail preferences: | ||||||
| * `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`) |  | ||||||
| * `SSMTP_FROMLINE_OVERRIDE` (config: `FromLineOverride`) |  | ||||||
|  |  | ||||||
| These variables are used to set outgoing SMTP defaults. | * `LSMB_MAIL_SMTPHOST` | ||||||
|  | * `LSMB_MAIL_SMTPPORT` | ||||||
|  | * `LSMB_MAIL_SMTPTLS` | ||||||
|  | * `LSMB_MAIL_SMTPSENDER_HOSTNAME` | ||||||
|  | * `LSMB_MAIL_SMTPUSER` | ||||||
|  | * `LSMB_MAIL_SMTPPASS` | ||||||
|  | * `LSMB_MAIL_SMTPAUTHMECH` | ||||||
|  |  | ||||||
| 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 |  | ||||||
| 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. |  | ||||||
|  |  | ||||||
| # Troubleshooting/Developing | # Troubleshooting/Developing | ||||||
|  |  | ||||||
| @@ -173,11 +176,17 @@ and the startup & config script is /usr/bin/start.sh. | |||||||
|  |  | ||||||
| ## Issues | ## 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 [Riot.im](https://riot.im/app/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended. | You can also reach some of the official LedgerSMB maintainers via the | ||||||
|  | [Matrix](https://matrix.org) room in [#ledgersmb:matrix.org](https://matrix.to/#/#ledgersmb:matrix.org). | ||||||
|  | The [Element](https://app.element.io/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended. | ||||||
|  |  | ||||||
|  |  | ||||||
| ## Contributing | ## 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. | ||||||
|   | |||||||
| @@ -28,18 +28,18 @@ services: | |||||||
|   lsmb: |   lsmb: | ||||||
|     depends_on: |     depends_on: | ||||||
|       - postgres |       - postgres | ||||||
|     image: ledgersmb/ledgersmb:1.6 |     image: ledgersmb/ledgersmb:1.9 | ||||||
|     networks: |     networks: | ||||||
|       - internal |       - internal | ||||||
|       - default |       - default | ||||||
|     # Uncomment the 'ports' section to map the LedgerSMB container port (5762) |     # Comment the 'ports' section to disable mapping the LedgerSMB container port (5762) | ||||||
|     #  to the host's port of the same number, thus making LedgerSMB |     #  to the host's port of the same number, thus making LedgerSMB | ||||||
|     #  available on http://<host-dns-or-ip>:5762/ |     #  available on http://<host-dns-or-ip>:5762/ | ||||||
|     #     SECURITY NOTE: Do this for evaluation purposes only! |     #     SECURITY NOTE: Do this for evaluation purposes only! | ||||||
|     #       In production, be sure to use SSL/TLS to protect user's passwords |     #       In production, be sure to use SSL/TLS to protect user's passwords | ||||||
|     #       and other sensitive data |     #       and other sensitive data | ||||||
|     # ports: |     ports: | ||||||
|     #   - "5762:5762" |       - "5762:5762" | ||||||
|     environment: |     environment: | ||||||
|       # The LSMB_WORKERS environment variable lets you select the number |       # The LSMB_WORKERS environment variable lets you select the number | ||||||
|       # of processes serving HTTP requests. The default number of 2 workers |       # of processes serving HTTP requests. The default number of 2 workers | ||||||
|   | |||||||
							
								
								
									
										112
									
								
								start.sh
									
									
									
									
									
								
							
							
						
						
									
										112
									
								
								start.sh
									
									
									
									
									
								
							| @@ -1,49 +1,105 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
|  |  | ||||||
| update_ssmtp.sh |  | ||||||
| cd /srv/ledgersmb | cd /srv/ledgersmb | ||||||
|  |  | ||||||
|  | if [[ -n "$SSMTP_ROOT" ]]; then | ||||||
|  |     echo "\$SSMTP_ROOT set; parameter is deprecated and will be ignored" | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  | if [[ -n "$SSMTP_FROMLINE_OVERRIDE" ]]; then | ||||||
|  |     echo "\$SSMTP_FROMLINE_OVERRIDE set; parameter is deprecated and will be ignored" | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  | if [[ -n "$SSMTP_MAILHUB" ]]; then | ||||||
|  |     echo "\$SSMTP_MAILHUB set; parameter is deprecated" | ||||||
|  |     if [[ -z "$LSMB_MAIL_SMTPHOST" ]]; then | ||||||
|  |         echo "  Deriving \$LSMB_MAIL_SMTPHOST setting from \$SSMTP_MAILHUB" | ||||||
|  |         LSMB_MAIL_SMTPHOST=${SSMTP_MAILHUB%:*} | ||||||
|  |     fi | ||||||
|  |     if [[ -z "$LSMB_MAIL_SMTPPORT" ]]; then | ||||||
|  |         echo "  Deriving \$LSMB_MAIL_SMTPPORT setting from \$SSMTP_MAILHUB" | ||||||
|  |         LSMB_MAIL_SMTPPORT=${SSMTP_MAILHUB#*:} | ||||||
|  |     fi | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  | if [[ -n "$SSMTP_HOSTNAME" ]]; then | ||||||
|  |     echo "\$SSMTP_HOSTNAME set; parameter is deprecated" | ||||||
|  |     if [[ -z "$LSMB_MAIL_SMTPSENDER_HOSTNAME" ]]; then | ||||||
|  |         echo "  Deriving \$LSMB_MAIL_SMTPSENDER_HOSTNAME setting from \$SSMTP_HOSTNAME" | ||||||
|  |         LSMB_MAIL_SMTPSENDER_HOSTNAME=$SSMTP_HOSTNAME | ||||||
|  |     fi | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  | if [[ -n "$SSMTP_USE_STARTTLS" ]]; then | ||||||
|  |     echo "\$SSMTP_USE_STARTTLS set; parameter is deprecated" | ||||||
|  |     if [[ -z "$LSMB_MAIL_SMTPTLS" ]]; then | ||||||
|  |         echo "  Deriving \$LSMB_MAIL_SMTPSENDER_HOSTNAME setting from \$SSMTP_USE_STARTTLS" | ||||||
|  |         LSMB_MAIL_SMTPTLS=$SSMTP_USE_STARTTLS | ||||||
|  |     fi | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  | if [[ -n "$SSMTP_AUTH_USER" ]]; then | ||||||
|  |     echo "\$SSMTP_AUTH_USER set; parameter is deprecated" | ||||||
|  |     if [[ -z "$LSMB_MAIL_SMTPUSER" ]]; then | ||||||
|  |         echo "  Deriving \$LSMB_MAIL_SMTPUSER setting from \$SSMTP_AUTH_USER" | ||||||
|  |         LSMB_MAIL_SMTPUSER=$SSMTP_AUTH_USER | ||||||
|  |     fi | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  | if [[ -n "$SSMTP_AUTH_PASS" ]]; then | ||||||
|  |     echo "\$SSMTP_AUTH_PASS set; parameter is deprecated" | ||||||
|  |     if [[ -z "$LSMB_MAIL_SMTPPASS" ]]; then | ||||||
|  |         echo "  Deriving \$LSMB_MAIL_SMTPPASS setting from \$SSMTP_AUTH_PASS" | ||||||
|  |         LSMB_MAIL_SMTPPASS=$SSMTP_AUTH_PASS | ||||||
|  |     fi | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  | if [[ -n "$SSMTP_AUTH_METHOD" ]]; then | ||||||
|  |     echo "\$SSMTP_AUTH_METHOD set; parameter is deprecated" | ||||||
|  |     if [[ -z "$LSMB_MAIL_SMTPAUTHMECH" ]]; then | ||||||
|  |         echo "  Deriving \$LSMB_MAIL_SMTPAUTHMECH setting from \$SSMTP_AUTH_METHOD" | ||||||
|  |         LSMB_MAIL_SMTPAUTHMECH=$SSMTP_AUTH_METHOD | ||||||
|  |     fi | ||||||
|  |     LSMB_HAVE_DEPRECATED=1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [[ -n "$LSMB_HAVE_DEPRECATED" ]]; then | ||||||
|  |     echo "!!! DEPRECATED \$SSMTP_* PARAMETERS WILL BE REMOVED in the 1.9 image!!!" | ||||||
|  | fi | ||||||
|  |  | ||||||
|  |  | ||||||
| if [[ ! -f ledgersmb.conf ]]; then | if [[ ! -f ledgersmb.conf ]]; then | ||||||
|   cat <<EOF >/tmp/ledgersmb.conf |   cat <<EOF >/tmp/ledgersmb.conf | ||||||
| [main] | [main] | ||||||
| cache_templates = 1 | cache_templates = 1 | ||||||
|  |  | ||||||
| [database] | [database] | ||||||
| host = $POSTGRES_HOST | host = $POSTGRES_HOST | ||||||
| port = $POSTGRES_PORT | port = $POSTGRES_PORT | ||||||
| default_db = $DEFAULT_DB | default_db = $DEFAULT_DB | ||||||
|  |  | ||||||
| [mail] | [mail] | ||||||
| sendmail   = /usr/sbin/ssmtp | ${LSMB_MAIL_SMTPHOST:+smtphost=$LSMB_MAIL_SMTPHOST | ||||||
|  | }${LSMB_MAIL_SMTPPORT:+smtpport=$LSMB_MAIL_SMTPPORT | ||||||
|  | }${LSMB_MAIL_SMTPSENDER_HOSTNAME:+smtpsender_hostname=$LSMB_MAIL_SMTPSENDER_HOSTNAME | ||||||
|  | }${LSMB_MAIL_SMTPTLS:+smtptls=$LSMB_MAIL_SMTPTLS | ||||||
|  | }${LSMB_MAIL_SMTPUSER:+smtpuser=$LSMB_MAIL_SMTPUSER | ||||||
|  | }${LSMB_MAIL_SMTPPASS:+smtppass=$LSMB_MAIL_SMTPPASS | ||||||
|  | }${LSMB_MAIL_SMTPAUTHMECH:+smtpauthmech=$LSMB_MAIL_SMTPAUTHMECH | ||||||
|  | } | ||||||
| EOF | EOF | ||||||
|   export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf' |   export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf' | ||||||
| fi | fi | ||||||
|  |  | ||||||
| if [ ! -f "/tmp/ledgersmb" ]; then |  | ||||||
|   mkdir /tmp/ledgersmb |  | ||||||
| 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"; |  | ||||||
|  |  | ||||||
| # start ledgersmb | # start ledgersmb | ||||||
| # --preload-app allows application initialization to kill the entire | # --preload-app allows application initialization to kill the entire | ||||||
| # starman instance (instead of just the worker, which will immediately | # starman instance (instead of just the worker, which will immediately | ||||||
| # get restarted); it also has a positive effect on memory use | # get restarted) on error; it also has a positive effect on memory use | ||||||
|  |  | ||||||
| exec starman --port 5762 --workers ${LSMB_WORKERS:-5} --preload-app bin/ledgersmb-server.psgi | echo '--------- LEDGERSMB CONFIGURATION:  ledgersmb.conf' | ||||||
|  | cat ${LSMB_CONFIG_FILE:-ledgersmb.conf} | ||||||
|  | echo '--------- LEDGERSMB CONFIGURATION --- END' | ||||||
|  |  | ||||||
|  | # ':5762:' suppresses an uninitialized variable warning in starman | ||||||
|  | # the last colon means "don't connect using tls"; without it, there's a warning | ||||||
|  | exec starman --listen :5762: --workers ${LSMB_WORKERS:-5} \ | ||||||
|  |              -I lib -I old/lib \ | ||||||
|  |              --preload-app bin/ledgersmb-server.psgi | ||||||
|   | |||||||
| @@ -1,18 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| ConfiguredComment='# install script update_ssmtp.sh has configured ssmtp' |  | ||||||
| grep -qc "$ConfiguredComment" /etc/ssmtp/ssmtp.conf && { |  | ||||||
|     echo "smtp configured." |  | ||||||
|     exit |  | ||||||
| } |  | ||||||
|  |  | ||||||
| sed -i \ |  | ||||||
|     -e "s/\(root=\).*\$/\1$SSMTP_ROOT/g" \ |  | ||||||
|     -e "s/\(mailhub=\).*\$/\1$SSMTP_MAILHUB/g" \ |  | ||||||
|     -e "s/\(hostname=\).*\$/\1$SSMTP_HOSTNAME/g" \ |  | ||||||
|     /etc/ssmtp/ssmtp.conf |  | ||||||
| [ -z "$SSMTP_USE_STARTTLS" ] || echo "UseSTARTTLS=$SSMTP_USE_STARTTLS" >> /etc/ssmtp/ssmtp.conf |  | ||||||
| [ -z "$SSMTP_AUTH_USER" ] || echo "AuthUser=$SSMTP_AUTH_USER" >> /etc/ssmtp/ssmtp.conf |  | ||||||
| [ -z "$SSMTP_AUTH_PASS" ] || echo "AuthPass=$SSMTP_AUTH_PASS" >> /etc/ssmtp/ssmtp.conf |  | ||||||
| [ -z "$SSMTP_AUTH_METHOD" ] || echo "AuthMethod=$SSMTP_AUTH_METHOD" >> /etc/ssmtp/ssmtp.conf |  | ||||||
| [ -z "$SSMTP_FROMLINE_OVERRIDE" ] || echo "FromLineOverride=$SSMTP_FROMLINE_OVERRIDE" >> /etc/ssmtp/ssmtp.conf |  | ||||||
| echo "$ConfiguredComment" >> /etc/ssmtp/ssmtp.conf |  | ||||||
		Reference in New Issue
	
	Block a user