Compare commits

..

1 Commits

Author SHA1 Message Date
5a58b50ad8
fix: rollback to v3.2.4 2021-09-01 21:07:07 +02:00
12 changed files with 397 additions and 372 deletions

228
.drone.yml Normal file

@ -0,0 +1,228 @@
---
kind: pipeline
type: kubernetes
name: linter
platform:
os: linux
arch: amd64
steps:
- name: markdown lint
commands:
- markdownlint *.md
image: docker.io/tmknom/markdownlint:0.23.1
resources:
limits:
cpu: 50
memory: 50M
- name: email-notification
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: build-latest
platform:
os: linux
arch: amd64
steps:
- name: build
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/build
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
branch:
- master
- name: push
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/push
environment:
POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
branch:
- master
repo:
- volker.raschek/postfixadmin-docker
- name: delete
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/delete
volumes:
- name: docker_socket
path: /var/run/docker.sock
when:
branch:
- master
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: build-tagged
platform:
os: linux
arch: amd64
steps:
- name: build
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/build POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG}
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: push
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/push POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG}
environment:
POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD:
from_secret: container_image_registry_password
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: delete
image: docker.io/volkerraschek/build-image:latest
commands:
- make container-image/delete POSTFIXADMIN_IMAGE_VERSION=${DRONE_TAG}
volumes:
- name: docker_socket
path: /var/run/docker.sock
- name: notify
image: drillster/drone-email
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
when:
status:
- changed
- failure
volumes:
- name: docker_socket
host:
path: /var/run/docker.sock
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: kubernetes
name: sync
platform:
os: linux
arch: amd64
steps:
- name: github
image: docker.io/appleboy/drone-git-push:latest
resources:
limits:
cpu: 50
memory: 25M
settings:
branch: master
remote: ssh://git@github.com/volker-raschek/postfixadmin-docker.git
force: true
ssh_key:
from_secret: ssh_key
- name: email-notification
environment:
PLUGIN_HOST:
from_secret: smtp_host
PLUGIN_USERNAME:
from_secret: smtp_username
PLUGIN_PASSWORD:
from_secret: smtp_password
PLUGIN_FROM:
from_secret: smtp_mail_address
image: docker.io/drillster/drone-email:latest
resources:
limits:
cpu: 50
memory: 25M
when:
status:
- changed
- failure
trigger:
event:
- push
repo:
- volker.raschek/postfixadmin-docker

@ -1,49 +0,0 @@
name: Build
on:
pull_request:
types:
- opened
- reopened
- synchronize
push:
branches:
- master
workflow_dispatch: {}
jobs:
build-arm64:
runs-on: ubuntu-latest-arm64
steps:
- uses: actions/checkout@v4.2.2
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.10.0
- name: Build image
run: |
TAG=latest
docker buildx build \
--platform linux/arm64 \
--file Dockerfile \
--provenance false \
--tag git.cryptic.systems/volker.raschek/postfixadmin:${TAG}-arm64 \
.
build-amd64:
runs-on: ubuntu-latest-amd64
steps:
- uses: actions/checkout@v4.2.2
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.10.0
- name: Build image
run: |
TAG=latest
docker buildx build \
--platform linux/amd64 \
--file Dockerfile \
--provenance false \
--tag git.cryptic.systems/volker.raschek/postfixadmin:${TAG}-amd64 \
.

@ -1,22 +0,0 @@
name: 'Lint Markdown files'
on:
pull_request:
types:
- opened
- reopened
- synchronize
push:
branches:
- master
workflow_dispatch: {}
jobs:
markdown-lint:
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: DavidAnson/markdownlint-cli2-action@v19.1.0
with:
globs: '**/*.md'

