Compare commits

..

6 Commits

Author SHA1 Message Date
Erik Huelsmann
4c11eb8db5 * Automatic Dockerfile update by release process 2022-10-29 12:48:00 -04:00
Erik Huelsmann
f475330713 * Automatic Dockerfile update by release process 2022-10-22 14:35:38 -04:00
Erik Huelsmann
8484d53f3a * Automatic Dockerfile update by release process 2022-10-12 02:55:07 -04:00
Erik Huelsmann
ed3a48cf02 Update README.md 2022-10-08 17:30:08 +02:00
Erik Huelsmann
56da1eb464 Update README.md for 1.10 release 2022-09-24 11:56:48 +02:00
Erik Huelsmann
cc7e316845 * Automatic Dockerfile update by release process 2022-08-24 03:24:56 -04:00
6 changed files with 47 additions and 185 deletions

View File

@@ -1,25 +0,0 @@
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:
runs-on: ubuntu-latest
steps:
- uses: lee-dohm/no-response@v0.5.0
with:
token: ${{ github.token }}
# 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,11 +1,11 @@
# Build time variables
ARG SRCIMAGE=debian:bookworm-slim
ARG SRCIMAGE=debian:bullseye-slim
FROM $SRCIMAGE AS builder
ARG LSMB_VERSION="1.11.1"
ARG LSMB_VERSION="1.9.19"
ARG LSMB_DL_DIR="Releases"
ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz"
@@ -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\
to Small and Midsize Businesses."
ARG LSMB_VERSION="1.11.1"
ARG LSMB_VERSION="1.9.19"
ARG LSMB_DL_DIR="Releases"
ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSION/ledgersmb-$LSMB_VERSION.tar.gz"
@@ -61,6 +61,8 @@ ARG ARTIFACT_LOCATION="https://download.ledgersmb.org/f/$LSMB_DL_DIR/$LSMB_VERSI
# 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
COPY --from=builder /srv/derived-deps /tmp/derived-deps
@@ -126,9 +128,7 @@ 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 /srv/ledgersmb/local/conf && \
chown -R www-data /srv/ledgersmb/local
mkdir -p /var/www
# Work around an aufs bug related to directory permissions:
RUN mkdir -p /tmp && chmod 1777 /tmp

View File

