Empezar
Primeros pasos
Runlight es una analítica web que se instala en tu aplicación. Pasar de npm install a tu primera visita lleva cinco minutos.
Runlight es una biblioteca que funciona dentro de una aplicación que ya tienes. Guarda lo que cuenta en tu base de datos y sirve su panel desde tu propio dominio en /runlight, así que no hay ninguna cuenta de Runlight que crear y tus datos nunca pasan por un servidor nuestro.
Esta página configura la biblioteca de TypeScript, que necesita una aplicación capaz de servir rutas, como Next.js, Nuxt, SvelteKit, Astro, Remix, Express, NestJS, Fastify, Koa, Hono o cualquier otra que maneje un Request web. Funciona en Node 22 o posterior, Bun, Deno o Cloudflare Workers.
Runlight también está escrito para PHP, Python, Ruby y Rails, Go, Java, .NET, Elixir y Rust. Cada uno sirve el mismo panel desde las mismas tablas, y su página tiene los pasos para ese lenguaje. Los sitios de WordPress, Drupal y Craft usan un plugin que ejecuta Runlight dentro del CMS o envía sus visitas a un Runlight que tengas en otro lugar. Para tener un solo panel con varios sitios, o para un sitio cuya aplicación no puede ejecutar Runlight, usa el servidor independiente.
1. Instalar
bash
npm install @runlight/sdk better-sqlite3better-sqlite3 es el driver de SQLite. Para Postgres, MySQL, MariaDB, Turso, Cloudflare D1 o el SQLite propio de Bun, consulta Configuración.
2. Crear la instancia
Crea un archivo e impórtalo allí donde necesites Runlight.
lib/runlight.ts
import { runlight } from "@runlight/sdk";
import { sqlite } from "@runlight/sdk/sqlite";
export const rl = runlight({
store: sqlite({ path: "./data/runlight.db" }),
site: { name: "example.com", hostnames: ["example.com"], timezone: "Europe/London" },
});Las tablas se crean la primera vez que se usan. El archivo de la base de datos es tuyo, así que haz copias de seguridad como de cualquier otro.
3. Montar las rutas
En Next.js (App Router), una sola ruta comodín sirve el tracker y el panel, y recibe cada visita.
app/runlight/[[...path]]/route.ts
import { rl } from "@/lib/runlight";
export const { GET, POST, PUT, PATCH, DELETE, OPTIONS } = rl.routes();Otros frameworks también necesitan una o dos líneas, como muestra Instalación.
4. Añadir el script
Pon esto en cada página, justo antes de </head>.
html
<script defer src="/runlight/s.js"></script>El script ocupa menos de 2 KB comprimido con gzip y envía los datos a tu propio dominio sin crear ninguna cookie.
5. Iniciar sesión
El panel es privado, así que define un token largo y aleatorio en tu entorno.
bash
RUNLIGHT_TOKEN=a-long-random-stringDespués abre /runlight/?token=a-long-random-string una vez. Runlight crea una cookie con un resumen del token (nunca el token en sí) y te lleva al panel. Sin un token definido, el panel solo está abierto mientras NODE_ENV sea development, como ocurre con next dev. En cualquier otro caso responde 503 hasta que definas uno.
Visita cualquier página de tu sitio y te verás en “ahora mismo” en cuestión de segundos.
6. Programar la comprobación horaria
Una comprobación a la que llamas una vez por hora renueva la sal diaria y envía los informes por email. También borra las visitas que un sitio ya no conserva y suma los días terminados, y Comprobación programada explica cómo configurarla. En Vercel son cuatro líneas de vercel.json.
Siguientes pasos
- Seguimiento trata los eventos personalizados, las aplicaciones de una sola página, los clics sin código y los ajustes de la etiqueta de script.
- Objetivos trata las conversiones y los ingresos.
- Enlaces cortos pone enlaces en tu propio dominio y los cuenta como visitas.
- Privacidad enumera exactamente lo que Runlight guarda y lo que deja fuera.