mirror of
https://github.com/ledgersmb/ledgersmb-docker.git
synced 2025-04-20 07:07:10 -04:00
Compare commits
No commits in common. "1.12" and "1.10.0-beta2" have entirely different histories.
1.12
...
1.10.0-bet
18
.github/workflows/images-cleanup.yml
vendored
18
.github/workflows/images-cleanup.yml
vendored
@ -1,18 +0,0 @@
|
|||||||
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
26
.github/workflows/no-response.yml
vendored
@ -1,26 +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:
|
|
||||||
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.
|
|
80
Dockerfile
80
Dockerfile
@ -1,19 +1,19 @@
|
|||||||
# Build time variables
|
# Build time variables
|
||||||
|
|
||||||
ARG SRCIMAGE=debian:bookworm-slim
|
ARG SRCIMAGE=debian:bullseye-slim
|
||||||
|
|
||||||
|
|
||||||
FROM $SRCIMAGE AS builder
|
FROM $SRCIMAGE AS builder
|
||||||
|
|
||||||
ARG LSMB_VERSION="1.12.7"
|
ARG LSMB_VERSION="1.10.0-beta2"
|
||||||
ARG LSMB_DL_DIR="Releases"
|
ARG LSMB_DL_DIR="Beta 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 -q -y update && \
|
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y dist-upgrade && \
|
DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install dh-make-perl libmodule-cpanfile-perl git wget && \
|
DEBIAN_FRONTEND="noninteractive" apt-get -y install dh-make-perl libmodule-cpanfile-perl git wget && \
|
||||||
apt-file update
|
apt-file update
|
||||||
|
|
||||||
RUN set -x ; \
|
RUN set -x ; \
|
||||||
@ -51,15 +51,19 @@ 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.12.7"
|
ARG LSMB_VERSION="1.10.0-beta2"
|
||||||
ARG LSMB_DL_DIR="Releases"
|
ARG LSMB_DL_DIR="Beta 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"
|
||||||
|
|
||||||
|
|
||||||
### PACKAGE REQUIREMENTS RATIONALE
|
# Install Perl, Tex, Starman, psql client, and all dependencies
|
||||||
#
|
# Without libclass-c3-xs-perl, performance is terribly slow...
|
||||||
# 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
|
# 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
|
COPY --from=builder /srv/derived-deps /tmp/derived-deps
|
||||||
|
|
||||||
@ -73,29 +77,31 @@ 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 -q -y update && \
|
DEBIAN_FRONTEND="noninteractive" apt-get -y update && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y dist-upgrade && \
|
DEBIAN_FRONTEND="noninteractive" apt-get -y upgrade && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y install \
|
DEBIAN_FRONTEND="noninteractive" apt-get -y install \
|
||||||
wget ca-certificates gnupg iproute2 \
|
wget ca-certificates gnupg \
|
||||||
$( cat /tmp/derived-deps ) \
|
$( cat /tmp/derived-deps ) \
|
||||||
|
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 postgresql-common && \
|
lsb-release && \
|
||||||
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh -y && \
|
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get -q -y update && \
|
(wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -) && \
|
||||||
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 && \
|
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 && \
|
||||||
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
|
rm -f /tmp/ledgersmb-$LSMB_VERSION.tar.gz && \
|
||||||
cpanm --metacpan --notest \
|
cpanm --notest \
|
||||||
--with-feature=starman \
|
--with-feature=starman \
|
||||||
--with-feature=latex-pdf-ps \
|
--with-feature=latex-pdf-ps \
|
||||||
--with-feature=openoffice \
|
--with-feature=openoffice \
|
||||||
--installdeps /srv/ledgersmb/ && \
|
--installdeps /srv/ledgersmb/ && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get purge -q -y git cpanminus make gcc libperl-dev && \
|
apt-get purge -q -y git cpanminus make gcc libperl-dev && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get autoremove -q -y && \
|
apt-get autoremove -q -y && \
|
||||||
DEBIAN_FRONTEND="noninteractive" apt-get clean -q && \
|
apt-get clean -q && \
|
||||||
rm -rf ~/.cpanm/ /var/lib/apt/lists/* /usr/share/man/*
|
rm -rf ~/.cpanm/ /var/lib/apt/lists/* /usr/share/man/*
|
||||||
|
|
||||||
|
|
||||||
@ -106,27 +112,23 @@ 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
|
||||||
# '__CONTAINER_GATEWAY__' is a magic value which will be substituted
|
ENV LSMB_MAIL_SMTPHOST 172.17.0.1
|
||||||
# with the actual gateway IP address
|
#ENV LSMB_MAIL_SMTPPORT 25
|
||||||
ENV LSMB_MAIL_SMTPHOST=__CONTAINER_GATEWAY__
|
#ENV LSMB_MAIL_SMTPSENDER_HOSTNAME (container hostname)
|
||||||
#ENV LSMB_MAIL_SMTPPORT=25
|
#ENV LSMB_MAIL_SMTPTLS
|
||||||
#ENV LSMB_MAIL_SMTPSENDER_HOSTNAME=(container hostname)
|
#ENV LSMB_MAIL_SMTPUSER
|
||||||
#ENV LSMB_MAIL_SMTPTLS=
|
#ENV LSMB_MAIL_SMTPPASS
|
||||||
#ENV LSMB_MAIL_SMTPUSER=
|
#ENV LSMB_MAIL_SMTPAUTHMECH
|
||||||
#ENV LSMB_MAIL_SMTPPASS=
|
|
||||||
#ENV LSMB_MAIL_SMTPAUTHMECH=
|
|
||||||
|
|
||||||
## DATABASE
|
## 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
|
||||||
|
|
||||||
RUN chmod +x /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:
|
# Work around an aufs bug related to directory permissions:
|
||||||
RUN mkdir -p /tmp && chmod 1777 /tmp
|
RUN mkdir -p /tmp && chmod 1777 /tmp
|
||||||
|
114
README.md
114
README.md
@ -2,35 +2,19 @@
|
|||||||
|
|
||||||
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.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 (currently in beta)
|
||||||
- `1.11`, `1.11.x` - Latest official release from the 1.11 branch
|
- `1.9`, `1.9.x`, `latest` - Latest official release from the 1.9 branch
|
||||||
- `1.10`, `1.10.38` - Last official release from the 1.10 branch (End-of-Life)
|
- `1.8`, `1.8.x` - Latest official release from the 1.8 branch
|
||||||
- `1.9`, `1.9.30` - Last official release from the 1.9 branch (End-of-Life)
|
- `1.7`, `1.7.x` - Latest official release from 1.7 branch
|
||||||
- `1.8`, `1.8.31` - Last official release from the 1.8 branch (End-of-Life)
|
- `1.6`, `1.6.33` - Last official release from 1.6 branch
|
||||||
- `1.7`, `1.7.41` - Last official release from the 1.7 branch (End-of-Life)
|
- `1.5`, `1.5.30` - Last official release from 1.5 branch
|
||||||
- `1.6`, `1.6.33` - Last official release from the 1.6 branch (End-of-Life)
|
- `1.4`, `1.4.42` - Last official release from 1.4 branch
|
||||||
- `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
|
- `master` - Master branch from git, unstable
|
||||||
|
|
||||||
Containers supporting the development process are provided
|
Containers supporting the development process are provided
|
||||||
through the ledgersmb-dev-docker project. See [the development
|
through the ledgersmb-dev-docker project. See https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started.
|
||||||
container's README](https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started)
|
|
||||||
for more information.
|
|
||||||
|
|
||||||
# What is LedgerSMB?
|
# What is LedgerSMB?
|
||||||
|
|
||||||
@ -65,11 +49,11 @@ or manually with docker only.
|
|||||||
|
|
||||||
## Docker-Compose: Installation and start
|
## Docker-Compose: Installation and start
|
||||||
|
|
||||||
This repository provides a file named `docker-compose.yml` which can be used to
|
This image provides `docker-compose.yml` which can be used to pull related
|
||||||
pull related images, install them, establish an internal network for their
|
images, install them, establish an internal network for their communications,
|
||||||
communications, adjust environment variables, start and stop LedgerSMB. The
|
adjust environment variables, start and stop LedgerSMB. The only instructions
|
||||||
only instructions required, after the optional edition of the file to adjust
|
required, after the optional edition of the file to adjust the environment
|
||||||
the environment variables, are:
|
variables, are:
|
||||||
|
|
||||||
```plain
|
```plain
|
||||||
$ docker-compose pull
|
$ docker-compose pull
|
||||||
@ -189,74 +173,16 @@ yet with the deprecation, the abilities have expanded.
|
|||||||
|
|
||||||
The following parameters are now supported to set mail preferences:
|
The following parameters are now supported to set mail preferences:
|
||||||
|
|
||||||
* `LSMB_MAIL_SMTPHOST` \
|
* `LSMB_MAIL_SMTPHOST`
|
||||||
The host name/IP-address of the SMTP server that will forward mail from
|
* `LSMB_MAIL_SMTPPORT`
|
||||||
LedgerSMB to the outside world.
|
* `LSMB_MAIL_SMTPTLS`
|
||||||
* `LSMB_MAIL_SMTPPORT` \
|
* `LSMB_MAIL_SMTPSENDER_HOSTNAME`
|
||||||
The port that the SMTP server in `LSMB_MAIL_SMTPHOST` listens to.
|
* `LSMB_MAIL_SMTPUSER`
|
||||||
* `LSMB_MAIL_SMTPTLS` \
|
* `LSMB_MAIL_SMTPPASS`
|
||||||
Can be one of `no` (default), `yes` or `raw`. `yes` indicates to use
|
* `LSMB_MAIL_SMTPAUTHMECH`
|
||||||
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.
|
|
||||||
|
|
||||||
# Advanced setup
|
# 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
|
## Docker Compose with reverse proxy
|
||||||
|
|
||||||
The `docker-compose-reverseproxy.yml` file shows a docker-compose setup
|
The `docker-compose-reverseproxy.yml` file shows a docker-compose setup
|
||||||
|
@ -17,17 +17,12 @@
|
|||||||
version: "3.2"
|
version: "3.2"
|
||||||
services:
|
services:
|
||||||
proxy:
|
proxy:
|
||||||
depends_on:
|
|
||||||
- lsmb
|
|
||||||
image: nginx:1-alpine
|
image: nginx:1-alpine
|
||||||
volumes:
|
volumes:
|
||||||
- "lsmbdata:/srv/ledgersmb"
|
- "lsmbdata:/srv/ledgersmb"
|
||||||
- "./nginx.conf:/etc/nginx/nginx.conf"
|
- "./nginx.conf:/etc/nginx/nginx.conf"
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
# Comment the line below to stop the container from restarting on boot
|
|
||||||
# unless it was manually stopped
|
|
||||||
restart: unless-stopped
|
|
||||||
lsmb:
|
lsmb:
|
||||||
volumes:
|
volumes:
|
||||||
- "lsmbdata:/srv/ledgersmb"
|
- "lsmbdata:/srv/ledgersmb"
|
||||||
|
@ -16,7 +16,7 @@ services:
|
|||||||
# because that allows us to use the default hostname ("postgres")
|
# because that allows us to use the default hostname ("postgres")
|
||||||
# from the LedgerSMB configuration
|
# from the LedgerSMB configuration
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:15-alpine
|
image: postgres:12-alpine
|
||||||
environment:
|
environment:
|
||||||
# Replace the password below for a secure setup
|
# Replace the password below for a secure setup
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-abc}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-abc}
|
||||||
@ -25,35 +25,19 @@ services:
|
|||||||
- internal
|
- internal
|
||||||
volumes:
|
volumes:
|
||||||
- "pgdata:/var/lib/postgresql/data"
|
- "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:
|
lsmb:
|
||||||
depends_on:
|
depends_on:
|
||||||
- postgres
|
- postgres
|
||||||
image: ghcr.io/ledgersmb/ledgersmb:1.12
|
image: ghcr.io/ledgersmb/ledgersmb:1.9
|
||||||
# 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:
|
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. Mapping "5762:5762" makes 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: Leave this uncommented for evaluation purposes only!
|
# SECURITY NOTE: Do this for evaluation purposes only!
|
||||||
# In production, be sure to use SSL/TLS (such as by reverse proxying) to protect
|
# In production, be sure to use SSL/TLS to protect user's passwords
|
||||||
# user's passwords and other sensitive data
|
# and other sensitive data
|
||||||
ports:
|
ports:
|
||||||
- "5762:5762"
|
- "5762:5762"
|
||||||
environment:
|
environment:
|
||||||
@ -83,9 +67,6 @@ services:
|
|||||||
# hosted in a separate container, this setting needs to be adjusted.
|
# hosted in a separate container, this setting needs to be adjusted.
|
||||||
#
|
#
|
||||||
# PROXY_IP: 172.17.0.1/12
|
# 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
|
# having the dbdata volume is required to persist our
|
||||||
# data between PostgreSQL container updates; without
|
# data between PostgreSQL container updates; without
|
||||||
|
114
start.sh
114
start.sh
@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
cd /srv/ledgersmb
|
cd /srv/ledgersmb
|
||||||
[[ -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,94 +67,28 @@ 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 [[ "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/
|
|
||||||
|
|
||||||
db:
|
if [[ ! -f ledgersmb.conf ]]; then
|
||||||
\$class: LedgerSMB::Database::Factory
|
cat <<EOF >/tmp/ledgersmb.conf
|
||||||
connect_data:
|
[main]
|
||||||
host: ${POSTGRES_HOST:-postgres}
|
cache_templates = 1
|
||||||
port: ${POSTGRES_PORT:-5432}
|
[database]
|
||||||
|
host = $POSTGRES_HOST
|
||||||
mail:
|
port = $POSTGRES_PORT
|
||||||
transport:
|
default_db = $DEFAULT_DB
|
||||||
\$class: Email::Sender::Transport::SMTP
|
[mail]
|
||||||
ssl: $tls_mode
|
${LSMB_MAIL_SMTPHOST:+smtphost=$LSMB_MAIL_SMTPHOST
|
||||||
|
}${LSMB_MAIL_SMTPPORT:+smtpport=$LSMB_MAIL_SMTPPORT
|
||||||
miscellaneous:
|
}${LSMB_MAIL_SMTPSENDER_HOSTNAME:+smtpsender_hostname=$LSMB_MAIL_SMTPSENDER_HOSTNAME
|
||||||
\$class: Beam::Wire
|
}${LSMB_MAIL_SMTPTLS:+smtptls=$LSMB_MAIL_SMTPTLS
|
||||||
config:
|
}${LSMB_MAIL_SMTPUSER:+smtpuser=$LSMB_MAIL_SMTPUSER
|
||||||
proxy_ip: ${PROXY_IP:-172.17.0.1/12}
|
}${LSMB_MAIL_SMTPPASS:+smtppass=$LSMB_MAIL_SMTPPASS
|
||||||
|
}${LSMB_MAIL_SMTPAUTHMECH:+smtpauthmech=$LSMB_MAIL_SMTPAUTHMECH
|
||||||
ui:
|
}
|
||||||
class: LedgerSMB::Template::UI
|
[proxy]
|
||||||
method: new_UI
|
ip=${PROXY_IP:-172.17.0.1/12}
|
||||||
lifecycle: eager
|
|
||||||
args:
|
|
||||||
cache:
|
|
||||||
\$ref: paths/UI_cache
|
|
||||||
root:
|
|
||||||
\$ref: paths/UI
|
|
||||||
EOF
|
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
|
fi
|
||||||
|
|
||||||
# start ledgersmb
|
# start ledgersmb
|
||||||
@ -162,14 +96,12 @@ fi
|
|||||||
# starman instance (instead of just the worker, which will immediately
|
# starman instance (instead of just the worker, which will immediately
|
||||||
# get restarted) on error; it also has a positive effect on memory use
|
# 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'
|
echo '--------- LEDGERSMB CONFIGURATION: ledgersmb.conf'
|
||||||
cat ${LSMB_CONFIG_FILE}
|
cat ${LSMB_CONFIG_FILE:-ledgersmb.conf}
|
||||||
echo '--------- LEDGERSMB CONFIGURATION --- END'
|
echo '--------- LEDGERSMB CONFIGURATION --- END'
|
||||||
|
|
||||||
# ':5762:' suppresses an uninitialized variable warning in starman
|
# ':5762:' suppresses an uninitialized variable warning in starman
|
||||||
# the last colon means "don't connect using tls"; without it, there's a warning
|
# 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 \
|
-I lib -I old/lib \
|
||||||
--preload-app bin/ledgersmb-server.psgi
|
--preload-app bin/ledgersmb-server.psgi
|
||||||
|
Loading…
Reference in New Issue
Block a user