14 Commits
0.3.3 ... 0.5.1

Author SHA1 Message Date
efbd7cc669 test m4 change 3
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2026-01-15 13:44:22 +01:00
c1a54b5cc0 doc fix
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2026-01-15 13:41:12 +01:00
a156b54c1f test m4 change 2
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2026-01-15 13:39:17 +01:00
0a65e0e7db test m4 change
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2026-01-15 13:31:57 +01:00
cd9adb1423 fix base image tag
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2026-01-15 12:50:09 +01:00
2cce315ca3 fix ci script
Some checks failed
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline failed
2026-01-15 12:44:18 +01:00
1c06333c79 alpine image updated
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
2026-01-15 12:39:22 +01:00
7afcbc2bf1 merged
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2025-03-17 20:26:48 +01:00
f1b14d5974 scan only for tags 2025-03-17 20:25:33 +01:00
edd8a42e2d disable vex warning of trivy
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2025-02-28 21:37:29 +01:00
fe0bd0470c Merge branch 'master' of gitea.hottis.de:wn/exim-docker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2025-02-28 21:28:26 +01:00
1d92622f21 fix acl definition 2025-02-28 21:28:20 +01:00
16e35505d6 Merge branch 'master' of gitea.hottis.de:wn/exim-docker
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
2025-02-28 21:15:29 +01:00
5819107340 add tool 2025-02-28 21:14:33 +01:00
6 changed files with 89 additions and 53 deletions

View File

@@ -12,49 +12,7 @@ steps:
from_secret: container_registry_password from_secret: container_registry_password
dockerfile: Dockerfile dockerfile: Dockerfile
when: when:
- event: [push, tag] - event: tag
scan_image:
image: aquasec/trivy
commands:
- trivy image $FORGE_NAME/$CI_REPO:$CI_COMMIT_SHA --quiet --exit-code 1
when:
- event: [push, tag]
generate_sbom:
image: quay.io/wollud1969/woodpecker-helper:0.5.1
environment:
TRIVY_TOKEN:
from_secret: trivy_token
TRIVY_URL:
from_secret: trivy_url
DTRACK_API_KEY:
from_secret: dtrack_api_key
DTRACK_API_URL:
from_secret: dtrack_api_url
commands:
- HOME=/home/`id -nu`
- TAG="${CI_COMMIT_TAG:-$CI_COMMIT_SHA}"
- |
trivy image \
--server $TRIVY_URL \
--token $TRIVY_TOKEN \
--format cyclonedx \
--scanners license \
--output /tmp/sbom.xml \
$FORGE_NAME/$CI_REPO:$CI_COMMIT_SHA
- cat /tmp/sbom.xml
- |
curl -X "POST" \
-H "Content-Type: multipart/form-data" \
-H "X-Api-Key: $DTRACK_API_KEY" \
-F "autoCreate=true" \
-F "projectName=$CI_REPO" \
-F "projectVersion=$TAG" \
-F "bom=@/tmp/sbom.xml"\
"$DTRACK_API_URL/api/v1/bom"
when:
- event: [push, tag]
build: build:
image: plugins/kaniko image: plugins/kaniko
@@ -70,4 +28,4 @@ steps:
from_secret: quay_password from_secret: quay_password
dockerfile: Dockerfile dockerfile: Dockerfile
when: when:
- event: [tag] - event: tag

View File

@@ -1,4 +1,4 @@
FROM alpine:3.21.3 FROM alpine:3.23.2
LABEL Maintainer="Wolfgang Hottgenroth <woho@hottis.de>" LABEL Maintainer="Wolfgang Hottgenroth <woho@hottis.de>"
LABEL ImageName="quay.io/wollud1969/exim-docker" LABEL ImageName="quay.io/wollud1969/exim-docker"
@@ -25,7 +25,6 @@ WORKDIR /etc/exim
EXPOSE 25 EXPOSE 25
CMD [ "./start.sh" ] CMD [ "./start.sh" ]
#CMD [ "/usr/bin/m4 exim.conf.m4 > exim.conf && /usr/sbin/exim -bd -q15m -v" ]

View File

@@ -19,7 +19,7 @@ spec:
spec: spec:
containers: containers:
- name: smtp - name: smtp
image: quay.io/wollud1969/exim-docker:0.3.2 image: quay.io/wollud1969/exim-docker:0.3.4
envFrom: envFrom:
- secretRef: - secretRef:
name: smtp-secrets name: smtp-secrets

View File

