NVIDIA
NVIDIA
rag-frontend
Container
NVIDIA
NVIDIA
rag-frontend

This is the sample frontend container used as part of the NVIDIA AI Blueprint for RAG.

LayerLabelCreated
sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4CMD
["node" "-e" "const http=require('http');const fs=require('fs');const path=require('path');const {URL}=require('url');const CHAT=process.env.VITE_API_CHAT_URL||'http://rag-server:8081/v1';const VDB=process.env.VITE_API_VDB_URL||'http://ingestor-server:8082/v1';const chatRoutes=['/api/generate','/api/summary','/api/configuration'];const server=http.createServer((req,res)=>{const isChatRoute=chatRoutes.some(r=>req.url.startsWith(r));if(req.url.startsWith('/api/')){const u=new URL(isChatRoute?CHAT:VDB);const opt={hostname:u.hostname,port:u.port,path:req.url.replace('/api',''),method:req.method,headers:{...req.headers,host:u.host}};const pr=http.request(opt,r=>{res.writeHead(r.statusCode,r.headers);r.pipe(res)});pr.on('error',e=>{res.writeHead(500);res.end('Error:'+e.message)});req.pipe(pr)}else{let f=req.url==='/'?'/index.html':req.url;f=path.join('./dist',f);if(!fs.existsSync(f)&&!f.includes('.'))f=path.join('./dist','index.html');fs.readFile(f,(e,d)=>{if(e){res.writeHead(404);res.end('Not found')}else{res.writeHead(200,{'Content-Type':f.endsWith('.html')?'text/html':f.endsWith('.js')?'application/javascript':f.endsWith('.css')?'text/css':'text/plain'});res.end(d)}})}});server.listen(3000,'0.0.0.0',()=>console.log('Server running on port 3000'));"]
06/01/2026 11:49 AM UTC
sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4EXPOSE
[3000/tcp]
06/01/2026 11:49 AM UTC
sha256:f211474dc669a2e3c90c8d727feeeec415369fd0524b858e09a879b619366c35COPY
/app/frontend/node_modules ./node_modules
06/01/2026 11:49 AM UTC
sha256:badb517322420f4246ea789dfed955e9c2ebe3ca0aeed9e0cffd64afc81c1d38COPY
/app/frontend/vite.config.ts ./vite.config.ts
06/01/2026 11:49 AM UTC
sha256:58b1da248d92d6459bff695ef87f582e598e4f4f2cdb8e2ffcd5c5995e70b0ebCOPY
/app/frontend/package.json ./package.json
06/01/2026 11:49 AM UTC
sha256:8cb4f77ea423080fe4039602c39f18e92f32e8bfe796986ef94668f70323b85fCOPY
/app/frontend/dist ./dist
06/01/2026 11:49 AM UTC
sha256:ab74338aefb1adc45be0b00dad521349f770be05eba242474052b75d62b1e7feCOPY
/legal /legal
06/01/2026 11:49 AM UTC
sha256:782c18a84d0418cf3660f95e920b84c3fdef25d1e23301240be254e66f042efcWORKDIR
/app/frontend
06/01/2026 11:45 AM UTC
sha256:692a95e1743d650d70506f965fc995e24d803558cbf71da3d52944914aa7f80fCONFIG
01/01/0001 12:00 AM UTC
sha256:427f7d18e1e6344a58904ff17aa981ea624a8052449ef9e7e7aa9678946f2050CONFIG
01/01/0001 12:00 AM UTC