mirror of
https://github.com/germondai/trawl.git
synced 2026-08-17 12:11:23 +02:00
99 lines
2.5 KiB
TypeScript
99 lines
2.5 KiB
TypeScript
const title = "Self-Hosted Web Scraping & Challenge Bypass"
|
|
const description =
|
|
"Adaptive, self-hosted web scraping engine for Cloudflare, Akamai, Imperva, and CAPTCHA-protected sites, with a challenge-aware HTTP/HTTPS proxy."
|
|
const socialDescription =
|
|
"Scrape protected websites with adaptive HTTP and browser tiers, CAPTCHA handling, session caching, and a challenge-aware proxy."
|
|
|
|
export default defineNuxtConfig({
|
|
compatibilityDate: "2026-06-23",
|
|
|
|
modules: ["@nuxt/fonts", "@nuxtjs/color-mode", "@nuxtjs/seo", "@vueuse/motion/nuxt"],
|
|
|
|
alias: {
|
|
tslib: "tslib/tslib.es6.js",
|
|
},
|
|
|
|
colorMode: {
|
|
classSuffix: "",
|
|
fallback: "dark",
|
|
preference: "dark",
|
|
},
|
|
|
|
fonts: {
|
|
families: [
|
|
{
|
|
name: "Geist Mono",
|
|
provider: "google",
|
|
weights: ["400", "500", "600", "700"],
|
|
subsets: ["latin"],
|
|
},
|
|
],
|
|
},
|
|
|
|
site: {
|
|
url: "https://trawl.germondai.com",
|
|
name: "TRAWL",
|
|
description,
|
|
defaultLocale: "en",
|
|
},
|
|
|
|
seo: {
|
|
meta: {
|
|
description,
|
|
themeColor: "#00e87a",
|
|
ogType: "website",
|
|
ogTitle: `TRAWL — ${title}`,
|
|
ogDescription: socialDescription,
|
|
twitterCard: "summary_large_image",
|
|
twitterTitle: `TRAWL — ${title}`,
|
|
twitterDescription:
|
|
"An adaptive web scraping engine for protected sites, with CAPTCHA handling and a general HTTP/HTTPS proxy.",
|
|
},
|
|
},
|
|
|
|
ogImage: {
|
|
enabled: false,
|
|
},
|
|
|
|
robots: {
|
|
credits: false,
|
|
},
|
|
|
|
sitemap: {
|
|
zeroRuntime: true,
|
|
},
|
|
|
|
nitro: {
|
|
compressPublicAssets: true,
|
|
routeRules: {
|
|
"/**": {
|
|
headers: {
|
|
"Content-Security-Policy":
|
|
"default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' https://api.github.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self'",
|
|
"Cache-Control": "public, max-age=0, must-revalidate",
|
|
"Permissions-Policy": "camera=(), microphone=(), geolocation=()",
|
|
"Referrer-Policy": "strict-origin-when-cross-origin",
|
|
"X-Content-Type-Options": "nosniff",
|
|
"X-Frame-Options": "DENY",
|
|
},
|
|
},
|
|
"/_nuxt/**": {
|
|
headers: {
|
|
"Cache-Control": "public, max-age=31536000, immutable",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
|
|
app: {
|
|
head: {
|
|
title,
|
|
templateParams: {
|
|
siteName: "TRAWL",
|
|
separator: "—",
|
|
},
|
|
link: [{ rel: "icon", type: "image/svg+xml", href: "/favicon.svg" }],
|
|
},
|
|
},
|
|
})
|