Compare commits

..

66 Commits
1.7.12 ... 1.8

Author SHA1 Message Date
Erik Huelsmann
f18235973e Update README.md (mark all branches End-of-Life) 2024-10-21 23:44:21 +02:00
Erik Huelsmann
3e28682112 Update README.md -- 1.10 is EOL 2024-10-21 23:41:29 +02:00
Erik Huelsmann
e6553b53d6 Update README.md 2023-10-03 23:00:20 +02:00
Erik Huelsmann
4f5655dbee Update latest 1.9 release 2023-09-29 15:26:56 +02:00
Erik Huelsmann
02b4588325 Update README.md for 1.10 release 2022-09-24 12:01:58 +02:00
Erik Huelsmann
df6d21f4ad * Automatic Dockerfile update by release process 2022-08-24 03:07:59 -04:00
Erik Huelsmann
d83ab067c7 * Automatic Dockerfile update by release process 2022-08-10 16:12:13 -04:00
Erik Huelsmann
e48c4feb3f * Automatic Dockerfile update by release process 2022-04-29 15:25:43 -04:00
Erik Huelsmann
956d654760 * Automatic Dockerfile update by release process 2022-04-29 14:37:25 -04:00
Erik Huelsmann
b12fdd9770 * Automatic Dockerfile update by release process 2022-04-09 10:37:59 -04:00
Erik Huelsmann
fe44578c0f * Automatic Dockerfile update by release process 2022-03-11 08:33:26 -05:00
Erik Huelsmann
e77dae7d1c Change the hosting location of the LedgerSMB Docker images 2022-01-28 22:53:08 +01:00
Erik Huelsmann
74128eef35 * Automatic Dockerfile update by release process 2022-01-19 17:04:19 -05:00
Erik Huelsmann
a7326af5fa Update mail configuration environment variables
[skip ci]
2021-12-11 20:57:37 +01:00
Erik Huelsmann
fbe602af1c * Automatic Dockerfile update by release process 2021-12-08 15:59:13 -05:00
Erik Huelsmann
40107716c8 * Automatic Dockerfile update by release process 2021-11-14 04:24:09 -05:00
Erik Huelsmann
3c129424dc * Automatic Dockerfile update by release process 2021-10-12 16:25:46 -04:00
Erik Huelsmann
8a6d7e2252 * Automatic Dockerfile update by release process 2021-09-18 17:02:08 -04:00
Erik Huelsmann
1979f70541 Set the reverse proxy address to the default Docker address range 2021-09-17 23:04:15 +02:00
Erik Huelsmann
f1411898b4 Add reverse proxy configuration option 2021-09-17 22:40:58 +02:00
Erik Huelsmann
80702acab4 Create no-response.yml 2021-09-04 23:25:37 +02:00
Erik Huelsmann
6659f8f8ae * Automatic Dockerfile update by release process 2021-09-03 14:17:32 -04:00
Erik Huelsmann
59df4ddefd Use multi-stage build to derive dependency packages 2021-08-30 00:48:44 +02:00
Erik Huelsmann
b02d6b1044 * Automatic Dockerfile update by release process 2021-08-25 17:11:56 -04:00
Erik Huelsmann
1f9e54cbe8 * Automatic Dockerfile update by release process 2021-08-23 07:49:49 -04:00
Erik Huelsmann
955812f36b Update README.md 2021-08-17 13:50:41 +02:00
Erik Huelsmann
4f5f8e8cbf Print commands as they are executed (debugging purposes) 2021-08-13 23:55:50 +02:00
Erik Huelsmann
b7502825f1 Make the artifact location into a build ARG 2021-08-13 23:45:10 +02:00
Erik Huelsmann
3d73729575 Update README.md 2021-08-04 23:56:15 +02:00
Erik Huelsmann
f9aeeaad75 Update README.md 2021-08-04 23:55:28 +02:00
Erik Huelsmann
f7f7ecf3a1 * Automatic Dockerfile update by release process 2021-07-28 17:09:34 -04:00
Erik Huelsmann
4772312182 Update README.md 2021-07-10 23:54:05 +02:00
Erik Huelsmann
c5c6011073 Update README.md 2021-07-10 23:47:17 +02:00
Erik Huelsmann
db941843fb * Automatic Dockerfile update by release process 2021-07-10 13:34:58 -04:00
Erik Huelsmann
ae687da108 * Automatic Dockerfile update by release process 2021-06-14 14:55:24 -04:00
Erik Huelsmann
6bc115c7e6 * Automatic Dockerfile update by release process 2021-06-03 15:05:08 -04:00
Erik Huelsmann
d7bf3b30a0 * Automatic Dockerfile update by release process 2021-05-29 15:06:27 -04:00
Erik Huelsmann
8d6e8fe95b * Automatic Dockerfile update by release process 2021-05-02 13:05:16 -04:00
Erik Huelsmann
3156651671 * Automatic Dockerfile update by release process 2021-03-21 09:02:57 -04:00
Erik Huelsmann
0205b40bd2 Update docker-compose.yml
By default, map the starman port to localhost.
2021-03-06 22:14:40 +01:00
Erik Huelsmann
84130b47f3 * Automatic Dockerfile update by release process 2021-01-31 18:31:59 +00:00
Erik Huelsmann
d27017e309 Update README.md 2020-12-26 15:54:31 +01:00
Erik Huelsmann
f3420feb36 * Automatic Dockerfile update by release process 2020-12-26 14:34:47 +00:00
Erik Huelsmann
82445543de * Automatic Dockerfile update by release process 2020-12-14 22:04:46 +00:00
Erik Huelsmann
99a21f8e7d * Automatic Dockerfile update by release process 2020-11-18 20:56:08 +00:00
Erik Huelsmann
74aa2920da Update docker-compose.yml 2020-11-15 22:40:29 +01:00
Erik Huelsmann
821d59fb79 * Automatic Dockerfile update by release process 2020-10-16 17:02:46 +00:00
Erik Huelsmann
409aeefd56 * Automatic Dockerfile update by release process 2020-10-04 18:31:25 +00:00
Erik Huelsmann
2608ff28bb * Automatic Dockerfile update by release process 2020-09-27 19:14:10 +00:00
Erik Huelsmann
9adee2d1ba * Automatic Dockerfile update by release process 2020-09-18 08:08:32 +00:00
Erik Huelsmann
89f9f5e449 * Automatic Dockerfile update by release process 2020-09-13 19:36:14 +00:00
Erik Huelsmann
77a6985f29 * Automatic Dockerfile update by release process 2020-09-07 21:16:29 +00:00
Erik Huelsmann
f2a0c60b94 * Automatic Dockerfile update by release process 2020-09-04 20:29:54 +00:00
Erik Huelsmann
b9c316569d * Automatic Dockerfile update by release process 2020-08-28 22:37:32 +00:00
Erik Huelsmann
907fc363af Re #23: Add dependency on texlive-fonts-recommended 2020-08-24 22:47:41 +02:00
Erik Huelsmann
40ab4edab4 Update 1.8 to 1.8.0-beta3 2020-07-25 12:19:01 +02:00
Erik Huelsmann
dd6c18c5a6 Add liblocale-codes-perl dependency
Debian Buster wants us to explicitly install liblocale-codes-perl as a dependency because it's going to be removed from Perl's CORE.
2020-07-25 11:58:08 +02:00
Erik Huelsmann
fe2ae210a2 Update for 1.8.0-beta2 release 2020-06-08 19:32:05 +02:00
Erik Huelsmann
f8ef55726d Remove all packages, not just outdated ones 2020-06-01 14:29:30 +02:00
Erik Huelsmann
05b8961242 Update README to list 1.8 2020-05-31 11:20:23 +02:00
Erik Huelsmann
385dd60c3f Update for beta1 release 2020-05-31 10:52:38 +02:00
Erik Huelsmann
001e98ed38 Adjust image for removal of XML::Simple dependency in 1.8 2020-04-18 21:49:56 +02:00
Erik Huelsmann
1eb854f2d6 Update README.md 2020-04-12 21:32:59 +02:00
Erik Huelsmann
878111e7cd Build Locale::* modules from CPAN to suppress deprecation warnings 2020-04-12 20:56:36 +02:00
Erik Huelsmann
18980a353f Add missing Authen::SASL dependency for SMTP authentication 2020-04-12 20:20:59 +02:00
Erik Huelsmann
46637422ee Refactor 1.7 code into 1.8 code and move to Buster 2020-04-12 20:01:07 +02:00
6 changed files with 235 additions and 132 deletions

