From 6ab52b72f71b95725dcee2cbf8521cd5ec590146 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Wed, 18 Feb 2026 10:20:31 +0000 Subject: [PATCH] feat: add EncryptID SDK and AuthProvider SDK added as dependency, AuthProvider wraps layout, Dockerfile updated for parent context build with SDK copy. No auth guards needed (GET-only routes). Co-Authored-By: Claude Opus 4.6 --- Dockerfile | 17 ++++++++++------- app/layout.tsx | 5 ++++- components/AuthProvider.tsx | 12 ++++++++++++ docker-compose.yml | 5 +++-- package.json | 1 + 5 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 components/AuthProvider.tsx diff --git a/Dockerfile b/Dockerfile index 086f2fb..be395b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,20 +1,23 @@ FROM node:20-alpine AS base -# Install pnpm -RUN corepack enable && corepack prepare pnpm@latest --activate - # Dependencies stage FROM base AS deps WORKDIR /app -COPY package.json pnpm-lock.yaml* package-lock.json* ./ -RUN if [ -f pnpm-lock.yaml ]; then pnpm install --frozen-lockfile; else npm install; fi +COPY rtube-online/package.json rtube-online/package-lock.json* ./ +# Copy local SDK dependency +COPY encryptid-sdk /encryptid-sdk/ +RUN npm ci || npm install + +# Ensure SDK is properly linked in node_modules +RUN rm -rf node_modules/@encryptid/sdk && \ + mkdir -p node_modules/@encryptid && \ + cp -r /encryptid-sdk node_modules/@encryptid/sdk # Build stage FROM base AS builder WORKDIR /app -COPY . . -RUN rm -rf node_modules .next COPY --from=deps /app/node_modules ./node_modules +COPY rtube-online/ . RUN npm run build # Production stage diff --git a/app/layout.tsx b/app/layout.tsx index 3fe84f2..c8440d3 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,6 +1,7 @@ import type { Metadata } from 'next' import localFont from 'next/font/local' import './globals.css' +import { AuthProvider } from '@/components/AuthProvider' const geistSans = localFont({ src: './fonts/GeistVF.woff', @@ -32,7 +33,9 @@ export default function RootLayout({ return ( - {children} + + {children} + ) diff --git a/components/AuthProvider.tsx b/components/AuthProvider.tsx new file mode 100644 index 0000000..dbc2b99 --- /dev/null +++ b/components/AuthProvider.tsx @@ -0,0 +1,12 @@ +'use client'; + +import { EncryptIDProvider } from '@encryptid/sdk/ui/react'; + +export function AuthProvider({ children }: { children: React.ReactNode }) { + const Provider = EncryptIDProvider as any; + return ( + + {children} + + ); +} diff --git a/docker-compose.yml b/docker-compose.yml index a0aa23c..3bca380 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,11 +1,12 @@ services: rtube: build: - context: . - dockerfile: Dockerfile + context: .. + dockerfile: rtube-online/Dockerfile container_name: rtube restart: unless-stopped environment: + - NEXT_PUBLIC_ENCRYPTID_SERVER_URL=${NEXT_PUBLIC_ENCRYPTID_SERVER_URL:-https://encryptid.jeffemmett.com} - R2_ENDPOINT=${R2_ENDPOINT} - R2_BUCKET=${R2_BUCKET:-rtube-videos} - R2_ACCESS_KEY_ID=${R2_ACCESS_KEY_ID} diff --git a/package.json b/package.json index 5ea2809..bd67c25 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "@aws-sdk/client-s3": "^3.700.0", + "@encryptid/sdk": "file:../encryptid-sdk", "hls.js": "^1.5.0", "next": "14.2.35", "react": "^18",