slack status without the slack
status.zzstoatzz.io/
quickslice
1# Build stage
2FROM rustlang/rust:nightly-slim AS builder
3
4# Install build dependencies
5RUN apt-get update && apt-get install -y \
6 pkg-config \
7 libssl-dev \
8 && rm -rf /var/lib/apt/lists/*
9
10WORKDIR /app
11
12# Copy manifests
13COPY Cargo.toml Cargo.lock ./
14
15# Copy source code
16COPY src ./src
17COPY templates ./templates
18COPY lexicons ./lexicons
19COPY static ./static
20
21# Build for release
22RUN cargo build --release
23
24# Runtime stage
25FROM debian:bookworm-slim
26
27# Install runtime dependencies
28RUN apt-get update && apt-get install -y \
29 ca-certificates \
30 libssl3 \
31 && rm -rf /var/lib/apt/lists/*
32
33WORKDIR /app
34
35# Copy the built binary
36COPY --from=builder /app/target/release/nate-status /app/nate-status
37
38# Copy templates and lexicons
39COPY templates ./templates
40COPY lexicons ./lexicons
41# Copy static files
42COPY static ./static
43
44# Create directory for SQLite database
45RUN mkdir -p /data
46
47# Set environment variables
48ENV DB_PATH=/data/status.db
49ENV ENABLE_FIREHOSE=true
50
51# Expose port
52EXPOSE 8080
53
54# Run the binary
55CMD ["./nate-status"]