Compare commits

..

294 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
Erik Huelsmann
c7d22e2b6e * Automatic Dockerfile update by release process 2023-06-23 17:49:14 -04:00
Erik Huelsmann
aa1cdc2dca
Merge pull request #32 from perlancar/fix-typo
Fix typo
2023-06-06 12:43:00 +02:00
perlancar (on netbook-dell-xps13)
1d1e029a71 Fix typo 2023-06-06 16:44:32 +07:00
Erik Huelsmann
06941025cd * Automatic Dockerfile update by release process 2023-05-28 09:42:12 -04:00
Erik Huelsmann
723202b5c4 * Automatic Dockerfile update by release process 2023-05-20 10:13:22 -04:00
Erik Huelsmann
59a542afc8 * Automatic Dockerfile update by release process 2023-04-21 15:40:28 -04:00
Erik Huelsmann
5b098c7b49 * Automatic Dockerfile update by release process 2023-04-09 17:27:29 -04:00
Erik Huelsmann
71e067d0a7 * Automatic Dockerfile update by release process 2023-03-03 02:54:10 -05:00
Erik Huelsmann
9f4b6b8580 * Automatic Dockerfile update by release process 2023-02-18 16:23:41 -05:00
Erik Huelsmann
3177ab415e * Automatic Dockerfile update by release process 2023-02-03 06:18:01 -05:00
Erik Huelsmann
7a2e6174a5 * Automatic Dockerfile update by release process 2023-01-27 10:18:01 -05:00
Erik Huelsmann
c9b8719897 * Automatic Dockerfile update by release process 2023-01-15 15:22:04 -05:00
Erik Huelsmann
deeecbcdf1 * Automatic Dockerfile update by release process 2023-01-06 08:14:30 -05:00
Christian Eriksson
e41eefd1c0
Describe environment variables for email config (#30)
* Describe environment variables for email config

New environment variables were introduced to enable users to configure
SMTP email forwarding. The variables were listed in the readme but not
described leaving users in the dark regarding the expected content of
the variables.

* Fix bulletpoint formatting

Instead of sub-bullets we present the explanation for email environment
variables as simple text instead.

* Push email env variable explanations to separate line
2023-01-01 19:55:17 +01:00
Erik Huelsmann
b247132333 * Automatic Dockerfile update by release process 2022-12-22 18:11:14 -05:00
Erik Huelsmann
82fdc70f05 * Automatic Dockerfile update by release process 2022-12-14 15:26:52 -05:00
Erik Huelsmann
16e22ab5b6 * Automatic Dockerfile update by release process 2022-12-10 17:08:25 -05:00
Erik Huelsmann
2fd0e3a899 Make containers restart automatically
and document how to disable that...
2022-11-30 23:55:08 +01:00
Erik Huelsmann
2c6e26e41c Record dependency of nginx on lsmb service
This dependency causes the lsmbdata volume to be forcibly created from the lsmb container
which means that the correct assets will be copied in.
2022-11-30 23:36:07 +01:00
Erik Huelsmann
8abfb47e09 * Automatic Dockerfile update by release process 2022-11-24 15:10:37 -05:00
Erik Huelsmann
c139863c85
Update docker-compose.yml 2022-11-22 22:45:03 +01:00
Erik Huelsmann
cad89f842c * Automatic Dockerfile update by release process 2022-10-30 09:04:50 -04:00
Erik Huelsmann
dffd342880 * Automatic Dockerfile update by release process 2022-10-29 13:01:59 -04:00
Erik Huelsmann
3230ac320c * Automatic Dockerfile update by release process 2022-10-22 14:55:45 -04:00
Erik Huelsmann
9e0957127b * Automatic Dockerfile update by release process 2022-10-12 03:11:21 -04:00
Erik Huelsmann
6b4fd9c831 * Automatic Dockerfile update by release process 2022-10-08 14:50:36 -04:00
Erik Huelsmann
68461e62b0 * Automatic Dockerfile update by release process 2022-10-06 14:34:42 -04:00
Erik Huelsmann
6779e82743 * Automatic Dockerfile update by release process 2022-10-06 05:36:43 -04:00
Erik Huelsmann
6dfa51e6bf Update README.md for 1.10 release 2022-09-24 11:59:21 +02:00
Erik Huelsmann
3edc3bfa83 * Automatic Dockerfile update by release process 2022-09-24 04:18:19 -04:00
Erik Huelsmann
6e2097eb2a * Automatic Dockerfile update by release process 2022-09-14 16:32:37 -04:00
Erik Huelsmann
2b2c2a86a7 Update README.md with 1.10 release series 2022-09-14 20:28:04 +02:00
Erik Huelsmann
2e703cf3b9 * Automatic Dockerfile update by release process 2022-08-10 16:26:55 -04:00
Erik Huelsmann
889fed85c9 Add more container metadata 2022-04-29 22:06:39 +02:00
Erik Huelsmann
3fd89bf933 * Automatic Dockerfile update by release process 2022-04-29 14:52:05 -04:00
Erik Huelsmann
2fd4d25b06 * Automatic Dockerfile update by release process 2022-04-09 10:49:28 -04:00
Erik Huelsmann
92483d9b69 * Automatic Dockerfile update by release process 2022-03-26 17:13:37 -04:00
Erik Huelsmann
a7a1412cbd * Automatic Dockerfile update by release process 2022-03-11 09:04:10 -05:00
Erik Huelsmann
8974109e48 * Automatic Dockerfile update by release process 2022-02-22 16:20:00 -05:00
Erik Huelsmann
16b55ab3b4 * Automatic Dockerfile update by release process 2022-02-18 18:29:11 -05:00
Erik Huelsmann
0fabba4a66 * Automatic Dockerfile update by release process 2022-02-03 14:31:35 -05:00
Erik Huelsmann
6471736148
Change the hosting location of the LedgerSMB Docker images 2022-01-28 22:52:20 +01:00
Erik Huelsmann
c8368ce921 * Automatic Dockerfile update by release process 2022-01-19 17:16:25 -05:00
Erik Huelsmann
1806b8003b * Automatic Dockerfile update by release process 2022-01-05 14:50:17 -05:00
Erik Huelsmann
d9163c1e65
Remove stale comments 2021-12-11 23:40:50 +01:00
Erik Huelsmann
9e88db52d9 Add advanced docker-compose configuration showing reverse proxy example 2021-12-11 22:24:01 +01:00
Erik Huelsmann
230a7ddfae Clarify and simplify use of the containers 2021-12-11 21:39:51 +01:00
Erik Huelsmann
3a86482a97
Update environment variables of mail configuration
[skip ci]
2021-12-11 20:56:18 +01:00
Erik Huelsmann
ae0cea34b3 * Automatic Dockerfile update by release process 2021-12-08 16:09:19 -05:00
Erik Huelsmann
f37678c275 * Automatic Dockerfile update by release process 2021-11-25 16:42:45 -05:00
Erik Huelsmann
b28f5b693b * Automatic Dockerfile update by release process 2021-11-14 05:26:33 -05:00
Erik Huelsmann
1f20ab08f1 * Automatic Dockerfile update by release process 2021-10-12 16:39:27 -04:00
Erik Huelsmann
34937fbd4f * Automatic Dockerfile update by release process 2021-10-01 06:31:50 -04:00
Erik Huelsmann
c6968b5397
Update README.md
Move 'latest' tag from 1.8 to 1.9.
2021-09-24 23:29:11 +02:00
Erik Huelsmann
5168936493 * Automatic Dockerfile update by release process 2021-09-24 16:08:51 -04:00
Erik Huelsmann
49a448c732
Change PostgreSQL container version
Close #28.
2021-09-23 16:38:44 +02:00
Erik Huelsmann
27b3e40e72 * Automatic Dockerfile update by release process 2021-09-18 16:43:48 -04:00
Erik Huelsmann
6593d58698 Set the reverse proxy address to the default Docker address range 2021-09-17 23:04:21 +02:00
Erik Huelsmann
5a7ec0a2ed Add reverse proxy configuration option 2021-09-17 22:41:06 +02:00
Erik Huelsmann
236a25b767 * Automatic Dockerfile update by release process 2021-09-12 16:22:35 -04:00
Erik Huelsmann
943fa166e8
Update start.sh
The starman option `max-workers` actually does not exist...
2021-09-12 22:19:04 +02:00
Erik Huelsmann
a678ae39a0 Use multi-stage build to compile list of dependency packages 2021-08-30 00:13:57 +02:00
Erik Huelsmann
3d12e4351d Align dependencies (after review against master branch) 2021-08-29 21:55:58 +02:00
Erik Huelsmann
ccd90f04a4 Upgrade MAINTAINER to LABEL 2021-08-29 21:20:13 +02:00
Erik Huelsmann
4d316f9019
Use Debian Bullseye as the basis for 1.9 images 2021-08-29 21:00:50 +02:00
Erik Huelsmann
71f876a253 * Automatic Dockerfile update by release process 2021-08-29 14:44:44 -04:00
Erik Huelsmann
ab00872e02
Update README.md 2021-08-28 17:32:47 +02:00
Erik Huelsmann
483a1110ff * Automatic Dockerfile update by release process 2021-08-18 17:35:58 -04:00
Erik Huelsmann
a2a625d193 Print commands as they are executed (debugging purposes) 2021-08-13 23:55:06 +02:00
Erik Huelsmann
f10924cae9 Make the artifact location into a build ARG 2021-08-13 23:46:46 +02:00
Erik Huelsmann
c13d20651c
Update README.md 2021-07-10 23:54:23 +02:00
Erik Huelsmann
7771b8c03b
Update README.md 2021-07-10 23:51:02 +02:00
Erik Huelsmann
1ba89cef50
Update Dockerfile
Make sure `iftex` package is installed
2021-06-12 22:34:34 +02:00
Erik Huelsmann
d7ad535199
Update docker-compose.yml
Refer to the 1.9 tag for the docker images
2021-06-11 23:15:10 +02:00
Erik Huelsmann
ac2553ea17 Branch 1.9 and create 1.9.0-alpha1 container 2021-03-20 00:05:07 +01: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
Erik Huelsmann
ba202372fa Add formatting to README.md 2020-02-10 23:44:10 +01:00
Erik Huelsmann
3197f4feab Change manual setup section to prevent suggested simplicity
We've seen multiple users thinking that simple creation of two containers
is enough, whereas this isn't the case: at the very least, the deprecated
`--link` docker option must be used, but more compliant is the use of
custom networks and bridges. Docker-compose sets all that up automatically,
so don't suggest going without docker-compose is simpler.
2020-02-10 23:28:06 +01:00
Erik Huelsmann
46a5386e54 * Automatic Dockerfile update by release process 2020-02-10 20:48:32 +00:00
Erik Huelsmann
6122921674 * Automatic Dockerfile update by release process 2020-01-22 21:50:04 +00:00
Erik Huelsmann
db957f3880 * Automatic Dockerfile update by release process 2020-01-12 20:43:00 +00:00
Erik Huelsmann
7e059e5dc1 Update image to point to 1.7 2020-01-06 21:56:50 +01:00
Erik Huelsmann
421c153249 * Automatic Dockerfile update by release process 2019-12-26 18:05:31 +00:00
Erik Huelsmann
1f40452e92 * Automatic Dockerfile update by release process 2019-12-13 16:16:14 +00:00
Erik Huelsmann
98c38f998a * Automatic Dockerfile update by release process 2019-11-29 10:59:36 +00:00
Erik Huelsmann
6d3b30720c * Automatic Dockerfile update by release process 2019-11-15 19:23:03 +00:00
Erik Huelsmann
aa66d87e15 * Automatic Dockerfile update by release process 2019-11-02 15:59:50 +00:00
Erik Huelsmann
e06638b048 * Automatic Dockerfile update by release process 2019-10-18 12:22:02 +00:00
Erik Huelsmann
d71609cae1 Fix Dockerfile mentioned version 2019-10-04 17:17:25 +02:00
Erik Huelsmann
8bc4fd8583 Update source URL to look in the official releases 2019-10-04 16:57:07 +02:00
Erik Huelsmann
52fdf5b65e Address failure to start Docker image
Starman is looking for LedgerSMB::PSGI and can't find it due to missing
library paths. Add -I arguments to fix it up.
2019-09-22 22:56:51 +02:00
Erik Huelsmann
29abd11efd Revert back to Stretch because Buster misses sSMTP
Note: we'll need to address this in due course in order to be
able to release our next release on Buster (which supports
more of our dependencies).
2019-08-28 21:27:53 +02:00
Erik Huelsmann
e9edcaf9ae Revert back to stretch; Buster misses 'ssmtp' 2019-08-28 09:50:48 +02:00
Erik Huelsmann
3a74802fe1 Add additional dependency provided on Buster (libhtml-escape-perl) 2019-08-27 23:14:49 +02:00
Erik Huelsmann
1b9701511e Update Dockerfile for 1.7.0 2019-08-27 23:09:20 +02:00
Erik Huelsmann
1ff4cc42c3 * Add (missing) PostgreSQL repository in sources.list 2018-09-13 21:22:52 +02:00
Erik Huelsmann
26b679fe7d * Automatic Dockerfile update by release process 2018-08-25 12:35:52 +00:00
Erik Huelsmann
82e2dd4839 * Automatic Dockerfile update by release process 2018-07-22 21:55:15 +00:00
Erik Huelsmann
4cb2cad5c1 * Update README.md to mention 1.6 tags 2018-06-29 20:54:44 +02:00
Erik Huelsmann
c5c0575c94 * Automatic Dockerfile update by release process 2018-06-23 18:14:14 +00:00
Erik Huelsmann
b4ed837573 * Automatic Dockerfile update by release process 2018-06-17 10:32:14 +00:00
Erik Huelsmann
fae1cd333e * Fix download link 2018-06-10 14:00:45 +02:00
Erik Huelsmann
75f3dfd642 * Automatic Dockerfile update by release process 2018-06-10 08:43:10 +00:00
Erik Huelsmann
5afb58f246 * Update 1.6 branch to RC4 2018-06-04 23:49:07 +02:00
Erik Huelsmann
a5d89bc9fe * Update release for RC3 2018-06-04 00:38:55 +02:00
Erik Huelsmann
b8795c4811 * Update 1.6 RC2 release 2018-06-03 20:40:38 +02:00
Erik Huelsmann
b828cffad3 * Add option to set the number of Starman workers 2018-05-23 23:22:03 +02:00
Erik Huelsmann
36bc6d5ffc * Adjust database host name so that the Compose setup works out-of-the-box again 2018-05-23 21:45:55 +02:00
Erik Huelsmann
59be4f4afa * Add documentation of the availability of a 'ports' statement
Note that we found in the LedgerSMB Matrix chat channel that users
need more straight forward ways to quickly evaluate our proposition
which they are able to offer if we skip the TLS requirement

Also note that the TLS requirement requires a domain, which some
might not have at the stage where the system is only being evaluated.
2018-05-23 21:40:37 +02:00
Erik Huelsmann
f898c2bb63 * Add back lost dash before 'y' option 2018-05-22 22:11:18 +02:00
Erik Huelsmann
c2573f6a7e * Fix short-option prefixed with double dash 2018-05-22 21:27:57 +02:00
Erik Huelsmann
38ab58e93a * Make Docker build output more compact 2018-05-22 21:05:01 +02:00
Erik Huelsmann
d45d0a7182 * Upgrade Docker 1.6 image to 1.6.0-rc1 2018-05-22 20:45:40 +02:00
Erik Huelsmann
d640f5e6a0 * Update to 1.6.0-beta2 2018-05-13 14:15:33 +02:00
Erik Huelsmann
d7c3bd6038 * There is no starman.psgi anymore. Instead, it's ledgersmb-server.psgi 2018-05-07 00:17:34 +02:00
Erik Huelsmann
9c2c5a20c6 * Update version reference (1.5 -> 1.6) in docker-compose.yml 2018-05-06 13:35:24 +02:00
Erik Huelsmann
ebb6a521ef * Correct dependency reference 2018-05-06 13:15:31 +02:00
Erik Huelsmann
058848a29a * More dependencies taken from the Debian repository 2018-05-06 12:30:30 +02:00
Erik Huelsmann
a0053b33b6 * Add dependency for HTML::Entities to build succesfully 2018-05-06 12:14:00 +02:00
Erik Huelsmann
a5ca6aa894 * Update Dockerfile for 1.6 dependencies and building 1.6 images
Note that 1.6 switches to Stretch as the base image, allowing us to
use more packages from the Debian repository (but we still depend on
un-packaged packages(?))
2018-05-06 00:30:49 +02:00
Erik Huelsmann
c616d6f8ab * Add docker-compose file and add it to the README 2018-03-12 22:39:35 +01:00
Erik Huelsmann
f69a36a5d3 * Automatic Dockerfile update by release process 2018-03-11 10:35:54 +00:00
Erik Huelsmann
dbed029289 * Automatic Dockerfile update by release process 2018-02-26 16:55:54 +00:00
Erik Huelsmann
dfa82a63bf * Correct liberation fonts package name (*2 is available as of stretch) 2018-02-17 21:43:41 +01:00
Erik Huelsmann
9353e8187f * Add fonts missing for xedemo template set 2018-02-17 21:36:25 +01:00
Erik Huelsmann
a1ea9d9895 * Why was curl suddenly gone? Anyway, re-adding 2018-02-14 20:47:55 +01:00
Erik Huelsmann
0f8af754bd * Fix syntax (double &&) which chokes Docker Hub's builds 2018-02-14 20:33:04 +01:00
Erik Huelsmann
da48259b68
Merge pull request #18 from sbts/1.5-dev-enhancement-latest-pg-tools
1.5 - install latest version of `postgresql-client`
2018-02-06 22:17:26 +01:00
sbts
774e6ef6e2 install latest version of postgresql-client
This is required to handle cases where the PG server is running a newer version than this container has available.
Failing to do this update will normally cause odd problems, including silent failure to backup.
Instead of the expected backup an empty file is generated.
Also ensure
- an upgrade
- and some apt cleanup

are done.
2018-02-07 04:05:30 +08:00
Erik Huelsmann
0d8517ebc4 * Update to 1.5.16 2018-01-28 19:56:26 +01:00
Erik Huelsmann
f7cfcc72ec * Add more documentation regarding container mail configuration 2018-01-24 21:55:29 +01:00
Erik Huelsmann
847efed2d0 * Dockerfile update to track the latest 1.5 2018-01-07 22:10:30 +01:00
Erik Huelsmann
9d5b62b6bb * Close #15 for the 1.5-slim branch 2018-01-06 14:16:56 +01:00
Erik Huelsmann
e23e85fea8 * Clean out man pages for smaller image 2018-01-01 11:44:32 +01:00
Erik Huelsmann
c4a1a6f1cc * Fix PostgreSQL installation 2018-01-01 11:27:39 +01:00
Erik Huelsmann
90764650c5 * Fix PostgreSQL installation 2018-01-01 11:15:39 +01:00
Erik Huelsmann
795fdf3f95 * Fix PostgreSQL installation 2018-01-01 11:05:22 +01:00
Erik Huelsmann
6cceef46f6 * Build on the jessie-slim image for a smaller image 2017-12-31 17:53:32 +01:00
Erik Huelsmann
e29aa14d57 * Remove a few layers from the 1.5 images 2017-12-31 17:46:21 +01:00
Erik Huelsmann
a22ed7ac49 * Automatic Dockerfile update by release process 2017-12-08 16:54:59 +00:00
Erik Huelsmann
1f1df000b8 * Sync rewritten README.md from master 2017-10-30 21:45:58 +01:00
Erik Huelsmann
fe867c9925 * Automatic Dockerfile update by release process 2017-10-29 21:39:46 +00:00
Erik Huelsmann
9ff64318ab * In the 'build LedgerSMB' step, don't change directories 2017-09-20 22:22:22 +02:00
Erik Huelsmann
46ae598da0 * Automatic Dockerfile update by release process 2017-09-18 10:27:13 +00:00
Erik Huelsmann
1387c10fd1 * Automatic Dockerfile update by release process 2017-09-12 19:28:31 +00:00
Erik Huelsmann
cbb3a0d843 * Automatic Dockerfile update by release process 2017-09-03 18:55:01 +00:00
Erik Huelsmann
0e41af2b67 * Since the last command removed the lists, update before installation 2017-08-13 20:49:16 +02:00
Erik Huelsmann
a30d23bbb6 * Remove /var/lib/apt/lists/* for further space savings 2017-08-13 20:34:14 +02:00
Erik Huelsmann
e10bd36b80 * Add back USER statement accidentally removed in d038488 2017-08-06 19:50:32 +02:00
Erik Huelsmann
1a56d1523d * Update Dockerfile with performance dependency
As noted by John, requests improve by a factor 10 (20-30secs -> 2-3secs)
with this dependency in place.
2017-08-04 23:39:18 +02:00
Erik Huelsmann
aa260dcec9 * Automatic Dockerfile update by release process 2017-07-22 19:02:34 +00:00
Erik Huelsmann
402f541a5e * Download from download.ledgersmb.org instead of GitHub
(uploading to GitHub doesn't work for non-tagged releases such as betas)
2017-07-20 22:57:48 +02:00
Erik Huelsmann
9499b6ffc1 Merge pull request #13 from sbts/1.5_don't_write_to_server_dir
drop need to write config file to /srv/ledgersmb
2017-07-09 08:39:58 +02:00
sbts
d0384889a8 drop need to write config file to /srv/ledgersmb
Instead write it to /tmp.
Also don't copy the entire example file, just write the bits we need
2017-07-02 01:07:04 +08:00
Erik Huelsmann
2d4bb886f8 * Automatic Dockerfile update by release process 2017-06-25 15:44:29 +00:00
Erik Huelsmann
8e3f80f65f * Remove downloaded tar from the resulting container 2017-06-21 00:23:07 +02:00
Erik Huelsmann
cd29bd895f * Remove more temporary artifacts from the build process 2017-06-21 00:03:36 +02:00
Erik Huelsmann
42e6eb783e * Reorganize commands for slimmer image 2017-06-20 07:59:10 +02:00
Erik Huelsmann
09cf2e16b7 Update Dockerfile for 1.5.7 release 2017-06-01 19:13:22 +02:00
Erik Huelsmann
2a5dff2dd7 * Don't build Dojo on release branches: be download pre-built. 2017-06-01 09:18:00 +02:00
Erik Huelsmann
e2bf781058 * Reduce image size further by changing base image 2017-06-01 08:27:51 +02:00
Erik Huelsmann
1148c219ec * Minimize the size of the image (went from 2.6GB to 1.4GB!) 2017-06-01 08:23:00 +02:00
Erik Huelsmann
e5c6072505 * use '--preload-app' to start starman 2017-05-25 16:07:38 +02:00
Erik Huelsmann
728840ce4c * Update Dockerfile to 1.5.6 2017-04-09 14:44:12 +00:00
John Locke
5f45abdf2d Create /tmp/ledgersmb if not exists 2017-03-14 13:50:53 -07:00
John Locke
8afea54d65 Fix ssmtp update script 2017-03-14 13:41:59 -07:00
John Locke
326790de44 Update postgres client libs to 9.6, fixes ledgersmb/ledgersmb#2686 , older pg_dump aborts when connecting to newer postgres server. 2017-03-14 10:15:01 -07:00
Erik Huelsmann
c4a5359b25 * Update to 1.5.5 2017-03-14 14:08:13 +00:00
John Locke
79be91758b Update README on latest branch. 2017-03-13 15:37:12 -07:00
John Locke
4706963a2b 1.5.4 2017-03-13 13:55:57 -07:00
John Locke
2c22bd6bbb 1.5.3 2017-02-11 07:47:00 -08:00
John Locke
d3897c8439 1.5.2 2017-01-23 06:46:44 -08:00
John Locke
6d4d4fa927 Run as www-data user, with permission to write ledgersmb.conf file.
Fixes #6.
2017-01-14 09:09:37 -08:00
John Locke
8f911b4d3e 1.5.1 2017-01-08 10:59:02 -08:00
John Locke
60af8d5d49 Add LPR package to image 2017-01-05 08:48:46 -08:00
John Locke
2bf51fb145 Try different download mirror 2016-12-30 11:02:21 -08:00
John Locke
6e41334061 Try again to get the correct path 2016-12-30 10:43:19 -08:00
John Locke
f3f924eab9 Update to full release path. 2016-12-30 10:19:47 -08:00
John Locke
e456434514 1.5.0 2016-12-30 09:43:11 -08:00
John Locke
71de84bd9e 1.5.0-rc3 2016-12-12 08:38:25 -08:00
John Locke
262bf6e1f4 Set correct ssmtp path 2016-09-25 10:54:16 -07:00
John Locke
fdd2eed8a6 Fix missing && after downloading tarball 2016-08-21 12:45:49 -07:00
John Locke
76c35fa0d5 1.5.0-rc2 2016-08-20 09:13:33 -07:00
John Locke
dc0770e367 1.5.0-rc2 2016-08-20 09:02:15 -07:00
John Locke
3839f3b105 Add support for #4 - Make Postgres port configurable at run time 2016-08-20 08:56:41 -07:00
John Locke
9839ceaa2b Add new libmoosex-nonmoose-perl dependency 2016-05-30 08:58:36 -07:00
John Locke
48f1e0d7bb 1.5 Dockerfile to install from tarball 2016-05-30 00:23:58 -07:00
John Locke
f070b9d6a6 Updates for new dojo build requirements for 1.5/master 2016-05-29 22:32:31 -07:00
John Locke
867f5674f9 Major install changes nearing the 1.5 release candidates 2016-05-14 14:20:54 -07:00
John Locke
7d63b16512 Add LaTeX::Driver to image. 2016-05-03 10:14:33 -07:00
John Locke
7b379e31c5 Bump version 2016-03-28 14:42:37 -07:00
John Locke
74b62255be Merge pull request #1 from maikkeli/dockerfile-reorder
Reorder dockerfile commands to optimise caching of docker layers
2016-01-27 07:51:49 -08:00
maikkeli
34852d3c1d restore comment 2016-01-28 00:58:02 +10:30
maikkeli
469dc75708 Reorder dockerfile commands to optimise caching 2016-01-27 20:23:47 +10:30
John Locke
a057cbdfc5 ledgersmb.conf.default has moved to conf/. Update start.sh. 2016-01-08 09:37:25 -08:00
John Locke
3578ef79e3 Search for perl5lib path -- it has changed on us 2016-01-04 22:04:07 -08:00
John Locke
376ed18c81 Move scripts to /usr/local/bin, cleanup 2016-01-04 22:03:54 -08:00
John Locke
d1ce52d26f 1.5.0-beta3 2016-01-02 22:46:29 -08:00
John Locke
2679a71a79 Fix grep flag 2015-11-19 12:00:43 -08:00
John Locke
11b9c43044 Patch from dcg: detect /etc/ssmtp.conf changes inside update script, instead of touching a /tmp file 2015-11-19 11:58:47 -08:00
John Locke
aa6a9d5b12 Set cpanm to quiet to prevent docker build from interpreting "1" as an error 2015-10-21 12:07:17 -07:00
John Locke
30a4f5ea91 Update readme for versions built 2015-08-01 10:11:44 -07:00
John Locke
2235f035a0 README improvements 2015-07-05 13:44:29 -07:00
John Locke
e20f3a1899 Switch Master branch to use perl:5 base image, and load necessary modules using cpanm 2015-07-05 11:34:01 -07:00
John Locke
07db28af99 Doc fixes 2015-07-05 09:07:43 -07:00
John Locke
2f7155e599 Make master branch track master upstream ledgersmb 2015-07-05 01:10:15 -07:00
9 changed files with 818 additions and 148 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,78 +1,138 @@
FROM perl:5
MAINTAINER Freelock john@freelock.com
# Build time variables
ENV LSMB_VERSION 1.4.24
ARG SRCIMAGE=debian:bookworm-slim
# Install Perl, Tex, Starman, psql client, and all dependencies
RUN DEBIAN_FRONTENT=noninteractive && \
apt-get update && apt-get -y install \
git \
libdatetime-perl libdbi-perl libdbd-pg-perl \
libcgi-simple-perl libtemplate-perl libmime-lite-perl \
liblocale-maketext-lexicon-perl libtest-exception-perl \
libtest-trap-perl liblog-log4perl-perl libmath-bigint-gmp-perl \
libfile-mimeinfo-perl libtemplate-plugin-number-format-perl \
libdatetime-format-strptime-perl libconfig-general-perl \
libdatetime-format-strptime-perl libio-stringy-perl libmoose-perl \
libconfig-inifiles-perl libnamespace-autoclean-perl \
libcarp-always-perl libjson-perl \
libtemplate-plugin-latex-perl texlive-latex-recommended \
texlive-latex-base texlive-latex-extra \
libxml-twig-perl \
libtex-encode-perl \
libdevel-trace-perl \
starman \
postgresql-client-9.4 \
ssmtp
FROM $SRCIMAGE AS builder
# Install LedgerSMB
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 -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 ; \
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
LABEL org.opencontainers.image.authors="LedgerSMB project <devel@lists.ledgersmb.org>"
LABEL org.opencontainers.image.title="LedgerSMB double-entry accounting web-application"
LABEL org.opencontainers.image.description="LedgerSMB is a full featured double-entry financial accounting and Enterprise\
Resource Planning system accessed via a web browser (Perl/JS with a PostgreSQL\
backend) which offers 'Accounts Receivable', 'Accounts Payable' and 'General\
Ledger' tracking as well as inventory control and fixed assets handling. The\
LedgerSMB client can be a web browser or a programmed API call. The goal of\
the LedgerSMB project is to bring high quality ERP and accounting capabilities\
to Small and Midsize Businesses."
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"
### 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
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/ && \
mkdir -p /usr/share/man/man4/ && \
mkdir -p /usr/share/man/man5/ && \
mkdir -p /usr/share/man/man6/ && \
mkdir -p /usr/share/man/man7/ && \
mkdir -p /usr/share/man/man8/ && \
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 ) \
texlive-plain-generic texlive-latex-recommended texlive-fonts-recommended \
texlive-xetex fonts-liberation \
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 --metacpan --notest \
--with-feature=starman \
--with-feature=latex-pdf-ps \
--with-feature=openoffice \
--installdeps /srv/ledgersmb/ && \
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/*
RUN cd /srv && \
git clone https://github.com/ledgersmb/LedgerSMB.git ledgersmb
WORKDIR /srv/ledgersmb
RUN git checkout $LSMB_VERSION
#RUN sed -i \
# -e "s/short_open_tag = Off/short_open_tag = On/g" \
# -e "s/post_max_size = 8M/post_max_size = 20M/g" \
# -e "s!^;sendmail_path =.*\$!sendmail_path = /usr/sbin/ssmtp -t!g" \
# /etc/php5/fpm/php.ini && \
# master requirements
# Configure outgoing mail to use host, other run time variable defaults
## sSMTP
ENV SSMTP_ROOT ar@example.com
ENV SSMTP_MAILHUB 172.17.42.1
ENV SSMTP_HOSTNAME 172.17.42.1
#ENV SSMTP_USE_STARTTLS
#ENV SSMTP_AUTH_USER
#ENV SSMTP_AUTH_PASS
ENV SSMTP_FROMLINE_OVERRIDE YES
#ENV SSMTP_AUTH_METHOD
## MAIL
# '__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=
ENV POSTGRES_HOST postgres
## DATABASE
ENV POSTGRES_HOST=postgres
ENV POSTGRES_PORT=5432
ENV DEFAULT_DB=lsmb
COPY start.sh /usr/bin/start.sh
COPY update_ssmtp.sh /usr/bin/update_ssmtp.sh
COPY start.sh /usr/local/bin/start.sh
#RUN cpanm \
# CGI::Compile
RUN chown www-data /etc/ssmtp /etc/ssmtp/ssmtp.conf && \
chmod +x /usr/bin/update_ssmtp.sh /usr/bin/start.sh && \
mkdir -p /var/www
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
# 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 5000
#USER www-data
EXPOSE 5762
USER www-data
CMD ["start.sh"]

327
README.md
View File

@ -1,112 +1,327 @@
# ledgersmb-docker - EXPERIMENTAL
# ledgersmb-docker
Dockerfile for LedgerSMB Docker image
This is a work in progress to make a docker image for running LedgerSMB. It should not be relied upon for production use!
## Content
# Supported tags and respective `Dockerfile` links
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)
- `1.5`, `dev-master` - Master branch, unstable
- `1.4`, `latest` - Tip of git 1.4 branch
- `1.3` - Latest 1.3.x release
# Supported tags
- `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)
- `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 [the development
container's README](https://github.com/ledgersmb/ledgersmb-dev-docker/blob/master/README.md#getting-started)
for more information.
# What is LedgerSMB?
The LedgerSMB project's priority is to provide an extremely capable yet user-friendly accounting and ERP solution to small to mid-size businesses in all locales where there is interest in using the software. The focus on small to mid-size businesses offers an opportunity to provide a positive user experience in ways which are not present in larger organizations. LedgerSMB ought to strive to be both the ideal SMB accounting/ERP package and also a solution that a start-up will never outgrow. The goals mentioned above will help us provide this ideal solution by allowing us to focus both on technical architecture and on user experience.
LedgerSMB is a user-friendly accounting and ERP solution for small to
mid-size businesses. It comes with support for many languages and support
for different locales.
The project aims to be the solution a start-up never outgrows.
# How is this image designed to be used?
This Docker image is built to provide a self-contained LedgerSMB instance. To be functional, you need to connect it to a running Postgres installation. The official Postgres container will work as is, if you link it to the LedgerSMB instance at startup, or you can provide environment variables to an appropriate Postgres server.
This image is designed to be used in conjunction with a running PostgreSQL
instance (such as may be provided through a separate image).
LedgerSMB provides an http interface built on Starman out of the box, listening on port 5000. We do not recommend exposing this port, because we strongly recommend encrypting all connections using SSL/TLS. For production use, we recommend running a web server configured with SSL, such as Nginx or Apache, and proxying connections to LedgerSMB.
This image exposes port 5762 running a Starman HTTP application server. We
do recommend not exposing this port publicly, because
The other services you will need to put this in production are an SMTP gateway (set environment variables for SSMTP at container startup) and optionally a local print server (e.g. CUPS) installation. The print service is not currently supported in this Docker image, but pull requests are welcomed ;-)
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
to add the TLS layer by applying Nginx or Apache as reverse proxy.
Enabling optional functionalities such as outgoing e-mail and printing
could require additional setup of a mail service or CUPS printer service.
# How to use this image
## Start a postgres instance
This image can be installed either automatically with the Docker compose file
or manually with docker only.
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
## Docker-Compose: Installation and start
This image includes `EXPOSE 5432` (the postgres port), so standard container linking will make it automatically available to the linked containers. The default `postgres` user and database are created in the entrypoint with `initdb`.
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:
> The postgres database is a default database meant for use by users, utilities and third party applications.
> [postgresql.org/docs](http://www.postgresql.org/docs/9.3/interactive/app-initdb.html)
```plain
$ docker-compose pull
$ docker-compose up -d
```
## Start LedgerSMB
Or use the following to set a different password and/or parallel processing
capacity (so called 'workers'):
docker run --name myledger --link some-postgres:postgres -d ledgersmb/ledgersmb
```plain
$ docker-compose pull
$ POSTGRES_PASSWORD=def \
LSMB_WORKERS=10 \
docker-compose up -d
```
## Set up LedgerSMB
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. Your LedgerSMB installation should now be accessible through
[http://localhost:5762/](http://localhost:5762/).
Visit http://myledger:5000/setup.pl (you can forward port 5000 to the host machine, or lookup the IP address for the "myledger" container if running on localhost)
The default number of workers is 5. The default database username and password
are:
Log in with the "postgres" user and the password you set when starting up the Postgres container, and provide the name of a company database you want to create.
```plain
username: postgres
password: abc
```
Once you have completed the setup, you have a fully functional LedgerSMB instance running!
From here, follow the steps as detailed in the instructions for
[preparing for first use](https://ledgersmb.org/content/preparing-ledgersmb-19-first-use).
Visit http://localhost:5000/login.pl to log in and get started.
## Manual installation
This section assumes availability of a PostgreSQL server to attach to the
LedgerSMB image as the database server.
### Start LedgerSMB
```plain
$ docker run -d -p 5762:5762 --name myledger \
-e POSTGRES_HOST=<ip/hostname> ledgersmb/ledgersmb:latest
```
This command maps port 5762 of your container to port 5762 in your host. The
web application inside the container should now be accessible through
http://localhost:5762/setup.pl and http://localhost:5762/login.pl.
Below are more variables which determine container configuration,
like `POSTGRES_HOST` above.
# Set up LedgerSMB
* Visit http://myledger: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
create.
* Go over the steps presented in the browser
Once you have completed the setup steps, you have a fully functional
LedgerSMB instance running!
Visit http://localhost:5762/login.pl to log in and get started.
# Updating the LedgerSMB container
No persistant data is stored in the LedgerSMB container. All LedgerSMB data is stored in Postgres, so you can stop/destroy/run a new LedgerSMB container, and as long as you link it to the Postgres database, you should be able to pick up where you left off.
No persistant data is stored in the LedgerSMB container.
All LedgerSMB data is stored in PostgreSQL, so you can stop/destroy/run a
new LedgerSMB container as often as you want.
In case of the Docker Compose setup, all PostgreSQL data is stored on the
Docker volume with the name ending in `_pgdata`. This volume is not destroyed
when updating the containers; only explicit removal destroys the data.
# Environment Variables
The LedgerSMB image uses several environment variables which are easy to miss. While none of the variables are required, they may significantly aid you in using the image.
The LedgerSMB image uses several environment variables. They are all optional.
### `POSTGRES_HOST` = 'postgres'
This environment variable is used to specify the hostname of the Postgres server. The default is "postgres", which will find the container linked in.
## `POSTGRES_HOST`
If you set this to another hostname, LedgerSMB will attempt to connect to that hostname instead.
Default: postgres
### `SSMTP_ROOT` `SSMTP_MAILHUB` `SSMTP_HOSTNAME` `SSMTP_USE_STARTTLS` `SSMTP_AUTH_USER` `SSMTP_AUTH_PASS` `SSMTP_METHOD` `SSMTP_FROMLINE_OVERRIDE`
Specifies the hostname of the PostgreSQL server to connect to. If you use
a PostgreSQL image, set it to the name of that image.
These variables are used to set outgoing SMTP defaults. To set the outgoing email address, set SSMTP_ROOT, and SSMTP_HOSTNAME at a minimum -- SSMTP_MAILHUB defaults to the default docker0 interface, so if your host is already configured to relay mail, this should relay successfully with only those two set.
## `POSTGRES_PORT`
Use the other environment variables to relay mail through another host.
Default: 5432
### `CREATE_DATABASE` `POSTGRES_PASS`
Port on which the PostgreSQL server is running.
If `CREATE_DATABASE` is set, the tools/dbsetup.pl is called with the database name, and the postgres host and password. Currently this is failing with 'Can't locate object method "process_roles" via package "LedgerSMB::Database" at tools/dbsetup.pl line 203.'
## `DEFAULT_DB`
Once this is working, this will provision a new database in the existing server. After the first run, we recommend stopping/removing the LedgerSMB container and starting a new one without these variables -- the previous database should remain present.
Default: lsmb
Set this if you want to automatically log in to a particular LedgerSMB database
without needing to enter the name of that database on the login.pl login screen.
## `LSMB_WORKERS`
Default: 5
Set this if you want to run in a memory-constrained environment. E.g. set it to
2 when running in a 1 GB memory setup. Please do note that this may adversely
affect the performance experience of users.
## Mail configuration
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` \
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.
# 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
which adds an Nginx reverse proxy configuration on top of the base
`docker-compose.yml` configuration file. If the content of this repository
is cloned into the current directory (`git clone https://github.com/ledgersmb/ledgersmb-docker.git ; cd ledgersmb-docker`), it can be used as:
```plain
$ docker-compose \
-f docker-compose.yml \
-f docker-compose-reverseproxy.yml \
up -d
```
This setup can be used in combination with an image which runs the
Certbot certificate renewal process *and* Nginx to do TLS termination. The
default reverse proxy is mostly an example; it publishes on
[http://localhost:8080/](http://localhost:8080/).
An example of such an image can be found at
[https://github.com/jonasalfredsson/docker-nginx-certbot](https://github.com/jonasalfredsson/docker-nginx-certbot),
which is published on Docker Hub as
[jonasal/nginx-certbot](https://hub.docker.com/r/jonasal/nginx-certbot).
**Upgrade note** When upgrading this setup, please remove the volume ending
in `_lsmbdata` before starting the upgraded containers. Without that, the
webcontent won't be upgraded! E.g.:
```plain
$ docker-compose \
-f docker-compose.yml \
-f docker-compose-reverseproxy.yml \
rm -s -f -v && \
docker volume rm ledgersmb-docker_lsmbdata && \
docker-compose \
-f docker-compose.yml \
-f docker-compose-reverseproxy.yml \
pull && \
docker-compose \
-f docker-compose.yml \
-f docker-compose-reverseproxy.yml \
up -d
```
# Troubleshooting/Developing
You can connect to a running container using:
Currently the LedgerSMB installation is in /srv/ledgersmb
and the startup & config script is /usr/bin/start.sh.
> docker exec -ti myledger /bin/bash
... this will give you a shell inside the container where you can inspect/troubleshoot the installation.
Currently the LedgerSMB installation is in /srv/ledgersmb, and the startup/config script is /usr/bin/start.sh.
# Supported Docker versions
This image is officially supported on Docker version 1.7.0.
Support for older versions is provided on a best-effort basis.
# User Feedback
## Documentation
This is a brand new effort, and we will be adding documentation to the http://ledgersmb.org site when we get a chance.
## Issues
If you have any problems with or questions about this image or LedgerSMB, please contact us on the [mailing list](http://ledgersmb.org/topic/support/mailing-lists-rss-and-nntp-feeds) or through a [GitHub issue](https://github.com/ledgersmb/ledgersmb-docker/issues).
If you have any problems with or questions about this image or LedgerSMB,
please contact us on the [mailing list](http://ledgersmb.org/topic/support/mailing-lists-rss-and-nntp-feeds)
or through a [GitHub issue](https://github.com/ledgersmb/ledgersmb-docker/issues).
You can also reach some of the official LedgerSMB maintainers via the `#ledgersmb` IRC channel on [Freenode](https://freenode.net).
You can also reach some of the official LedgerSMB maintainers via the
[Matrix](https://matrix.org) room in [#ledgersmb:matrix.org](https://matrix.to/#/#ledgersmb:matrix.org).
The [Element](https://app.element.io/#/room/#ledgersmb:matrix.org) Matrix client is highly recommended.
1.4/latest: CREATE_DATABASE env variable currently does not provision a test company.
1.5/dev-master: Currently no way to get a working database. Bugs are filed, blocking 3 different approaches: New database, Upgrade from 1.4, Test company
## Contributing
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
You are invited to contribute new features, fixes, or updates, large or small;
we are always thrilled to receive pull requests, and do our best to process
them as fast as we can.

View File

@ -0,0 +1,36 @@
# Use this docker-compose file as:
#
# docker-compose -f docker-compose.yml -f docker-compose-reverseproxy.yml up -d
#
#
# This command creates one
# compose 'project' consisting of three containers
#
# 1. The PostgreSQL data container
# 2. The LedgerSMB application container
# 3. The Nginx reverse proxy container
#
# In addition to publishing LedgerSMB on port 5762 on localhost,
# this project also publishes Nginx's reverse proxied content on
# port 8080 on localhost
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"
volumes:
lsmbdata:

100
docker-compose.yml Normal file
View File

@ -0,0 +1,100 @@
# This docker-compose file creates one
# compose 'project' consisting of two containers
#
# 1. The PostgreSQL data container
# 2. The LedgerSMB application container
#
# LedgerSMB persists all its data in the database,
# so no special care needs to be taken on
# container upgrades. With PostgreSQL, data is
# persisted across upgrades by the use of a
# special 'dbdata' volume
version: "3.2"
services:
# Note that the container needs to be named "postgres" here,
# because that allows us to use the default hostname ("postgres")
# from the LedgerSMB configuration
postgres:
image: postgres:15-alpine
environment:
# Replace the password below for a secure setup
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-abc}
PGDATA: /var/lib/postgresql/data/pgdata
networks:
- 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.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. Mapping "5762:5762" makes LedgerSMB
# available on http://<host-dns-or-ip>:5762/
# 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:
# The LSMB_WORKERS environment variable lets you select the number
# of processes serving HTTP requests. The default number of 2 workers
# is geared toward limited-memory situations (1 GB). In order to
# improve the performance experience, increase memory and the
# number of workers
#
LSMB_WORKERS: ${LSMB_WORKERS:-5}
#
#
# 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
# 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
# that, the data is contained in the same volume as
# the rest of the image and on update/upgrade, the
# data will be lost.
volumes:
pgdata:
networks:
internal:

81
nginx.conf Normal file
View File

@ -0,0 +1,81 @@
# This is a full (minimal) nginx configuration file
error_log /dev/stderr info;
pid /tmp/nginx.pid;
worker_processes 1;
events {
worker_connections 1024;
}
http {
client_body_temp_path /tmp/client_body;
proxy_temp_path /tmp/proxy_temp;
fastcgi_temp_path /tmp/fastcgi_temp;
scgi_temp_path /tmp/scgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /dev/stdout;
error_log /dev/stderr info;
gzip off;
gzip_static on;
server {
listen 8080 default_server;
listen [::]:8080 default_server ipv6only=on;
root /srv/ledgersmb/UI;
access_log /dev/stdout;
error_log /dev/stderr info;
# Don't log status polls
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow ::1;
deny all;
}
# Configuration files don't exist
location ^~ \.conf$ {
return 404;
}
# 'Hidden' files don't exist
location ~ /\. {
return 404;
}
location = / {
return 301 /login.pl;
}
# JS & CSS
location ~* \.(js|css)$ {
add_header Pragma "public";
add_header Cache-Control "public, must-revalidate, proxy-revalidate"; # Production
expires 7d; # Indicate that the resource can be cached for 1 week # Production
try_files $uri =404;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 300;
proxy_pass http://lsmb:5762;
}
}
}

184
start.sh
View File

@ -1,23 +1,175 @@
#!/bin/bash
update_ssmtp.sh
if [[ ! -f ledgersmb.conf ]]; then
cp ledgersmb.conf.default ledgersmb.conf
sed -i \
-e "s/\(cache_templates = \).*\$/cache_templates = 1/g" \
-e "s/\(host = \).*\$/\1$POSTGRES_HOST/g" \
-e "s%\(sendmail = \).*%\1/usr/bin/ssmtp%g" \
/srv/ledgersmb/ledgersmb.conf
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
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 [ ! -z ${CREATE_DATABASE+x} ]; then
perl tools/prepare-company-database.pl --company $CREATE_DATABASE \
--host $POSTGRES_HOST \
--owner postgres \
--password "$POSTGRES_PASS"
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/
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
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
exec starman tools/starman.psgi
# --preload-app allows application initialization to kill the entire
# 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}
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} \
-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.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