Compare commits

..

62 Commits

Author SHA1 Message Date
Erik Huelsmann
987ff7e540 * Automatic Dockerfile update by release process
Some checks failed
Docker Image cleanup / cleanup (push) Has been cancelled
2025-04-05 18:26:30 -04:00
Erik Huelsmann
f311ceeb80 * Automatic Dockerfile update by release process
Some checks failed
Docker Image cleanup / cleanup (push) Has been cancelled
2025-03-23 11:59:56 -04:00
Erik Huelsmann
12e8cfa41b
Update Dockerfile
Some checks failed
Docker Image cleanup / cleanup (push) Has been cancelled
2025-03-15 19:04:09 +01:00
Erik Huelsmann
7c54656362 As of 1.12.6 and 1.11.22, Class::C3::XS is in 'cpanfile'
Meaning there's no need to explicitly mention it in the
package installation lines; it'll be automatically mapped.
2025-03-15 17:54:15 +01:00
Erik Huelsmann
6dd3c079fe Update to use new ENV key=val syntax (instead of space separator)
Some checks failed
Docker Image cleanup / cleanup (push) Has been cancelled
2025-03-01 16:16:59 +01:00
Erik Huelsmann
a60308f288 * Automatic Dockerfile update by release process
Some checks are pending
Docker Image cleanup / cleanup (push) Waiting to run
2025-03-01 06:27:18 -05:00
Erik Huelsmann
c2475afab5 Fix (START)TLS settings from container environment variables
Some checks failed
Docker Image cleanup / cleanup (push) Has been cancelled
2025-02-21 20:19:24 +01:00
Erik Huelsmann
20bf57b4f8 Use Debian-provided installation script 2025-02-21 13:52:23 +01:00
Erik Huelsmann
942b098a7f * Automatic Dockerfile update by release process
Some checks are pending
Docker Image cleanup / cleanup (push) Waiting to run
2025-02-21 04:43:37 -05:00
Erik Huelsmann
50cdfc2145 Fix SASL authentication for outgoing e-mail with specified SASL mechanism 2025-02-21 09:46:30 +01:00
Erik Huelsmann
6c1602051f * Automatic Dockerfile update by release process
Some checks failed
Docker Image cleanup / cleanup (push) Has been cancelled
2025-02-07 11:53:09 -05:00
Erik Huelsmann
7e937b8e8c * Automatic Dockerfile update by release process 2025-01-23 17:12:18 -05:00
Erik Huelsmann
86885f20f7 * Automatic Dockerfile update by release process 2025-01-05 09:41:13 -05:00
Erik Huelsmann
7af784a491
Create images-cleanup.yml
Clean up untagged images from the 'ledgersmb' package repo
2024-12-28 12:20:59 +01:00
Erik Huelsmann
d2b7939206 * Automatic Dockerfile update by release process 2024-12-14 18:06:38 -05:00
Erik Huelsmann
5226a66d35 Update README in preparation of 1.12 release 2024-12-14 21:21:10 +01:00
Erik Huelsmann
40a2a27902 Fix transport class
LedgerSMB::Mailer::TransportSMTP was a work-around; the fix is now upstream.
2024-12-08 16:06:01 +01:00
Erik Huelsmann
880df4b5ad
Install 1.12 on the 1.12 branch 2024-10-31 14:26:35 +01:00
Erik Huelsmann
1cd90e0e57
Update Dockerfile 2024-09-06 16:15:41 +02:00
Erik Huelsmann
99161642eb * Automatic Dockerfile update by release process 2024-09-06 09:31:29 -04:00
Erik Huelsmann
90af6cd03f * Automatic Dockerfile update by release process 2024-08-21 12:01:48 -04:00
Erik Huelsmann
7cea8cfb8d Change to actions/stale from no-response action 2024-08-11 23:26:23 +02:00
Erik Huelsmann
5670f5760f * Automatic Dockerfile update by release process 2024-08-01 17:01:17 -04:00
Erik Huelsmann
4fb8f0fba8
Update docker-compose.yml 2024-06-02 23:10:07 +02:00
Erik Huelsmann
e329f0617a
Update README.md 2024-06-02 23:05:05 +02:00
Erik Huelsmann
ac2d4a8ae3 * Automatic Dockerfile update by release process 2024-05-06 16:43:46 -04:00
Erik Huelsmann
e254cb705c * Automatic Dockerfile update by release process 2024-04-26 08:48:16 -04:00
Erik Huelsmann
5849b64fde Eliminate apt-key deprecation warning 2024-04-09 21:24:30 +02:00
Erik Huelsmann
791df8fd1f * Automatic Dockerfile update by release process 2024-04-09 14:13:11 -04:00
Erik Huelsmann
5110bfcbbc * Automatic Dockerfile update by release process 2024-03-14 17:00:27 -04:00
Erik Huelsmann
c3f046baa9 * Automatic Dockerfile update by release process 2024-02-15 15:34:00 -05:00
Erik Huelsmann
d78e166553 * Automatic Dockerfile update by release process 2024-02-02 11:29:09 -05:00
Erik Huelsmann
5a1fd390f1 Use the container gateway address as the SMTP host
The value 172.17.0.1 is the default gateway on the default Docker
network. However, when using this image with 'docker-compose', a
new network is created, which means that the IP address of the
gateway is different by definition. Because the network is created
at the same time as the containers, the IP address isn't available
when the YAML definition is created.

