Our Personal Data Server from scratch!
0

Configure Feed

Select the types of activity you want to include in your feed.

tranquil-pds / Dockerfile
2.4 kB 56 lines
1FROM node:24-alpine AS frontend 2RUN corepack enable && corepack prepare pnpm@latest --activate 3WORKDIR /app 4COPY frontend/package.json frontend/pnpm-lock.yaml frontend/pnpm-workspace.yaml ./ 5RUN pnpm install --frozen-lockfile 6COPY frontend/ ./ 7RUN pnpm build 8 9FROM rust:1.96-alpine AS builder 10RUN apk add --no-cache ca-certificates musl-dev pkgconfig openssl-dev openssl-libs-static mold clang protoc 11ENV RUSTFLAGS="-C linker=clang -C link-arg=-fuse-ld=mold" 12WORKDIR /app 13ARG SLIM="false" 14COPY Cargo.toml Cargo.lock ./ 15COPY .sqlx ./.sqlx 16COPY crates/tranquil-types ./crates/tranquil-types 17COPY crates/tranquil-crypto ./crates/tranquil-crypto 18COPY crates/tranquil-scopes ./crates/tranquil-scopes 19COPY crates/tranquil-config ./crates/tranquil-config 20COPY crates/tranquil-repo ./crates/tranquil-repo 21COPY crates/tranquil-lexicon ./crates/tranquil-lexicon 22COPY crates/tranquil-oauth ./crates/tranquil-oauth 23COPY crates/tranquil-db-traits ./crates/tranquil-db-traits 24COPY crates/tranquil-infra ./crates/tranquil-infra 25COPY crates/tranquil-auth ./crates/tranquil-auth 26COPY crates/tranquil-comms ./crates/tranquil-comms 27COPY crates/tranquil-db ./crates/tranquil-db 28COPY crates/tranquil-ripple ./crates/tranquil-ripple 29COPY crates/tranquil-storage ./crates/tranquil-storage 30COPY crates/tranquil-cache ./crates/tranquil-cache 31COPY crates/tranquil-pds ./crates/tranquil-pds 32COPY crates/tranquil-sync ./crates/tranquil-sync 33COPY crates/tranquil-api ./crates/tranquil-api 34COPY crates/tranquil-oauth-server ./crates/tranquil-oauth-server 35COPY crates/tranquil-store ./crates/tranquil-store 36COPY crates/tranquil-signal ./crates/tranquil-signal 37COPY crates/tranquil-server ./crates/tranquil-server 38COPY migrations ./migrations 39RUN --mount=type=cache,target=/usr/local/cargo/registry \ 40 --mount=type=cache,target=/app/target \ 41 if [ "$SLIM" = "true" ]; then \ 42 SQLX_OFFLINE=true cargo build --release -p tranquil-server --no-default-features; \ 43 else \ 44 SQLX_OFFLINE=true cargo build --release -p tranquil-server; \ 45 fi && \ 46 cp target/release/tranquil-server /tmp/tranquil-pds 47 48FROM alpine:3.23 49RUN apk add --no-cache ca-certificates 50COPY --from=builder /tmp/tranquil-pds /usr/local/bin/tranquil-pds 51COPY --from=frontend /app/dist /var/lib/tranquil-pds/frontend 52WORKDIR /app 53ENV SERVER_HOST=[::] 54ENV SERVER_PORT=3000 55EXPOSE 3000 56CMD ["tranquil-pds"]