Files
cobble/Dockerfile
T
tben 8bf6bedec5 Serve plain HTTP only and drop the local certificate tooling
The app never terminates TLS: a reverse proxy or tunnel does, and
isSecureRequest still reads X-Forwarded-Proto so cookies stay Secure.
Removes the cert generator, TLS resolution and HTTP redirect, the
local CA download, and the TLS envs, and trims the installer, Dockerfile
health check and docs to match. Also softens the composer's loading row.
2026-10-21 15:35:27 +01:00

38 lines
1.2 KiB
Docker

FROM oven/bun:1.4.3-debian
LABEL org.opencontainers.image.title="Cobble" \
org.opencontainers.image.description="A self-hosted crew of small AI worker bots." \
org.opencontainers.image.source="https://github.com/Moduletrace/cobble" \
org.opencontainers.image.licenses="MIT"
# The app serves plain HTTP; HTTPS is the reverse proxy's job.
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl bash nano wget zip unzip \
&& rm -rf /var/lib/apt/lists/*
ENV NODE_ENV=production
# Everything that must survive an update lives on the /data volume:
# the database, media, computers' home directories
ENV DATA_DIR=/data
ENV DB_DIR=/data/db
ENV BUN_FEATURE_FLAG_DISABLE_STREAMING_INSTALL=1
WORKDIR /app
RUN echo 'alias ll="ls -laF"' >/root/.bashrc
COPY package.json bun.lock ./
# Local packages the lockfile installs from (`file:` dependencies)
COPY packages ./packages
RUN bun install --frozen-lockfile
COPY . /app/.
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
CMD curl -fsS "http://localhost:${PORT:-7227}/api/health" || exit 1
ENTRYPOINT ["/entrypoint.sh"]