@@ -8,11 +8,6 @@ define(`RELAYNETS', esyscmd(`echo -n $RELAYNETS'))dnl
define(`WHITELISTED_RECIPIENTS', esyscmd(`echo -n $WHITELISTED_RECIPIENTS'))dnl define(`WHITELISTED_RECIPIENTS', esyscmd(`echo -n $WHITELISTED_RECIPIENTS'))dnl
ifelse(SMARTHOST, `', `
errprint(`Error: SMARTHOST not set')
m4exit(1)
')
ifelse(HOSTNAME, `', ` ifelse(HOSTNAME, `', `
errprint(`Error: HOSTNAME not set') errprint(`Error: HOSTNAME not set')
m4exit(1) m4exit(1)
@@ -28,6 +23,20 @@ acl_smtp_rcpt = acl_check_rcpt
tls_advertise_hosts = tls_advertise_hosts =
ifelse(SMARTHOST, `', `dnl
# without smarthost
begin routers
dnslookup:
driver = dnslookup
domains = *
transport = remote_smtp
begin transports
remote_smtp:
driver = smtp
', `dnl
# with smarthost
begin routers begin routers
smarthost_route: smarthost_route:
driver = manualroute driver = manualroute
@@ -56,13 +65,13 @@ login:
public_name = LOGIN public_name = LOGIN
client_send = : SMARTHOST_USER : SMARTHOST_PASS client_send = : SMARTHOST_USER : SMARTHOST_PASS
') ')
')
begin acl begin acl
acl_check_rcpt: acl_check_rcpt:
accept accept
hosts = RELAYNETS hosts = RELAYNETS
ifelse(WHITELISTED_RECIPIENTS, `', `', ` ifelse(WHITELISTED_RECIPIENTS, `', `', `
accept
domains = WHITELISTED_RECIPIENTS domains = WHITELISTED_RECIPIENTS
') ')
deny deny

View File

@@ -15,6 +15,8 @@ Four environment variables are used to configure the container:
* `WHITELISTED_RECIPIENT`: Colon-separated list of whitelisted recipient domains, if empty no recipient restrictions will be applied * `WHITELISTED_RECIPIENT`: Colon-separated list of whitelisted recipient domains, if empty no recipient restrictions will be applied
If `SMARTHOST` is not given, mail delivery will be done directly via MX lookup instead of using a smarthost.
## Deployment ## Deployment
Typically, don't expose the smtp port of this container to the default network of your Docker installation, otherwise it conflicts with a local MTA on the machine and it would be visible outside of the machine. Create a dedicated docker network, use that one as the default network for this container and connect other containers to that network. Afterwards, you can use the name of this container as smarthost address in the other containers. Typically, don't expose the smtp port of this container to the default network of your Docker installation, otherwise it conflicts with a local MTA on the machine and it would be visible outside of the machine. Create a dedicated docker network, use that one as the default network for this container and connect other containers to that network. Afterwards, you can use the name of this container as smarthost address in the other containers.

68
tools/smtp-dialog.exp Executable file
View File

@@ -0,0 +1,68 @@
#!/usr/bin/expect
package require base64
# SMTP-Server und Port definieren
set smtp_server "172.16.3.33"
set smtp_port "25"
set timeout 25
# Absender, Empfänger und Nachricht
set sender $env(SMTP_SENDER)
set recipient $env(SMTP_RECIPIENT)
set message "Subject: Test Email\r\n\r\nThis is a test email sent via an expect script."
set smtp_user $env(SMTP_USER)
set smtp_pass $env(SMTP_PASS)
set smtp_user_64 [base64::encode $smtp_user]
set smtp_pass_64 [base64::encode $smtp_pass]
# Verbindung herstellen
spawn nc -C $smtp_server $smtp_port
# Begrüßung vom Server erwarten
expect "220 *"
# HELO/EHLO senden
send "EHLO baikonur\n"
expect "250 *"
if {[info exists smtp_user] && $smtp_user ne ""} {
send "AUTH LOGIN\n"
expect "334 VXNlcm5hbWU6"
send "$smtp_user_64\n"
expect "334 UGFzc3dvcmQ6"
send "$smtp_pass_64\n"
expect "235 2.7.0 Authentication successful"
} else {
puts "skip authentication"
}
# Absender definieren
send "MAIL FROM:<$sender>\n"
expect "250 *"
# Empfänger definieren
send "RCPT TO:<$recipient>\n"
expect "250 *"
# Datenübertragung starten
send "DATA\n"
expect "354 *"
# Nachricht senden und Übertragung abschließen
send "$message\n.\n"
expect "250 *"
# Verbindung schließen
send "QUIT\n"
expect "221 *"
# Beenden
interact