Infrastructure
· 17 checks — DNS, redirects, IPv6, crawlability, URL variants, and domain intelligence rolled into one auditable list.BDNSSECUnsigned (DNSSEC not deployed)REVIEW
BCAA RecordsNo CAA records (any CA may issue certificates)REVIEW
BReverse DNS0/12 IPs match cert SANREVIEW
CCrawlabilityActionrobots.txt present, sitemap with 0 URLsREVIEW
Search engines may not be able to parse the sitemap. Fix XML validation errors.
An unparseable sitemap is silently ignored by Google — the URLs it advertises are never queued for crawl.
Learn more ▾ ▴
Google's sitemap parser is strict about XML validity. A single unescaped `&` or unclosed tag invalidates the whole file. Run your sitemap through a validator (Search Console's Sitemaps report flags it) and fix the offending entry. Most generators escape correctly; mistakes usually come from manually-written entries.
Source: sitemaps.org / Google Search Central
An empty sitemap provides no value. Add <url> entries for your pages.
An empty sitemap signals 'no content to index' to Google — actively harmful versus having no sitemap at all.
Learn more ▾ ▴
Google compares URLs in the sitemap against URLs it has crawled. An empty sitemap on a site with thousands of pages signals abandonment. Either populate it correctly (most CMSes auto-generate) or delete the file and let Google crawl normally.
Source: Google Search Central / sitemaps.org
Add a 'Sitemap:' directive to robots.txt so search engines can discover your sitemap.
robots.txt omits Sitemap: directive — crawlers must fetch /sitemap.xml by convention; reliable but missing the explicit hint.
Source: sitemaps.org
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>¡---=== LOCAL AI ===---! Private AI Services for Catalunya</title>
<meta name="description" content="Local AI / IA Local — private, practical AI deployed and supported on site across Catalonia and the Perpignan–Barcelona corridor.">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<main class="stage">
<h1 class="visually-hidden">
Local AI — IA Local. Private, on-site AI systems for organisations across
Catalonia and the Perpignan–Barcelona corridor.
</h1>
<!-- net.js builds the neural field inside this panel: a chaotic scatter of
nodes, linked to near neighbours — the whole network stays visible in
medium/dark green, with subtle dark-green connections underneath that
shimmer and drift. Only the word-shapes light up, in uniform light red.
The word always reads exactly "LOCAL AI" at ~75% of panel width; the
typeface continuously morphs through a rotation of 17 self-hosted
techy faces, all normalized to the same letter height and overall
size, so nothing resizes — only the letterstyle changes. No text is
ever drawn directly. -->
<div class="visual" role="img"
aria-label="A neural network, always visible in medium/dark green, whose nodes light up in pale red to form the words “LOCAL AI”, continuously morphing through different typeface styles while keeping the same size.">
</div>
<footer class="footlines">
<div class="tagswap" aria-live="off">
<div class="tag on" lang="en">
<span class="brandline">Private Local AI</span>
<span>Human support, private infrastructure, practical outcomes.</span>
</div>
<div class="tag" lang="es">
<span class="brandline">IA Local Privada</span>
<span>Soporte humano, infraestructura privada, resultados reales.</span>
</div>
<div class="tag" lang="fr">
<span class="brandline">IA Locale Privée</span>
<span>Accompagnement humain, infrastructure privée, résultats concrets.</span>
</div>
<div class="tag" lang="ca">
<span class="brandline">AI Local Privada</span>
<span>Suport humà, infraestructura privada, resultats concrets.</span>
</div>
</div>
<a class="mailline" href="mailto:localai@hex7.com">localai@hex7.com</a>
<!-- language control — always visible, fixed below the email line.
AUTO keeps every text rotating; picking one language freezes the
whole page (hero caption, footer, info boxes) in that language. -->
<div class="langswitch" role="group" aria-label="Language">
<button type="button" data-lang="auto" class="on">AUTO</button>
<button type="button" data-lang="en">EN</button>
<button type="button" data-lang="es">ES</button>
<button type="button" data-lang="fr">FR</button>
<button type="button" data-lang="ca">CA</button>
</div>
</footer>
<!-- Below-the-fold information: stays hidden until you scroll it into
view (rise/visible handled by net.js + styles.css). Green/black
palette matches the hero field; accent mint = the lit-word color. -->
<section class="belowfold" aria-label="On-site AI capabilities">
<div class="bf-head rise">
<div class="langswap">
<div class="tag on" lang="en">
<p class="bf-kicker">// On-site systems — Catalonia</p>
<h2>Run intelligence on your own hardware.</h2>
<p class="bf-lead">Small and medium organisations across the Perpignan · Girona ·
Barcelona corridor running their own private AI, on their own hardware,
at a discount — because efficiency is built in: smaller models run well,
memory works smarter, and inference stops being billed per query.</p>
</div>
<div class="tag" lang="es">
<p class="bf-kicker">// Sistemas locales — Cataluña</p>
<h2>Su inteligencia, en su propio hardware.</h2>
<p class="bf-lead">Pequeñas y medianas empresas del corredor Perpiñán · Gerona ·
Barcelona ejecutan su propia IA privada, en su propio hardware, a precio
reducido — porque la eficiencia está integrada: los modelos pequeños
rinden bien, la memoria trabaja mejor y la inferencia ya no se cobra
por consulta.</p>
</div>
<div class="tag" lang="fr">
<p class="bf-kicker">// Systèmes sur site — Catalogne</p>
<h2>Votre intelligence, sur votre propre matériel.</h2>
<p class="bf-lead">Petites et moyennes entreprises du corridor Perpignan · Gérone ·
Barcelone exécutant leur propre IA privée, sur leur propre matériel, à
prix réduit — car l'efficacité est intégrée : les petits modèles
tournent bien, la mémoire travaille mieux et l'infrence n'est plus
facturée par requête.</p>
</div>
<div class="tag" lang="ca">
<p class="bf-kicker">// Sistemes locals — Catalunya</p>
<h2>Su intel·lig artificial, en su propio maquinari.</h2>
<p class="bf-lead">Petites et míjanes empresas del corridor Perpinyà · Girona ·
Barcelona executant su propia IA privada, en su propio maquinari, a
preu reduit — per la eficiencia integrada: los models chiquitos
rinden bi, la memoria truca mes alt y la inferència no es cobra
per consulta.</p>
</div>
</div>
</div>
<div class="bf-grid">
<article class="bf-card rise">
<h3>llama.cpp</h3>
<div class="langswap">
<p class="tag on" lang="en">An open inference engine and API server — the base of everything
here. Small and medium models run well on ordinary machines you already
have — desktops, workstations or a modest GPU box — fully quantised, at
a fraction of any cloud bill.</p>
<p class="tag" lang="es">Un motor de inferencia abierto y servidor de API — la base de todo lo
aquí. Los modelos pequeños y medianos funcionan bien en máquinas
normales — ordenadores, estaciones o una GPU modesta — completamente
cuantificados, a una fracción de cualquier factura de nube.</p>
<p class="tag" lang="fr">Un moteur d'infrence ouvert et serveur API — la base de tout ce qui
ici. Les petits et moyens modèles tournent sur des machines ordinaires —
bureau, station ou simple GPU — entièrement quantifiés, pour une fraction
du prix du cloud.</p>
<p class="tag" lang="ca">Un motor d'inferència obert i servidor API — la base de todo lo aquí. Los
modelos pequeños y medians funcionan bi en màquines normales — ordenadores,
estaciones o una GPU modesta — quantificats per complet, a una fracció de
la factura del núvol.</p>
</div>
</article>
<article class="bf-card rise">
<h3>FreeToken</h3>
<div class="langswap">
<p class="tag on" lang="en">An inference engine and local API endpoint. Tokens are not metered:
a billion tokens cost the same as one, and there is no per-query billing.</p>
<p class="tag" lang="es">Un motor de inferencia y endpoint API local. Los tokens no se miden: mil
millones de tokens cuestan lo mismo que uno, y no hay cobros por consulta.</p>
<p class="tag" lang="fr">Un moteur d'infrence et endpoint API local. Les tokens ne sont pas mesurés :
un milliard de tokens coûtent le même prix qu'un seul, et aucune facturation
par requête.</p>
<p class="tag" lang="ca">Un motor de inferència y endpoint API local. Els tokens no se miden: mil
milions de tokens cuestan lo mismo que uno, y no hay cobros por consulta.</p>
</div>
</article>
<article class="bf-card rise">
<h3>Strata</h3>
<div class="langswap">
<p class="tag on" lang="en">An inference engine and API, forked from llama.cpp and built for
memory efficiency: it keeps resident only the experts that are hot — the
ones actually in use — and leaves the rest parked. That is how big
MoE models run on small RAM.</p>
<p class="tag" lang="es">Un motor de inferencia derivado de llama.cpp y construido para la
eficiencia de memoria: mantiene residentes solo los expertos en uso —
los que se usan de verdad — y deja el resto aparcados. Así es cómo
grandes modelos MoE funcionan con poca RAM.</p>
<p class="tag" lang="fr">Un moteur d'infrence issu de llama.cpp et conçu pour l'efficacité
mémoire : il ne garde résidents que les experts en cours d'utilisation —
ceux qui servent vraiment — et met le reste en attente. Voilà comment
les grands modèles MoE tournent avec peu de RAM.</p>
<p class="tag" lang="ca">Un motor de inferència derivat de llama.cpp i construido para la
eficiencia de memoria: manté residentes solo los expertos en uso — los
que se usan de verdad — y deja el resto aparcados. Así es cómo grandes
modelos MoE funcionan con poca RAM.</p>
</div>
</article>
<article class="bf-card rise">
<h3>Avalon</h3>
<div class="langswap">
<p class="tag on" lang="en">An inference engine and API, forked from Strata and tuned even
further for memory: keeps the hot set tighter still — longer usable
context and larger models on the same hardware.</p>
<p class="tag" lang="es">Un motor de inferencia y API, derivado de Strata y optimizado aún más para
la memoria: mantiene el conjunto activo más ceñido — contexto utilizable
más largo y modelos más grandes en el mismo hardware.</p>
<p class="tag" lang="fr">Un moteur d'infrence et API, issu de Strata et encore plus poussé pour la
mémoire : gar
BTLS Certificate Expiry & Recommendations197 days until leaf cert expires — 2 issues to addressREVIEW
Certificate validity
Recommended actions
- Add the preload directive and submit to hstspreload.org once max-age + includeSubDomains are in place
- Enable OCSP stapling on your TLS server to remove a CA roundtrip and protect user privacy
BOperational Status PageNo status page link detectedREVIEW
ADNS Records4 A records, 42 ms lookupPASS
| A | 3.174.170.34, 3.174.170.126, 3.174.170.2, 3.174.170.58 |
| AAAA | 2600:9000:2903:2000:14:7d06:b040:93a1, 2600:9000:2903:3a00:14:7d06:b040:93a1, 2600:9000:2903:e600:14:7d06:b040:93a1, 2600:9000:2903:e000:14:7d06:b040:93a1, 2600:9000:2903:f600:14:7d06:b040:93a1, 2600:9000:2903:ee00:14:7d06:b040:93a1, 2600:9000:2903:d200:14:7d06:b040:93a1, 2600:9000:2903:3400:14:7d06:b040:93a1 |
| CNAME | — |
| NS | — |
| MX | — |
| TXT | — |
| CAA | Lookup not available with standard resolver |
SPF helps prevent email spoofing. Add a TXT record starting with 'v=spf1'.
Without SPF, receiving servers can't validate sending IPs — your domain is easier to spoof in phishing.
Learn more ▾ ▴
SPF complements DMARC. Both should be published. SPF records list authorized sending IPs (e.g., `v=spf1 include:_spf.google.com ~all` for Google Workspace). After publishing, verify in Google Postmaster Tools or mxtoolbox.
Source: RFC 7208 (SPF)
A+Subdomain TakeoverNo subdomain takeover risk detectedPASS
A+Multi-Resolver DNS SpeedMean 28ms across 3 resolvers (spread 36ms)PASS
A+Redirect ChainNo redirects — direct accessPASS
https://localai.hex7.com
11 ms · HTTP/1.1 FINAL
| # | URL | Status | Time | Protocol | Server |
|---|---|---|---|---|---|
| 1 | https://localai.hex7.com | 200 | 11 ms | HTTP/1.1 | AmazonS3 |
A+IPv6 ReadinessIPv6 reachable (1 ms)PASS
A+URL Variantswww/non-www, trailing slash, HTTP→HTTPSPASS
www / non-www
HTTP → HTTPS
Consistent
A+Domain Intelligencehex7.com — via Gandi SAS, 16 years old, hosted on AWSPASS
1905 days
January 27, 2032
197 days
Issued by Amazon
16 years
Registered January 27, 2011
Enabled
Protects against DNS spoofing
AWS
ASN AS14618
3.219.153.97
Gandi SAS
Expiry timeline
Recommended actions
- Enable registrar lock (clientTransferProhibited) to block unauthorized domain transfers
The domain can be transferred without an unlock step. Enable registrar lock (clientTransferProhibited) in your registrar's control panel to protect against unauthorized or accidental transfers.
Without registrar lock, an attacker who phishes your registrar credentials can transfer the domain in minutes — total brand hijack.
Learn more ▾ ▴
Registrar lock (clientTransferProhibited, clientUpdateProhibited, clientDeleteProhibited) requires extra verification before any transfer/update/delete. Every major registrar offers it free. Combined with 2FA on your registrar account, it's the strongest defense against domain hijacking.
Source: ICANN / domain-security best practice