[{"data":1,"prerenderedAt":153},["ShallowReactive",2],{"seo-verification":3,"blog-instalar-glitchtip-en-un-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-instalar-glitchtip-en-un-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":97,"ctaBody":98,"ctaButton":99,"ctaUrl":100,"relatedPosts":101},250,"instalar-glitchtip-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"self-host-glitchtip-vps","self-host-glitchtip-on-a-vps-a-sovereign-error-tracker","تثبيت-glitchtip-على-vps-تتبع-الأخطاء-بشكل-مستقل","Instalar GlitchTip en un VPS: rastreador de errores soberano","Despliegue GlitchTip v6 en su VPS Linux con Docker Compose. Compatible con el SDK de Sentry, funciona con 2 GB de RAM y se conecta cambiando un DSN.",7,0,false,"2026-08-13T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},4,"Desarrollo","developpement","bg-warning\u002F10 text-warning","dev",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-glitchtip-vps-poster.svg",{"categorySlug":34,"appSlug":35},"desarrollo","glitchtip","Sentry self-hosted 26.4.x acumula desde agosto de 2026 cinco regresiones simultáneas: consumers de Snuba en bucle infinito (issue #4301), deadlock del monitor_consumer (issue #4306) y fallo de autenticación HTTP\u002F2 del relay (issue #4321). La comunidad documenta migraciones hacia GlitchTip. Si ya ha instrumentado sus aplicaciones con el SDK de Sentry, la migración no toca ni una línea de código de aplicación: es un simple reemplazo de variable de entorno, y su instancia funciona con 2 GB de RAM.",[38,42,53,56,84,87,91,94],{"type":39,"title":40,"body":41},"h2","Por qué migrar a GlitchTip ahora","Sentry self-hosted 26.4.x sufre desde agosto de 2026 cinco regresiones simultáneas documentadas por la comunidad. Las issues #4301 y #4306 describen respectivamente consumers de Snuba que se reinician en bucle sin procesar ningún evento, y un deadlock en el monitor_consumer que bloquea el registro de los crons. La issue #4321 señala un fallo de autenticación del relay en las conexiones HTTP\u002F2, lo que interrumpe la ingesta de eventos. Estas regresiones han llevado a varios equipos a documentar públicamente su migración a GlitchTip.\n\nLa objeción más frecuente es la compatibilidad: usted ha instrumentado sus aplicaciones con el SDK de Sentry (sentry-python, @sentry\u002Fnode, sentry-rails…) y no desea reescribir esa instrumentación. GlitchTip implementa la API de Sentry y acepta los eventos enviados por esos mismos SDK. El cambio se reduce a sustituir el valor de su variable de entorno `SENTRY_DSN` por el DSN que GlitchTip le proporciona al crear el proyecto. Cero modificaciones de código de aplicación.",{"type":43,"title":44,"items":45},"ul","Lo que obtiene con GlitchTip v6 autoalojado",[46,47,48,49,50,51,52],"**Huella reducida** — solo cuatro contenedores (Django, Celery, PostgreSQL, Redis), frente a la veintena de servicios de Sentry self-hosted.","**Compatibilidad con el SDK de Sentry** — todos los SDK oficiales de Sentry funcionan sin modificación; solo cambia el DSN.","**Soberanía de los datos** — las trazas de errores y los datos de usuario permanecen en su infraestructura, bajo su política de retención.","**Licencia GPL-3.0** — el código es auditable, sin componentes propietarios ni funciones reservadas a un plan de pago.","**Monitorización de disponibilidad** — GlitchTip incluye monitores de tipo uptime (ping HTTP) sin dependencia externa.","**Interfaz de gestión del rendimiento** — seguimiento de las transacciones, de las trazas N+1 y de las consultas lentas mediante la API compatible con Sentry.","**Bajo consumo de RAM** — 2 GB de RAM bastan para un uso individual o de equipo pequeño, sin ajustes de configuración.",{"type":39,"title":54,"body":55},"Requisitos previos antes de empezar","GlitchTip v6 se apoya en cuatro contenedores: Django (el servidor web y la interfaz), Celery (las tareas asíncronas de procesamiento de eventos), PostgreSQL (la base de datos principal) y Redis (la cola de tareas). Necesita:\n\n- Un VPS Linux con **2 GB de RAM como mínimo** (4 GB resultan cómodos para un equipo de diez desarrolladores y un volumen de algunos cientos de errores al día).\n- **Docker** y **Docker Compose** instalados — disponibles en todas las distribuciones recientes.\n- Un **nombre de dominio** o subdominio apuntando a la dirección IP de su VPS, para activar HTTPS mediante Let's Encrypt.\n- Los **puertos 80 y 443** abiertos en su cortafuegos.\n\nEn un VPS ServOrbit, Docker viene preinstalado. Los planes a partir de 2 vCPU y 2 GB de RAM cubren exactamente este perfil de carga.",{"type":57,"title":58,"steps":59},"steps","Desplegar GlitchTip con Docker Compose",[60,63,66,69,72,75,78,81],{"title":61,"body":62},"Crear el directorio de trabajo","Conéctese a su VPS por SSH y cree un directorio dedicado:\n\n`mkdir -p \u002Fopt\u002Fglitchtip && cd \u002Fopt\u002Fglitchtip`",{"title":64,"body":65},"Crear el archivo de variables de entorno","Cree un archivo `.env` con los valores de configuración:\n\n`SECRET_KEY=\u003Ccadena-aleatoria-larga>` — genérela con `openssl rand -hex 32`.\n`DATABASE_URL=postgresql:\u002F\u002Fglitchtip:contrasena@db:5432\u002Fglitchtip`\n`REDIS_URL=redis:\u002F\u002Fredis:6379\u002F0`\n`GLITCHTIP_DOMAIN=https:\u002F\u002Fglitchtip.su-dominio.com`\n`DEFAULT_FROM_EMAIL=no-reply@su-dominio.com`\n`EMAIL_URL=smtp:\u002F\u002Fusuario:contrasena@smtp.su-dominio.com:587`\n\nSustituya los valores por sus propias credenciales. El campo `GLITCHTIP_DOMAIN` debe coincidir exactamente con el dominio que va a proteger con HTTPS — queda inscrito en los DSN generados.",{"title":67,"body":68},"Crear el archivo docker-compose.yml","Cree un archivo `docker-compose.yml` con el contenido siguiente (adaptado de la documentación oficial de GlitchTip):\n\n```yaml\nversion: \"3.8\"\nx-environment: &default-environment\n  env_file: .env\nservices:\n  db:\n    image: postgres:16\n    environment:\n      POSTGRES_DB: glitchtip\n      POSTGRES_USER: glitchtip\n      POSTGRES_PASSWORD: contrasena\n    volumes:\n      - pg_data:\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata\n  redis:\n    image: redis:7\n    volumes:\n      - redis_data:\u002Fdata\n  web:\n    image: glitchtip\u002Fglitchtip:latest\n    depends_on: [db, redis]\n    ports:\n      - \"127.0.0.1:8000:8080\"\n    \u003C\u003C: *default-environment\n  worker:\n    image: glitchtip\u002Fglitchtip:latest\n    command: .\u002Fbin\u002Frun-celery-with-beat.sh\n    depends_on: [db, redis]\n    \u003C\u003C: *default-environment\nvolumes:\n  pg_data:\n  redis_data:\n```\n\nObserve que el puerto 8000 está enlazado únicamente a `127.0.0.1`: el servicio nunca se expondrá directamente, sino a través de un proxy inverso.",{"title":70,"body":71},"Inicializar la base de datos","Ejecute las migraciones de Django para crear el esquema:\n\n`docker compose run --rm web .\u002Fmanage.py migrate`\n\nEste comando se lanza una sola vez en la instalación y, después, en cada actualización a una nueva versión de GlitchTip.",{"title":73,"body":74},"Crear el primer superusuario","Cree su cuenta de administrador:\n\n`docker compose run --rm web .\u002Fmanage.py createsuperuser`\n\nIntroduzca la dirección de correo y la contraseña cuando el asistente las solicite.",{"title":76,"body":77},"Iniciar la stack","Inicie todos los contenedores en segundo plano:\n\n`docker compose up -d`\n\nCompruebe que los cuatro contenedores están en ejecución con `docker compose ps`. El servicio web responde en `http:\u002F\u002F127.0.0.1:8000`.",{"title":79,"body":80},"Configurar el proxy inverso nginx con HTTPS","Instale nginx y Certbot si aún no lo ha hecho:\n\n`apt install -y nginx certbot python3-certbot-nginx`\n\nCree un vhost en `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fglitchtip` con el bloque `server` que escucha en el puerto 80, define `server_name glitchtip.su-dominio.com` y reenvía el tráfico hacia `http:\u002F\u002F127.0.0.1:8000` con `proxy_pass`. Active la configuración y obtenga después el certificado:\n\n`certbot --nginx -d glitchtip.su-dominio.com`\n\nCertbot actualiza automáticamente el vhost para redirigir HTTP hacia HTTPS y añade el bloque SSL.",{"title":82,"body":83},"Conectar el SDK de Sentry de sus aplicaciones","En la interfaz de GlitchTip, cree una organización y después un proyecto. GlitchTip genera un DSN con el formato `https:\u002F\u002F\u003Cclave>@glitchtip.su-dominio.com\u002F\u003Cid-proyecto>`.\n\nEn cada una de sus aplicaciones, sustituya el valor de `SENTRY_DSN` (o del parámetro `dsn` pasado a `Sentry.init()`) por ese nuevo DSN. Reinicie sus procesos. Los eventos aparecen en GlitchTip sin ninguna otra modificación.",{"type":39,"title":85,"body":86},"Configuración posterior a la instalación","Tras el primer arranque, ajuste estos puntos en la interfaz de administración:\n\n**Variables de entorno complementarias.** Active el envío de alertas por correo definiendo `EMAIL_URL` en su `.env`. Añada `GLITCHTIP_MAX_EVENT_LIFE_DAYS=90` para limitar la retención de los eventos y controlar el crecimiento de la base de datos.\n\n**Acceso multiequipo.** GlitchTip gestiona organizaciones y miembros con distintos niveles de permiso. Cree sus equipos desde Configuración → Miembros e invite a sus desarrolladores por correo electrónico.\n\n**Monitores de disponibilidad.** En la sección Monitors de su proyecto, cree un monitor de tipo ping para cada uno de sus servicios expuestos: GlitchTip envía una petición HTTP a intervalos regulares y crea una issue si el servicio no responde en el plazo configurado.",{"type":88,"title":89,"body":90},"tip","Endurecimiento de la stack","Restrinja el acceso al puerto 8000 con ufw: `ufw allow 80\u002Ftcp && ufw allow 443\u002Ftcp && ufw deny 8000\u002Ftcp`. Añada `SECURE_SSL_REDIRECT=True` y `SESSION_COOKIE_SECURE=True` en su `.env` para forzar HTTPS a nivel de Django. Programe un `pg_dump` diario hacia una ubicación remota — el volumen `pg_data` contiene la totalidad de sus datos de errores y de configuración. Por último, consulte la guía de endurecimiento inicial de un servidor Linux antes de exponer la instancia a producción.",{"type":39,"title":92,"body":93},"Resolución de los errores más comunes","**`Error: relation \"glitchtip_*\" does not exist`** — La migración no se ha ejecutado. Lance `docker compose run --rm web .\u002Fmanage.py migrate` y compruebe que el contenedor `db` está en buen estado con `docker compose ps`.\n\n**`CSRF verification failed. Request aborted.`** — La variable `GLITCHTIP_DOMAIN` no coincide con el dominio desde el que accede a la interfaz. Compruebe que está definida sin barra final y reinicie los contenedores con `docker compose restart`.\n\n**`Connection refused` en el DSN desde su aplicación** — El puerto 8000 no es accesible desde el exterior (es intencionado). Compruebe que nginx reenvía correctamente el tráfico HTTPS hacia `127.0.0.1:8000`: `curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" http:\u002F\u002F127.0.0.1:8000\u002Fapi\u002F0\u002F` debe devolver 200.\n\n**Los eventos aparecen en los logs de Celery pero no en la interfaz** — El worker de Celery arrancó antes de que terminaran las migraciones. Reinícielo con `docker compose restart worker`.\n\n**`No such file or directory: '\u002Fetc\u002Fnginx\u002Fsites-enabled\u002Fglitchtip'`** — Ha olvidado crear el enlace simbólico. Ejecute `ln -s \u002Fetc\u002Fnginx\u002Fsites-available\u002Fglitchtip \u002Fetc\u002Fnginx\u002Fsites-enabled\u002F` y después `nginx -t && systemctl reload nginx`.",{"type":39,"title":95,"body":96},"GlitchTip en producción en un VPS","GlitchTip v6, publicado en febrero de 2026 bajo licencia GPL-3.0, se apoya en cuatro contenedores. Su compatibilidad con el SDK de Sentry lo convierte en una salida limpia de Sentry self-hosted cuando este acumula regresiones difíciles de sortear.\n\nPara ir más lejos, consulte nuestra guía sobre la checklist de Docker Compose en producción para asegurar aún más su despliegue, y nuestro artículo sobre la rutina de parches de las aplicaciones autoalojadas para mantener GlitchTip al día sin interrupción del servicio.\n\nUna instancia de GlitchTip funciona con 2 GB de RAM: un VPS de 2 vCPU y 2 GB de RAM cubre exactamente ese perfil, con acceso root y elección del sistema operativo.","Su rastreador de errores, en su propia infraestructura","GlitchTip funciona con 2 GB de RAM: el VPS Power (2 vCPU, 2 GB RAM, 60 GB SSD) cubre exactamente este perfil de carga, con acceso root y elección del sistema operativo — sin intermediarios, sin configuración impuesta.","Desplegar un VPS","\u002Fmarketplace\u002Fdesarrollo\u002Fglitchtip",[102,121,140],{"id":103,"slug":104,"slugs":105,"title":109,"excerpt":110,"readTime":111,"views":18,"isPinned":19,"publishedAt":112,"updatedAt":21,"category":113,"categories":118,"featuredImage":30,"bgImage":31,"posterImage":120,"relatedSolution":30},229,"checklist-docker-compose-en-produccion",{"fr":106,"en":107,"ar":108,"es":104},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط","Docker Compose en producción: checklist de 10 puntos","Checklist de Docker Compose en producción: 10 ajustes esenciales, gestión de secretos sin downtime, copias de volúmenes sin corrupción, CVE-2026-17106.",8,"2026-08-06T00:00:00+00:00",{"id":114,"name":115,"slug":116,"color":117,"icon":116},3,"Despliegue","deploiement","bg-success\u002F10 text-success",[119],{"id":114,"name":115,"slug":116,"color":117,"icon":116},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",{"id":122,"slug":123,"slugs":124,"title":128,"excerpt":129,"readTime":23,"views":130,"isPinned":19,"publishedAt":131,"updatedAt":21,"category":132,"categories":137,"featuredImage":30,"bgImage":31,"posterImage":139,"relatedSolution":30},224,"apps-self-hosted-rutina-de-parches",{"fr":125,"en":126,"ar":127,"es":123},"routine-correctifs-apps-self-hosted","self-hosted-apps-the-patching-routine","التطبيقات-المستضافة-ذاتيا-روتين-التصحيحات","Aplicaciones self-hosted: la rutina de parches","Inventario, avisos de seguridad, ventana de parcheo, copia de seguridad y verificación: la rutina que falta en la mayoría de los parques self-hosted.",1,"2026-08-05T00:00:00+00:00",{"id":111,"name":133,"slug":134,"color":135,"icon":136},"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[138],{"id":111,"name":133,"slug":134,"color":135,"icon":136},"\u002Fblog\u002Fcovers\u002Froutine-correctifs-apps-self-hosted-poster.svg",{"id":141,"slug":142,"slugs":143,"title":147,"excerpt":148,"readTime":111,"views":18,"isPinned":19,"publishedAt":112,"updatedAt":21,"category":149,"categories":150,"featuredImage":30,"bgImage":31,"posterImage":152,"relatedSolution":30},228,"hardening-inicial-servidor-linux",{"fr":144,"en":145,"ar":146,"es":142},"durcissement-serveur-linux-initial","initial-linux-server-hardening","تصليب-الخادم-linux-الأولي","Endurecimiento (hardening) inicial de un servidor Linux","Cree un usuario sudo, configure SSH con claves y active UFW y fail2ban en Ubuntu o Debian en menos de una hora.",{"id":111,"name":133,"slug":134,"color":135,"icon":136},[151],{"id":111,"name":133,"slug":134,"color":135,"icon":136},"\u002Fblog\u002Fcovers\u002Fdurcissement-serveur-linux-initial-poster.svg",1789665022434]