new features

This commit is contained in:
Matthias Hochmeister
2026-03-23 13:14:33 +01:00
parent 9443c9457b
commit d2dc64d54a
3 changed files with 17 additions and 9 deletions

View File

@@ -55,8 +55,8 @@ COPY --from=builder /app/dist ./dist
# Copy database migrations (needed for runtime)
COPY --from=builder /app/src/database/migrations ./dist/database/migrations
# Create logs directory
RUN mkdir -p /app/logs
# Create logs and uploads directories
RUN mkdir -p /app/logs /app/uploads/bestellungen/thumbnails
# Change ownership to non-root user
RUN chown -R nodejs:nodejs /app

View File

@@ -128,7 +128,8 @@ app.use('/api/permissions', permissionRoutes);
app.use('/api/shop', shopRoutes);
// Static file serving for uploads (authenticated)
app.use('/uploads', authenticate, express.static(path.resolve(__dirname, '../../uploads')));
const uploadsDir = process.env.NODE_ENV === 'production' ? '/app/uploads' : path.resolve(__dirname, '../../uploads');
app.use('/uploads', authenticate, express.static(uploadsDir));
// 404 handler
app.use(notFoundHandler);

View File

@@ -4,14 +4,21 @@ import path from 'path';
import fs from 'fs';
import logger from '../utils/logger';
const UPLOAD_DIR = path.resolve(__dirname, '../../../uploads/bestellungen');
const THUMBNAIL_DIR = path.resolve(__dirname, '../../../uploads/bestellungen/thumbnails');
// In Docker the working dir is /app and the volume is mounted at /app/uploads.
// In dev, resolve relative to the project root (3 levels up from dist/middleware/).
const APP_ROOT = process.env.NODE_ENV === 'production' ? '/app' : path.resolve(__dirname, '../../..');
const UPLOAD_DIR = path.join(APP_ROOT, 'uploads', 'bestellungen');
const THUMBNAIL_DIR = path.join(APP_ROOT, 'uploads', 'bestellungen', 'thumbnails');
// Ensure directories exist
// Ensure directories exist (graceful — may already exist via Docker volume)
[UPLOAD_DIR, THUMBNAIL_DIR].forEach(dir => {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
logger.info(`Created upload directory: ${dir}`);
try {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
logger.info(`Created upload directory: ${dir}`);
}
} catch (err) {
logger.warn(`Could not create upload directory ${dir} — it may be created by Docker volume mount`, { err });
}
});