Domain zoaya.com
Germany
Datacamp Limited
Software information

BunnyCDN-DE1-1049

tcp/443 tcp/80

BunnyCDN-DE1-752

tcp/443 tcp/80

BunnyCDN-DE1-755

tcp/443 tcp/80

BunnyCDN-DE1-863

tcp/443 tcp/80

BunnyCDN-DE1-865

tcp/443 tcp/80

  • Open service 2400:52e0:1e00::865:1:80 · zoaya.com

    2026-01-26 00:04

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 26 Jan 2026 00:04:56 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-865
    CDN-PullZone: 5071379
    CDN-RequestCountryCode: US
    Location: https://zoaya.com/
    CDN-RequestId: 73b789fd78b4c9bcd3866e89a543b24d
    Referrer-Policy: strict-origin-when-cross-origin
    Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
    Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
    Cross-Origin-Embedder-Policy: require-corp
    Cross-Origin-Resource-Policy: same-origin
    Cross-Origin-Opener-Policy: same-origin
    X-Content-Type-Options: nosniff
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2026-01-26 by HttpPlugin
    Create report
  • Open service 79.127.216.111:443 · zoaya.com

    2026-01-26 00:04

    HTTP/1.1 200 OK
    Date: Mon, 26 Jan 2026 00:04:55 GMT
    Content-Type: text/html
    Content-Length: 6474
    Connection: close
    Vary: Accept-Encoding
    Server: BunnyCDN-DE1-752
    CDN-PullZone: 5071379
    CDN-RequestCountryCode: US
    Cache-Control: public, max-age=2592000
    Last-Modified: Sun, 04 Jan 2026 23:35:22 GMT
    x-amz-request-id: HCFF00690058DAA940
    CDN-ProxyVer: 1.43
    CDN-RequestPullSuccess: True
    CDN-RequestPullCode: 206
    CDN-CachedAt: 01/10/2026 16:33:23
    CDN-EdgeStorageId: 1075
    Cross-Origin-Opener-Policy: same-origin
    Cross-Origin-Embedder-Policy: require-corp
    Cross-Origin-Resource-Policy: same-origin
    Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
    X-Content-Type-Options: nosniff
    Referrer-Policy: strict-origin-when-cross-origin
    Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
    CDN-RequestId: a8e6f111d6ed55376466793daa4dced0
    CDN-Cache: HIT
    CDN-Status: 200
    CDN-RequestTime: 0
    Accept-Ranges: bytes
    
    
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    	<base href="/" />
        <style>
            :root {
                --font-stack: 'Inter', 'Noto Sans', sans-serif;
                --bg-color: #050505;
                --text-color: #050505;
            }
    
            body {
                margin: 0;
                background: var(--bg-color);
                color: var(--text-color);
                height: 100vh;
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
                font-family: var(--font-stack); 
                overflow: hidden;
            }
    
            h1 {
                font-weight: 700; 
                font-size: 8rem;
                margin: 0;
                letter-spacing: -0.04em;
                line-height: 1;
            }
    
            @media (max-width: 600px) {
                h1 { font-size: 4rem; }
            }
        </style>
    
    	<!-- 1. LOAD SHARED LOGIC SYNCHRONOUSLY -->
    	<script src="./config/loader.js"></script>
    
    	<!-- 2. SECURE CONFIG LOADER (Uses globals from ./config/loader.js) -->
    	<script>
    		(async () => {
    			// Use constants/functions from ./config/loader.js
    			const SALT = window.SALT || 'h3cr8';
    			const getID = window.getID;
    			const extractHostname = window.extractHostname;
    
    			if (!getID || !extractHostname) {
    				console.error("Critical: ./config/loader.js failed to load.");
    				return;
    			}
    
    			//const url = "https://app.example.com/index.html"; // Example with BRAND NAME
    			const url = window.location.href;
    			const hostname = extractHostname(url);
    
    			// Helper: Inject DOM Elements
    			const inject = (tag, attr = {}, parent = document.head) => {
    				const el = document.createElement(tag);
    				for (const k in attr) el.setAttribute(k, attr[k]);
    				parent.appendChild(el);
    				return el;
    			};
    
    			// Helper: Wait for DOM to be ready
    			const ready = () => new Promise(r => document.readyState !== 'loading' ? r() : document.addEventListener('DOMContentLoaded', r));
    
    			// --- CASCADING LOOKUP ---
    			let config = null;
    
    			// Generate hierarchy candidates: e.g. ["sub.domain.com", "domain.com", "com", ""]
    			const candidates = [];
    			if (hostname) {
    				const labels = hostname.split('.');
    				for (let i = 0; i < labels.length; i++) {
    					candidates.push(labels.slice(i).join('.'));
    				}
    			}
    			// Fallback: The empty string evaluates to the root hash (gtmu080g3r2e4eqoix3c6r1dw)
    			candidates.push("");
    
    			for (const domain of candidates) {
    				try {
    					const hash = await getID(domain, SALT);
    					// Import config. The config file itself MUST resolve its own asset paths.
    					config = (await import(`./config/${hash}/config.js`)).default;
    					if (config) {
    						console.log(`Config loaded for '${domain}' (${hash})`);
    						break;
    					}
    				} catch (e) {
    					// alert(domain);
    					// Config not found for this level, continue cascading up
    				}
    			}
    
    			// --- APPLY ---
    			if (config) {
    				// 1. Expose Config Globally for UI Components (OmniBar, etc.)
    				window.CONFIG = config;
    
    				// 2. Set Meta Title (Browser Tab)
    				// Priority: metaTitle -> title
    				document.title = config.metaTitle || config.title;
    
    				// 3. Set Theme Color
    				document.documentElement.style.setProperty('--bg-app', config.color);
    
    				if (config.manifest) inject('link', { rel: 'manifest', href: config.manifest });
    				if (config.color) inject('meta', { name: 'theme-color', content: config.color });
    
    				// --- DYNAMIC SVG ICON GENERATION ---
    				// UPDATED LOGIC: Prioritize explicit Initials over inherited Icons.
    				// This fixes the issue where spread syntax (...primary) causes specific configs
    				// to inherit the fallback icon even when they defined 'initials'.
    
    				const hasExplicitInitials = (typeof config.initials === 'string');
    
    				if (hasExplicitInitials) {
    					// 1. Explicit Initials (User wanted this)
    					const initials = config.initials;
    					const svgString = `
                        <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
                        <circle cx="5
    Found 2026-01-26 by HttpPlugin
    Create report
  • Open service 79.127.216.111:80 · zoaya.com

    2026-01-26 00:04

    HTTP/1.1 301 Moved Permanently
    Date: Mon, 26 Jan 2026 00:04:55 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-752
    CDN-PullZone: 5071379
    CDN-RequestCountryCode: GB
    Location: https://zoaya.com/
    CDN-RequestId: a4ee91834e5cce189703ab9782cc0fea
    Referrer-Policy: strict-origin-when-cross-origin
    Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
    Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
    Cross-Origin-Embedder-Policy: require-corp
    Cross-Origin-Resource-Policy: same-origin
    Cross-Origin-Opener-Policy: same-origin
    X-Content-Type-Options: nosniff
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2026-01-26 by HttpPlugin
    Create report
  • Open service 2400:52e0:1e00::865:1:443 · zoaya.com

    2026-01-26 00:04

    HTTP/1.1 200 OK
    Date: Mon, 26 Jan 2026 00:04:55 GMT
    Content-Type: text/html
    Content-Length: 6474
    Connection: close
    Vary: Accept-Encoding
    Server: BunnyCDN-DE1-865
    CDN-PullZone: 5071379
    CDN-RequestCountryCode: NL
    Cache-Control: public, max-age=2592000
    Last-Modified: Sun, 04 Jan 2026 23:35:22 GMT
    x-amz-request-id: HCFF00690058DAA940
    CDN-ProxyVer: 1.43
    CDN-RequestPullSuccess: True
    CDN-RequestPullCode: 206
    CDN-CachedAt: 01/10/2026 16:33:23
    CDN-EdgeStorageId: 1075
    Cross-Origin-Opener-Policy: same-origin
    Cross-Origin-Embedder-Policy: require-corp
    Cross-Origin-Resource-Policy: same-origin
    Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
    X-Content-Type-Options: nosniff
    Referrer-Policy: strict-origin-when-cross-origin
    Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=()
    CDN-RequestId: 2c7371ab517e3464a7acaaf1855c365e
    CDN-Cache: HIT
    CDN-Status: 200
    CDN-RequestTime: 0
    Accept-Ranges: bytes
    
    
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    	<base href="/" />
        <style>
            :root {
                --font-stack: 'Inter', 'Noto Sans', sans-serif;
                --bg-color: #050505;
                --text-color: #050505;
            }
    
            body {
                margin: 0;
                background: var(--bg-color);
                color: var(--text-color);
                height: 100vh;
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
                font-family: var(--font-stack); 
                overflow: hidden;
            }
    
            h1 {
                font-weight: 700; 
                font-size: 8rem;
                margin: 0;
                letter-spacing: -0.04em;
                line-height: 1;
            }
    
            @media (max-width: 600px) {
                h1 { font-size: 4rem; }
            }
        </style>
    
    	<!-- 1. LOAD SHARED LOGIC SYNCHRONOUSLY -->
    	<script src="./config/loader.js"></script>
    
    	<!-- 2. SECURE CONFIG LOADER (Uses globals from ./config/loader.js) -->
    	<script>
    		(async () => {
    			// Use constants/functions from ./config/loader.js
    			const SALT = window.SALT || 'h3cr8';
    			const getID = window.getID;
    			const extractHostname = window.extractHostname;
    
    			if (!getID || !extractHostname) {
    				console.error("Critical: ./config/loader.js failed to load.");
    				return;
    			}
    
    			//const url = "https://app.example.com/index.html"; // Example with BRAND NAME
    			const url = window.location.href;
    			const hostname = extractHostname(url);
    
    			// Helper: Inject DOM Elements
    			const inject = (tag, attr = {}, parent = document.head) => {
    				const el = document.createElement(tag);
    				for (const k in attr) el.setAttribute(k, attr[k]);
    				parent.appendChild(el);
    				return el;
    			};
    
    			// Helper: Wait for DOM to be ready
    			const ready = () => new Promise(r => document.readyState !== 'loading' ? r() : document.addEventListener('DOMContentLoaded', r));
    
    			// --- CASCADING LOOKUP ---
    			let config = null;
    
    			// Generate hierarchy candidates: e.g. ["sub.domain.com", "domain.com", "com", ""]
    			const candidates = [];
    			if (hostname) {
    				const labels = hostname.split('.');
    				for (let i = 0; i < labels.length; i++) {
    					candidates.push(labels.slice(i).join('.'));
    				}
    			}
    			// Fallback: The empty string evaluates to the root hash (gtmu080g3r2e4eqoix3c6r1dw)
    			candidates.push("");
    
    			for (const domain of candidates) {
    				try {
    					const hash = await getID(domain, SALT);
    					// Import config. The config file itself MUST resolve its own asset paths.
    					config = (await import(`./config/${hash}/config.js`)).default;
    					if (config) {
    						console.log(`Config loaded for '${domain}' (${hash})`);
    						break;
    					}
    				} catch (e) {
    					// alert(domain);
    					// Config not found for this level, continue cascading up
    				}
    			}
    
    			// --- APPLY ---
    			if (config) {
    				// 1. Expose Config Globally for UI Components (OmniBar, etc.)
    				window.CONFIG = config;
    
    				// 2. Set Meta Title (Browser Tab)
    				// Priority: metaTitle -> title
    				document.title = config.metaTitle || config.title;
    
    				// 3. Set Theme Color
    				document.documentElement.style.setProperty('--bg-app', config.color);
    
    				if (config.manifest) inject('link', { rel: 'manifest', href: config.manifest });
    				if (config.color) inject('meta', { name: 'theme-color', content: config.color });
    
    				// --- DYNAMIC SVG ICON GENERATION ---
    				// UPDATED LOGIC: Prioritize explicit Initials over inherited Icons.
    				// This fixes the issue where spread syntax (...primary) causes specific configs
    				// to inherit the fallback icon even when they defined 'initials'.
    
    				const hasExplicitInitials = (typeof config.initials === 'string');
    
    				if (hasExplicitInitials) {
    					// 1. Explicit Initials (User wanted this)
    					const initials = config.initials;
    					const svgString = `
                        <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
                        <circle cx="5
    Found 2026-01-26 by HttpPlugin
    Create report
  • Open service 79.127.216.111:80 · www.zoaya.com

    2025-12-24 01:08

    HTTP/1.1 301 Moved Permanently
    Date: Wed, 24 Dec 2025 01:08:57 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-752
    CDN-PullZone: 908404
    CDN-RequestCountryCode: US
    Location: https://zoaya.com/
    CDN-RequestId: b8bb6234cdd8440198c5007a88a19444
    Cache-Control: no-cache
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2025-12-24 by HttpPlugin
    Create report
  • Open service 2400:52e0:1e00::1049:1:80 · www.zoaya.com

    2025-12-24 01:08

    HTTP/1.1 301 Moved Permanently
    Date: Wed, 24 Dec 2025 01:08:56 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-1049
    CDN-PullZone: 908404
    CDN-RequestCountryCode: NL
    Location: https://zoaya.com/
    CDN-RequestId: 8ade42c1b2989666e1655080a3b4dac1
    Cache-Control: no-cache
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2025-12-24 by HttpPlugin
    Create report
  • Open service 2400:52e0:1e00::1049:1:443 · www.zoaya.com

    2025-12-24 01:08

    HTTP/1.1 301 Moved Permanently
    Date: Wed, 24 Dec 2025 01:08:56 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-1049
    CDN-PullZone: 908404
    CDN-RequestCountryCode: GB
    Cache-Control: no-cache
    Location: https://zoaya.com/
    CDN-RequestId: 7161f2d43b3823b508e5c1e2b7766239
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2025-12-24 by HttpPlugin
    Create report
  • Open service 79.127.216.111:443 · www.zoaya.com

    2025-12-24 01:08

    HTTP/1.1 301 Moved Permanently
    Date: Wed, 24 Dec 2025 01:08:56 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-752
    CDN-PullZone: 908404
    CDN-RequestCountryCode: DE
    Cache-Control: no-cache
    Location: https://zoaya.com/
    CDN-RequestId: 7e1ed5e9a1e251ed28830ddc1ffb1ca7
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2025-12-24 by HttpPlugin
    Create report
  • Open service 2400:52e0:1e00::755:1:443 · zoaya.com

    2025-12-23 23:02

    HTTP/1.1 200 OK
    Date: Tue, 23 Dec 2025 23:02:23 GMT
    Content-Type: text/html
    Content-Length: 627
    Connection: close
    Vary: Accept-Encoding
    Server: BunnyCDN-DE1-755
    CDN-PullZone: 908404
    CDN-RequestCountryCode: SG
    Cache-Control: public, max-age=31919000
    Last-Modified: Fri, 15 Aug 2025 16:16:06 GMT
    x-amz-request-id: HCFF0069000AD92686
    CDN-ProxyVer: 1.41
    CDN-RequestPullSuccess: True
    CDN-RequestPullCode: 206
    CDN-CachedAt: 12/20/2025 22:05:51
    CDN-EdgeStorageId: 1078
    CDN-RequestId: 5934f8534be32efa28415b3c26012e20
    CDN-Cache: HIT
    CDN-Status: 200
    CDN-RequestTime: 0
    Accept-Ranges: bytes
    
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <style>body{background:#111}</style>
    <script>
    (()=>{
    	const d=document;
    	const p=new URLSearchParams(location.search).get('p')!='0';
    	const c={
    		b:'https://app.beautrait.com/',
    		j:`main${p?'':'.dev'}.js`,
    		s:`style${p?'':'.dev'}.css`,
    		t:p?'202508151815':+new Date
    	};
    	const T=`?t=${c.t}`;
    	const[b,s,j]=['base','link','script'].map(t=>d.createElement(t));
    	b.href=c.b;
    	s.rel='stylesheet';
    	s.href=c.s+T;
    	j.src=c.j+T;
    	j.defer=!0;
    	d.head.append(b,s,j);
    })();
    </script>
    </head>
    <body></body>
    </html>
    Found 2025-12-23 by HttpPlugin
    Create report
  • Open service 138.199.37.231:443 · zoaya.com

    2025-12-23 23:02

    HTTP/1.1 200 OK
    Date: Tue, 23 Dec 2025 23:02:22 GMT
    Content-Type: text/html
    Content-Length: 627
    Connection: close
    Vary: Accept-Encoding
    Server: BunnyCDN-DE1-863
    CDN-PullZone: 908404
    CDN-RequestCountryCode: DE
    Cache-Control: public, max-age=31919000
    Last-Modified: Fri, 15 Aug 2025 16:16:06 GMT
    x-amz-request-id: HCFF00690002EC10FD
    CDN-ProxyVer: 1.41
    CDN-RequestPullSuccess: True
    CDN-RequestPullCode: 206
    CDN-CachedAt: 12/18/2025 05:26:05
    CDN-EdgeStorageId: 1076
    CDN-RequestId: 5a76030c8c3ce9c053471ebed48f667f
    CDN-Cache: HIT
    CDN-Status: 200
    CDN-RequestTime: 0
    Accept-Ranges: bytes
    
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <style>body{background:#111}</style>
    <script>
    (()=>{
    	const d=document;
    	const p=new URLSearchParams(location.search).get('p')!='0';
    	const c={
    		b:'https://app.beautrait.com/',
    		j:`main${p?'':'.dev'}.js`,
    		s:`style${p?'':'.dev'}.css`,
    		t:p?'202508151815':+new Date
    	};
    	const T=`?t=${c.t}`;
    	const[b,s,j]=['base','link','script'].map(t=>d.createElement(t));
    	b.href=c.b;
    	s.rel='stylesheet';
    	s.href=c.s+T;
    	j.src=c.j+T;
    	j.defer=!0;
    	d.head.append(b,s,j);
    })();
    </script>
    </head>
    <body></body>
    </html>
    Found 2025-12-23 by HttpPlugin
    Create report
  • Open service 2400:52e0:1e00::755:1:80 · zoaya.com

    2025-12-23 23:02

    HTTP/1.1 301 Moved Permanently
    Date: Tue, 23 Dec 2025 23:02:22 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-755
    CDN-PullZone: 908404
    CDN-RequestCountryCode: NL
    Location: https://zoaya.com/
    CDN-RequestId: cfb0b25ef693c34f5f952b0b50bb3701
    Cache-Control: no-cache
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2025-12-23 by HttpPlugin
    Create report
  • Open service 138.199.37.231:80 · zoaya.com

    2025-12-23 23:02

    HTTP/1.1 301 Moved Permanently
    Date: Tue, 23 Dec 2025 23:02:22 GMT
    Content-Type: text/html
    Content-Length: 166
    Connection: close
    Server: BunnyCDN-DE1-863
    CDN-PullZone: 908404
    CDN-RequestCountryCode: CA
    Location: https://zoaya.com/
    CDN-RequestId: 0c7115f9c83221613e2b4acff643da4c
    Cache-Control: no-cache
    CDN-RequestTime: 0
    
    Page title: 301 Moved Permanently
    
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>openresty</center>
    </body>
    </html>
    
    Found 2025-12-23 by HttpPlugin
    Create report
*.zoaya.comzoaya.com
CN:
*.zoaya.com
Key:
ECDSA-256
Issuer:
E7
Not before:
2025-12-27 18:41
Not after:
2026-03-27 18:41
www.zoaya.com
CN:
www.zoaya.com
Key:
RSA-2048
Issuer:
R12
Not before:
2025-11-09 23:11
Not after:
2026-02-07 23:11
www.zoaya.com
CN:
www.zoaya.com
Key:
RSA-2048
Issuer:
R10
Not before:
2025-08-13 21:12
Not after:
2025-11-11 21:12
zoaya.com
CN:
zoaya.com
Key:
RSA-2048
Issuer:
R11
Not before:
2025-08-13 19:10
Not after:
2025-11-11 19:10
zoaya.com
CN:
zoaya.com
Key:
RSA-2048
Issuer:
R12
Not before:
2025-11-09 21:12
Not after:
2026-02-07 21:12