9
.github/no-response.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
# Configuration for probot-no-response - https://github.com/probot/no-response
# Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 90
# Label requiring a response
responseRequiredLabel: waiting-for-user
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
closeComment: >
Closing: more than 90 days without user response. Feel free to reopen with your comments.

View File

@@ -1,27 +1,65 @@
FROM debian:stretch-slim
# Build time variables
ARG SRCIMAGE=debian:buster-slim
FROM $SRCIMAGE AS builder
ARG LSMB_VERSION="1.8.31"
ARG LSMB_DL_DIR="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
MAINTAINER Freelock john@freelock.com
# Build time variables
ARG LSMB_VERSION="1.7.12"
ARG LSMB_VERSION="1.8.31"
ARG LSMB_DL_DIR="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
# 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
# Install Locale::Codes Locale::Country Locale::Language from CPAN to suppress
# deprecation-as-core-module warning
# 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 && \
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/man2/ && \
mkdir -p /usr/share/man/man3/ && \
@@ -29,45 +67,24 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
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 \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \
DEBIAN_FRONTEND="noninteractive" apt-get -y 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-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 \
libfile-find-rule-perl \
libtemplate-plugin-latex-perl libtex-encode-perl \
libclass-c3-xs-perl libclass-accessor-lite-perl \
libnet-cidr-lite-perl \
texlive-latex-recommended \
$( cat /tmp/derived-deps ) \
libclass-c3-xs-perl \
texlive-latex-recommended texlive-fonts-recommended \
texlive-xetex fonts-liberation \
starman \
libopenoffice-oodoc-perl \
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 -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -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" && \
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 && \
cpanm --reinstall --notest Locale::Country Locale::Codes Locale::Language && \
cpanm --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
@@ -75,9 +92,8 @@ RUN echo -n "APT::Install-Recommends \"0\";\nAPT::Install-Suggests \"0\";\n" >>
--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/*
apt-get clean -q && \
rm -rf ~/.cpanm/ /var/lib/apt/lists/* /usr/share/man/*
WORKDIR /srv/ledgersmb
@@ -86,30 +102,27 @@ WORKDIR /srv/ledgersmb
# Configure outgoing mail to use host, other run time variable defaults
## sSMTP
ENV SSMTP_ROOT ar@example.com
ENV SSMTP_MAILHUB 172.17.0.1
ENV SSMTP_HOSTNAME 172.17.0.1
#ENV SSMTP_USE_STARTTLS
#ENV SSMTP_AUTH_USER
#ENV SSMTP_AUTH_PASS
ENV SSMTP_FROMLINE_OVERRIDE YES
#ENV SSMTP_AUTH_METHOD
## MAIL
ENV LSMB_MAIL_SMTPHOST 172.17.0.1
#ENV LSMB_MAIL_SMTPPORT 25
#ENV LSMB_MAIL_SMTPSENDER_HOSTNAME (container hostname)
#ENV LSMB_MAIL_SMTPTLS
#ENV LSMB_MAIL_SMTPUSER
#ENV LSMB_MAIL_SMTPPASS
#ENV LSMB_MAIL_SMTPAUTHMECH
## DATABASE
ENV POSTGRES_HOST postgres
ENV POSTGRES_PORT 5432
ENV DEFAULT_DB lsmb
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 && \
chmod +x /usr/local/bin/update_ssmtp.sh /usr/local/bin/start.sh && \
RUN chmod +x /usr/local/bin/start.sh && \
mkdir -p /var/www
# Work around an aufs bug related to directory permissions:
RUN mkdir -p /tmp && \
chmod 1777 /tmp
RUN mkdir -p /tmp && chmod 1777 /tmp
# Internal Port Expose
EXPOSE 5762

View File

@@ -4,14 +4,17 @@ Dockerfile for LedgerSMB Docker image
# Supported tags
- `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
- `1.10`, `1.10.38` - Last official release from the 1.10 branch (End-of-Life)
- `1.9`, `1.9.30` - Last official release from the 1.9 branch (End-of-Life)
- `1.8`, `1.8.31` - Last official release from the 1.8 branch (End-of-Life)
- `1.7`, `1.7.41` - Last official release from the 1.7 branch (End-of-Life)
- `1.6`, `1.6.33` - Last official release from the 1.6 branch (End-of-Life)
- `1.5`, `1.5.30` - Last official release from the 1.5 branch (End-of-Life)
- `1.4`, `1.4.42` - Last official release from the 1.4 branch (End-of-Life)
- `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.
through the [ledgersmb-dev-docker project](https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started).
# What is LedgerSMB?
@@ -28,9 +31,9 @@ This image is designed to be used in conjunction with a running PostgreSQL
instance (such as may be provided through a separate image).
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
While the exposed port can be used for quick evaluation, it's recommended
@@ -42,7 +45,7 @@ could require additional setup of a mail service or CUPS printer service.
# How to use this image
This image can be installed either automatically with the Docker compose file
manually with docker only.
or manually with docker only.
## Docker-Compose installation and start
@@ -54,13 +57,25 @@ variables, are:
```plain
$ docker-compose pull
$ docker-compose up
$ docker-compose up -d
```
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.
server. The containers will be running in the background and can be stopped
and started by running:
```plain
# Stopping the containers
$ docker-compose stop
# Starting the containers
$ docker-compose start
```
(Check the status of the containers using `docker-compose ps`; when the
containers are running, the `State` column shows `Up`.)
The database username and password are:
@@ -69,6 +84,9 @@ The database username and password are:
password: abc
```
From here, follow the steps as detailed in the instructions for
[preparing for first use](https://ledgersmb.org/content/preparing-ledgersmb-17-first-use).
## Manual installation
This section assumes availability of a PostgreSQL server to attach to the
@@ -144,6 +162,24 @@ affect the performance experience of users.
## Mail configuration
### 1.8.0 and higher
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`
### Before 1.8.0
These variables are used to set outgoing SMTP defaults.
@@ -166,25 +202,6 @@ 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`
# Troubleshooting/Developing
Currently the LedgerSMB installation is in /srv/ledgersmb

View File

@@ -28,18 +28,18 @@ services:
lsmb:
depends_on:
- postgres
image: ledgersmb/ledgersmb:1.7
image: ghcr.io/ledgersmb/ledgersmb:1.8
networks:
- internal
- 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
# 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"
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
@@ -50,14 +50,22 @@ services:
LSMB_WORKERS: 2
#
#
# SSMTP_ROOT:
# SSMTP_HOSTNAME:
# SSMTP_MAILHUB:
# SSMTP_AUTH_USER:
# SSMTP_AUTH_PASS:
# SSMTP_AUTH_METHOD:
# SSMTP_USE_STARTTLS:
# SSMTP_FROMLINE_OVERRIDE:
# LSMB_MAIL_SMTPHOST:
# LSMB_MAIL_SMTPPORT:
# LSMB_MAIL_SMTPTLS:
# LSMB_MAIL_SMTPSENDER_HOSTNAME:
# LSMB_MAIL_SMTPUSER:
# LSMB_MAIL_SMTPPASS:
# LSMB_MAIL_SMTPAUTHMECH:
#
#
# The PROXY_IP environment variable lets you set the IP address
# (range) of the reverse proxy used for TLS termination, which forwards
# its requests to this container. When this reverse proxy runs on the
# Docker host, the default below applies. In case the reverse proxy is
# hosted in a separate container, this setting needs to be adjusted.
#
# PROXY_IP: 172.17.0.1/12
# having the dbdata volume is required to persist our
# data between PostgreSQL container updates; without

View File

@@ -1,33 +1,107 @@
#!/bin/bash
update_ssmtp.sh
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
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
${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
}
[proxy]
ip=${PROXY_IP:-172.17.0.1/12}
EOF
export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf'
fi
if [ ! -d "/tmp/ledgersmb" ]; then
mkdir -p /tmp/ledgersmb
fi
# start ledgersmb
# --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
# get restarted) on error; 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
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: --max-workers ${LSMB_WORKERS:-5} \
-I lib -I old/lib \
--preload-app bin/ledgersmb-server.psgi

View File

@@ -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