No estás usando esta distribución?

Selecciona una versión o distribución diferente

Liwan es una herramienta de analítica web minimalista, ligera y centrada en la privacidad. Pensada para quienes quieren conocer el tráfico de sus sitios sin comprometer los datos de sus usuarios ni depender de soluciones complejas o invasivas. A diferencia de plataformas tradicionales, Liwan se ejecuta como un binario único o utilizando Docker, sin necesidad de base de datos ni configuraciones engorrosas, y puede integrarse fácilmente en cualquier sitio web con una sola línea de código.

Características de Liwan

  • 🔧 Fácil de instalar: Un solo binario o docker, sin base de datos ni configuración compleja.
  • 🔒 Privacidad garantizada: Sin cookies, sin rastreo cruzado, sin identificadores persistentes.
  • Ligero y eficiente: Escrito en Rust, funciona incluso en una Raspberry Pi.
  • 💡 Código abierto: Licencia Apache 2.0, puedes modificar y contribuir libremente.
  • 📊 Datos precisos: Filtra bots automáticamente y ofrece métricas fiables.
  • ⏱️ Analítica en tiempo real: Panel actualizado al instante con el tráfico web.

Pasos previos

Antes de comenzar con la instalación, asegúrate de cumplir con los siguientes requisitos:

  • 💻 Servidor con Debian 12 como sistema operativo base.
  • 🔐 Acceso SSH al servidor.
  • 🧑‍💻 Permisos de superusuario (root) o capacidad para ejecutar comandos con sudo.
  • 🐳 Docker y Docker Compose instalados, ya que utilizaremos contenedores para desplegar la aplicación de forma rápida, aislada y reproducible.

Instalación de Docker

En caso de que Docker y Docker Compose no estén instalados en tu sistema, a continuación te mostramos cómo hacerlo de forma sencilla:

Instalación de Docker en Debian 12
Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos.

Con el entorno listo y los requisitos cumplidos, puedes continuar con el proceso de instalación.

Preparación del entorno

Para instalar Liwan correctamente, primero debemos completar los siguientes pasos.

Actualización del sistema

Como primer paso, vamos a asegurarnos de que todos los paquetes del sistema estén actualizados a su última versión:

apt update
apt upgrade -y

Creación del directorio

Para tener todo ordenado, crearemos un directorio donde se guardaran los datos y donde guardaremos el fichero del Docker Compose:

mkdir /opt/liwan
touch /opt/liwan/docker-compose.yml

Editando fichero docker-compose.yml

A continuación, editamos el archivo /opt/liwan/docker-compose.yml y añadimos el siguiente contenido:

version: "3.8"

services:
  liwan:
    image: ghcr.io/explodingcamera/liwan:1.1
    container_name: liwan
    ports:
        - "127.0.0.1:9042:9042"
    volumes:
        - liwan-data:/data
    # See https://liwan.dev/reference/configuration for all configuration options
    environment:
        - LIWAN_BASE_URL=https://a.example.com

volumes:
  liwan-data:

Ten en cuenta que en el parámetro LIWAN_BASE_URL deberás indicar el dominio que hayas elegido.

Levantamos contenedores

Listo, ya tenemos todo, así que toca levantar el contenedor:

docker-compose up -d

Configuración de Proxy Nginx

Como la aplicación se encuentra escuchando en un puerto local (localhost), necesitaremos configurar un proxy inverso con Nginx para poder acceder a ella mediante un dominio.

Para ello, puedes seguir este tutorial donde encontrarás todos los pasos detallados:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.
💡
Si has configurado el proxy Nginx utilizando solo HTTP, te recomendamos dar el siguiente paso y habilitar HTTPS para asegurar las conexiones. Si solo necesitas generar un certificado SSL, puedes seguir este tutorial donde se explica cómo hacerlo paso a paso: Instalación de certificado SSL con certbot

Primer contacto con la aplicación

Una vez que hemos levantado el contenedor con Docker Compose y configurado correctamente el dominio a través de Nginx Proxy, ya podemos acceder a la aplicación desde nuestro navegador utilizando el dominio o subdominio que hayamos definido.

La primera vez que accedamos a Liwan, será necesario crear un usuario administrador. Para ello, necesitaremos un token específico, el cual podemos obtener revisando los registros (logs) del contenedor Docker.

docker logs liwan

Esto mostrará algo similar a lo siguiente, incluyendo la URL que debemos visitar:

2025-06-04T12:58:14.097268Z  INFO liwan::app::db: Applied migration: V1__initial
2025-06-04T12:58:14.106886Z  INFO liwan::app::db: Applied migration: V2__remove_indexes
2025-06-04T12:58:14.115408Z  INFO liwan::app::db: Applied migration: V3__utm_params
2025-06-04T12:58:14.124738Z  INFO liwan::app::db: Applied migration: V4__session_intervals
2025-06-04T12:58:14.127200Z  INFO liwan::web: It looks like you're running Liwan for the first time!
2025-06-04T12:58:14.127223Z  INFO liwan::web: You can get started by visiting: http://dominio.com/setup?t=H88NBesVdwT
2025-06-04T12:58:14.127226Z  INFO liwan::web: To see all available commands, run `liwan --help`

Accedemos a la URL indicada y procedemos a configurar el usuario y la contraseña de acceso.

Una vez completado el proceso, se cargará nuevamente la pantalla de inicio de sesión, donde podremos acceder con el usuario que configuramos en el paso anterior.

Configurar web para analizar

Para añadir una web, tendremos que crear un proyecto nuevo haciendo clic en el enlace Create a new project

Dentro de la sección Projects, hacemos clic en el botón Create para añadir un nuevo sitio web.

Asignamos un ID al proyecto y un nombre visible. Si queremos que las estadísticas sean públicas, podemos activar la opción Make Public.

Tras crear el proyecto, ya tendremos acceso a los gráficos para poder visualizar las visitas:

💡
En esta captura no se muestran datos, pero es porque no he configurado el Script para el blog.

Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación