Leon4gr45 commited on
Commit
bbc24a9
·
verified ·
1 Parent(s): e386518

Upload fresh Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +78 -0
Dockerfile ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use a base image with systemd or a process manager if complex, otherwise a simpler base
2
+ # Ubuntu is a good general-purpose choice for installing multiple services
3
+ FROM ubuntu:22.04
4
+
5
+ ARG DEBIAN_FRONTEND=noninteractive
6
+
7
+ # Install dependencies: curl, wget, gnupg, sudo, procps (for ps), net-tools (for netstat)
8
+ RUN apt-get update && apt-get install -y \
9
+ curl \
10
+ wget \
11
+ gnupg \
12
+ sudo \
13
+ procps \
14
+ net-tools \
15
+ ca-certificates \
16
+ postgresql \
17
+ postgresql-contrib \
18
+ zstd \
19
+ && rm -rf /var/lib/apt/lists/*
20
+
21
+ # --- Install Node.js (e.g., v20.x LTS) ---
22
+ RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
23
+ && apt-get install -y nodejs \
24
+ && rm -rf /var/lib/apt/lists/*
25
+
26
+ RUN node -v
27
+ RUN npm -v
28
+
29
+ # Install n8n
30
+ RUN npm install -g n8n
31
+
32
+ # Install Qdrant
33
+ ARG QDRANT_VERSION=v1.9.2
34
+ RUN wget "https://github.com/qdrant/qdrant/releases/download/${QDRANT_VERSION}/qdrant-x86_64-unknown-linux-gnu.tar.gz" -O qdrant.tar.gz && \
35
+ tar -xzf qdrant.tar.gz && \
36
+ mv qdrant /usr/local/bin/qdrant && \
37
+ rm qdrant.tar.gz && \
38
+ mkdir -p /qdrant/storage && \
39
+ mkdir -p /qdrant/config
40
+ COPY qdrant_config.yaml /qdrant/config/config.yaml
41
+
42
+ # Install Ollama
43
+ RUN curl -fsSL https://ollama.com/install.sh | sh
44
+
45
+ # Create a non-root user for n8n and other services if possible
46
+ RUN useradd -m -s /bin/bash n8nuser
47
+ RUN mkdir -p /home/n8nuser/.n8n /data/shared /home/n8nuser/.ollama /var/run/postgresql
48
+ RUN chown -R n8nuser:n8nuser /home/n8nuser /data/shared /qdrant /var/run/postgresql
49
+
50
+
51
+ # Setup environment variables
52
+ # IMPORTANT: NO end-of-line comments in this ENV block
53
+ ENV N8N_HOST="0.0.0.0"
54
+ ENV N8N_PORT="5678"
55
+ ENV NODE_ENV="production"
56
+ ENV DB_TYPE="postgresdb"
57
+ ENV DB_POSTGRESDB_HOST="localhost"
58
+ ENV DB_POSTGRESDB_PORT="5432"
59
+ ENV DB_POSTGRESDB_DATABASE="n8n"
60
+ ENV DB_POSTGRESDB_USER="n8n"
61
+ ENV OLLAMA_HOST="0.0.0.0:11434"
62
+ ENV N8N_SEC_EMBEDDER_HEADER_ALLOW_FROM_REGEX="^https?:\/\/([a-zA-Z0-9\-]+\.)*hf\.space$"
63
+ ENV N8N_SEC_ALLOW_ALL_ORIGINS_FOR_WEBHOOKS="true"
64
+ ENV N8N_RUNNERS_ENABLED="true"
65
+
66
+ # Copy startup script
67
+ COPY start.sh /start.sh
68
+ RUN chmod +x /start.sh
69
+
70
+ # Expose n8n port
71
+ EXPOSE 5678
72
+ EXPOSE 11434
73
+ EXPOSE 6333
74
+ EXPOSE 5432
75
+
76
+ RUN mkdir -p /data/.n8n /data/postgres /data/qdrant_storage /data/.ollama && chown -R n8nuser:n8nuser /data
77
+ USER n8nuser
78
+ ENTRYPOINT ["/start.sh"]