A simple tool which lets you scrape twitter accounts and crosspost them to bluesky accounts! Comes with a CLI and a webapp for managing profiles! Works with images/videos/link embeds/threads.

feat: update Dockerfile again

Index a5a90319 f331ac00

+9 -8
+9 -8
Dockerfile
··· 1 - # Use the full Node 22 image for the builder stage 2 - # Standard images include build-essential, python, etc., by default 1 + # Use the full Node 22 image (essential for Hetzner VPS builds) 3 2 FROM node:22 AS builder 4 3 5 4 WORKDIR /app 6 5 7 - # Step 1: Install dependencies 6 + # Step 1: Install dependencies first (better for caching) 8 7 COPY package*.json ./ 9 8 10 - # The --legacy-peer-deps flag helps if there are version conflicts 9 + # --legacy-peer-deps helps if there are dependency version conflicts 11 10 RUN npm install --legacy-peer-deps 12 11 13 - # Step 2: Build the project 12 + # Step 2: Copy source and build 14 13 COPY . . 15 14 RUN npm run build 16 15 17 - # --- Production Image --- 16 + # --- Production Stage --- 18 17 FROM node:22-slim 19 18 20 - # Install only the bare essentials for the runtime 19 + # Install runtime dependencies for SQLite and Chromium 21 20 RUN apt-get update && apt-get install -y \ 22 21 chromium \ 22 + libsqlite3-dev \ 23 23 && rm -rf /var/lib/apt/lists/* 24 24 25 25 WORKDIR /app 26 26 27 - # Copy built files from builder 27 + # Copy built files from the builder stage 28 28 COPY --from=builder /app/dist ./dist 29 29 COPY --from=builder /app/node_modules ./node_modules 30 30 COPY --from=builder /app/package.json ./package.json 31 31 COPY --from=builder /app/public ./public 32 32 33 + # Create persistent data directory 33 34 RUN mkdir -p /app/data 34 35 35 36 ENV NODE_ENV=production