Markus Pesch 0564b9c2e3
All checks were successful
Build / build-arm64 (push) Successful in 1m10s
Lint Markdown files / markdown-lint (push) Successful in 15s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 11s
Build / build-amd64 (push) Successful in 1m23s
fix(ci): replace drone with gitea actions
2025-05-09 11:18:13 +02:00

105 lines
3.4 KiB
Markdown

# PostfixAdmin's fetchmail
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/postfixadmin-fetchmail)](https://hub.docker.com/r/volkerraschek/postfixadmin-fetchmail)
This project contains all sources to build the container image `docker.io/volkerraschek/postfixadmin-fetchmail`. The
primary goal of the image is to fetch mails from external servers and forward them to on local running mail server.
The configuration file will be automatically generated based on information from a supported database backend of
[postfixadmin](https://github.com/postfixadmin/postfixadmin). The information are stored in the table `fetchmail` of the
database scheme of PostfixAdmin.
## Usage
Possible database types are `my` for MySQL and `Pg` for postgres. Make sure that the database and the SMTP server are
accessible. Otherwise, adjust the enclosed docker-compose or docker command accordingly. Alternatively you can use
docker-compose in addition to the docker commands.
### PostgreSQL
```bash
$ docker run \
--rm \
--env DATABASE_TYPE: Pg \
--env DATABASE_HOST: postgres \
--env DATABASE_PORT: 5432 \
--env DATABASE_NAME: postgres \
--env DATABASE_USER: fetchmail \
--env DATABASE_PASSWORD: MySecretPassword \
--network host \
volkerraschek/fetchmail:latest
```
### MySQL
```bash
$ docker run \
--rm \
--env DATABASE_TYPE: my \
--env DATABASE_HOST: root \
--env DATABASE_PORT: 3306 \
--env DATABASE_NAME: mysql \
--env DATABASE_USER: fetchmail \
--env DATABASE_PASSWORD: MySecretPassword \
--network host \
volkerraschek/fetchmail:latest
```
### docker-compose
The repository contains a default `docker-compose.yml` file, which can be used to start the container. To set the
environment variables you need a `.env` file. The `.dev_env` from this repository can be used for this. This must be
located exclusively in the same directory as the `docker-compose.yml` file and must be renamed as `.env`.
```yml
version: "3"
services:
fetchmail:
image: volkerraschek/fetchmail:latest
environment:
- DATABASE_TYPE=${DATABASE_TYPE}
- DATABASE_HOST=${DATABASE_HOST}
- DATABASE_HOST=${DATABASE_PORT}
- DATABASE_NAME=${DATABASE_NAME}
- DATABASE_USER=${DATABASE_USER}
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
network_mode: host
```
## Environment variables
### DATABASE_TYPE
Currently will be only postgres, mysql and mariadb supported. About the environment variable `DATABASE_TYPE` can the
backend type defined. The value is required.
| database type | value |
| ------------- | ----- |
| mysql/mariadb | `my` |
| postgres | `Pg` |
### DATABASE_USER
The environment variable `DATABASE_USER` is undefined and required. The value contains the database user which one
fetchmail use to login.
### DATABASE_PASSWORD
The environment variable `DATABASE_PASSWORD` is undefined and required. The value contains the password of the database
user which one fetchmail use to login.
### DATABASE_HOST
The environment variable `DATABASE_HOST` is undefined and required. The value contains the DNS name or IP address of the
host, where the database is hosted.
### DATABASE_PORT
The environment variable `DATABASE_PORT` is undefined and required. The value contains the port of the host, where the
database is listen on.
### DATABASE_NAME
The environment variable `DATABASE_NAME` is undefined and required. The value contains the name of the database against
which should be logged in.