@ -1,101 +0,0 @@
name: Release
on:
push:
tags:
- "**"
jobs:
push-arm64:
runs-on: ubuntu-latest-arm64
steps:
- uses: actions/checkout@v4.2.2
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.10.0
- uses: docker/login-action@v3.4.0
with:
registry: git.cryptic.systems
username: ${{ github.repository_owner }}
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
- name: Build and push image
run: |
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
docker buildx build \
--build-arg POSTFIXADMIN_VERSION=${{ github.ref_name }} \
--file Dockerfile \
--platform linux/arm64 \
--provenance false \
--push \
--tag git.cryptic.systems/volker.raschek/postfixadmin:${TAG}-arm64 \
.
push-amd64:
runs-on: ubuntu-latest-amd64
steps:
- uses: actions/checkout@v4.2.2
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.10.0
- uses: docker/login-action@v3.4.0
with:
registry: git.cryptic.systems
username: ${{ github.repository_owner }}
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
- name: Build and push image
run: |
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
docker buildx build \
--build-arg POSTFIXADMIN_VERSION=${{ github.ref_name }} \
--file Dockerfile \
--platform linux/amd64 \
--provenance false \
--push \
--tag git.cryptic.systems/volker.raschek/postfixadmin:${TAG}-amd64 \
.
push-manifest:
runs-on: ubuntu-latest
needs:
- push-arm64
- push-amd64
steps:
- uses: docker/login-action@v3.4.0
with:
registry: git.cryptic.systems
username: ${{ github.repository_owner }}
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
- name: Create and push manifest
run: |
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
docker manifest create git.cryptic.systems/volker.raschek/postfixadmin:${TAG} \
--amend git.cryptic.systems/volker.raschek/postfixadmin:${TAG}-amd64 \
--amend git.cryptic.systems/volker.raschek/postfixadmin:${TAG}-arm64
docker manifest push git.cryptic.systems/volker.raschek/postfixadmin:${TAG}
sync-to-hub-docker-io:
needs:
- push-manifest
runs-on: ubuntu-latest
steps:
- name: Copy images to docker.io
run: |
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
apt-get update --yes
apt-get install --yes skopeo
skopeo copy \
--all \
--dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \
--dest-username ${{ secrets.DOCKER_IO_USERNAME }} \
--src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \
--src-username volker.raschek \
docker://git.cryptic.systems/volker.raschek/postfixadmin:${TAG} \
docker://docker.io/volkerraschek/postfixadmin:${TAG}

@ -1,22 +0,0 @@
name: Update Docker Hub Description
on:
push:
branches:
- master
paths:
- README.md
workflow_dispatch: {}
jobs:
update-description-on-hub-docker-io:
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: peter-evans/dockerhub-description@v4.0.2
with:
username: ${{ secrets.DOCKER_IO_USERNAME }}
password: ${{ secrets.DOCKER_IO_PASSWORD }}
repository: volkerraschek/postfixadmin
readme-filepath: README.md

@ -45,17 +45,19 @@ MD012:
# MD013/line-length - Line length # MD013/line-length - Line length
MD013: MD013:
# Number of characters # Number of characters
line_length: 120 line_length: 80
# Number of characters for headings # Number of characters for headings
heading_line_length: 120 heading_line_length: 80
# Number of characters for code blocks # Number of characters for code blocks
code_block_line_length: 120 code_block_line_length: 80
# Include code blocks # Include code blocks
code_blocks: false code_blocks: false
# Include tables # Include tables
tables: false tables: false
# Include headings # Include headings
headings: true headings: true
# Include headings
headers: true
# Strict length checking # Strict length checking
strict: false strict: false
# Stern length checking # Stern length checking
@ -68,6 +70,11 @@ MD022:
# Blank lines below heading # Blank lines below heading
lines_below: 1 lines_below: 1
# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
# Only check sibling headings
allow_different_nesting: true
# MD025/single-title/single-h1 - Multiple top-level headings in the same document # MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025: MD025:
# Heading level # Heading level
@ -121,7 +128,8 @@ MD041:
# MD044/proper-names - Proper names should have the correct capitalization # MD044/proper-names - Proper names should have the correct capitalization
MD044: MD044:
# List of proper names # List of proper names
names: [] names:
- PostfixAdmin
# Include code blocks # Include code blocks
code_blocks: false code_blocks: false
@ -133,4 +141,4 @@ MD046:
# MD048/code-fence-style - Code fence style # MD048/code-fence-style - Code fence style
MD048: MD048:
# Code fence syle # Code fence syle
style: "backtick" style: "backtick"

