N8N / Dockerfile
loko99's picture
Update Dockerfile
d222214 verified
FROM node:alpine
# Set working directory
WORKDIR /app
# Install n8n globally, rclone, redis, and postgresql
RUN npm install -g n8n && \
apk add --no-cache rclone redis postgresql postgresql-contrib
# Create data directories and set permissions
RUN mkdir -p /home/node/.n8n /home/node/.config/rclone /home/node/redis-data /home/node/pgdata && \
chown -R node:node /home/node
# Copy startup script
COPY startup.sh startup.sh
RUN chmod +x startup.sh
# Ensure /run/postgresql exists and is writable by node
RUN mkdir -p /run/postgresql && chmod 775 /run/postgresql && chown node:node /run/postgresql
# Switch to node user
USER node
# Set environment variables
ENV N8N_PORT=5678
ENV N8N_RUNNERS_ENABLED=true
ENV N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
ENV N8N_HOST=loko99-n8n.hf.space
ENV N8N_PROTOCOL=https
ENV WEBHOOK_URL=https://loko99-n8n.hf.space
# PostgreSQL environment variables (can be overridden)
ENV POSTGRES_USER=node
ENV POSTGRES_PASSWORD=changeme
ENV POSTGRES_DB=n8n
ENV POSTGRES_PORT=5432
# Expose ports for n8n, redis, and postgresql
EXPOSE 5678
EXPOSE 6379
EXPOSE 5432
# Start with backup script
CMD sh startup.sh