12 Commits

Author SHA1 Message Date
f6eabd4fa8 Merge pull request 'chore(deps): update actions/checkout action to v4.3.0' (#64) from renovate/actions into master
All checks were successful
Build / build-amd64 (push) Successful in 1m7s
Lint Markdown files / markdown-lint (push) Successful in 4s
Build / build-arm64 (push) Successful in 3m22s
2025-08-11 14:12:27 +00:00
e74b1644b0 chore(deps): update actions/checkout action to v4.3.0
All checks were successful
Lint Markdown files / markdown-lint (pull_request) Successful in 14s
Build / build-amd64 (pull_request) Successful in 1m5s
Build / build-arm64 (pull_request) Successful in 3m22s
2025-08-11 13:20:50 +00:00
3fd6e7bd7e Merge pull request 'chore(deps): update docker/login-action action to v3.5.0' (#63) from renovate/actions into master
All checks were successful
Build / build-arm64 (push) Successful in 3m30s
Lint Markdown files / markdown-lint (push) Successful in 10s
Build / build-amd64 (push) Successful in 2m58s
2025-08-04 16:56:56 +00:00
14cd1f4f54 chore(deps): update docker/login-action action to v3.5.0
All checks were successful
Build / build-arm64 (pull_request) Successful in 3m30s
Lint Markdown files / markdown-lint (pull_request) Successful in 10s
Build / build-amd64 (pull_request) Successful in 3m25s
2025-08-04 16:13:40 +00:00
324d532b69 chore(deps): update docker/setup-buildx-action action to v3.11.1
All checks were successful
Build / build-arm64 (pull_request) Successful in 3m34s
Lint Markdown files / markdown-lint (pull_request) Successful in 11s
Build / build-amd64 (pull_request) Successful in 3m13s
Build / build-arm64 (push) Successful in 3m58s
Lint Markdown files / markdown-lint (push) Successful in 13s
Build / build-amd64 (push) Successful in 1m2s
2025-06-18 10:17:21 +00:00
77e51902c9 chore(deps): update docker/setup-buildx-action action to v3.11.0
All checks were successful
Build / build-arm64 (pull_request) Successful in 3m28s
Lint Markdown files / markdown-lint (pull_request) Successful in 11s
Build / build-amd64 (pull_request) Successful in 3m52s
Build / build-arm64 (push) Successful in 3m27s
Lint Markdown files / markdown-lint (push) Successful in 10s
Build / build-amd64 (push) Successful in 4m29s
2025-06-16 13:14:35 +00:00
3f43447f65 chore(ci): adapt expression of extractVersion
All checks were successful
Build / build-arm64 (push) Successful in 3m40s
Lint Markdown files / markdown-lint (push) Successful in 10s
Build / build-amd64 (push) Successful in 5m21s
2025-06-10 12:30:25 +02:00
e7d5544adc chore(deps): update davidanson/markdownlint-cli2-action action to v20
All checks were successful
Lint Markdown files / markdown-lint (pull_request) Successful in 15s
Build / build-amd64 (pull_request) Successful in 1m3s
Build / build-arm64 (pull_request) Successful in 5m16s
Build / build-amd64 (push) Successful in 4m47s
Lint Markdown files / markdown-lint (push) Successful in 14s
Build / build-arm64 (push) Successful in 5m52s
2025-05-31 12:15:18 +00:00
5c4ad167f7 docs(README): adapt documentation to be compliant with markdownlint
All checks were successful
Lint Markdown files / markdown-lint (push) Successful in 4s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 4s
Build / build-amd64 (push) Successful in 4m58s
Build / build-arm64 (push) Successful in 5m21s
2025-05-31 14:02:28 +02:00
fff4a90054 docs(README): adapt line length
All checks were successful
Lint Markdown files / markdown-lint (push) Successful in 11s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 15s
Build / build-amd64 (push) Successful in 1m2s
Build / build-arm64 (push) Successful in 4m37s
2025-05-13 19:13:33 +02:00
4a9c482b17 fix(ci): replace drone with gitea actions 2025-05-13 19:11:03 +02:00
d9096a345f style(markdownlint): update configuration 2025-05-09 11:27:58 +02:00
10 changed files with 262 additions and 795 deletions

View File

@ -1,670 +0,0 @@
---
kind: pipeline
type: kubernetes
name: linter
clone:
disable: true
platform:
os: linux
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: markdown lint
commands:
- markdownlint *.md
image: git.cryptic.systems/volker.raschek/markdownlint:0.44.0
resources:
limits:
cpu: 150
memory: 150M
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: dry-run-amd64
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.8
settings:
auto_tag: false
dockerfile: Dockerfile
dry_run: true
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/postfixadmin
tags: latest-amd64
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
exclude:
- master
event:
- pull_request
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: dry-run-arm64-v8
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.8
settings:
auto_tag: false
dockerfile: Dockerfile
dry_run: true
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/postfixadmin
tags: latest-arm64-v8
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
exclude:
- master
event:
- pull_request
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: latest-amd64
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.8
settings:
auto_tag: false
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/postfixadmin
tags: latest-amd64
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: latest-arm64-v8
clone:
disable: true
depends_on:
- linter
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.8
settings:
auto_tag: false
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/postfixadmin
tags: latest-arm64-v8
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: kubernetes
name: latest-manifest
clone:
disable: true
depends_on:
- latest-amd64
- latest-arm64-v8
# docker.io/plugins/manifest only for amd64 architectures available
node_selector:
kubernetes.io/os: linux
kubernetes.io/arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build-manifest
image: docker.io/plugins/manifest:1.4.0
settings:
auto_tag: false
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: kubernetes
name: latest-sync
clone:
disable: true
depends_on:
- latest-manifest
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: latest-sync
commands:
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/postfixadmin docker.io/volkerraschek
environment:
SRC_CRED_USERNAME:
from_secret: git_cryptic_systems_container_registry_user
SRC_CRED_PASSWORD:
from_secret: git_cryptic_systems_container_registry_password
DEST_CRED_USERNAME:
from_secret: container_image_registry_user
DEST_CRED_PASSWORD:
from_secret: container_image_registry_password
image: quay.io/skopeo/stable:v1.18.0
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: tagged-amd64
clone:
disable: true
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.8
settings:
auto_tag: true
auto_tag_suffix: amd64
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/postfixadmin
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
build_args:
- POSTFIXADMIN_VERSION=${DRONE_TAG}
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: docker
name: tagged-arm64-v8
clone:
disable: true
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.8
settings:
auto_tag: true
auto_tag_suffix: arm64-v8
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/postfixadmin
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
build_args:
- POSTFIXADMIN_VERSION=${DRONE_TAG}
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: kubernetes
name: tagged-manifest
clone:
disable: true
depends_on:
- tagged-amd64
- tagged-arm64-v8
# docker.io/plugins/manifest only for amd64 architectures available
node_selector:
kubernetes.io/os: linux
kubernetes.io/arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build-manifest
image: docker.io/plugins/manifest:1.4.0
settings:
auto_tag: true
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker
---
kind: pipeline
type: kubernetes
name: tagged-sync
clone:
disable: true
depends_on:
- tagged-manifest
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: tagged-sync
commands:
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/postfixadmin docker.io/volkerraschek
environment:
SRC_CRED_USERNAME:
from_secret: git_cryptic_systems_container_registry_user
SRC_CRED_PASSWORD:
from_secret: git_cryptic_systems_container_registry_password
DEST_CRED_USERNAME:
from_secret: container_image_registry_user
DEST_CRED_PASSWORD:
from_secret: container_image_registry_password
image: quay.io/skopeo/stable:v1.18.0
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/postfixadmin-docker

View File

@ -0,0 +1,49 @@
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.3.0
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.11.1
- 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.3.0
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.11.1
- 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 \
.

View File

@ -0,0 +1,22 @@
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.3.0
- uses: DavidAnson/markdownlint-cli2-action@v20.0.0
with:
globs: '**/*.md'

View File

@ -0,0 +1,101 @@
name: Release
on:
push:
tags:
- "**"
jobs:
push-arm64:
runs-on: ubuntu-latest-arm64
steps:
- uses: actions/checkout@v4.3.0
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.11.1
- uses: docker/login-action@v3.5.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.3.0
- uses: docker/setup-qemu-action@v3.6.0
- uses: docker/setup-buildx-action@v3.11.1
- uses: docker/login-action@v3.5.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.5.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}

View File

@ -0,0 +1,22 @@
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.3.0
- 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

View File

@ -45,19 +45,17 @@ MD012:
# MD013/line-length - Line length # MD013/line-length - Line length
MD013: MD013:
# Number of characters # Number of characters
line_length: 80 line_length: 120
# Number of characters for headings # Number of characters for headings
heading_line_length: 80 heading_line_length: 120
# Number of characters for code blocks # Number of characters for code blocks
code_block_line_length: 80 code_block_line_length: 120
# 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
@ -70,11 +68,6 @@ 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
@ -129,7 +122,6 @@ MD041:
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
@ -141,4 +133,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"

View File

@ -1,6 +1,6 @@
# POSTFIXADMIN_VERSION # POSTFIXADMIN_VERSION
# Only required to install a specify version # Only required to install a specify version
POSTFIXADMIN_VERSION?=3.3.15 # renovate: datasource=github-tags depName=postfixadmin/postfixadmin extractVersion='postfixadmin-(?<version>\\d+\\.\\d+\\.\\d+)$' POSTFIXADMIN_VERSION?=3.3.15 # renovate: datasource=github-tags depName=postfixadmin/postfixadmin extractVersion='postfixadmin-(?<version>\d+\.\d+\.\d+)$'
# PODMAN_BIN's and tools # PODMAN_BIN's and tools
PODMAN_BIN?=$(shell which podman) PODMAN_BIN?=$(shell which podman)

153
README.md
View File

@ -6,21 +6,17 @@
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 The main goal of this alternative image is to support a kubernetes deployment via helm. Furthermore, the container image
via helm. Furthermore, the container image support configuring via [environment support configuring via [environment variables](#supported-environment-variables).
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) [artifacthub.io](https://artifacthub.io/packages/helm/volker-raschek/postfixadmin) for more details.
for more details.
## Supported environment variables ## Supported environment variables
This list is an overview over some important environment variables. The This list is an overview over some important environment variables. The environment variables are composed on the key of
environment variables are composed on the key of the PHP configuration with the the PHP configuration with the prefix `POSTFIXADMIN_`. You can take an example
prefix `POSTFIXADMIN_`. You can take an example [configuration](https://github.com/postfixadmin/postfixadmin/blob/master/config.inc.php) from the upstream project.
[configuration](https://github.com/postfixadmin/postfixadmin/blob/master/config.inc.php)
from the upstream project.
| name | default | | name | default |
| ----------------------------------- | ------------------------------------------- | | ----------------------------------- | ------------------------------------------- |
@ -50,33 +46,27 @@ from the upstream project.
### POSTFIXADMIN_ADMIN_EMAIL ### POSTFIXADMIN_ADMIN_EMAIL
Define the email address of an admin via `POSTFIXADMIN_ADMIN_EMAIL` to send Define the email address of an admin via `POSTFIXADMIN_ADMIN_EMAIL` to send emails or broadcast messages in his name
emails or broadcast messages in his name instead of the email address of the instead of the email address of the logged in admin, which wants to send an email or broadcast message about the
logged in admin, which wants to send an email or broadcast message about the PostfixAdmin interface. By default is the environment variable not defined. The value of the environment will be
PostfixAdmin interface. By default is the environment variable not defined. The configured as the following config setting: `$CONF['admin_email']`.
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 Define the smtp password via `POSTFIXADMIN_ADMIN_SMTP_PASSWORD` of the admin which should be used to send emails or
which should be used to send emails or broadcast messages about the PostfixAdmin broadcast messages about the PostfixAdmin interface. By default is the environment variable not defined. The value of
interface. By default is the environment variable not defined. The value of the the environment will be configured as the following config setting: `$CONF['admin_smtp_password']`.
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 Define the name of the admin via `POSTFIXADMIN_ADMIN_NAME` which should be used to send emails or broadcast messages
to send emails or broadcast messages about the PostfixAdmin interface. By about the PostfixAdmin interface. By default is the environment variable not defined. The value of the environment will
default is the environment variable not defined. The value of the environment be configured as the following config setting: `$CONF['admin_name']`.
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 PostfixAdmin support currently sqlite, postgres and mysql/mariadb. About the envrionment variable
envrionment variable `POSTFIXADMIN_DATABASE_TYPE` can the backend type defined. `POSTFIXADMIN_DATABASE_TYPE` can the backend type defined. The default value is `sqlite`.
The default value is `sqlite`.
| database type | value | | database type | value |
| ------------- | --------- | | ------------- | --------- |
@ -86,27 +76,23 @@ The default value is `sqlite`.
### POSTFIXADMIN_DATABASE_USER ### POSTFIXADMIN_DATABASE_USER
The environment variable `POSTFIXADMIN_DATABASE_USER` is undefined and only The environment variable `POSTFIXADMIN_DATABASE_USER` is undefined and only required if the database backend is not
required if the database backend is not `sqlite`. The value of the environment `sqlite`. The value of the environment will be configured as the following config setting: `$CONF['database_user']`.
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 The environment variable `POSTFIXADMIN_DATABASE_PASSWORD` is undefined and only required if the database backend is not
required if the database backend is not `sqlite`. The value of the environment `sqlite`. The value of the environment will be configured as the following config setting: `$CONF['database_password']`.
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 The environment variable `POSTFIXADMIN_DATABASE_HOST` is undefined and only required if the database backend is not
required if the database backend is not `sqlite`. The value of the environment `sqlite`. The value of the environment will be configured as the following config setting: `$CONF['database_host']`.
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 The environment variable `POSTFIXADMIN_DATABASE_PORT` will automatically defined with default values when instead of
with default values when instead of `sqlite` an other database backend has been `sqlite` an other database backend has been selected. The value of the environment will be configured as the following
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 |
@ -116,96 +102,81 @@ config setting: `$CONF['database_port']`.
### POSTFIXADMIN_DATABASE_NAME ### POSTFIXADMIN_DATABASE_NAME
The environment variable `POSTFIXADMIN_DATABASE_NAME` is defined by default with The environment variable `POSTFIXADMIN_DATABASE_NAME` is defined by default with the value `/var/tmp/postfixadmin.db`.
the value `/var/tmp/postfixadmin.db`. This is the path where the `sqlite` This is the path where the `sqlite` database is stored. If `pgsql` or `mysqli` is defined instead of `sqlite` as
database is stored. If `pgsql` or `mysqli` is defined instead of `sqlite` as database backend type, can the environment variable used to define the database name. The value of the environment will
database backend type, can the environment variable used to define the database be configured as the following config setting: `$CONF['database_name']`.
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 Encrypt a database connection to an external database like postgres, mariadb or mysqli via SSL when
mysqli via SSL when `POSTFIXADMIN_DATABASE_USE_SSL=true`. Additionally should be `POSTFIXADMIN_DATABASE_USE_SSL=true`. Additionally should be the other SSL environment variables defined to establish
the other SSL environment variables defined to establish successfully a SSL successfully a SSL encrypted connection. The value of the environment will be configured as the following config
encrypted connection. The value of the environment will be configured as the setting: `$CONF['database_use_ssl']`.
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 Via `POSTFIXADMIN_DATABASE_SSL_KEY` can be the path to the private key defined which should be used to encrypt the
which should be used to encrypt the database connection via SSL. By default is database connection via SSL. By default is this environment variable undefined. The value of the environment will be
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 Via `POSTFIXADMIN_DATABASE_SSL_CERT` can be the path to the certificate defined which should be used to encrypt the
which should be used to encrypt the database connection via SSL. By default is database connection via SSL. By default is this environment variable undefined. The value of the environment will be
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 Via `POSTFIXADMIN_DATABASE_SSL_CA` can be the path to the root certificate of the certificate authority defined which
the certificate authority defined which should be trusted to encrypt the database should be trusted to encrypt the database connection via SSL. By default is this environment variable undefined. The
connection via SSL. By default is this environment variable undefined. The value value of the environment will be configured as the following config setting: `$CONF['database_ssl_ca']`.
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, It make much sense to use a prefix name for all PostfixAdmin related tables, when the tables, views and so on should be
when the tables, views and so on should be stored into a shared schema like stored into a shared schema like `public`. About the environment variable `POSTFIXADMIN_DATABASE_PREFIX` can such a
`public`. About the environment variable `POSTFIXADMIN_DATABASE_PREFIX` can such prefix defined. By default is this variable undefined, but when not it results in the config setting
a prefix defined. By default is this variable undefined, but when not it results `$CONF['database_prefix']`.
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) repository](https://github.com/postfixadmin/postfixadmin/tree/master/languages) under `./languages` to get a list of all
under `./languages` to get a list of all supported languages. supported languages.
### POSTFIXADMIN_ENCRYPT ### POSTFIXADMIN_ENCRYPT
Via `POSTFIXADMIN_ENCRYPT` can be the algorithm specified to encrypt passwords Via `POSTFIXADMIN_ENCRYPT` can be the algorithm specified to encrypt passwords of users. The algorithm `md5crypt` is
of users. The algorithm `md5crypt` is defined as default. Other possible values defined as default. Further possible algorithms can be found in the
are documented [documentation](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 To login into the `setup.php` page is the setup password required. This can be defined via the variable
defined via the variable `POSTFIXADMIN_SETUP_PASSWORD`. The password will be `POSTFIXADMIN_SETUP_PASSWORD`. The password will be hashed via bcrypt and used as value for the setting
hashed via bcrypt and used as value for the setting `$CONF['setup_password']` in `$CONF['setup_password']` in the config file `config.local.php`.
the config file `config.local.php`.
### POSTFIXADMIN_SMTP_CLIENT ### POSTFIXADMIN_SMTP_CLIENT
Hostname (FQDN) of the server hosting PostfixAdmin used in the `HELO` when Hostname (FQDN) of the server hosting PostfixAdmin used in the `HELO` when sending emails from PostfixAdmin. The value
sending emails from PostfixAdmin. The value of the environment will be of the environment will be configured as the following config setting and is empty by default: `$CONF['smtp_client']`.
configured as the following config setting and is empty by default:
`$CONF['smtp_client']`.
### POSTFIXADMIN_SMTP_SERVER ### POSTFIXADMIN_SMTP_SERVER
Hostname (FQDN) of your mail server. The default value is `localhost`. The value Hostname (FQDN) of your mail server. The default value is `localhost`. The value of the environment will be configured
of the environment will be configured as the following config setting: as the following config setting: `$CONF['smtp_server']`.
`$CONF['smtp_server']`.
### POSTFIXADMIN_SMTP_PORT ### POSTFIXADMIN_SMTP_PORT
Port of your mail server. The default value is `25`. The value of the Port of your mail server. The default value is `25`. The value of the environment will be configured as the following
environment will be configured as the following config setting: config setting: `$CONF['smtp_port']`.
`$CONF['smtp_port']`.
### POSTFIXADMIN_SHOW_FOOTER_TEXT ### POSTFIXADMIN_SHOW_FOOTER_TEXT
Enable or disable via `YES` or `NO` the footer text displayed on all sites. Use Enable or disable via `YES` or `NO` the footer text displayed on all sites. Use `POSTFIXADMIN_FOOTER_TEXT` and
`POSTFIXADMIN_FOOTER_TEXT` and `POSTFIX_FOOTER_LINK` to customize the text. `POSTFIX_FOOTER_LINK` to customize the text.
### POSTFIXADMIN_FETCHMAIL ### POSTFIXADMIN_FETCHMAIL
Enable or disable via `YES` or `NO` the fetchmail tab. It has nothing todo with Enable or disable via `YES` or `NO` the fetchmail tab. It has nothing todo with the fetchmail cron job.
the fetchmail cron job.

View File

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

View File

@ -1,20 +0,0 @@
image: git.cryptic.systems/volker.raschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}
{{/each}}
- "latest"
{{/if}}
manifests:
-
image: git.cryptic.systems/volker.raschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64
platform:
architecture: amd64
os: linux
-
image: git.cryptic.systems/volker.raschek/postfixadmin:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8
platform:
architecture: arm64
os: linux
variant: v8