This approach replaces the static approach with a dynamic approach
executed at first container startup.
2024-01-14 22:05:45 +01:00
Erik Huelsmann
d5661d029f * Automatic Dockerfile update by release process 2024-01-13 15:48:53 -05:00
Erik Huelsmann
88c84967b9
Add table of contents
Closes #37
2024-01-08 20:57:12 +01:00
Erik Huelsmann
3fec7b91b1 * Automatic Dockerfile update by release process 2023-12-31 07:26:22 -05:00
Erik Huelsmann
6d6ca05eb1 * Automatic Dockerfile update by release process 2023-12-15 16:33:18 -05:00
Erik Huelsmann
b39d64964c * Automatic Dockerfile update by release process 2023-12-09 06:12:21 -05:00
Erik Huelsmann
f697bb6b50
Merge pull request #35 from brush/patch-1
Improve clarity of comments re: security of port mapping
2023-12-06 22:36:01 +01:00
brush
dc4c2cf97a
Improve clarity of comments re: security of port mapping 2023-12-06 11:52:07 -08:00
Erik Huelsmann
83fb7a4fde * Automatic Dockerfile update by release process 2023-11-29 15:19:21 -05:00
Erik Huelsmann
0dc6e65c51 Fix further optionl parameter setting in the configuration file 2023-11-28 20:05:58 +01:00
Erik Huelsmann
51d1d1da0f Fix e-mail when HELO isn't explicitly set 2023-11-27 23:07:49 +01:00
Erik Huelsmann
9f7a4d1f8d * Automatic Dockerfile update by release process 2023-11-11 17:35:48 -05:00
Erik Huelsmann
7f3a3467f8 * Automatic Dockerfile update by release process 2023-10-22 16:14:02 -04:00
Erik Huelsmann
91a985bc31
Update Dockerfile
Use MetaCPAN for the metadata.
2023-10-22 21:32:46 +02:00
Erik Huelsmann
413a63161c * Automatic Dockerfile update by release process 2023-10-10 16:06:27 -04:00
Erik Huelsmann
7f7aa41a27 * Automatic Dockerfile update by release process 2023-10-03 17:07:07 -04:00
Erik Huelsmann
6f4d5cba73 Update README.md 2023-10-03 22:58:11 +02:00
Erik Huelsmann
3f3ca9dd7f Fix example volume in comment section 2023-09-30 23:07:26 +02:00
Erik Huelsmann
5d1823f88a Fix reference to 1.11 image 2023-09-30 23:07:00 +02:00
Erik Huelsmann
81a38b3040 Allow start.sh to generate local config 2023-09-30 22:57:09 +02:00
Erik Huelsmann
93c7b4c77e Fix bad interaction between IPv6, Bookworm, Starman and Docker 2023-09-30 22:56:40 +02:00
Erik Huelsmann
096350ad7b Fix ledgersmb-server.psgi not finding configuration
Fixes #34
2023-09-30 22:55:43 +02:00
Erik Huelsmann
9cc752a0ff Fix unescaped $-signs 2023-09-30 22:53:49 +02:00
Erik Huelsmann
7a17a8630f Fix docker-compose.yml syntax 2023-09-30 21:55:26 +02:00
Erik Huelsmann
ee863b6f3d Update latest 1.9 release 2023-09-29 15:29:12 +02:00
Erik Huelsmann
eba882d12a * Automatic Dockerfile update by release process 2023-08-29 17:39:01 -04:00
Erik Huelsmann
016deec433
Create no-response.yml 2023-08-25 20:47:13 +02:00
Erik Huelsmann
0f7242d559 Take advantage of the ability to have 'ledgersmb.XXX.yaml' config files 2023-08-25 20:37:45 +02:00
Erik Huelsmann
59192ffd20 * Automatic Dockerfile update by release process 2023-07-21 11:51:49 -04:00
Erik Huelsmann
4ff785d101 Create 1.11 release branch 2023-07-21 12:51:06 +02:00
6 changed files with 248 additions and 70 deletions

