FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates git curl sqlite3 jq \ && rm -rf /var/lib/apt/lists/* # install gitea ARG GITEA_VERSION=1.23.7 RUN curl -fSL "https://dl.gitea.com/gitea/${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64" \ -o /usr/local/bin/gitea \ && chmod +x /usr/local/bin/gitea # install caddy ARG CADDY_VERSION=2.9.1 RUN curl -fSL "https://github.com/caddyserver/caddy/releases/download/v${CADDY_VERSION}/caddy_${CADDY_VERSION}_linux_amd64.tar.gz" \ | tar -xz -C /usr/local/bin caddy \ && chmod +x /usr/local/bin/caddy # noc binary (pre-built musl static binary) COPY noc /usr/local/bin/noc RUN chmod +x /usr/local/bin/noc COPY tools/ /opt/noc/tools/ COPY config.example.yaml /opt/noc/config.example.yaml COPY Caddyfile /opt/noc/Caddyfile COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh RUN useradd -m -s /bin/bash noc \ && mkdir -p /data/gitea /data/noc /data/caddy /data/www \ && chown -R noc:noc /data /opt/noc VOLUME ["/data"] USER noc ENV RUST_LOG=noc=info \ NOC_CONFIG=/data/noc/config.yaml \ NOC_STATE=/data/noc/state.json \ GITEA_WORK_DIR=/data/gitea \ XDG_DATA_HOME=/data/caddy EXPOSE 80 443 ENTRYPOINT ["/entrypoint.sh"]