hospedagemAAA / Dockerfile
CoelinhaJob's picture
Update Dockerfile
799ef0b verified
# USAMOS O CADDY COMO BASE (Servidor Web Moderno)
FROM caddy:2.7.6-alpine
# INSTALAMOS O FILEBROWSER (Gerenciador de Arquivos)
RUN apk add --no-cache curl bash
RUN curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
# CONFIGURAÇÃO DE AMBIENTE
ENV FB_DATABASE=/data/filebrowser.db
ENV FB_ROOT=/srv/site
ENV FB_PORT=8080
ENV FB_ADDRESS=127.0.0.1
# CRIA AS PASTAS NECESSÁRIAS
RUN mkdir -p /srv/site /data /etc/caddy
# CRIA UM SITE DE EXEMPLO
RUN echo '<h1 style="font-family:sans-serif;text-align:center;margin-top:20%;">Seu site está pronto!</h1><p style="text-align:center;">Acesse <b>/admin</b> para fazer upload dos seus arquivos.</p>' > /srv/site/index.html
# CONFIGURA O CADDY (A MÁGICA ACONTECE AQUI)
# Ele diz: "Escute na porta 7860. Se acessarem /admin, mostre o gerenciador. Se acessarem a raiz, mostre o site."
RUN echo $':7860 {\n\
# Onde ficam os arquivos do seu site\n\
root * /srv/site\n\
\n\
# Habilita o servidor de arquivos estáticos (HTML, CSS, JS)\n\
file_server\n\
\n\
# Rota para o Painel Administrativo (FileBrowser)\n\
handle_path /admin* {\n\
reverse_proxy 127.0.0.1:8080\n\
}\n\
}' > /etc/caddy/Caddyfile
# SCRIPT DE INICIALIZAÇÃO (Inicia o Painel e o Site juntos)
RUN echo $'#!/bin/bash\n\
# Configura o usuário do painel na primeira vez\n\
if [ ! -f /data/filebrowser.db ]; then\n\
filebrowser config init --database=/data/filebrowser.db\n\
filebrowser config set --address 127.0.0.1 --port 8080 --database=/data/filebrowser.db\n\
# SENHA DO PAINEL: admin / admin123\n\
filebrowser users add admin admin123 --perm.admin --database=/data/filebrowser.db\n\
fi\n\
\n\
# Inicia o FileBrowser no fundo (Backstage)\n\
filebrowser --database=/data/filebrowser.db --root=/srv/site &\n\
\n\
# Inicia o Caddy na frente (Palco)\n\
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile' > /start.sh && chmod +x /start.sh
# PERMISSÕES
RUN chmod -R 777 /srv /data
# PORTA DO HUGGING FACE
EXPOSE 7860
# INICIAR
CMD ["/start.sh"]