18
.github/workflows/images-cleanup.yml vendored Normal file
View File

@ -0,0 +1,18 @@
name: Docker Image cleanup
on:
push:
workflow_dispatch:
schedule:
# Schedule for five minutes after the hour, every Friday
- cron: '10 3 * * 5'
jobs:
cleanup:
if: github.repository_owner == 'ledgersmb'
runs-on: ubuntu-latest
steps:
- name: ghcr.io cleanup action
uses: dataaxiom/ghcr-cleanup-action@v1
with:
packages: ledgersmb

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

@ -0,0 +1,26 @@
name: No Response
# Both `issue_comment` and `scheduled` event types are required for this Action
# to work properly.
on:
issue_comment:
types: [created]
schedule:
# Schedule for five minutes after the hour, every hour
- cron: '5 3 * * *'
jobs:
noResponse:
if: github.repository_owner == 'ledgersmb'
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
days-before-issue-stale: -1
days-before-pr-stale: -1
stale-issue-label: waiting-for-user
# Number of days of inactivity before an Issue is closed for lack of response
days-before-close: 90
# Label requiring a response
close-issue-message: >
Closing: more than 90 days without user response. Feel free to reopen with your comments.

View File

@ -1,19 +1,19 @@
# Build time variables
ARG SRCIMAGE=debian:bullseye-slim
ARG SRCIMAGE=debian:bookworm-slim
FROM $SRCIMAGE AS builder
ARG LSMB_VERSION="1.10.20"
ARG LSMB_VERSION="1.12.7"
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 && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y dist-upgrade && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install dh-make-perl libmodule-cpanfile-perl git wget && \
apt-file update
RUN set -x ; \
@ -51,19 +51,15 @@ LABEL org.opencontainers.image.description="LedgerSMB is a full featured double-
the LedgerSMB project is to bring high quality ERP and accounting capabilities\
to Small and Midsize Businesses."
ARG LSMB_VERSION="1.10.20"
ARG LSMB_VERSION="1.12.7"
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...
# 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
### PACKAGE REQUIREMENTS RATIONALE
#
# postgresql-client(from apt.postgresql.org): reduces chances running a newer server than this client
# fonts-liberation: installed for compatibility with templates from 1.8 and earlier
COPY --from=builder /srv/derived-deps /tmp/derived-deps
@ -77,31 +73,29 @@ RUN set -x ; \
mkdir -p /usr/share/man/man6/ && \
mkdir -p /usr/share/man/man7/ && \
mkdir -p /usr/share/man/man8/ && \
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 \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y dist-upgrade && \
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install \
wget ca-certificates gnupg iproute2 \
$( cat /tmp/derived-deps ) \
libclass-c3-xs-perl \
texlive-plain-generic texlive-latex-recommended texlive-fonts-recommended \
texlive-xetex fonts-liberation \
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 -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install postgresql-client && \
lsb-release postgresql-common && \
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y && \
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 "$ARTIFACT_LOCATION" && \
tar -xzf /tmp/ledgersmb-$LSMB_VERSION.tar.gz --directory /srv && \
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
cpanm --notest \
cpanm --metacpan --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
--with-feature=openoffice \
--installdeps /srv/ledgersmb/ && \
apt-get purge -q -y git cpanminus make gcc libperl-dev && \
apt-get autoremove -q -y && \
apt-get clean -q && \
DEBIAN_FRONTEND="noninteractive" apt-get purge -q -y git cpanminus make gcc libperl-dev && \
DEBIAN_FRONTEND="noninteractive" apt-get autoremove -q -y && \
DEBIAN_FRONTEND="noninteractive" apt-get clean -q && \
rm -rf ~/.cpanm/ /var/lib/apt/lists/* /usr/share/man/*
@ -112,23 +106,27 @@ WORKDIR /srv/ledgersmb
# Configure outgoing mail to use host, other run time variable defaults
## 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
# '__CONTAINER_GATEWAY__' is a magic value which will be substituted
# with the actual gateway IP address
ENV LSMB_MAIL_SMTPHOST=__CONTAINER_GATEWAY__
#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
ENV POSTGRES_HOST=postgres
ENV POSTGRES_PORT=5432
ENV DEFAULT_DB=lsmb
COPY start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh && \
mkdir -p /var/www
mkdir -p /var/www && \
mkdir -p /srv/ledgersmb/local/conf && \
chown -R www-data /srv/ledgersmb/local
# Work around an aufs bug related to directory permissions:
RUN mkdir -p /tmp && chmod 1777 /tmp

View File

@ -2,10 +2,24 @@
Dockerfile for LedgerSMB Docker image
## Content
1. [Supported tags](#supported-tags)
2. [What is LedgerSMB](#what-is-ledgersmb)
3. [How to use this image](#how-to-use-this-image)
4. [Set up LedgerSMB](#set-up-ledgersmb)
5. [Updating the LedgerSMB container](#updating-the-ledgersmb-container)
6. [Environment Variables](#environment-variables)
7. [Advanced setup](#advanced-setup)
8. [Troubleshooting](#troubleshootingdeveloping)
9. [User feedback](#user-feedback)
# Supported tags
- `1.10`, `1.10.x`, `latest` - Latest official release from the 1.10 branch
- `1.9`, `1.9.x` - Latest official release from the 1.9 branch
- `1.12`, `1.12.x`, `latest` - Latest official release from the 1.12 branch
- `1.11`, `1.11.x` - Latest official release from the 1.11 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)
@ -202,6 +216,47 @@ The following parameters are now supported to set mail preferences:
# Advanced setup
## Changing configuration
The configuration file is stored in /srv/ledgersmb/local/conf/. By mounting
that directory using a bind-mount to a location outside the container,
configuration can be changed between container starts:
```plain
$ docker run -d -p 5762:5762 --name myledger \
--mount 'type=bind,src=/home/ledgersmb/conf,dst=/srv/ledgersmb/local/conf \
-e POSTGRES_HOST=<ip/hostname> ledgersmb/ledgersmb:latest
```
## Overriding or adding configuration
By pre-creating a configuration file in the mounted configuration directory,
the standard configuration generation process in the container can be overruled:
```plain
$ cat <<EOF > /home/ledgersmb/conf/ledgersmb.yaml
... YOUR CONFIG HERE ...
EOF
$ docker run -d -p 5762:5762 --name myledger \
--mount 'type=bind,src=/home/ledgersmb/conf,dst=/srv/ledgersmb/local/conf \
-e POSTGRES_HOST=<ip/hostname> ledgersmb/ledgersmb:latest
```
If you do not want to completely overrule the configuration generated, but instead
supplement the configuration, you can put incremental configuration snippets in
files named `ledgersmb.1XX.yaml` in the same folder. E.g.:
```plain
$ cat <<EOF > /home/ledgersmb/conf/ledgersmb.100.yaml
logging:
file: ledgersmb.logging
EOF
```
[Documentation with respect to the available configuration
keys](https://github.com/ledgersmb/LedgerSMB/blob/master/doc/conf/ledgersmb.yaml)
is available in the LedgerSMB repository.
## Docker Compose with reverse proxy
The `docker-compose-reverseproxy.yml` file shows a docker-compose setup

View File

@ -16,7 +16,7 @@ services:
# because that allows us to use the default hostname ("postgres")
# from the LedgerSMB configuration
postgres:
image: postgres:12-alpine
image: postgres:15-alpine
environment:
# Replace the password below for a secure setup
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-abc}
@ -31,16 +31,29 @@ services:
lsmb:
depends_on:
- postgres
image: ghcr.io/ledgersmb/ledgersmb:1.10
image: ghcr.io/ledgersmb/ledgersmb:1.12
# In order to store the configuration outside the image, allowing it to
# be edited between container restarts, uncomment the section below and
# change the 'source' to the directory where you want the configuration
# to be stored.
# volumes:
# # Override all configuration:
# - type: bind
# source: /home/ledgersmb/conf
# target: /srv/ledgersmb/local/conf
# # Add a snippet of configuration:
# - type: bind
# source: /home/ledgersmb/conf/ledgersmb.100.yaml
# target: /srv/ledgersmb/local/conf/ledgersmb.100.yaml
networks:
- internal
- default
# 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. Mapping "5762:5762" makes 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
# SECURITY NOTE: Leave this uncommented for evaluation purposes only!
# In production, be sure to use SSL/TLS (such as by reverse proxying) to protect
# user's passwords and other sensitive data
ports:
- "5762:5762"
environment:

114
start.sh
View File

@ -1,7 +1,7 @@
#!/bin/bash
cd /srv/ledgersmb
[[ -d ./local/conf/ ]] || mkdir ./local/conf/
if [[ -n "$SSMTP_ROOT" ]]; then
echo "\$SSMTP_ROOT set; parameter is deprecated and will be ignored"
LSMB_HAVE_DEPRECATED=1
@ -67,28 +67,94 @@ if [[ -n "$LSMB_HAVE_DEPRECATED" ]]; then
echo "!!! DEPRECATED \$SSMTP_* PARAMETERS WILL BE REMOVED in the 1.9 image!!!"
fi
if [[ ! -f ./local/conf/ledgersmb.yaml ]]; then
if [[ "x$LSMB_MAIL_SMTPTLS" == "xyes" ]]; then
tls_mode=starttls
elif [[ "x$LSMB_MAIL_SMTPTLS" == "xraw" ]]; then
tls_mode=ssl
else
tls_mode=none
fi
cat <<EOF >./local/conf/ledgersmb.yaml
paths:
\$class: Beam::Wire
config:
UI: ./UI/
UI_cache: lsmb_templates/
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]
${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}
db:
\$class: LedgerSMB::Database::Factory
connect_data:
host: ${POSTGRES_HOST:-postgres}
port: ${POSTGRES_PORT:-5432}
mail:
transport:
\$class: Email::Sender::Transport::SMTP
ssl: $tls_mode
miscellaneous:
\$class: Beam::Wire
config:
proxy_ip: ${PROXY_IP:-172.17.0.1/12}
ui:
class: LedgerSMB::Template::UI
method: new_UI
lifecycle: eager
args:
cache:
\$ref: paths/UI_cache
root:
\$ref: paths/UI
EOF
export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf'
if [[ -n "$LSMB_MAIL_SMTPHOST" ]]
then
if [[ "$LSMB_MAIL_SMTPHOST" == "__CONTAINER_GATEWAY__" ]]
then
LSMB_MAIL_SMTPHOST="$(ip route | awk '/default/ { print $3 }')"
export LSMB_MAIL_SMTPHOST
fi
cat <<EOF >./local/conf/ledgersmb.000.yaml
mail:
transport:
host: $LSMB_MAIL_SMTPHOST
EOF
fi
if [[ -n "$LSMB_MAIL_SMTPPORT" ]]
then
cat <<EOF >./local/conf/ledgersmb.001.yaml
mail:
transport:
port: $LSMB_MAIL_SMTPPORT
EOF
fi
if [[ -n "$LSMB_MAIL_SMTPSENDER_HOSTNAME" ]]
then
cat <<EOF >./local/conf/ledgersmb.002.yaml
mail:
transport:
helo: $LSMB_MAIL_SMTPSENDER_HOSTNAME
EOF
fi
if [[ -n "$LSMB_MAIL_SMTPUSER" ]]
then
cat <<EOF >./local/conf/ledgersmb.003.yaml
mail:
transport:
sasl_authenticator:
\$class: Authen::SASL
mechanism: $LSMB_MAIL_SMTPAUTHMECH
callback:
user: $LSMB_MAIL_SMTPUSER
pass: $LSMB_MAIL_SMTPPASS
EOF
fi
fi
# start ledgersmb
@ -96,12 +162,14 @@ fi
# starman instance (instead of just the worker, which will immediately
# get restarted) on error; it also has a positive effect on memory use
LSMB_CONFIG_FILE=${LSMB_CONFIG_FILE:-./local/conf/ledgersmb.yaml}
export LSMB_CONFIG_FILE
echo '--------- LEDGERSMB CONFIGURATION: ledgersmb.conf'
cat ${LSMB_CONFIG_FILE:-ledgersmb.conf}
cat ${LSMB_CONFIG_FILE}
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} \
exec starman --listen 0.0.0.0:5762 --workers ${LSMB_WORKERS:-5} \
-I lib -I old/lib \
--preload-app bin/ledgersmb-server.psgi