void0028 commited on
Commit
23ad906
·
verified ·
1 Parent(s): cbfd821

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +35 -44
Dockerfile CHANGED
@@ -1,19 +1,19 @@
1
  # ---------------------------------------------------------------------------
2
- # "THE GOD MONOLITH" - All-In-One P2P Streaming Engine
3
  # ---------------------------------------------------------------------------
4
  FROM python:3.11-bookworm
5
 
 
 
 
 
6
  # Switch to root to install everything
7
  USER root
8
 
9
- # 1. Install System Dependencies (Kitchen Sink Edition)
10
- # - nginx: The Traffic Cop (Reverse Proxy)
11
- # - build-essential: To compile AIOStreams/Python deps
12
- # - supervisor: To run 4 apps at once
13
- # - chromium/driver: For FlareSolverr
14
- # - libicu/ssl: For Prowlarr
15
  RUN apt-get update && apt-get install -y \
16
- nginx \
17
  build-essential \
18
  python3-dev \
19
  chromium \
@@ -29,41 +29,41 @@ RUN apt-get update && apt-get install -y \
29
  xvfb \
30
  && rm -rf /var/lib/apt/lists/*
31
 
32
- # 2. Configure Environment
33
  ENV CHROME_BIN=/usr/bin/chromium
34
  ENV CHROMIUM_DRIVER=/usr/bin/chromedriver
35
  ENV FLARESOLVERR_BROWSER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu"
36
  ENV PUID=1000
37
  ENV PGID=1000
38
 
39
- # ---------------------------------------------------------------------------
40
- # APP 1: FLARESOLVERR (Anti-Cloudflare)
41
- # ---------------------------------------------------------------------------
42
  WORKDIR /app
43
  RUN git clone https://github.com/FlareSolverr/FlareSolverr.git flaresolverr \
44
  && cd flaresolverr \
45
  && pip install --no-cache-dir -r requirements.txt
46
 
47
- # ---------------------------------------------------------------------------
48
- # APP 2: AIOSTREAMS (The Bridge)
49
- # ---------------------------------------------------------------------------
50
  WORKDIR /app
51
  RUN git clone https://github.com/Viren070/AIOStreams.git aiostreams \
52
  && cd aiostreams \
53
  && pip install --no-cache-dir -r requirements.txt
54
 
55
- # ---------------------------------------------------------------------------
56
- # APP 3: PROWLARR (The Brain)
57
- # ---------------------------------------------------------------------------
58
  WORKDIR /app
59
  RUN curl -L -o Prowlarr.tar.gz 'https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' \
60
  && tar -xvzf Prowlarr.tar.gz \
61
  && rm Prowlarr.tar.gz
62
 
63
- # ---------------------------------------------------------------------------
64
- # APP 4: NGINX (The Traffic Cop)
65
- # ---------------------------------------------------------------------------
66
- # We configure Nginx to route / to AIOStreams and /prowlarr to Prowlarr
 
 
 
 
 
 
67
  RUN echo 'worker_processes 1;' > /etc/nginx/nginx.conf && \
68
  echo 'events { worker_connections 1024; }' >> /etc/nginx/nginx.conf && \
69
  echo 'http {' >> /etc/nginx/nginx.conf && \
@@ -92,27 +92,10 @@ RUN echo 'worker_processes 1;' > /etc/nginx/nginx.conf && \
92
  echo ' }' >> /etc/nginx/nginx.conf && \
93
  echo '}' >> /etc/nginx/nginx.conf
94
 
95
- # ---------------------------------------------------------------------------
96
- # PERMISSIONS & DIRECTORIES
97
- # ---------------------------------------------------------------------------
98
- RUN useradd -m -u 1000 user \
99
- && mkdir -p /data/prowlarr \
100
- && mkdir -p /var/log/supervisor \
101
- && mkdir -p /var/lib/nginx/body \
102
- && mkdir -p /var/lib/nginx/fastcgi \
103
- && chown -R user:user /app \
104
- && chown -R user:user /data \
105
- && chown -R user:user /var/log/supervisor \
106
- && chown -R user:user /var/lib/nginx \
107
- && chown -R user:user /var/log/nginx \
108
- && chown -R user:user /etc/nginx/nginx.conf
109
-
110
- # ---------------------------------------------------------------------------
111
- # SUPERVISOR CONFIG (The Boss)
112
- # ---------------------------------------------------------------------------
113
  RUN echo '[supervisord]' > /etc/supervisor/conf.d/supervisord.conf && \
114
  echo 'nodaemon=true' >> /etc/supervisor/conf.d/supervisord.conf && \
115
- echo 'user=user' >> /etc/supervisor/conf.d/supervisord.conf && \
116
  echo 'logfile=/var/log/supervisor/supervisord.log' >> /etc/supervisor/conf.d/supervisord.conf && \
117
  echo 'pidfile=/var/run/supervisord.pid' >> /etc/supervisor/conf.d/supervisord.conf && \
118
  echo '' >> /etc/supervisor/conf.d/supervisord.conf && \
@@ -135,9 +118,17 @@ RUN echo '[supervisord]' > /etc/supervisor/conf.d/supervisord.conf && \
135
  echo 'command=/app/Prowlarr/Prowlarr -nobrowser -data=/data/prowlarr /urlBase=/prowlarr' >> /etc/supervisor/conf.d/supervisord.conf && \
136
  echo 'directory=/app/Prowlarr' >> /etc/supervisor/conf.d/supervisord.conf
137
 
138
- # ---------------------------------------------------------------------------
139
- # LAUNCH
140
- # ---------------------------------------------------------------------------
 
 
 
 
 
 
 
 
141
  USER user
142
  EXPOSE 7860
143
  CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]
 
1
  # ---------------------------------------------------------------------------
2
+ # "THE GOD MONOLITH" - V2 (Fixed & Unlocked)
3
  # ---------------------------------------------------------------------------
4
  FROM python:3.11-bookworm
5
 
6
+ # 1. UNLOCK PIP (Critical for Debian 12)
7
+ # This prevents the "Externally Managed Environment" error
8
+ ENV PIP_BREAK_SYSTEM_PACKAGES=1
9
+
10
  # Switch to root to install everything
11
  USER root
12
 
13
+ # 2. Install System Dependencies
14
+ # Added 'nginx-full' to ensure all directories are created
 
 
 
 
15
  RUN apt-get update && apt-get install -y \
16
+ nginx-full \
17
  build-essential \
18
  python3-dev \
19
  chromium \
 
29
  xvfb \
30
  && rm -rf /var/lib/apt/lists/*
31
 
32
+ # 3. Configure Environment
33
  ENV CHROME_BIN=/usr/bin/chromium
34
  ENV CHROMIUM_DRIVER=/usr/bin/chromedriver
35
  ENV FLARESOLVERR_BROWSER_ARGS="--no-sandbox --disable-setuid-sandbox --disable-dev-shm-usage --disable-gpu"
36
  ENV PUID=1000
37
  ENV PGID=1000
38
 
39
+ # 4. Install FLARESOLVERR
 
 
40
  WORKDIR /app
41
  RUN git clone https://github.com/FlareSolverr/FlareSolverr.git flaresolverr \
42
  && cd flaresolverr \
43
  && pip install --no-cache-dir -r requirements.txt
44
 
45
+ # 5. Install AIOSTREAMS
 
 
46
  WORKDIR /app
47
  RUN git clone https://github.com/Viren070/AIOStreams.git aiostreams \
48
  && cd aiostreams \
49
  && pip install --no-cache-dir -r requirements.txt
50
 
51
+ # 6. Install PROWLARR
 
 
52
  WORKDIR /app
53
  RUN curl -L -o Prowlarr.tar.gz 'https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=x64' \
54
  && tar -xvzf Prowlarr.tar.gz \
55
  && rm Prowlarr.tar.gz
56
 
57
+ # 7. MANUALLY CREATE ALL CONFIG DIRECTORIES (The Fix)
58
+ RUN mkdir -p /etc/supervisor/conf.d \
59
+ && mkdir -p /var/log/supervisor \
60
+ && mkdir -p /var/lib/nginx/body \
61
+ && mkdir -p /var/lib/nginx/fastcgi \
62
+ && mkdir -p /data/prowlarr
63
+
64
+ # 8. CONFIGURE NGINX (Traffic Cop)
65
+ # Routes / -> AIOStreams (3000)
66
+ # Routes /prowlarr -> Prowlarr (9696)
67
  RUN echo 'worker_processes 1;' > /etc/nginx/nginx.conf && \
68
  echo 'events { worker_connections 1024; }' >> /etc/nginx/nginx.conf && \
69
  echo 'http {' >> /etc/nginx/nginx.conf && \
 
92
  echo ' }' >> /etc/nginx/nginx.conf && \
93
  echo '}' >> /etc/nginx/nginx.conf
94
 
95
+ # 9. CONFIGURE SUPERVISOR (The Boss)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  RUN echo '[supervisord]' > /etc/supervisor/conf.d/supervisord.conf && \
97
  echo 'nodaemon=true' >> /etc/supervisor/conf.d/supervisord.conf && \
98
+ echo 'user=root' >> /etc/supervisor/conf.d/supervisord.conf && \
99
  echo 'logfile=/var/log/supervisor/supervisord.log' >> /etc/supervisor/conf.d/supervisord.conf && \
100
  echo 'pidfile=/var/run/supervisord.pid' >> /etc/supervisor/conf.d/supervisord.conf && \
101
  echo '' >> /etc/supervisor/conf.d/supervisord.conf && \
 
118
  echo 'command=/app/Prowlarr/Prowlarr -nobrowser -data=/data/prowlarr /urlBase=/prowlarr' >> /etc/supervisor/conf.d/supervisord.conf && \
119
  echo 'directory=/app/Prowlarr' >> /etc/supervisor/conf.d/supervisord.conf
120
 
121
+ # 10. SETUP PERMISSIONS (Critical)
122
+ RUN useradd -m -u 1000 user \
123
+ && chown -R user:user /app \
124
+ && chown -R user:user /data \
125
+ && chown -R user:user /var/log/supervisor \
126
+ && chown -R user:user /var/lib/nginx \
127
+ && chown -R user:user /var/log/nginx \
128
+ && chown -R user:user /etc/nginx/nginx.conf \
129
+ && chown -R user:user /etc/supervisor/conf.d
130
+
131
+ # 11. LAUNCH
132
  USER user
133
  EXPOSE 7860
134
  CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"]