Wallos: Rastreador de Suscripciones Personal Autohospedado
Controla tus gastos recurrentes, gestiona tu presupuesto y ahorra dinero con esta aplicación open source en PHP y SQLite
Vídeo tutorial en YouTube
Mira el vídeo completo sobre cómo instalar y usar Wallos: Rastreador de Suscripciones Personal Autohospedado en el canal GENBYTE:
¿Qué es Wallos: Rastreador de Suscripciones Personal Autohospedado?
Wallos es una aplicación web potente, de código abierto y autohospedada diseñada para permitirte gestionar tus finanzas con facilidad. Olvídate de hojas de cálculo complicadas y software financiero costoso: Wallos simplifica el proceso de seguimiento de gastos y te ayuda a obtener un mejor control sobre tu vida financiera. Al ser autohospedada, garantiza que tus datos financieros permanezcan privados y seguros en tu propio servidor.
Características principales
Gestión de Suscripciones
Mantén el control de tus suscripciones y pagos recurrentes, asegurándote de no perder ninguna fecha de vencimiento.
Gestión de Categorías
Organiza tus gastos en categorías personalizables para obtener información sobre tus hábitos de gasto.
Soporte Multi-moneda
Wallos admite múltiples monedas, permitiéndote gestionar tus finanzas en la moneda de tu elección.
Conversión de Moneda
Integración con la API de Fixer para obtener tipos de cambio y ver todas tus suscripciones en tu moneda principal.
Privacidad de Datos
Al ser una aplicación autohospedada, Wallos garantiza que tus datos financieros permanezcan privados y seguros en tu propio servidor.
Personalización
Adapta Wallos a tus necesidades con categorías, monedas, temas y otras opciones de visualización personalizables.
Opciones de Ordenación
Permite ver tus suscripciones desde diferentes perspectivas.
Búsqueda de Logotipos
Wallos puede buscar en la web el logotipo de tus suscripciones si no los tienes disponibles para subir.
Vista Móvil
Wallos sobre la marcha con diseño responsive.
Estadísticas
Otra perspectiva sobre tus gastos con gráficos y resúmenes.
Notificaciones
Soporta múltiples métodos de notificación (email, Discord, Pushover, Telegram, Gotify y webhooks). Recibe avisos sobre tus próximos pagos.
Soporte Multi-idioma
Interfaz disponible en varios idiomas, con sistema de traducciones colaborativo.
OIDC con OAuth
Autenticación mediante proveedores OIDC/OAuth, configurable por variables de entorno o interfaz de administración.
Recomendaciones con IA
Integración con ChatGPT, Gemini u Ollama local para generar recomendaciones de optimización de suscripciones.
Requisitos del sistema
- Docker Engine (recomendado 25+ para healthcheck con –start-interval)
- Para instalación baremetal: NGINX o Apache
- PHP 8.3 con módulos: curl, dom, gd, intl, openssl, sqlite3, zip, mbstring, fpm
- SQLite (incluido en la imagen Docker)
- Cron (dcron incluido en la imagen Docker para tareas programadas)
Instalación con Docker Compose
Docker Compose (Recomendado)
Despliegue estándar con volúmenes persistentes para base de datos y logotipos. Ajusta la zona horaria (TZ) según tu ubicación.
wallos:
container_name: wallos
image: bellamy/wallos:latest
ports:
– "8282:80/tcp"
environment:
TZ: 'America/Toronto'
volumes:
– './db:/var/www/html/db'
– './logos:/var/www/html/images/uploads/logos'
restart: unless-stopped
Docker Compose sin Healthcheck
Versión para Docker Engine anterior a 25 o para arranque más rápido desactivando el healthcheck.
wallos:
container_name: wallos
image: bellamy/wallos:latest
ports:
– "8282:80/tcp"
environment:
TZ: 'America/Toronto'
volumes:
– './db:/var/www/html/db'
– './logos:/var/www/html/images/uploads/logos'
restart: unless-stopped
healthcheck:
test: ["NONE"]
Docker Run
Comando equivalente a docker run para despliegue rápido sin compose. Reemplaza las rutas de volúmenes según tu sistema.
-v /path/to/config/wallos/db:/var/www/html/db \
-v /path/to/config/wallos/logos:/var/www/html/images/uploads/logos \
-e TZ=Europe/Berlin -p 8282:80 –restart unless-stopped \
bellamy/wallos:latest
Docker Run sin Healthcheck
Variante desactivando el healthcheck para compatibilidad con Docker <25.
-v /path/to/config/wallos/db:/var/www/html/db \
-v /path/to/config/wallos/logos:/var/www/html/images/uploads/logos \
-e TZ=Europe/Berlin -p 8282:80 –restart unless-stopped \
–health-cmd=NONE \
bellamy/wallos:latest
Acceder al proyecto
Acceso Web
Abre el navegador en http://<IP_DEL_HOST>:8282 (o el puerto configurado). En la primera ejecución se requiere crear una cuenta de usuario.
Demo Oficial
Disponible en https://demo.wallosapp.com (base de datos reiniciada cada 2 horas). Credenciales: usuario 'demo', contraseña 'demo'.
Configuración Inicial
Tras el primer acceso, ve a Ajustes para personalizar avatar, añadir miembros del hogar, gestionar categorías y monedas. Obtén una API Key gratuita en Fixer (https://fixer.io/#pricing_plan) y añádela en los ajustes para activar la conversión de moneda.
Casos de uso
- Control de suscripciones personales y familiares (streaming, software, gimnasio, etc.)
- Seguimiento de gastos recurrentes en múltiples monedas con conversión automática
- Presupuesto doméstico con categorización y estadísticas visuales
- Notificaciones automáticas de pagos próximos por email, Discord, Telegram, Gotify, Pushover o webhooks
- Autenticación centralizada mediante proveedores OIDC/OAuth (Keycloak, Authentik, Google, Microsoft, etc.)
- Análisis de optimización de suscripciones con recomendaciones generadas por IA (OpenAI, Gemini, Ollama local)
- Auditoría de gastos anuales con tareas programadas de almacenamiento de costes totales
Configuración avanzada
Configuración OIDC/OAuth por Variables de Entorno
Wallos permite configurar OIDC declarativamente mediante variables de entorno que sobrescriben la base de datos en tiempo de ejecución. Si se define OIDC_ISSUER, se usa discovery automático de endpoints.
OIDC_ENABLED: 'true'
OIDC_PROVIDER_NAME: 'Mi Proveedor'
OIDC_CLIENT_ID: 'client-id'
OIDC_CLIENT_SECRET: 'client-secret'
# OIDC_CLIENT_SECRET_FILE: '/run/secrets/oidc_secret'
OIDC_ISSUER: 'https://auth.example.com'
OIDC_REDIRECT_URL: 'https://wallos.example.com/oidc/callback'
OIDC_SCOPES: 'openid email profile'
OIDC_AUTO_CREATE_USER: 'true'
OIDC_DISABLE_PASSWORD_LOGIN: 'false'
OIDC_REQUIRE_EMAIL_VERIFIED: 'true'
Lista de Permitidos SSRF (SSRF_ALLOWLIST)
Permite conexiones a endpoints privados (webhooks, SMTP, OIDC) sin pasar por la UI de administración. Acepta lista separada por comas de hosts/IPs con puerto opcional.
SSRF_ALLOWLIST: 'auth.example.com,192.168.1.100:8123,webhook.internal'
Tareas Programadas (Cron) Incluidas
La imagen Docker incluye dcron con los siguientes jobs: actualización de próximo pago (01:00), tipos de cambio (02:00), notificaciones de cancelación (08:00), notificaciones generales (09:00), emails de verificación (cada 2 min), emails de reset password (cada 2 min), comprobación de actualizaciones (cada 6h), coste anual total (lunes 01:30), recomendaciones IA semanales (lunes 03:30) y mensuales (día 1 a las 04:00). Los logs se guardan en /var/log/cron/.
# Para ver logs:
docker exec wallos tail -f /var/log/cron/updatenextpayment.log
API REST
Wallos expone una API documentada para interacción programática. Documentación en https://api.wallosapp.com/. Requiere autenticación (token o sesión).
curl -H "Authorization: Bearer TU_TOKEN" https://tu-wallos.example.com/api/v1/subscriptions
Recomendaciones con IA
Configura proveedor de IA en Ajustes > IA: OpenAI (ChatGPT), Google Gemini u Ollama local. Las recomendaciones se generan vía cron (semanal/mensual) o manualmente desde la interfaz.
# OPENAI_API_KEY=sk-…
# GEMINI_API_KEY=…
# OLLAMA_URL=http://ollama:11434
Gestión y mantenimiento
Actualización de Imagen Docker
Descarga la nueva imagen y recrea el contenedor manteniendo los volúmenes. Los datos persisten en ./db y ./logos.
cd /ruta/a/docker-compose
docker compose up -d –force-recreate
Actualización Baremetal
Vuelve a descargar el repositorio o ejecuta git pull. Verifica requisitos PHP. Ejecuta migraciones accediendo a /endpoints/db/migrate.php o por CLI: php /var/www/html/endpoints/db/migrate.php
git pull
php endpoints/db/migrate.php
Copias de Seguridad
Respalda el directorio ./db (contiene wallos.db SQLite) y ./logos. Para backup en caliente de SQLite, usa la herramienta sqlite3 con .backup o copia el archivo tras detener el contenedor.
docker stop wallos
cp -r ./db ./db_backup_$(date +%F)
cp -r ./logos ./logos_backup_$(date +%F)
docker start wallos
Healthcheck y Logs
Healthcheck integrado en /health.php (intervalo 2m, timeout 2s). Logs de PHP-FPM y Nginx en stdout/stderr del contenedor. Logs de cron en /var/log/cron/ dentro del contenedor.
# Logs de cron
docker exec wallos ls -la /var/log/cron/
Migración de Base de Datos
Las migraciones se ejecutan automáticamente al registrar el primer usuario o al acceder a /endpoints/db/migrate.php. En actualizaciones, ejecuta la migración manualmente si no se lanza automáticamente.
Stack técnico
- PHP 8.3 (FPM)
- SQLite 3 (base de datos embebida)
- Nginx (servidor web y proxy reverso interno)
- Docker / Docker Compose
- dcron (tareas programadas)
- Fixer API (conversión de moneda)
- OIDC/OAuth 2.0 (autenticación federada)
- OpenAI API / Google Gemini API / Ollama (IA local)
- JavaScript vanilla (frontend)
- CSS con soporte modo oscuro/claro
- GPL-3.0 (licencia)
Referencias oficiales
- Repositorio Oficial GitHub: https://github.com/ellite/Wallos
- Página Web Oficial: https://wallosapp.com
- Demo en Línea: https://demo.wallosapp.com
- Documentación de la API: https://api.wallosapp.com/
- Imagen Docker en Docker Hub: https://hub.docker.com/r/bellamy/wallos
- Servidor Discord de la Comunidad: https://discord.gg/anex9GUrPW
- Perfil del Autor: https://henrique.pt
- API Fixer (Tipos de Cambio): https://fixer.io/#pricing_plan
- Licencia GPL-3.0: https://github.com/ellite/Wallos/blob/main/LICENSE.md
- Guía de Contribución: https://github.com/ellite/Wallos/blob/main/CONTRIBUTING.md
- Política de Seguridad: https://github.com/ellite/Wallos/blob/main/SECURITY.md
Apoya el canal GENBYTE
¿Te ha sido útil este contenido?
Suscríbete a YouTube
Newsletter GENBYTE
Ko-fi
Contacto: [email protected]
