diff --git a/Caddyfile b/Caddyfile index 369056b..79fe27b 100644 --- a/Caddyfile +++ b/Caddyfile @@ -1,51 +1,50 @@ -http://ask.xn--2dk.xyz { - handle / { +:8080 { + # Route based on Host header (set by haloy) + @ask { + host ask.xn--2dk.xyz + } + @db { + host db.xn--2dk.xyz + } + + handle @ask { reverse_proxy localhost:7682 { flush_interval -1 } } -} -https://ask.xn--2dk.xyz { - tls admin@xn--2dk.xyz - handle / { - reverse_proxy localhost:7682 { - flush_interval -1 - } - } -} - -https://db.xn--2dk.xyz { - handle /health { - respond 200 - } - - handle /login { - reverse_proxy 127.0.0.1:8081 - } - - handle /query { - reverse_proxy 127.0.0.1:8081 - } - - @websocket { - header Connection *Upgrade* - header Upgrade websocket - } - - handle @websocket { - reverse_proxy localhost:7681 { - flush_interval -1 - } - } - - handle { - forward_auth 127.0.0.1:8081 { - uri /auth - copy_headers Cookie - } - reverse_proxy localhost:7681 { - flush_interval -1 + handle @db { + handle /health { + respond 200 + } + + handle /login { + reverse_proxy 127.0.0.1:8081 + } + + handle /query { + reverse_proxy 127.0.0.1:8081 + } + + @websocket { + header Connection *Upgrade* + header Upgrade websocket + } + + handle @websocket { + reverse_proxy localhost:7681 { + flush_interval -1 + } + } + + handle { + forward_auth 127.0.0.1:8081 { + uri /auth + copy_headers Cookie + } + reverse_proxy localhost:7681 { + flush_interval -1 + } } } } diff --git a/Dockerfile b/Dockerfile index 64fa2a7..1c49a55 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM debian:12-slim RUN apt-get update -qq && \ apt-get install -y --no-install-recommends \ curl ca-certificates unzip bsdmainutils python3 \ - less ncurses-bin && \ + less ncurses-bin build-essential pkg-config libssl-dev && \ curl -fsSL \ "https://github.com/caddyserver/caddy/releases/download/v2.9.1/caddy_2.9.1_linux_amd64.tar.gz" \ | tar -xz -C /usr/local/bin caddy && \ @@ -14,19 +14,25 @@ RUN apt-get update -qq && \ unzip /tmp/duckdb.zip -d /usr/local/bin && \ chmod +x /usr/local/bin/duckdb && \ rm /tmp/duckdb.zip && \ - apt-get clean && rm -rf /var/lib/apt/lists/* && \ duckdb :memory: "INSTALL httpfs;" && \ curl -fsSL "https://github.com/tsl0922/ttyd/releases/latest/download/ttyd.x86_64" \ -o /usr/local/bin/ttyd && \ chmod +x /usr/local/bin/ttyd -ENV LANG=C.UTF-8 \ +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \ + apt-get clean && rm -rf /var/lib/apt/lists/* + +ENV PATH="/root/.cargo/bin:${PATH}" \ + LANG=C.UTF-8 \ LC_ALL=C.UTF-8 WORKDIR /app COPY basedosdados.duckdb Caddyfile start.sh auth.py ./ -COPY ask/target/release/ask /app/ask +COPY ask/ ./ask/ +RUN cd ask && ~/.cargo/bin/cargo build --release && \ + mv target/release/ask /app/ask && \ + rm -rf target RUN chmod +x start.sh /app/ask EXPOSE 8080