unoffical wafrn mirror
wafrn.net
atproto
social-network
activitypub
1# Build stage
2FROM node:24-alpine AS builder
3
4RUN apk add --no-cache perl curl tini bash git
5
6WORKDIR /app/packages/frontend
7
8COPY package.json /app
9COPY package-lock.json /app
10
11COPY packages/frontend/package.json .
12
13COPY .git .
14
15# install dependencies
16RUN npm install
17
18COPY packages/frontend .
19
20# Override frontend files with files put here. Allows easy overriding of assets, and potentially actual code as well
21RUN cp -af /app/packages/frontend/overrides/* /app/packages/frontend/src || true
22
23# ngsw config
24RUN cp /app/packages/frontend/ngsw-config.json.example /app/packages/frontend/ngsw-config.json
25
26# copy the frontend environment file
27RUN rm -rf src/environments/environment.prod.ts && mv src/environments/environment.docker.ts src/environments/environment.prod.ts
28
29ENV NODE_ENV=production
30
31RUN npm run build
32
33RUN mv dist/wafrn/browser /app/frontend
34
35COPY packages/frontend/Caddyfile.example /app/Caddyfile
36RUN cp /app/packages/frontend/src/assets/pds-homepage.txt /app/pds-homepage.txt
37
38FROM caddy:2
39
40RUN apk add perl
41
42COPY --from=builder /app/Caddyfile /etc/caddy/Caddyfile
43COPY --from=builder /app/pds-homepage.txt /pds-homepage/pds.txt
44COPY --from=builder /app/frontend/ /app/frontend
45COPY --from=builder /app/packages/frontend/docker-entrypoint.sh /docker-entrypoint.sh
46
47ENTRYPOINT [ "/docker-entrypoint.sh" ]
48
49CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]