@@ -4,9 +4,8 @@ Dockerfile for LedgerSMB Docker image
# Supported tags
- `1.11`, `1.11.x`, `latest` - Latest official release from the 1.11 branch
- `1.10`, `1.10.x` - Latest official release from the 1.10 branch
- `1.9`, `1.9.30` - Last official release from the 1.9 branch (End-of-Life)
- `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.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)
@@ -15,9 +14,7 @@ Dockerfile for LedgerSMB Docker image
- `master` - Master branch from git, unstable
Containers supporting the development process are provided
through the ledgersmb-dev-docker project. See [the development
container's README](https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started)
for more information.
through the ledgersmb-dev-docker project. See https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started.
# What is LedgerSMB?
@@ -52,11 +49,11 @@ or manually with docker only.
## Docker-Compose: Installation and start
This repository provides a file named `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:
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
$ docker-compose pull
@@ -111,7 +108,7 @@ like `POSTGRES_HOST` above.
# Set up LedgerSMB
* Visit http://myledger:5762/setup.pl.
* Visit http://localhost:5762/setup.pl.
* Log in with the "postgres" user and the password `abc` as given above -
or with the credentials of your own database server in case of a manual
setup - and provide the name of a company (= database name) you want to
@@ -176,74 +173,16 @@ yet with the deprecation, the abilities have expanded.
The following parameters are now supported to set mail preferences:
* `LSMB_MAIL_SMTPHOST` \
The host name/IP-address of the SMTP server that will forward mail from
LedgerSMB to the outside world.
* `LSMB_MAIL_SMTPPORT` \
The port that the SMTP server in `LSMB_MAIL_SMTPHOST` listens to.
* `LSMB_MAIL_SMTPTLS` \
Can be one of `no` (default), `yes` or `raw`. `yes` indicates to use
STARTTLS over a regular SMTP connection; `raw`' indicates an SMTP connection
should be established over a TLS connection (a.k.a. smtps).
* `LSMB_MAIL_SMTPSENDER_HOSTNAME` (optional) \
When set, used to identify the host when connecting to an SMTP server. When
not set, the host is queried for its host name.
* `LSMB_MAIL_SMTPUSER` \
Username to authenticate to the SMTP host in `LSMB_MAIL_SMTPHOST`.
* `LSMB_MAIL_SMTPPASS` \
Password to authenticate to the SMTP host in `LSMB_MAIL_SMTPHOST` with the
user in `LSMB_MAIL_SMTPUSER`.
* `LSMB_MAIL_SMTPAUTHMECH` \
A space separated list of SASL mechanisms to be used for authentication of
the smtp connection with the SMTP server. Available mechanisms depend on
your installed environment, but the following mechanisms should be available
in all of them: `PLAIN` `LOGIN` `CRAM_MD5` & `DIGEST_MD5`. **Note that**
`PLAIN` or `LOGIN` send passwords in plain text over the wire to the SMTP
server; only use these methods in combination with TLS encryption.
* `LSMB_MAIL_SMTPHOST`
* `LSMB_MAIL_SMTPPORT`
* `LSMB_MAIL_SMTPTLS`
* `LSMB_MAIL_SMTPSENDER_HOSTNAME`
* `LSMB_MAIL_SMTPUSER`
* `LSMB_MAIL_SMTPPASS`
* `LSMB_MAIL_SMTPAUTHMECH`
# 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.XXX.yaml` in the same folder. E.g.:
```plain
$ cat <<EOF > /home/ledgersmb/conf/ledgersmb.001.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

@@ -17,17 +17,12 @@
version: "3.2"
services:
proxy:
depends_on:
- lsmb
image: nginx:1-alpine
volumes:
- "lsmbdata:/srv/ledgersmb"
- "./nginx.conf:/etc/nginx/nginx.conf"
ports:
- "8080:8080"
# Comment the line below to stop the container from restarting on boot
# unless it was manually stopped
restart: unless-stopped
lsmb:
volumes:
- "lsmbdata:/srv/ledgersmb"

View File

@@ -16,7 +16,7 @@ services:
# because that allows us to use the default hostname ("postgres")
# from the LedgerSMB configuration
postgres:
image: postgres:15-alpine
image: postgres:12-alpine
environment:
# Replace the password below for a secure setup
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-abc}
@@ -25,21 +25,10 @@ services:
- internal
volumes:
- "pgdata:/var/lib/postgresql/data"
# Comment the line below to stop the container from restarting on boot
# unless it was manually stopped
restart: unless-stopped
lsmb:
depends_on:
- postgres
image: ghcr.io/ledgersmb/ledgersmb:1.11
# 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:
# - type: bind
# source: /home/ledgersmb/conf
# target: /srv/ledgersmb/local/conf
image: ghcr.io/ledgersmb/ledgersmb:1.9
networks:
- internal
- default
@@ -78,9 +67,6 @@ services:
# hosted in a separate container, this setting needs to be adjusted.
#
# PROXY_IP: 172.17.0.1/12
# Comment the line below to stop the container from restarting on boot
# unless it was manually stopped
restart: unless-stopped
# having the dbdata volume is required to persist our
# data between PostgreSQL container updates; without

View File

@@ -1,7 +1,7 @@
#!/bin/bash
cd /srv/ledgersmb
mkdir ./local/conf/
if [[ -n "$SSMTP_ROOT" ]]; then
echo "\$SSMTP_ROOT set; parameter is deprecated and will be ignored"
LSMB_HAVE_DEPRECATED=1
@@ -68,58 +68,27 @@ if [[ -n "$LSMB_HAVE_DEPRECATED" ]]; then
fi
if [[ ! -f ./local/conf/ledgersmb.yaml ]]; then
cat <<EOF >./local/conf/ledgersmb.yaml
paths:
\$class: Beam::Wire
config:
UI: ./UI/
UI_cache: lsmb_templates/
db:
\$class: LedgerSMB::Database::Factory
connect_data:
host: ${POSTGRES_HOST:-postgres}
port: ${POSTGRES_PORT:-5432}
mail:
transport:
\$class: LedgerSMB::Mailer::TransportSMTP
host: $LSMB_MAIL_SMTPHOST
port: $LSMB_MAIL_SMTPPORT
helo: $LSMB_MAIL_SMTPSENDER_HOSTNAME
tls: $LSMB_MAIL_SMTPTLS
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
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}
EOF
if [[ -n "" ]]
then
cat <<EOF >./local/conf/ledgersmb.000.yaml
mail:
transport:
sasl_password: ''
sasl_username:
\$class: Authen::SASL
mechanism: $LSMB_MAIL_SMTPAUTHMECH
callback:
user: $LSMB_MAIL_SMTPUSER
pass: $LSMB_MAIL_SMTPPASS
EOF
fi
export LSMB_CONFIG_FILE='/tmp/ledgersmb.conf'
fi
# start ledgersmb
@@ -127,14 +96,12 @@ 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}
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 0.0.0.0:5762 --workers ${LSMB_WORKERS:-5} \
exec starman --listen :5762: --workers ${LSMB_WORKERS:-5} \
-I lib -I old/lib \
--preload-app bin/ledgersmb-server.psgi