akra35567 commited on
Commit
9deabdc
Β·
verified Β·
1 Parent(s): 722f6da

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +61 -90
Dockerfile CHANGED
@@ -1,6 +1,6 @@
1
- # Dockerfile β€” AKIRA BOT RAILWAY (Atualizado Janeiro 2026)
2
- # βœ… Com suporte completo para ferramentas de pentesting REAIS
3
- # βœ… CorreΓ§Γ£o de DNS/IPv4 para erro web.whatsapp.com
4
 
5
  FROM node:20-alpine
6
 
@@ -10,21 +10,14 @@ FROM node:20-alpine
10
  ENV NODE_ENV=production \
11
  PORT=7860 \
12
  TOOLS_INSTALLED=true \
13
- # ESTA LINHA ABAIXO RESOLVE O ERRO ENOTFOUND E TIMEOUT 408:
14
  NODE_OPTIONS="--dns-result-order=ipv4first --no-warnings" \
15
  LANG=C.UTF-8
16
 
17
  # ═══════════════════════════════════════════════════════════════════
18
- # CONFIGURAÇÃO DE DNS PÚBLICO ANTES DE QUALQUER INSTALAÇÃO
19
- # ═══════════════════════════════════════════════════════════════════
20
- # Configura DNS pΓΊblico para resolver problemas no Hugging Face
21
- RUN echo "nameserver 8.8.8.8" > /etc/resolv.conf && \
22
- echo "nameserver 1.1.1.1" >> /etc/resolv.conf && \
23
- echo "nameserver 208.67.222.222" >> /etc/resolv.conf
24
-
25
- # ═══════════════════════════════════════════════════════════════════
26
- # INSTALAR DEPENDÊNCIAS DO SISTEMA + FERRAMENTAS DE PENTESTING
27
  # ═══════════════════════════════════════════════════════════════════
 
28
 
29
  RUN apk add --no-cache \
30
  git \
@@ -40,57 +33,35 @@ RUN apk add --no-cache \
40
  giflib-dev \
41
  ffmpeg \
42
  yt-dlp \
43
- nmap \
44
- hydra \
45
- nikto \
46
- perl \
47
  ca-certificates \
48
  openssl \
49
  openssl-dev \
50
  zlib-dev \
51
- bash \
52
- go \
53
- libpcap-dev \
54
- bind-tools \
55
- busybox-extras
56
 
57
  # ═══════════════════════════════════════════════════════════════════
58
- # VERIFICAÇÃO DE CONECTIVIDADE DE REDE
59
  # ═══════════════════════════════════════════════════════════════════
60
- RUN echo "πŸ” Testando conectividade de rede e DNS..." && \
61
- nslookup google.com && \
62
- nslookup web.whatsapp.com && \
63
- curl -s --connect-timeout 10 https://httpbin.org/get >/dev/null && echo "βœ… Rede OK"
64
 
65
  # ═══════════════════════════════════════════════════════════════════
66
- # INSTALAR FERRAMENTAS ADICIONAIS DO GITHUB
67
  # ═══════════════════════════════════════════════════════════════════
68
 
69
- # 1. SQLMAP
70
- RUN mkdir -p /opt && \
71
- cd /opt && \
72
- git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git && \
73
- chmod +x /opt/sqlmap/sqlmap.py && \
74
- ln -s /opt/sqlmap/sqlmap.py /usr/local/bin/sqlmap
75
-
76
- # 2. NUCLEI (com Go) - versΓ£o especΓ­fica para evitar bugs
77
- RUN go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest && \
78
- ln -s /root/go/bin/nuclei /usr/local/bin/nuclei || true
79
 
80
- # 3. MASSCAN (CompilaΓ§Γ£o real)
81
- RUN cd /tmp && \
82
- git clone https://github.com/robertdavidgraham/masscan.git && \
83
- cd masscan && \
84
- make -j4 && \
85
- cp bin/masscan /usr/local/bin/masscan && \
86
- cd /tmp && rm -rf masscan
87
-
88
- # 4. Ferramentas Python de pentesting
89
  RUN pip3 install --no-cache-dir \
90
  requests \
91
- beautifulsoup4 \
92
- scapy \
93
- paramiko
94
 
95
  # ═══════════════════════════════════════════════════════════════════
96
  # CONFIGURAÇÃO DO DIRETΓ“RIO DE TRABALHO
@@ -98,70 +69,70 @@ RUN pip3 install --no-cache-dir \
98
 
99
  WORKDIR /app
100
 
101
- # Criar diretΓ³rios necessΓ‘rios ANTES de copiar arquivos para garantir permissΓ΅es
102
- RUN mkdir -p /app/auth_info_baileys /app/temp /app/database/data /app/database/datauser /app/database/subscriptions /app/logs /tmp/pentest_results
 
 
 
 
103
 
104
  # Copiar package.json primeiro para otimizar o cache de camadas do Docker
105
  COPY package*.json ./
106
 
107
- # InstalaΓ§Γ£o das dependΓͺncias Node.js com fallback para resoluΓ§Γ£o de DNS
108
- RUN npm config set fetch-retry-mintimeout 20000 && \
109
- npm config set fetch-retry-maxtimeout 120000 && \
110
- npm install --omit=dev --no-audit --progress=false --fetch-retries=5
 
 
 
 
111
 
