FROM node:alpine as base LABEL Maintainer="Shahrad Elahi " WORKDIR /app ENV TZ=UTC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY --from=chriswayg/tor-alpine:latest /usr/local/bin/obfs4proxy /usr/local/bin/obfs4proxy COPY --from=chriswayg/tor-alpine:latest /usr/local/bin/meek-server /usr/local/bin/meek-server # Update and upgrade packages RUN apk update && apk upgrade &&\ # Install required packages apk add -U --no-cache \ iproute2 iptables net-tools \ screen vim curl bash \ wireguard-tools \ tor &&\ # NPM packages npm install -g @litehex/node-checksum &&\ # Clear APK cache rm -rf /var/cache/apk/* # Copy Tor Configs COPY /config/torrc.template /etc/tor/torrc.template COPY /config/obfs4-bridges.conf /etc/torrc.d/obfs4-bridges.conf # Copy user scripts COPY /bin /usr/local/bin RUN chmod -R +x /usr/local/bin # Setup Pnpm ENV PNPM_HOME="/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable # Base env ENV ORIGIN=http://127.0.0.1:5173,http://localhost:5173 ENV PROTOCOL_HEADER=x-forwarded-proto ENV HOST_HEADER=x-forwarded-host FROM base AS runner ENV NODE_ENV=development ENV LOG_LEVEL=debug ENV VERSION=0.0.0-dev COPY docker-entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] # Fix permissions RUN mkdir -p /data && chmod 700 /data RUN mkdir -p /etc/torrc.d && chmod -R 400 /etc/torrc.d RUN mkdir -p /var/vlogs && touch /var/vlogs/web && chmod -R 600 /var/vlogs # Volumes VOLUME ["/etc/torrc.d", "/data", "/var/vlogs"] # Run the app EXPOSE 5173/tcp CMD [ "npm", "run", "dev", "--", "--host" ]