Compare commits

..

29 Commits

Author SHA1 Message Date
Erik Huelsmann
196581f2ad * Automatic Dockerfile update by release process 2025-01-23 16:26:21 -05:00
Erik Huelsmann
304a253634 Update README in preparation of 1.12 release 2024-12-14 21:22:36 +01:00
Erik Huelsmann
55582d08a1 Update README.md -- 1.10 is EOL 2024-10-21 23:38:48 +02: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
5 changed files with 87 additions and 37 deletions

View File

@@ -11,15 +11,16 @@ on:
jobs: jobs:
noResponse: noResponse:
if: github.repository_owner == 'ledgersmb'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: lee-dohm/no-response@v0.5.0 - uses: actions/stale@v9
with: with:
token: ${{ github.token }} 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 # Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 90 days-before-close: 90
# Label requiring a response # Label requiring a response
responseRequiredLabel: waiting-for-user close-issue-message: >
# 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. Closing: more than 90 days without user response. Feel free to reopen with your comments.

View File

@@ -5,15 +5,15 @@ ARG SRCIMAGE=debian:bookworm-slim
FROM $SRCIMAGE AS builder FROM $SRCIMAGE AS builder
ARG LSMB_VERSION="1.11.2" ARG LSMB_VERSION="1.11.20"
ARG LSMB_DL_DIR="Releases" ARG LSMB_DL_DIR="Releases"
ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz"
RUN set -x ; \ RUN set -x ; \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \ DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \ DEBIAN_FRONTEND="noninteractive" apt-get -q -y dist-upgrade && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install dh-make-perl libmodule-cpanfile-perl git wget && \ DEBIAN_FRONTEND="noninteractive" apt-get -q -y install dh-make-perl libmodule-cpanfile-perl git wget && \
apt-file update apt-file update
RUN set -x ; \ RUN set -x ; \
@@ -51,7 +51,7 @@ LABEL org.opencontainers.image.description="LedgerSMB is a full featured double-
the LedgerSMB project is to bring high quality ERP and accounting capabilities\ the LedgerSMB project is to bring high quality ERP and accounting capabilities\
to Small and Midsize Businesses." to Small and Midsize Businesses."
ARG LSMB_VERSION="1.11.2" ARG LSMB_VERSION="1.11.20"
ARG LSMB_DL_DIR="Releases" ARG LSMB_DL_DIR="Releases"
ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz" ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz"
@@ -75,19 +75,19 @@ RUN set -x ; \
mkdir -p /usr/share/man/man6/ && \ mkdir -p /usr/share/man/man6/ && \
mkdir -p /usr/share/man/man7/ && \ mkdir -p /usr/share/man/man7/ && \
mkdir -p /usr/share/man/man8/ && \ mkdir -p /usr/share/man/man8/ && \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \ DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \ DEBIAN_FRONTEND="noninteractive" apt-get -q -y dist-upgrade && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install \ DEBIAN_FRONTEND="noninteractive" apt-get -q -y install \
wget ca-certificates gnupg \ wget ca-certificates gnupg iproute2 \
$( cat /tmp/derived-deps ) \ $( cat /tmp/derived-deps ) \
libclass-c3-xs-perl \ libclass-c3-xs-perl \
texlive-plain-generic texlive-latex-recommended texlive-fonts-recommended \ texlive-plain-generic texlive-latex-recommended texlive-fonts-recommended \
texlive-xetex fonts-liberation \ texlive-xetex fonts-liberation \
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 [signed-by=/etc/apt/keyrings/postgresql.asc] 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 > /etc/apt/keyrings/postgresql.asc && \
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \ DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
DEBIAN_FRONTEND="noninteractive" apt-get -y install postgresql-client && \ DEBIAN_FRONTEND="noninteractive" apt-get -q -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 "$ARTIFACT_LOCATION" && \ 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 && \
@@ -97,9 +97,9 @@ RUN set -x ; \
--with-feature=latex-pdf-ps \ --with-feature=latex-pdf-ps \
--with-feature=openoffice \ --with-feature=openoffice \
--installdeps /srv/ledgersmb/ && \ --installdeps /srv/ledgersmb/ && \
apt-get purge -q -y git cpanminus make gcc libperl-dev && \ DEBIAN_FRONTEND="noninteractive" apt-get purge -q -y git cpanminus make gcc libperl-dev && \
apt-get autoremove -q -y && \ DEBIAN_FRONTEND="noninteractive" apt-get autoremove -q -y && \
apt-get clean -q && \ DEBIAN_FRONTEND="noninteractive" apt-get clean -q && \
rm -rf ~/.cpanm/ /var/lib/apt/lists/* /usr/share/man/* rm -rf ~/.cpanm/ /var/lib/apt/lists/* /usr/share/man/*
@@ -110,7 +110,9 @@ 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
## MAIL ## MAIL
ENV LSMB_MAIL_SMTPHOST 172.17.0.1 # '__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_SMTPPORT 25
#ENV LSMB_MAIL_SMTPSENDER_HOSTNAME (container hostname) #ENV LSMB_MAIL_SMTPSENDER_HOSTNAME (container hostname)
#ENV LSMB_MAIL_SMTPTLS #ENV LSMB_MAIL_SMTPTLS

View File

@@ -2,10 +2,23 @@
Dockerfile for LedgerSMB Docker image 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 # Supported tags
- `1.11`, `1.11.x`, `latest` - Latest official release from the 1.11 branch - `1.12`, `1.12.x`, `latest` - Latest official release from the 1.12 branch
- `1.10`, `1.10.x` - Latest official release from the 1.10 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.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.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.7`, `1.7.41` - Last official release from the 1.7 branch (End-of-Life)
@@ -231,10 +244,10 @@ the standard configuration generation process in the container can be overruled:
If you do not want to completely overrule the configuration generated, but instead If you do not want to completely overrule the configuration generated, but instead
supplement the configuration, you can put incremental configuration snippets in supplement the configuration, you can put incremental configuration snippets in
files named `ledgersmb.XXX.yaml` in the same folder. E.g.: files named `ledgersmb.1XX.yaml` in the same folder. E.g.:
```plain ```plain
$ cat <<EOF > /home/ledgersmb/conf/ledgersmb.001.yaml $ cat <<EOF > /home/ledgersmb/conf/ledgersmb.100.yaml
logging: logging:
file: ledgersmb.logging file: ledgersmb.logging
EOF EOF

View File

@@ -37,18 +37,23 @@ services:
# change the 'source' to the directory where you want the configuration # change the 'source' to the directory where you want the configuration
# to be stored. # to be stored.
# volumes: # volumes:
# # Override all configuration:
# - type: bind # - type: bind
# source: /home/ledgersmb/conf # source: /home/ledgersmb/conf
# target: /srv/ledgersmb/local/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: networks:
- internal - internal
- default - default
# Comment the 'ports' section to disable mapping 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. Mapping "5762:5762" makes 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: Leave this uncommented 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 (such as by reverse proxying) to protect
# and other sensitive data # user's passwords and other sensitive data
ports: ports:
- "5762:5762" - "5762:5762"
environment: environment:

View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
cd /srv/ledgersmb cd /srv/ledgersmb
mkdir ./local/conf/ [[ -d ./local/conf/ ]] || mkdir ./local/conf/
if [[ -n "$SSMTP_ROOT" ]]; then if [[ -n "$SSMTP_ROOT" ]]; then
echo "\$SSMTP_ROOT set; parameter is deprecated and will be ignored" echo "\$SSMTP_ROOT set; parameter is deprecated and will be ignored"
LSMB_HAVE_DEPRECATED=1 LSMB_HAVE_DEPRECATED=1
@@ -67,7 +67,6 @@ if [[ -n "$LSMB_HAVE_DEPRECATED" ]]; then
echo "!!! DEPRECATED \$SSMTP_* PARAMETERS WILL BE REMOVED in the 1.9 image!!!" echo "!!! DEPRECATED \$SSMTP_* PARAMETERS WILL BE REMOVED in the 1.9 image!!!"
fi fi
if [[ ! -f ./local/conf/ledgersmb.yaml ]]; then if [[ ! -f ./local/conf/ledgersmb.yaml ]]; then
cat <<EOF >./local/conf/ledgersmb.yaml cat <<EOF >./local/conf/ledgersmb.yaml
paths: paths:
@@ -85,9 +84,6 @@ db:
mail: mail:
transport: transport:
\$class: LedgerSMB::Mailer::TransportSMTP \$class: LedgerSMB::Mailer::TransportSMTP
host: $LSMB_MAIL_SMTPHOST
port: $LSMB_MAIL_SMTPPORT
helo: $LSMB_MAIL_SMTPSENDER_HOSTNAME
tls: $LSMB_MAIL_SMTPTLS tls: $LSMB_MAIL_SMTPTLS
miscellaneous: miscellaneous:
@@ -106,9 +102,42 @@ ui:
\$ref: paths/UI \$ref: paths/UI
EOF EOF
if [[ -n "" ]] if [[ -n "$LSMB_MAIL_SMTPHOST" ]]
then 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 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: mail:
transport: transport:
sasl_password: '' sasl_password: ''