@ -1,7 +1,8 @@
FROM docker.io/library/php:7.4-apache FROM docker.io/library/php:7.4-apache
# POSTFIXADMIN VERSION # POSTFIXADMIN VERSION
ARG POSTFIXADMIN_VERSION ARG POSTFIXADMIN_VERSION \
POSTFIXADMIN_SHA512
# APACHE # APACHE
ENV APACHE_DOCUMENT_ROOT /var/www/html/public ENV APACHE_DOCUMENT_ROOT /var/www/html/public
@ -23,47 +24,45 @@ ENV POSTFIXADMIN_DATABASE_TYPE=sqlite \
# docker-entrypoint.sh dependencies # docker-entrypoint.sh dependencies
RUN set -eux; \ RUN set -eux; \
apt-get update; \ apt-get update; \
apt-get install --yes --no-install-recommends gosu apache2-utils; \ apt-get install --yes --no-install-recommends gosu; \
rm --recursive --force /var/lib/apt/lists/* rm --recursive --force /var/lib/apt/lists/*
# Install required PHP extensions # Install required PHP extensions
RUN set -ex; \ RUN set -ex; \
savedAptMark="$(apt-mark showmanual)"; \ savedAptMark="$(apt-mark showmanual)"; \
apt-get update; \ apt-get update; \
apt-get install --yes --no-install-recommends \ apt-get install --yes --no-install-recommends \
libc-client2007e-dev \ libc-client2007e-dev \
libkrb5-dev \ libkrb5-dev \
libpq-dev \ libpq-dev \
libsqlite3-dev; \ libsqlite3-dev; \
docker-php-ext-configure imap --with-imap-ssl --with-kerberos; \ docker-php-ext-configure imap --with-imap-ssl --with-kerberos; \
docker-php-ext-install -j "$(nproc)" \ docker-php-ext-install -j "$(nproc)" \
imap \ imap \
pdo_mysql \ pdo_mysql \
pdo_pgsql \ pdo_pgsql \
pdo_sqlite \ pdo_sqlite \
pgsql; \ pgsql; \
apt-mark auto '.*' > /dev/null; \ apt-mark auto '.*' > /dev/null; \
apt-mark manual $savedAptMark; \ apt-mark manual $savedAptMark; \
ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \
| awk '/=>/ { print $3 }' \ | awk '/=>/ { print $3 }' \
| sort -u \ | sort -u \
| xargs -r dpkg-query -S \ | xargs -r dpkg-query -S \
| cut -d: -f1 \ | cut -d: -f1 \
| sort -u \ | sort -u \
| xargs -rt apt-mark manual; \ | xargs -rt apt-mark manual; \
if [ ! -z ${POSTFIXADMIN_VERSION} ]; then \ apt-get purge --yes --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
curl --fail --silent --show-error --location "https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-${POSTFIXADMIN_VERSION}.tar.gz" --output postfixadmin.tar.gz; \ rm --recursive --force /var/lib/apt/lists/*
tar --extract --file postfixadmin.tar.gz --directory /var/www/html --strip-components=1; \
rm postfixadmin.tar.gz; \
else \
apt-get install --yes git; \
git clone https://github.com/postfixadmin/postfixadmin.git /var/www/html; \
fi; \
apt-get purge --yes --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
rm --recursive --force /var/lib/apt/lists/*
RUN mkdir --parents /var/www/html/templates_c; \ RUN set -eu; \
chown --recursive www-data:www-data /var/www/html curl --fail --silent --show-error --location "https://github.com/postfixadmin/postfixadmin/archive/postfixadmin-${POSTFIXADMIN_VERSION}.tar.gz" --output postfixadmin.tar.gz ; \
echo "${POSTFIXADMIN_SHA512} *postfixadmin.tar.gz" | sha512sum -c -; \
tar --extract --file postfixadmin.tar.gz --directory /var/www/html --strip-components=1; \
rm postfixadmin.tar.gz; \
# Does not exist in tarball but is required
mkdir --parents /var/www/html/templates_c; \
chown --recursive www-data:www-data /var/www/html
COPY entrypoint.sh /usr/local/bin/ COPY entrypoint.sh /usr/local/bin/

@ -1,50 +1,52 @@
# POSTFIXADMIN_VERSION POSTFIXADMIN_VERSION:=3.2.4
# Only required to install a specify version POSTFIXADMIN_SHA512:=2bd7ae05addbaf3c6c7eebea16ec1e21b2c67c8e6161446ed82a9553c26c04e19c1ec9ce248a9b9df504df56d309590259e6f04907b04b593548028b40e40d47
POSTFIXADMIN_VERSION?=3.3.15 # renovate: datasource=github-tags depName=postfixadmin/postfixadmin extractVersion='postfixadmin-(?<version>\\d+\\.\\d+\\.\\d+)$'
# PODMAN_BIN's and tools # CONTAINER_RUNTIME
PODMAN_BIN?=$(shell which podman) # The CONTAINER_RUNTIME variable will be used to specified the path to a
# container runtime. This is needed to start and run a container image.
CONTAINER_RUNTIME?=$(shell which docker)
# POSTFIXADMIN_IMAGE # POSTFIXADMIN_IMAGE_REGISTRY_NAME
POSTFIXADMIN_IMAGE_REGISTRY_HOST?=git.cryptic.systems # Defines the name of the new container to be built using several variables.
POSTFIXADMIN_IMAGE_REPOSITORY?=volker.raschek/postfixadmin POSTFIXADMIN_IMAGE_REGISTRY_NAME:=docker.io
POSTFIXADMIN_IMAGE_REGISTRY_USER:=volkerraschek
POSTFIXADMIN_IMAGE_NAMESPACE?=${POSTFIXADMIN_IMAGE_REGISTRY_USER}
POSTFIXADMIN_IMAGE_NAME:=postfixadmin
POSTFIXADMIN_IMAGE_VERSION?=latest POSTFIXADMIN_IMAGE_VERSION?=latest
POSTFIXADMIN_IMAGE_FULLY_QUALIFIED=${POSTFIXADMIN_IMAGE_REGISTRY_HOST}/${POSTFIXADMIN_IMAGE_REPOSITORY}:${POSTFIXADMIN_IMAGE_VERSION} POSTFIXADMIN_IMAGE_FULLY_QUALIFIED=${POSTFIXADMIN_IMAGE_REGISTRY_NAME}/${POSTFIXADMIN_IMAGE_NAMESPACE}/${POSTFIXADMIN_IMAGE_NAME}:${POSTFIXADMIN_IMAGE_VERSION}
POSTFIXADMIN_IMAGE_UNQUALIFIED=${POSTFIXADMIN_IMAGE_NAMESPACE}/${POSTFIXADMIN_IMAGE_NAME}:${POSTFIXADMIN_IMAGE_VERSION}
# BUILD CONTAINER IMAGE # BUILD CONTAINER IMAGE
# ============================================================================== # ==============================================================================
PHONY:=container-image/build PHONY:=container-image/build
container-image/build: container-image/build:
${PODMAN_BIN} build \ ${CONTAINER_RUNTIME} build \
--build-arg POSTFIXADMIN_VERSION=${POSTFIXADMIN_VERSION} \ --build-arg POSTFIXADMIN_VERSION=${POSTFIXADMIN_VERSION} \
--build-arg POSTFIXADMIN_SHA512=${POSTFIXADMIN_SHA512} \
--file Dockerfile \ --file Dockerfile \
--no-cache \ --no-cache \
--pull \ --pull \
--tag ${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED} \ --tag ${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED} \
--tag ${POSTFIXADMIN_IMAGE_UNQUALIFIED} \
. .
# DELETE CONTAINER IMAGE # DELETE CONTAINER IMAGE
# ============================================================================== # ==============================================================================
PHONY:=container-image/delete PHONY:=container-image/delete
container-image/delete: container-image/delete:
- ${PODMAN_BIN} image rm ${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED} - ${CONTAINER_RUNTIME} image rm ${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED} ${POSTFIXADMIN_IMAGE_UNQUALIFIED}
- ${CONTAINER_RUNTIME} image rm ${PHP_IMAGE_FULL}
# PUSH CONTAINER IMAGE # PUSH CONTAINER IMAGE
# ============================================================================== # ==============================================================================
PHONY+=container-image/push PHONY+=container-image/push
container-image/push: container-image/push:
echo ${POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD} | ${PODMAN_BIN} login ${POSTFIXADMIN_IMAGE_REGISTRY_NAME} --username ${POSTFIXADMIN_IMAGE_REGISTRY_USER} --password-stdin echo ${POSTFIXADMIN_IMAGE_REGISTRY_PASSWORD} | ${CONTAINER_RUNTIME} login ${POSTFIXADMIN_IMAGE_REGISTRY_NAME} --username ${POSTFIXADMIN_IMAGE_REGISTRY_USER} --password-stdin
${PODMAN_BIN} push ${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED} ${CONTAINER_RUNTIME} push ${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED}
${PODMAN_BIN} logout ${POSTFIXADMIN_IMAGE_REGISTRY_HOST}
# PUSH CONTAINER IMAGE TO DOCKER
# ==============================================================================
PHONY+=container-image/push-to-docker-daemon
container-image/push-to-docker-daemon:
${PODMAN_BIN} push ${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED} docker-daemon:${POSTFIXADMIN_IMAGE_FULLY_QUALIFIED}
# PHONY # PHONY
# ============================================================================== # ==============================================================================
# Declare the contents of the PHONY variable as phony. We keep that information # Declare the contents of the PHONY variable as phony. We keep that information
# in a variable so we can use it in if_changed. # in a variable so we can use it in if_changed.
.PHONY: ${PHONY} .PHONY: ${PHONY}

197
README.md

@ -1,72 +1,78 @@
# PostfixAdmin # PostfixAdmin
[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/postfixadmin-docker/status.svg)](https://drone.cryptic.systems/volker.raschek/postfixadmin-docker)
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/postfixadmin)](https://hub.docker.com/r/volkerraschek/postfixadmin) [![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/postfixadmin)](https://hub.docker.com/r/volkerraschek/postfixadmin)
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/volker-raschek)](https://artifacthub.io/packages/search?repo=volker-raschek) [![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/volker-raschek)](https://artifacthub.io/packages/search?repo=volker-raschek)
This is an alternative project to build a container image for This is an alternative project to build a container image for
[PostfixAdmin](https://github.com/postfixadmin/postfixadmin). [PostfixAdmin](https://github.com/postfixadmin/postfixadmin).
The main goal of this alternative image is to support a kubernetes deployment via helm. Furthermore, the container image The main goal of this alternative image is to support a kubernetes deployment
support configuring via [environment variables](#supported-environment-variables). via helm. Furthermore, the container image support configuring via [environment
variables](#supported-environment-variables).
To deploy PostfixAdmin via `helm` checkout the repository on To deploy PostfixAdmin via `helm` checkout the repository on
[artifacthub.io](https://artifacthub.io/packages/helm/volker-raschek/postfixadmin) for more details. [artifacthub.io](https://artifacthub.io/packages/helm/volker-raschek/postfixadmin)
for more details.
## Supported environment variables ## Supported environment variables
This list is an overview over some important environment variables. The environment variables are composed on the key of This list is an overview over some important environment variables. The
the PHP configuration with the prefix `POSTFIXADMIN_`. You can take an example environment variables are composed on the key of the PHP configuration with the
[configuration](https://github.com/postfixadmin/postfixadmin/blob/master/config.inc.php) from the upstream project. prefix `POSTFIXADMIN_`. You can take an example
[configuration](https://github.com/postfixadmin/postfixadmin/blob/master/config.inc.php)
from the upstream project.
| name | default | | name | default |
| ----------------------------------- | ------------------------------------------- | | ----------------------------------- | --------------------------- |
| `POSTFIXADMIN_ADMIN_EMAIL` | | | `POSTFIXADMIN_ADMIN_EMAIL` | |
| `POSTFIXADMIN_ADMIN_SMTP_PASSWORD` | | | `POSTFIXADMIN_ADMIN_SMTP_PASSWORD` | |
| `POSTFIXADMIN_ADMIN_NAME` | | | `POSTFIXADMIN_ADMIN_NAME` | |
| `POSTFIXADMIN_DATABASE_TYPE` | `sqlite` | | `POSTFIXADMIN_DATABASE_TYPE` | `sqlite` |
| `POSTFIXADMIN_DATABASE_USER` | | | `POSTFIXADMIN_DATABASE_USER` | |
| `POSTFIXADMIN_DATABASE_PASSWORD` | | | `POSTFIXADMIN_DATABASE_PASSWORD` | |
| `POSTFIXADMIN_DATABASE_HOST` | | | `POSTFIXADMIN_DATABASE_HOST` | |
| `POSTFIXADMIN_DATABASE_PORT` | | | `POSTFIXADMIN_DATABASE_PORT` | |
| `POSTFIXADMIN_DATABASE_NAME` | `/var/tmp/postfixadmin.db` | | `POSTFIXADMIN_DATABASE_NAME` | `/var/tmp/postfixadmin.db` |
| `POSTFIXADMIN_DEFAULT_LANGUAGE` | `en` | | `POSTFIXADMIN_DEFAULT_LANGUAGE` | `en` |
| `POSTFIXADMIN_DATABASE_USE_SSL` | | | `POSTFIXADMIN_DATABASE_USE_SSL` | |
| `POSTFIXADMIN_DATABASE_KEY` | | | `POSTFIXADMIN_DATABASE_KEY` | |
| `POSTFIXADMIN_DATABASE_CERT` | | | `POSTFIXADMIN_DATABASE_CERT` | |
| `POSTFIXADMIN_DATABASE_CA` | | | `POSTFIXADMIN_DATABASE_CA` | |
| `POSTFIXADMIN_DATABASE_PREFIX` | | | `POSTFIXADMIN_DATABASE_PREFIX` | |
| `POSTFIXADMIN_ENCRYPT` | `md5crypt` | | `POSTFIXADMIN_ENCRYPT` | `md5crypt` |
| `POSTFIXADMIN_SMTP_SERVER` | `localhost` | | `POSTFIXADMIN_SMTP_SERVER` | `localhost` |
| `POSTFIXADMIN_SMTP_PORT` | `25` | | `POSTFIXADMIN_SMTP_PORT` | `25` |
| `POSTFIXADMIN_SMTP_CLIENT` | |
| `POSTFIXADMIN_SHOW_FOOTER_TEXT` | `YES` |
| `POSTFIXADMIN_FOOTER_TEXT` | `Return to change-this-to-your.domain.tld` |
| `POSTFIXADMIN_FOOTER_LINK` | `http://change-this-to-your.domain.tld` |
| `POSTFIXADMIN_FETCHMAIL` | `YES` |
### POSTFIXADMIN_ADMIN_EMAIL ### POSTFIXADMIN_ADMIN_EMAIL
Define the email address of an admin via `POSTFIXADMIN_ADMIN_EMAIL` to send emails or broadcast messages in his name Define the email address of an admin via `POSTFIXADMIN_ADMIN_EMAIL` to send
instead of the email address of the logged in admin, which wants to send an email or broadcast message about the emails or broadcast messages in his name instead of the email address of the
PostfixAdmin interface. By default is the environment variable not defined. The value of the environment will be logged in admin, which wants to send an email or broadcast message about the
configured as the following config setting: `$CONF['admin_email']`. PostfixAdmin interface. By default is the environment variable not defined. The
value of the environment will be configured as the following config setting:
`$CONF['admin_email']`.
### POSTFIXADMIN_ADMIN_SMTP_PASSWORD ### POSTFIXADMIN_ADMIN_SMTP_PASSWORD
Define the smtp password via `POSTFIXADMIN_ADMIN_SMTP_PASSWORD` of the admin which should be used to send emails or Define the smtp password via `POSTFIXADMIN_ADMIN_SMTP_PASSWORD` of the admin
broadcast messages about the PostfixAdmin interface. By default is the environment variable not defined. The value of which should be used to send emails or broadcast messages about the PostfixAdmin
the environment will be configured as the following config setting: `$CONF['admin_smtp_password']`. interface. By default is the environment variable not defined. The value of the
environment will be configured as the following config setting:
`$CONF['admin_smtp_password']`.
### POSTFIXADMIN_ADMIN_NAME ### POSTFIXADMIN_ADMIN_NAME
Define the name of the admin via `POSTFIXADMIN_ADMIN_NAME` which should be used to send emails or broadcast messages Define the name of the admin via `POSTFIXADMIN_ADMIN_NAME` which should be used
about the PostfixAdmin interface. By default is the environment variable not defined. The value of the environment will to send emails or broadcast messages about the PostfixAdmin interface. By
be configured as the following config setting: `$CONF['admin_name']`. default is the environment variable not defined. The value of the environment
will be configured as the following config setting: `$CONF['admin_name']`.
### POSTFIXADMIN_DATABASE_TYPE ### POSTFIXADMIN_DATABASE_TYPE
PostfixAdmin support currently sqlite, postgres and mysql/mariadb. About the envrionment variable PostfixAdmin support currently sqlite, postgres and mysql/mariadb. About the
`POSTFIXADMIN_DATABASE_TYPE` can the backend type defined. The default value is `sqlite`. envrionment variable `POSTFIXADMIN_DATABASE_TYPE` can the backend type defined.
The default value is `sqlite`.
| database type | value | | database type | value |
| ------------- | --------- | | ------------- | --------- |
@ -76,23 +82,27 @@ PostfixAdmin support currently sqlite, postgres and mysql/mariadb. About the env
### POSTFIXADMIN_DATABASE_USER ### POSTFIXADMIN_DATABASE_USER
The environment variable `POSTFIXADMIN_DATABASE_USER` is undefined and only required if the database backend is not The environment variable `POSTFIXADMIN_DATABASE_USER` is undefined and only
`sqlite`. The value of the environment will be configured as the following config setting: `$CONF['database_user']`. required if the database backend is not `sqlite`. The value of the environment
will be configured as the following config setting: `$CONF['database_user']`.
### POSTFIXADMIN_DATABASE_PASSWORD ### POSTFIXADMIN_DATABASE_PASSWORD
The environment variable `POSTFIXADMIN_DATABASE_PASSWORD` is undefined and only required if the database backend is not The environment variable `POSTFIXADMIN_DATABASE_PASSWORD` is undefined and only
`sqlite`. The value of the environment will be configured as the following config setting: `$CONF['database_password']`. required if the database backend is not `sqlite`. The value of the environment
will be configured as the following config setting: `$CONF['database_password']`.
### POSTFIXADMIN_DATABASE_HOST ### POSTFIXADMIN_DATABASE_HOST
The environment variable `POSTFIXADMIN_DATABASE_HOST` is undefined and only required if the database backend is not The environment variable `POSTFIXADMIN_DATABASE_HOST` is undefined and only
`sqlite`. The value of the environment will be configured as the following config setting: `$CONF['database_host']`. required if the database backend is not `sqlite`. The value of the environment
will be configured as the following config setting: `$CONF['database_host']`.
### POSTFIXADMIN_DATABASE_PORT ### POSTFIXADMIN_DATABASE_PORT
The environment variable `POSTFIXADMIN_DATABASE_PORT` will automatically defined with default values when instead of The environment variable `POSTFIXADMIN_DATABASE_PORT` will automatically defined
`sqlite` an other database backend has been selected. The value of the environment will be configured as the following with default values when instead of `sqlite` an other database backend has been
selected. The value of the environment will be configured as the following
config setting: `$CONF['database_port']`. config setting: `$CONF['database_port']`.
| database type | default port | | database type | default port |
@ -102,81 +112,66 @@ config setting: `$CONF['database_port']`.
### POSTFIXADMIN_DATABASE_NAME ### POSTFIXADMIN_DATABASE_NAME
The environment variable `POSTFIXADMIN_DATABASE_NAME` is defined by default with the value `/var/tmp/postfixadmin.db`. The environment variable `POSTFIXADMIN_DATABASE_NAME` is defined by default with
This is the path where the `sqlite` database is stored. If `pgsql` or `mysqli` is defined instead of `sqlite` as the value `/var/tmp/postfixadmin.db`. This is the path where the `sqlite`
database backend type, can the environment variable used to define the database name. The value of the environment will database is stored. If `pgsql` or `mysqli` is defined instead of `sqlite` as
be configured as the following config setting: `$CONF['database_name']`. database backend type, can the environment variable used to define the database
name. The value of the environment will be configured as the following config
setting: `$CONF['database_name']`.
### POSTFIXADMIN_DATABASE_USE_SSL ### POSTFIXADMIN_DATABASE_USE_SSL
Encrypt a database connection to an external database like postgres, mariadb or mysqli via SSL when Encrypt a database connection to an external database like postgres, mariadb or
`POSTFIXADMIN_DATABASE_USE_SSL=true`. Additionally should be the other SSL environment variables defined to establish mysqli via SSL when `POSTFIXADMIN_DATABASE_USE_SSL=true`. Additionally should be
successfully a SSL encrypted connection. The value of the environment will be configured as the following config the other SSL environment variables defined to establish successfully a SSL
setting: `$CONF['database_use_ssl']`. encrypted connection. The value of the environment will be configured as the
following config setting: `$CONF['database_use_ssl']`.
### POSTFIXADMIN_DATABASE_SSL_KEY ### POSTFIXADMIN_DATABASE_SSL_KEY
Via `POSTFIXADMIN_DATABASE_SSL_KEY` can be the path to the private key defined which should be used to encrypt the Via `POSTFIXADMIN_DATABASE_SSL_KEY` can be the path to the private key defined
database connection via SSL. By default is this environment variable undefined. The value of the environment will be which should be used to encrypt the database connection via SSL. By default is
this environment variable undefined. The value of the environment will be
configured as the following config setting: `$CONF['database_ssl_key']`. configured as the following config setting: `$CONF['database_ssl_key']`.
### POSTFIXADMIN_DATABASE_SSL_CERT ### POSTFIXADMIN_DATABASE_SSL_CERT
Via `POSTFIXADMIN_DATABASE_SSL_CERT` can be the path to the certificate defined which should be used to encrypt the Via `POSTFIXADMIN_DATABASE_SSL_CERT` can be the path to the certificate defined
database connection via SSL. By default is this environment variable undefined. The value of the environment will be which should be used to encrypt the database connection via SSL. By default is
this environment variable undefined. The value of the environment will be
configured as the following config setting: `$CONF['database_ssl_cert']`. configured as the following config setting: `$CONF['database_ssl_cert']`.
### POSTFIXADMIN_DATABASE_SSL_CA ### POSTFIXADMIN_DATABASE_SSL_CA
Via `POSTFIXADMIN_DATABASE_SSL_CA` can be the path to the root certificate of the certificate authority defined which Via `POSTFIXADMIN_DATABASE_SSL_CA` can be the path to the root certificate of
should be trusted to encrypt the database connection via SSL. By default is this environment variable undefined. The the certificate authority defined which should be trusted to encrypt the database
value of the environment will be configured as the following config setting: `$CONF['database_ssl_ca']`. connection via SSL. By default is this environment variable undefined. The value
of the environment will be configured as the following config setting:
`$CONF['database_ssl_ca']`.
### POSTFIXADMIN_DATABASE_PREFIX ### POSTFIXADMIN_DATABASE_PREFIX
It make much sense to use a prefix name for all PostfixAdmin related tables, when the tables, views and so on should be It make much sense to use a prefix name for all PostfixAdmin related tables,
stored into a shared schema like `public`. About the environment variable `POSTFIXADMIN_DATABASE_PREFIX` can such a when the tables, views and so on should be stored into a shared schema like
prefix defined. By default is this variable undefined, but when not it results in the config setting `public`. About the environment variable `POSTFIXADMIN_DATABASE_PREFIX` can such
`$CONF['database_prefix']`. a prefix defined. By default is this variable undefined, but when not it results
in the config setting `$CONF['database_prefix']`.
### POSTFIXADMIN_DEFAULT_LANGUAGE ### POSTFIXADMIN_DEFAULT_LANGUAGE
Default language of PostfixAdmin. Checkout the [official Default language of PostfixAdmin. Checkout the [official
repository](https://github.com/postfixadmin/postfixadmin/tree/master/languages) under `./languages` to get a list of all repository](https://github.com/postfixadmin/postfixadmin/tree/master/languages)
supported languages. under `./languages` to get a list of all supported languages.
### POSTFIXADMIN_ENCRYPT ### POSTFIXADMIN_ENCRYPT
Via `POSTFIXADMIN_ENCRYPT` can be the algorithm specified to encrypt passwords of users. The algorithm `md5crypt` is Via `POSTFIXADMIN_ENCRYPT` can be the algorithm specified to encrypt passwords
defined as default. Other possible values are documented of users. The algorithm `md5crypt` is defined as default. Other possible values
are documented
[here](https://github.com/postfixadmin/postfixadmin/blob/master/DOCUMENTS/HASHING.md). [here](https://github.com/postfixadmin/postfixadmin/blob/master/DOCUMENTS/HASHING.md).
### POSTFIXADMIN_SETUP_PASSWORD ### POSTFIXADMIN_SETUP_PASSWORD
To login into the `setup.php` page is the setup password required. This can be defined via the variable To login into the `setup.php` page is the setup password required. This can be
`POSTFIXADMIN_SETUP_PASSWORD`. The password will be hashed via bcrypt and used as value for the setting defined via the variable `POSTFIXADMIN_SETUP_PASSWORD`. The password will not be
`$CONF['setup_password']` in the config file `config.local.php`. configured in the `config.local.php` as plain text. It will be encrypted.
### POSTFIXADMIN_SMTP_CLIENT
Hostname (FQDN) of the server hosting PostfixAdmin used in the `HELO` when sending emails from PostfixAdmin. The value
of the environment will be configured as the following config setting and is empty by default: `$CONF['smtp_client']`.
### POSTFIXADMIN_SMTP_SERVER
Hostname (FQDN) of your mail server. The default value is `localhost`. The value of the environment will be configured
as the following config setting: `$CONF['smtp_server']`.
### POSTFIXADMIN_SMTP_PORT
Port of your mail server. The default value is `25`. The value of the environment will be configured as the following
config setting: `$CONF['smtp_port']`.
### POSTFIXADMIN_SHOW_FOOTER_TEXT
Enable or disable via `YES` or `NO` the footer text displayed on all sites. Use `POSTFIXADMIN_FOOTER_TEXT` and
`POSTFIX_FOOTER_LINK` to customize the text.
### POSTFIXADMIN_FETCHMAIL
Enable or disable via `YES` or `NO` the fetchmail tab. It has nothing todo with the fetchmail cron job.

@ -1,6 +1,6 @@
version: "3" version: "3"
services: services:
postfixadmin: postfixadmin:
image: git.cryptic.systems/volker.raschek/postfixadmin:latest image: localhost/volkerraschek/postfixadmin:latest
ports: ports:
- 0.0.0.0:8080:80/tcp - 0.0.0.0:8080:80/tcp

@ -40,10 +40,6 @@ if [ "${POSTFIXADMIN_DATABASE_TYPE}" = 'sqlite' ]; then
fi fi
fi fi
# bycrypt POSTFIXADMIN_SETUP_PASSWORD
if [ ! -z ${POSTFIXADMIN_SETUP_PASSWORD+x} ]; then
POSTFIXADMIN_SETUP_PASSWORD=$(htpasswd -bnBC 10 "" "${POSTFIXADMIN_SETUP_PASSWORD}" | tr -d ':\n')
fi
# create config.local.pgp with vaules from env with POSTFIXADMIN_ prefix # create config.local.pgp with vaules from env with POSTFIXADMIN_ prefix
POSTFIXADMIN_ENV_VARS=($(env | sort | grep --perl-regexp '^POSTFIXADMIN_.*')) POSTFIXADMIN_ENV_VARS=($(env | sort | grep --perl-regexp '^POSTFIXADMIN_.*'))

@ -1,9 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>volker.raschek/renovate-config:default#master",
"local>volker.raschek/renovate-config:container#master",
"local>volker.raschek/renovate-config:actions#master",
"local>volker.raschek/renovate-config:regexp#master"
]
}