An open API service indexing awesome lists of open source software.

https://github.com/volker-raschek/postfixadmin-fetchmail-docker

[MIRROR]: Source files of the container image volkerraschek/postfixadmin-fetchmail
https://github.com/volker-raschek/postfixadmin-fetchmail-docker

container dovecot fetchmail postfix postfixadmin postfixadmin-fetchmail

Last synced: about 2 months ago
JSON representation

[MIRROR]: Source files of the container image volkerraschek/postfixadmin-fetchmail

Awesome Lists containing this project

README

        

# PostfixAdmin's fetchmail

[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/postfixadmin-fetchmail-docker/status.svg)](https://drone.cryptic.systems/volker.raschek/postfixadmin-fetchmail-docker)
[![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.