FROM        debian:bookworm-slim

LABEL       author="RefoselTeam" maintainer="admin@refoseltw.ru"

LABEL       org.opencontainers.image.source="https://gitea.refoseltw.ru/RefoselTeamWork/yolks"
LABEL       org.opencontainers.image.licenses=MIT

ENV         DEBIAN_FRONTEND=noninteractive

# Install dependencies
RUN         apt update \
            && apt upgrade -y \
            && apt install -y \
                curl \
                gnupg \
                ca-certificates \
                tini \
                tzdata \
                unzip \
                git \
            && apt clean \
            && rm -rf /var/lib/apt/lists/*

# Create directories
RUN         mkdir -p /home/container/stalwart-mail/bin \
            && mkdir -p /home/container/stalwart-mail/data \
            && mkdir -p /home/container/stalwart-mail/certs \
            && mkdir -p /home/container/stalwart-mail/logs

# Install Stalwart Mail Server
ARG         STALWART_VERSION=0.16.8
RUN         cd /tmp \
            && curl -sSL -o stalwart.tar.gz "https://github.com/stalwartlabs/stalwart/releases/download/v${STALWART_VERSION}/stalwart-x86_64-unknown-linux-gnu.tar.gz" \
            && tar xzf stalwart.tar.gz \
            && mv stalwart-* /home/container/stalwart-mail/bin/stalwart-mail \
            && chmod +x /home/container/stalwart-mail/bin/stalwart-mail \
            && rm -rf /tmp/*

# Setup user
RUN         useradd -m -d /home/container -s /bin/bash container \
            && chown -R container:container /home/container

USER        container
ENV         USER=container HOME=/home/container
WORKDIR     /home/container

EXPOSE      8080 465 587 993 995 4190

STOPSIGNAL  SIGINT

COPY        --chown=container:container ./entrypoint.sh /entrypoint.sh
COPY        --chown=container:container ./config.toml /entrypoint-config.toml
RUN         chmod +x /entrypoint.sh

ENTRYPOINT  ["/usr/bin/tini", "-g", "--"]
CMD         ["/entrypoint.sh"]