112
- # Copiar o restante do cΓ³digo da aplicaΓ§Γ£o
113
  COPY . .
114
 
115
  # ═══════════════════════════════════════════════════════════════════
116
- # SCRIPTS E ESTRUTURA
117
  # ═══════════════════════════════════════════════════════════════════
118
 
119
- # Ajuste de pastas caso existam (Classes para Modules)
120
- RUN if [ -d ./classes ]; then mv ./classes ./modules; echo "βœ… MΓ³dulos configurados"; fi
121
-
122
- # Copiar e dar permissΓ£o aos scripts auxiliares (se existirem na raiz)
123
- RUN [ -f install-tools.sh ] && cp install-tools.sh /tmp/ || echo "script skip"
124
- RUN [ -f verify-tools.sh ] && cp verify-tools.sh /tmp/ || echo "script skip"
125
- RUN chmod +x /tmp/*.sh 2>/dev/null || true
126
 
127
  # ═══════════════════════════════════════════════════════════════════
128
- # USUÁRIO E SEGURANΓ‡A
129
  # ═══════════════════════════════════════════════════════════════════
130
 
131
- # Criar usuΓ‘rio nΓ£o-root 'app'
132
- RUN addgroup -g 1001 -S app && \
133
- adduser -S -D -H -u 1001 -h /app -s /sbin/nologin -G app -g app app
134
 
135
- # AJUSTE CRÍTICO DE PERMISSΓ•ES:
136
- # Precisamos que o usuΓ‘rio 'app' tenha controle total sobre as pastas de dados
137
- RUN chown -R app:app /app && \
138
- chmod -R 777 /app/auth_info_baileys /app/temp /app/database /app/logs /tmp/pentest_results
139
 
140
  # ═══════════════════════════════════════════════════════════════════
141
- # VERIFICAÇÃO FINAL E LIMPEZA
142
  # ════════════════════════════════════════════════════���══════════════
143
 
144
- RUN echo "πŸ” Verificando ferramentas..." && \
145
- node -v && npm -v && \
 
146
  python3 --version && \
147
  ffmpeg -version | head -1 && \
148
- nmap --version | head -1 && \
149
- sqlmap --version | head -1 && \
150
- echo "βœ… Dockerfile construΓ­do com sucesso."
151
 
152
  # Limpar cache para reduzir tamanho da imagem
153
- RUN npm cache clean --force && \
154
- rm -rf /root/.npm /root/.cache /tmp/* /var/cache/apk/*
155
-
156
- # Mudar para usuΓ‘rio nΓ£o-root
157
- USER app
158
 
159
- # Porta do Railway/HuggingFace
160
  EXPOSE 7860
161
 
162
- # Healthcheck otimizado para Hugging Face
163
- HEALTHCHECK --interval=45s --timeout=15s --start-period=90s --retries=3 \
164
- CMD curl -f http://localhost:7860/health || exit 1
165
 
166
- # Comando de inicializaΓ§Γ£o com verificaΓ§Γ£o de DNS
167
- CMD ["node", "index.js"]
 
1
+ # Dockerfile β€” AKIRA BOT HUGGING FACE SPACES (Atualizado Janeiro 2026)
2
+ # βœ… Otimizado para ambiente de containers restritos (sistema de arquivos somente leitura)
3
+ # βœ… CorreΓ§Γ£o de DNS/IPv4 para erro web.whatsapp.com no Hugging Face
4
 
5
  FROM node:20-alpine
6
 
 
10
  ENV NODE_ENV=production \
11
  PORT=7860 \
12
  TOOLS_INSTALLED=true \
13
+ # SOLUÇÃO PARA ERRO DNS NO HUGGING FACE:
14
  NODE_OPTIONS="--dns-result-order=ipv4first --no-warnings" \
15
  LANG=C.UTF-8
16
 
17
  # ═══════════════════════════════════════════════════════════════════
18
+ # INSTALAR DEPENDÊNCIAS DO SISTEMA ESSENCIAIS
 
 
 
 
 
 
 
 
19
  # ═══════════════════════════════════════════════════════════════════
20
+ # Removidas ferramentas pesadas de pentesting para reduzir tamanho e evitar problemas
21
 
22
  RUN apk add --no-cache \
23
  git \
 
33
  giflib-dev \
34
  ffmpeg \
35
  yt-dlp \
 
 
 
 
36
  ca-certificates \
37
  openssl \
38
  openssl-dev \
39
  zlib-dev \
40
+ bash
 
 
 
 
41
 
42
  # ═══════════════════════════════════════════════════════════════════
43
+ # VERIFICAÇÃO DE CONECTIVIDADE DE REDE (SEM MODIFICAR /etc/resolv.conf)
44
  # ═══════════════════════════════════════════════════════════════════
45
+ RUN echo "πŸ” Verificando conectividade de rede..." && \
46
+ echo "ℹ️ Sistema de arquivos do Hugging Face Γ© somente leitura" && \
47
+ echo "ℹ️ NΓ£o Γ© possΓ­vel modificar /etc/resolv.conf" && \
48
+ curl -s --connect-timeout 10 https://httpbin.org/get >/dev/null && echo "βœ… Rede OK" || echo "⚠️ Rede pode ter restriΓ§Γ΅es"
49
 
50
  # ═══════════════════════════════════════════════════════════════════
51
+ # INSTALAR FERRAMENTAS BÁSICAS DO GITHUB (LEVES)
52
  # ═══════════════════════════════════════════════════════════════════
53
 
54
+ # 1. SQLMAP (opcional - comentado para reduzir tamanho)
55
+ # RUN mkdir -p /opt && \
56
+ # cd /opt && \
57
+ # git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git && \
58
+ # chmod +x /opt/sqlmap/sqlmap.py && \
59
+ # ln -s /opt/sqlmap/sqlmap.py /usr/local/bin/sqlmap
 
 
 
 
60
 
61
+ # 2. Ferramentas Python leves
 
 
 
 
 
 
 
 
62
  RUN pip3 install --no-cache-dir \
63
  requests \
64
+ beautifulsoup4
 
 
65
 
66
  # ═══════════════════════════════════════════════════════════════════
67
  # CONFIGURAÇÃO DO DIRETΓ“RIO DE TRABALHO
 
69
 
70
  WORKDIR /app
71
 
72
+ # Criar diretΓ³rios necessΓ‘rios - ESSENCIAIS APENAS
73
+ RUN mkdir -p /app/auth_info_baileys /app/temp /app/database /app/logs
74
+
75
+ # ═══════════════════════════════════════════════════════════════════
76
+ # INSTALAÇÃO DE DEPENDÊNCIAS NODE.JS (OTIMIZADA)
77
+ # ═══════════════════════════════════════════════════════════════════
78
 
79
  # Copiar package.json primeiro para otimizar o cache de camadas do Docker
80
  COPY package*.json ./
81
 
82
+ # InstalaΓ§Γ£o otimizada para Hugging Face
83
+ RUN npm config set fetch-retry-mintimeout 30000 && \
84
+ npm config set fetch-retry-maxtimeout 180000 && \
85
+ npm install --omit=dev --no-audit --progress=false --fetch-retries=3 --legacy-peer-deps
86
+
87
+ # ═══════════════════════════════════════════════════════════════════
88
+ # COPIAR CΓ“DIGO DA APLICAÇÃO
89
+ # ═══════════════════════════════════════════════════════════════════
90
 
 
91
  COPY . .
92
 
93
  # ═══════════════════════════════════════════════════════════════════
94
+ # AJUSTES DE ESTRUTURA (SE NECESSÁRIO)
95
  # ═══════════════════════════════════════════════════════════════════
96
 
97
+ # Verificar se modules existe, caso contrΓ‘rio criar estrutura bΓ‘sica
98
+ RUN if [ ! -d "./modules" ]; then \
99
+ echo "⚠️ Pasta modules não encontrada, criando estrutura bÑsica..." && \
100
+ mkdir -p modules; \
101
+ else \
102
+ echo "βœ… Estrutura de mΓ³dulos encontrada"; \
103
+ fi
104
 
105
  # ═══════════════════════════════════════════════════════════════════
106
+ # CONFIGURAÇÃO DE PERMISSΓ•ES (ADAPTADA PARA HUGGING FACE)
107
  # ═══════════════════════════════════════════════════════════════════
108
 
109
+ # Criar usuΓ‘rio nΓ£o-root 'node' (jΓ‘ existe no container Node.js)
110
+ USER node
 
111
 
112
+ # Ajustar permissΓ΅es dos diretΓ³rios de dados
113
+ RUN mkdir -p /app/auth_info_baileys /app/temp /app/database /app/logs && \
114
+ chmod -R 755 /app/auth_info_baileys /app/temp /app/database /app/logs
 
115
 
116
  # ═══════════════════════════════════════════════════════════════════
117
+ # VERIFICAÇÃO FINAL
118
  # ════════════════════════════════════════════════════���══════════════
119
 
120
+ RUN echo "πŸ” Verificando instalaΓ§Γ£o..." && \
121
+ node -v && \
122
+ npm -v && \
123
  python3 --version && \
124
  ffmpeg -version | head -1 && \
125
+ echo "βœ… Dockerfile construΓ­do com sucesso para Hugging Face Spaces"
 
 
126
 
127
  # Limpar cache para reduzir tamanho da imagem
128
+ RUN npm cache clean --force
 
 
 
 
129
 
130
+ # Porta padrΓ£o do Hugging Face
131
  EXPOSE 7860
132
 
133
+ # Healthcheck adaptado para Hugging Face
134
+ HEALTHCHECK --interval=60s --timeout=20s --start-period=120s --retries=3 \
135
+ CMD curl -f http://localhost:7860/health 2>/dev/null || wget -q --spider http://localhost:7860/health || exit 1
136
 
137
+ # Comando de inicializaΓ§Γ£o com variΓ‘veis de ambiente para DNS
138
+ CMD ["sh", "-c", "node --dns-result-order=ipv4first index.js"]