# ---------- فرانت‌اند فقط سرو می‌کند ----------
# بیلد روی هاست انجام می‌شود (npm install && npm run build) و خروجی dist/
# داخل ایمیج کپی می‌شود — شبکه کانتینر بیلد برای npm قابل‌اعتماد نیست.

FROM caddy:2-alpine

# نسخهٔ alpine کاربر caddy ندارد — اینجا ساخته می‌شود؛ /config و /data مسیرهای
# storage سی‌دی هستند و باید برای کاربر نوشتنی باشند
RUN addgroup -S caddy \
    && adduser -S -G caddy -s /sbin/nologin caddy \
    && mkdir -p /config /data \
    && chown -R caddy:caddy /config /data

COPY Caddyfile /etc/caddy/Caddyfile
COPY --chown=caddy:caddy dist /srv

# بدون root — فقط فایل‌های استاتیک سرو می‌شوند و TLS را Traefik تمام می‌کند
USER caddy

EXPOSE 80
