From 100eeb84ad71061e2392b02a59d0a41bac6f8911 Mon Sep 17 00:00:00 2001 From: Shahrad Elahi Date: Mon, 1 Apr 2024 17:49:30 +0330 Subject: [PATCH] fix --- Dockerfile | 12 +++++++----- Dockerfile-Dev | 12 ++++++------ web/src/lib/env.ts | 5 +++-- web/src/lib/hash.ts | 4 ++++ web/src/routes/CreateServerDialog.svelte | 2 +- 5 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 45018f0..de2ab03 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,9 @@ ARG ALPINE_VERSION=3.19 +ARG NODE_VERSION=20 FROM --platform=$BUILDPLATFORM chriswayg/tor-alpine:latest as tor -FROM --platform=$BUILDPLATFORM node:alpine${ALPINE_VERSION} as base + +FROM --platform=$BUILDPLATFORM node:${NODE_VERSION}-alpine${ALPINE_VERSION} as base LABEL Maintainer="Shahrad Elahi " WORKDIR /app @@ -11,10 +13,8 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY --from=tor /usr/local/bin/obfs4proxy /usr/local/bin/obfs4proxy COPY --from=tor /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 \ +# Install required packages +RUN apk add -U --no-cache \ iproute2 iptables net-tools \ screen curl bash \ wireguard-tools \ @@ -48,6 +48,8 @@ COPY web . RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile \ # build + && mkdir -p /data \ + && echo gA== > /data/storage.b64 \ && NODE_ENV=production pnpm run build \ # Omit devDependencies && pnpm prune --prod \ diff --git a/Dockerfile-Dev b/Dockerfile-Dev index 70e2f88..ecdc84f 100644 --- a/Dockerfile-Dev +++ b/Dockerfile-Dev @@ -1,7 +1,9 @@ ARG ALPINE_VERSION=3.19 +ARG NODE_VERSION=20 FROM --platform=$BUILDPLATFORM chriswayg/tor-alpine:latest as tor -FROM --platform=$BUILDPLATFORM node:alpine${ALPINE_VERSION} as base + +FROM --platform=$BUILDPLATFORM node:${NODE_VERSION}-alpine${ALPINE_VERSION} as base LABEL Maintainer="Shahrad Elahi " WORKDIR /app @@ -11,10 +13,8 @@ RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone COPY --from=tor /usr/local/bin/obfs4proxy /usr/local/bin/obfs4proxy COPY --from=tor /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 \ +# Install required packages +RUN apk add -U --no-cache \ iproute2 iptables net-tools \ screen vim curl bash \ wireguard-tools \ @@ -63,4 +63,4 @@ VOLUME ["/etc/torrc.d", "/data", "/var/vlogs"] # Run the app EXPOSE 5173/tcp -CMD [ "npm", "run", "dev", "--", "--host" ] \ No newline at end of file +CMD [ "npm", "run", "dev", "--", "--host" ] diff --git a/web/src/lib/env.ts b/web/src/lib/env.ts index f80daad..c5bad9f 100644 --- a/web/src/lib/env.ts +++ b/web/src/lib/env.ts @@ -1,15 +1,16 @@ import { createEnv } from '@t3-oss/env-core'; import { z } from 'zod'; -import { sha256 } from '$lib/hash'; +import { hex, sha256 } from '$lib/hash'; import { randomUUID } from 'node:crypto'; import 'dotenv/config'; export const env = createEnv({ runtimeEnv: process.env, server: { + NODE_ENV: z.enum(['development', 'production', 'test']).default('development'), STORAGE_PATH: z.string().default('/data/storage.pack'), AUTH_SECRET: z.string().default(sha256(randomUUID())), - HASHED_PASSWORD: z.string(), + HASHED_PASSWORD: z.string().default(hex('insecure-password')), ORIGIN: z.string().optional(), }, }); diff --git a/web/src/lib/hash.ts b/web/src/lib/hash.ts index e8d51d8..a5dd3e1 100644 --- a/web/src/lib/hash.ts +++ b/web/src/lib/hash.ts @@ -5,3 +5,7 @@ export function sha256(data: Buffer | string): string { hash.update(data); return hash.digest('hex'); } + +export function hex(data: Buffer | string): string { + return Buffer.from(data).toString('hex'); +} diff --git a/web/src/routes/CreateServerDialog.svelte b/web/src/routes/CreateServerDialog.svelte index 7bec272..edcad47 100644 --- a/web/src/routes/CreateServerDialog.svelte +++ b/web/src/routes/CreateServerDialog.svelte @@ -131,7 +131,7 @@ Optional. This is the DNS server that will be pushed to clients.Optional. This is the DNS server that will be pushed to clients.