mirror of
https://github.com/DumbWareio/DumbDrop.git
synced 2025-10-22 23:31:57 +00:00
* CORS/CSP fix * deprecate ALLOWED_IFRAME_ORIGINS * Revert "deprecate ALLOWED_IFRAME_ORIGINS" This reverts commit9792f06691
. * Reapply "deprecate ALLOWED_IFRAME_ORIGINS" This reverts commit683ee93036
. * Add helmet config and deprecate previous ALLOWED_IFRAME_ORIGINS * add build to docker compose for local builds * set server to listen on 0.0.0.0 and control with cors * Remove hsts from helmet and apply new pin status check limits * add back allowed_iframe_origins env as a fallback for allowed_origins * update readme for allowed_iframe_origins
65 lines
1.3 KiB
Docker
65 lines
1.3 KiB
Docker
# Base stage for shared configurations
|
|
FROM node:22-alpine as base
|
|
|
|
# Install python and create virtual environment with minimal dependencies
|
|
RUN apk add --no-cache python3 py3-pip && \
|
|
python3 -m venv /opt/venv && \
|
|
rm -rf /var/cache/apk/*
|
|
|
|
# Activate virtual environment and install apprise
|
|
RUN . /opt/venv/bin/activate && \
|
|
pip install --no-cache-dir apprise && \
|
|
find /opt/venv -type d -name "__pycache__" -exec rm -r {} +
|
|
|
|
# Add virtual environment to PATH
|
|
ENV PATH="/opt/venv/bin:$PATH"
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
# Dependencies stage
|
|
FROM base as deps
|
|
|
|
COPY package*.json ./
|
|
RUN npm ci --only=production && \
|
|
# Remove npm cache
|
|
npm cache clean --force
|
|
|
|
# Development stage
|
|
FROM deps as development
|
|
ENV NODE_ENV=development
|
|
|
|
# Install dev dependencies
|
|
RUN npm install && \
|
|
npm cache clean --force
|
|
|
|
# Create upload directory
|
|
RUN mkdir -p uploads
|
|
|
|
# Copy source with specific paths to avoid unnecessary files
|
|
COPY src/ ./src/
|
|
COPY public/ ./public/
|
|
COPY __tests__/ ./__tests__/
|
|
COPY dev/ ./dev/
|
|
COPY .eslintrc.json .eslintignore ./
|
|
|
|
# Expose port
|
|
EXPOSE 3000
|
|
|
|
CMD ["npm", "run", "dev"]
|
|
|
|
# Production stage
|
|
FROM deps as production
|
|
ENV NODE_ENV=production
|
|
|
|
# Create upload directory
|
|
RUN mkdir -p uploads
|
|
|
|
# Copy only necessary source files
|
|
COPY src/ ./src/
|
|
COPY public/ ./public/
|
|
|
|
# Expose port
|
|
EXPOSE 3000
|
|
|
|
CMD ["npm", "start"]
|