# Hugging Face Space (sdk: docker) build for the WEED-SIM Telegram Mini App. # Stage 1 builds the Vite client; stage 2 runs the Hono server on Node 22. FROM node:22-slim AS build WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY vite.config.ts ./ COPY tools ./tools COPY src ./src COPY public ./public RUN npm run build FROM node:22-slim # node:22-slim already ships a 'node' user at uid 1000 (the uid HF Spaces # expects); reuse it, and keep the app under /home/user/app so the Space's # bucket mount path stays valid. RUN mkdir -p /home/user/app && chown -R node:node /home/user USER node WORKDIR /home/user/app ENV NODE_ENV=production \ PORT=7860 \ WEEDSIM_DATA_DIR=/home/user/app/data COPY --chown=node package.json package-lock.json ./ RUN npm ci --omit=dev COPY --chown=node src/server ./src/server COPY --chown=node src/shared ./src/shared COPY --chown=node --from=build /app/dist/client ./dist/client EXPOSE 7860 CMD ["npx", "tsx", "src/server/index.ts"]