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-get update \
            && apt-get upgrade -y \
            && apt-get install -y \
                ca-certificates \
                curl \
                git \
                tini \
                wget \
            && apt-get clean \
            && rm -rf /var/lib/apt/lists/*

# Create directories first
RUN         mkdir -p /opt/stalwart-mail/bin \
            && mkdir -p /opt/stalwart-mail/etc \
            && mkdir -p /opt/stalwart-mail/data \
            && mkdir -p /opt/stalwart-mail/logs

# Download and install Stalwart Mail Server
ARG         STALWART_VERSION=0.16.8
RUN         wget -q -O /tmp/stalwart.tar.gz \
                "https://github.com/stalwartlabs/stalwart/releases/download/v${STALWART_VERSION}/stalwart-x86_64-unknown-linux-gnu.tar.gz" \
            && tar -xzf /tmp/stalwart.tar.gz -C /tmp/ \
            && ls -la /tmp/ \
            && find /tmp -maxdepth 2 -name "stalwart*" \
            && cp /tmp/stalwart /opt/stalwart-mail/bin/stalwart-mail \
            && chmod +x /opt/stalwart-mail/bin/stalwart-mail \
            && rm -rf /tmp/*

EXPOSE      8080 465 587 993 995 4190

STOPSIGNAL  SIGINT

COPY        --chown=root:root ./entrypoint.sh /entrypoint.sh
COPY        --chown=root:root ./config.toml /opt/stalwart-mail/etc/config.toml
RUN         chmod +x /entrypoint.sh

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