CloudFront
tcp/443
cloudflare
tcp/80 tcp/8443
.DS_Store” is an abbreviation for “Desktop Services Store”. These files are created automatically by Apples “Finder” software (which is part of their OS).
They store information about the files within a folder, including display options of folders, such as icon positions and view settings.
It may happen that .DS_Store files inadvertently leak filenames such as database backups or private administration panels.
Severity: low
Fingerprint: 5f32cf5d6962f09cccdd54a0ccdd54a090145515d862be038235f8cb83c82b02
Found 13 files trough .DS_Store spidering: /favicon /leangpt /leangpt/apple-touch-icon.png /leangpt/favicon-96x96.png /leangpt/favicon.ico /leangpt/favicon.svg /leangpt/reference /leangpt/site.webmanifest /leangpt/web-app-manifest-192x192.png /leangpt/web-app-manifest-512x512.png /leangpt.png /leangpt.svg /manifest.webmanifest
Severity: low
Fingerprint: 5f32cf5d6962f09c3838040e3838040ea73dae43128f5a618734bd335b986558
Found 20 files trough .DS_Store spidering: /favicon /favicon/android-chrome-192x192.png /favicon/android-chrome-512x512.png /favicon/apple-touch-icon.png /favicon/favicon-16x16.png /favicon/favicon-32x32.png /favicon/favicon.ico /favicon/site.webmanifest /leangpt /leangpt/apple-touch-icon.png /leangpt/favicon-96x96.png /leangpt/favicon.ico /leangpt/favicon.svg /leangpt/reference /leangpt/site.webmanifest /leangpt/web-app-manifest-192x192.png /leangpt/web-app-manifest-512x512.png /leangpt.png /leangpt.svg /manifest.webmanifest
Severity: low
Fingerprint: 5f32cf5d6962f09c8329733f8329733fde13f9ba269aab32798a2adaafe7996a
Found 10 files trough .DS_Store spidering: /favicon /favicon/android-chrome-192x192.png /favicon/android-chrome-512x512.png /favicon/apple-touch-icon.png /favicon/favicon-16x16.png /favicon/favicon-32x32.png /favicon/favicon.ico /favicon/site.webmanifest /leangpt.png /manifest.webmanifest
Severity: low
Fingerprint: 5f32cf5d6962f09c63442d9d63442d9d493b8ab2493b8ab2493b8ab2493b8ab2
Found 1 files trough .DS_Store spidering: /vite.svg
.DS_Store” is an abbreviation for “Desktop Services Store”. These files are created automatically by Apples “Finder” software (which is part of their OS).
They store information about the files within a folder, including display options of folders, such as icon positions and view settings.
It may happen that .DS_Store files inadvertently leak filenames such as database backups or private administration panels.
Severity: low
Fingerprint: 5f32cf5d6962f09cccdd54a0ccdd54a090145515d862be038235f8cb83c82b02
Found 13 files trough .DS_Store spidering: /favicon /leangpt /leangpt/apple-touch-icon.png /leangpt/favicon-96x96.png /leangpt/favicon.ico /leangpt/favicon.svg /leangpt/reference /leangpt/site.webmanifest /leangpt/web-app-manifest-192x192.png /leangpt/web-app-manifest-512x512.png /leangpt.png /leangpt.svg /manifest.webmanifest
.DS_Store” is an abbreviation for “Desktop Services Store”. These files are created automatically by Apples “Finder” software (which is part of their OS).
They store information about the files within a folder, including display options of folders, such as icon positions and view settings.
It may happen that .DS_Store files inadvertently leak filenames such as database backups or private administration panels.
Severity: low
Fingerprint: 5f32cf5d6962f09cccdd54a0ccdd54a090145515d862be038235f8cb83c82b02
Found 13 files trough .DS_Store spidering: /favicon /leangpt /leangpt/apple-touch-icon.png /leangpt/favicon-96x96.png /leangpt/favicon.ico /leangpt/favicon.svg /leangpt/reference /leangpt/site.webmanifest /leangpt/web-app-manifest-192x192.png /leangpt/web-app-manifest-512x512.png /leangpt.png /leangpt.svg /manifest.webmanifest
Open service 172.67.218.138:8443 · leangpt.chat
2026-01-23 12:55
HTTP/1.1 200 OK
Date: Fri, 23 Jan 2026 12:55:53 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Vary: accept-encoding
Server-Timing: cfCacheStatus;desc="HIT"
Server-Timing: cfEdge;dur=15,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=jGxsqxa%2Fs%2FloW5depXBkdNN6RQWuRQ0uINBw0kLZ0amclapI3sSkhEJ2LSDQm9919V%2F3uYuI0HSCPGemjcZQqJuYsP4ie2%2BFDh7MRw%3D%3D"}]}
Server: cloudflare
CF-RAY: 9c2772ae0e46148e-SJC
alt-svc: h3=":8443"; ma=86400
Page title: LeanGPT - AI chat application
<!DOCTYPE html><html><head><script class='$tsr'>(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={c(){document.querySelectorAll(".\\$tsr").forEach(e=>{e.remove()})},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};
;$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/main-D_Y59h0B.js"],assets:$R[5]=[$R[6]={tag:"script",attrs:$R[7]={type:"module",suppressHydrationWarning:!0,async:!0},children:"import('/assets/main-D_Y59h0B.js')"}]},"/":$R[8]={preloads:$R[9]=["/assets/routes-B8TOVqT4.js","/assets/Effect-CF4u79Dg.js","/assets/useLiveQuery-B_Y6nWA7.js","/assets/auth-We7hHZ7S.js"],assets:$R[10]=[$R[11]={tag:"link",attrs:$R[12]={rel:"stylesheet",href:"/assets/routes-DviIVDm4.css",type:"text/css"}}]},"/404":$R[13]={preloads:$R[14]=["/assets/404-BDEBd-Yh.js"],assets:$R[15]=[]},"/test":$R[16]={preloads:$R[17]=["/assets/test-C-MpgNXw.js","/assets/Effect-CF4u79Dg.js","/assets/useLiveQuery-B_Y6nWA7.js"],assets:$R[18]=[]},"/auth/callback":$R[19]={preloads:$R[20]=["/assets/auth.callback-CXYGgeTj.js","/assets/Effect-CF4u79Dg.js","/assets/auth-We7hHZ7S.js"],assets:$R[21]=[]}},clientEntry:"/assets/main-D_Y59h0B.js"},matches:$R[22]=[$R[23]={i:"__root_",u:1759081341351,s:"success",ssr:!0},$R[24]={i:"/",u:1759081341351,s:"pending",ssr:!1}],lastMatchId:"/",dehydratedData:void 0})($R["tsr"]);$_TSR.c()</script><meta charSet="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, interactive-widget=resizes-content"/><title>LeanGPT - AI chat application</title><link rel="modulepreload" href="/assets/main-D_Y59h0B.js"/><link rel="modulepreload" href="/assets/routes-B8TOVqT4.js"/><link rel="modulepreload" href="/assets/Effect-CF4u79Dg.js"/><link rel="modulepreload" href="/assets/useLiveQuery-B_Y6nWA7.js"/><link rel="modulepreload" href="/assets/auth-We7hHZ7S.js"/><link rel="manifest" href="/leangpt/site.webmanifest"/><link rel="icon" type="image/png" href="/leangpt/favicon-96x96.png"/><link rel="icon" type="image/png" href="/leangpt/web-app-manifest-192x192.png"/><link rel="apple-touch-icon" sizes="180x180" href="/leangpt/apple-touch-icon.png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="apple-mobile-web-app-title" content="leangpt"/><link rel="stylesheet" href="/assets/global-CdrmYI8q.css"/><link rel="stylesheet" href="/assets/overlayscrollbars-CWbkutgJ.css"/><link href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@500&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet"/><link rel="stylesheet" href="/assets/routes-DviIVDm4.css" type="text/css"/></head><body class="dark"><!--$--><!--/$--><script></script><script class="$tsr">(function restoreScroll({
storageKey: storageKey2,
key,
behavior,
shouldScrollRestoration,
scrollToTopSelectors,
location
}) {
let byKey;
try {
byKey = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
} catch (error) {
console.error(error);
return;
}
const resolvedKey = key || window.history.state?.__TSR_key;
const elementEntries = byKey[resolvedKey];
ignoreScroll = true;
scroll: {
if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {
for (const elementSelector in elementEntries) {
const entry = elementEntries[elementSelector];
if (elementSelector === "window") {
window.scrollTo({
top: entry.scrollY,
left: entry.scrollX,
behavior
});
} else if (elementSelector) {
const element = document.querySelector(elementSelector);
if (element) {
element.scrollLeft = entry.scrollX;
element.scrollTop = entry.scrollY;
}
}
}
break scroll;
}
const hash = (location ?? window.location).hash.split("#", 2)[1];
if (hash) {
const hashScrollIntoViewOptions = window.history.state?.__hashScrollIntoViewOptions ?? true
Open service 172.67.218.138:80 · leangpt.chat
2026-01-23 08:18
HTTP/1.1 200 OK
Date: Fri, 23 Jan 2026 08:18:43 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Vary: accept-encoding
Server-Timing: cfCacheStatus;desc="HIT"
Server-Timing: cfEdge;dur=18,cfOrigin;dur=0
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=mO9slNe9SRleufxNqb97%2FvGKdGcgNYUkfvvOlV1ZpEZlLEITmTTBDgFXS4njmkEc4qQwNj5YLx8KHE1MPvUkOC6tGJ4Hdy9wKX%2BCvA%3D%3D"}]}
Server: cloudflare
CF-RAY: 9c25dcab9af04cc4-YYZ
alt-svc: h3=":443"; ma=86400
Page title: LeanGPT - AI chat application
<!DOCTYPE html><html><head><script class='$tsr'>(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={c(){document.querySelectorAll(".\\$tsr").forEach(e=>{e.remove()})},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};
;$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/main-D_Y59h0B.js"],assets:$R[5]=[$R[6]={tag:"script",attrs:$R[7]={type:"module",suppressHydrationWarning:!0,async:!0},children:"import('/assets/main-D_Y59h0B.js')"}]},"/":$R[8]={preloads:$R[9]=["/assets/routes-B8TOVqT4.js","/assets/Effect-CF4u79Dg.js","/assets/useLiveQuery-B_Y6nWA7.js","/assets/auth-We7hHZ7S.js"],assets:$R[10]=[$R[11]={tag:"link",attrs:$R[12]={rel:"stylesheet",href:"/assets/routes-DviIVDm4.css",type:"text/css"}}]},"/404":$R[13]={preloads:$R[14]=["/assets/404-BDEBd-Yh.js"],assets:$R[15]=[]},"/test":$R[16]={preloads:$R[17]=["/assets/test-C-MpgNXw.js","/assets/Effect-CF4u79Dg.js","/assets/useLiveQuery-B_Y6nWA7.js"],assets:$R[18]=[]},"/auth/callback":$R[19]={preloads:$R[20]=["/assets/auth.callback-CXYGgeTj.js","/assets/Effect-CF4u79Dg.js","/assets/auth-We7hHZ7S.js"],assets:$R[21]=[]}},clientEntry:"/assets/main-D_Y59h0B.js"},matches:$R[22]=[$R[23]={i:"__root_",u:1759081341351,s:"success",ssr:!0},$R[24]={i:"/",u:1759081341351,s:"pending",ssr:!1}],lastMatchId:"/",dehydratedData:void 0})($R["tsr"]);$_TSR.c()</script><meta charSet="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, interactive-widget=resizes-content"/><title>LeanGPT - AI chat application</title><link rel="modulepreload" href="/assets/main-D_Y59h0B.js"/><link rel="modulepreload" href="/assets/routes-B8TOVqT4.js"/><link rel="modulepreload" href="/assets/Effect-CF4u79Dg.js"/><link rel="modulepreload" href="/assets/useLiveQuery-B_Y6nWA7.js"/><link rel="modulepreload" href="/assets/auth-We7hHZ7S.js"/><link rel="manifest" href="/leangpt/site.webmanifest"/><link rel="icon" type="image/png" href="/leangpt/favicon-96x96.png"/><link rel="icon" type="image/png" href="/leangpt/web-app-manifest-192x192.png"/><link rel="apple-touch-icon" sizes="180x180" href="/leangpt/apple-touch-icon.png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="apple-mobile-web-app-title" content="leangpt"/><link rel="stylesheet" href="/assets/global-CdrmYI8q.css"/><link rel="stylesheet" href="/assets/overlayscrollbars-CWbkutgJ.css"/><link href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@500&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet"/><link rel="stylesheet" href="/assets/routes-DviIVDm4.css" type="text/css"/></head><body class="dark"><!--$--><!--/$--><script></script><script class="$tsr">(function restoreScroll({
storageKey: storageKey2,
key,
behavior,
shouldScrollRestoration,
scrollToTopSelectors,
location
}) {
let byKey;
try {
byKey = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
} catch (error) {
console.error(error);
return;
}
const resolvedKey = key || window.history.state?.__TSR_key;
const elementEntries = byKey[resolvedKey];
ignoreScroll = true;
scroll: {
if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {
for (const elementSelector in elementEntries) {
const entry = elementEntries[elementSelector];
if (elementSelector === "window") {
window.scrollTo({
top: entry.scrollY,
left: entry.scrollX,
behavior
});
} else if (elementSelector) {
const element = document.querySelector(elementSelector);
if (element) {
element.scrollLeft = entry.scrollX;
element.scrollTop = entry.scrollY;
}
}
}
break scroll;
}
const hash = (location ?? window.location).hash.split("#", 2)[1];
if (hash) {
const hashScrollIntoViewOptions = window.history.state?.__hashScrollIntoViewOptions ?? true
Open service 108.138.26.59:443 · leangpt.chat
2026-01-22 21:11
HTTP/1.1 400 Bad Request Server: CloudFront Date: Thu, 22 Jan 2026 21:11:16 GMT Content-Type: text/html Content-Length: 915 Connection: close X-Cache: Error from cloudfront Via: 1.1 fde85e7daa13f95cf6b8f5fa09c62ef6.cloudfront.net (CloudFront) X-Amz-Cf-Pop: FRA56-P7 X-Amz-Cf-Id: 09iksbpt7NniNErGINQ_uVX_5VJn2VqOOMiHd4-mo5faM9aEEDnZ9g== Page title: ERROR: The request could not be satisfied <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <TITLE>ERROR: The request could not be satisfied</TITLE> </HEAD><BODY> <H1>400 ERROR</H1> <H2>The request could not be satisfied.</H2> <HR noshade size="1px"> Bad request. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. <BR clear="all"> If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. <BR clear="all"> <HR noshade size="1px"> <PRE> Generated by cloudfront (CloudFront) Request ID: 09iksbpt7NniNErGINQ_uVX_5VJn2VqOOMiHd4-mo5faM9aEEDnZ9g== </PRE> <ADDRESS> </ADDRESS> </BODY></HTML>
Open service 172.67.218.138:8443 · leangpt.chat
2026-01-10 02:20
HTTP/1.1 200 OK
Date: Sat, 10 Jan 2026 02:20:20 GMT
Content-Type: text/html
Content-Length: 5050
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "707c0e2e78eac87f309a35d5a3aff3dc"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=bvQFqXgpEnoqEE3v1g8UfR5wkMgN31GcQfP3ecmKYQBgxDruPdi0igW9BNcG5OBQdKK5%2Fuj9lkb3k9ZDg4qoU0nNT6cUUK7%2Ft3Ofrg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9bb8b1d2cab7d23f-FRA
alt-svc: h3=":8443"; ma=86400
Page title: LeanGPT - AI chat application
<!DOCTYPE html><html><head><script class='$tsr'>(self.$R=self.$R||{})["tsr"]=[];self.$_TSR={c(){document.querySelectorAll(".\\$tsr").forEach(e=>{e.remove()})},p(e){this.initialized?e():this.buffer.push(e)},buffer:[]};
;$_TSR.router=($R=>$R[0]={manifest:$R[1]={routes:$R[2]={__root__:$R[3]={preloads:$R[4]=["/assets/main-D_Y59h0B.js"],assets:$R[5]=[$R[6]={tag:"script",attrs:$R[7]={type:"module",suppressHydrationWarning:!0,async:!0},children:"import('/assets/main-D_Y59h0B.js')"}]},"/":$R[8]={preloads:$R[9]=["/assets/routes-B8TOVqT4.js","/assets/Effect-CF4u79Dg.js","/assets/useLiveQuery-B_Y6nWA7.js","/assets/auth-We7hHZ7S.js"],assets:$R[10]=[$R[11]={tag:"link",attrs:$R[12]={rel:"stylesheet",href:"/assets/routes-DviIVDm4.css",type:"text/css"}}]},"/404":$R[13]={preloads:$R[14]=["/assets/404-BDEBd-Yh.js"],assets:$R[15]=[]},"/test":$R[16]={preloads:$R[17]=["/assets/test-C-MpgNXw.js","/assets/Effect-CF4u79Dg.js","/assets/useLiveQuery-B_Y6nWA7.js"],assets:$R[18]=[]},"/auth/callback":$R[19]={preloads:$R[20]=["/assets/auth.callback-CXYGgeTj.js","/assets/Effect-CF4u79Dg.js","/assets/auth-We7hHZ7S.js"],assets:$R[21]=[]}},clientEntry:"/assets/main-D_Y59h0B.js"},matches:$R[22]=[$R[23]={i:"__root_",u:1759081341351,s:"success",ssr:!0},$R[24]={i:"/",u:1759081341351,s:"pending",ssr:!1}],lastMatchId:"/",dehydratedData:void 0})($R["tsr"]);$_TSR.c()</script><meta charSet="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, interactive-widget=resizes-content"/><title>LeanGPT - AI chat application</title><link rel="modulepreload" href="/assets/main-D_Y59h0B.js"/><link rel="modulepreload" href="/assets/routes-B8TOVqT4.js"/><link rel="modulepreload" href="/assets/Effect-CF4u79Dg.js"/><link rel="modulepreload" href="/assets/useLiveQuery-B_Y6nWA7.js"/><link rel="modulepreload" href="/assets/auth-We7hHZ7S.js"/><link rel="manifest" href="/leangpt/site.webmanifest"/><link rel="icon" type="image/png" href="/leangpt/favicon-96x96.png"/><link rel="icon" type="image/png" href="/leangpt/web-app-manifest-192x192.png"/><link rel="apple-touch-icon" sizes="180x180" href="/leangpt/apple-touch-icon.png"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="apple-mobile-web-app-title" content="leangpt"/><link rel="stylesheet" href="/assets/global-CdrmYI8q.css"/><link rel="stylesheet" href="/assets/overlayscrollbars-CWbkutgJ.css"/><link href="https://fonts.googleapis.com/css2?family=Fira+Code:wght@500&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet"/><link rel="stylesheet" href="/assets/routes-DviIVDm4.css" type="text/css"/></head><body class="dark"><!--$--><!--/$--><script></script><script class="$tsr">(function restoreScroll({
storageKey: storageKey2,
key,
behavior,
shouldScrollRestoration,
scrollToTopSelectors,
location
}) {
let byKey;
try {
byKey = JSON.parse(sessionStorage.getItem(storageKey2) || "{}");
} catch (error) {
console.error(error);
return;
}
const resolvedKey = key || window.history.state?.__TSR_key;
const elementEntries = byKey[resolvedKey];
ignoreScroll = true;
scroll: {
if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {
for (const elementSelector in elementEntries) {
const entry = elementEntries[elementSelector];
if (elementSelector === "window") {
window.scrollTo({
top: entry.scrollY,
left: entry.scrollX,
behavior
});
} else if (elementSelector) {
const element = document.querySelector(elementSelector);
if (element) {
element.scrollLeft = entry.scrollX;
element.scrollTop = entry.scrollY;
}
}
}
break scroll;
}
const hash = (location ?? window.location).hash.split("#", 2)[1];
if (hash) {
const hashScrollIntoViewOptions = window.history.state?.__hashScrollIntoViewOptions ?? true