Add Railway deploy files for web.yaak.app and the send proxy

This commit is contained in:
Gregory Schier
2026-08-18 08:31:22 -07:00
parent 69083918f9
commit 79ef8f1ef5
4 changed files with 57 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
node_modules
**/node_modules
dist
**/dist
target
**/target
.claude
vendored
**/vendored
*.log
.git
+18
View File
@@ -0,0 +1,18 @@
# syntax=docker/dockerfile:1
# The stateless send proxy for web.yaak.app. Builds only crates-server/yaak-send-proxy
# (over yaak-http), so no plugins/Node. Binds a fixed 8080; Railway routes to it.
FROM rust:1-bookworm AS build
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
pkg-config libssl-dev protobuf-compiler && rm -rf /var/lib/apt/lists/*
COPY . .
RUN cargo build --release -p yaak-send-proxy
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates libssl3 && rm -rf /var/lib/apt/lists/*
COPY --from=build /app/target/release/yaak-send-proxy /usr/local/bin/yaak-send-proxy
ENV YAAK_PROXY_BIND=0.0.0.0:8080
EXPOSE 8080
CMD ["yaak-send-proxy"]
+20
View File
@@ -0,0 +1,20 @@
# syntax=docker/dockerfile:1
# web.yaak.app — the browser Yaak client, built static and served by Caddy.
FROM node:22-slim AS build
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends git python3 make g++ ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY . .
RUN git init -q && git add -A \
&& git -c user.email=build@yaak.app -c user.name=build commit -qm build
# Build-time: which send proxy the tab talks to (baked into the bundle by Vite).
ARG VITE_YAAK_SEND_PROXY_URL
ENV VITE_YAAK_SEND_PROXY_URL=$VITE_YAAK_SEND_PROXY_URL
ENV YAAK_TARGET=web
ENV SKIP_WASM_BUILD=1
RUN npm ci
RUN node_modules/.bin/vp -C apps/yaak-client build
FROM caddy:2-alpine
COPY deploy/web/Caddyfile /etc/caddy/Caddyfile
COPY --from=build /app/dist/apps/yaak-client /srv
+8
View File
@@ -0,0 +1,8 @@
:{$PORT}
root * /srv
encode gzip zstd
try_files {path} /index.html
file_server
@assets path /assets/*
header @assets Cache-Control "public, max-age=31536000, immutable"
header /index.html Cache-Control "no-cache"