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.
38 lines
1.2 KiB
Docker
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"]
|