[{"data":1,"prerenderedAt":160},["ShallowReactive",2],{"seo-verification":3,"blog-alojar-su-pds-de-bluesky-en-un-vps-con-el-protocolo-at-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-alojar-su-pds-de-bluesky-en-un-vps-con-el-protocolo-at-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":94,"ctaBody":95,"ctaButton":96,"ctaUrl":97,"relatedPosts":98},305,"alojar-su-pds-de-bluesky-en-un-vps-con-el-protocolo-at",{"fr":12,"en":13,"ar":14,"es":10},"heberger-son-pds-bluesky-at-protocol-vps","host-your-bluesky-pds-on-a-vps-with-the-at-protocol","استضافة-pds-bluesky-على-vps-بواسطة-بروتوكول-at","Alojar su PDS de Bluesky en un VPS con el protocolo AT","Despliegue su Personal Data Server de Bluesky en un VPS: DID portátil, DNS wildcard, TLS automático con Caddy y Watchtower. Bastan 512 MB de RAM.",7,0,false,"2026-08-26T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-son-pds-bluesky-at-protocol-vps-poster.svg",{"categorySlug":33,"appSlug":34},"desarrollo","docker-starter","El protocolo AT (atproto) disocia su identidad de Bluesky del servidor que la aloja. Mientras su cuenta resida en bsky.social, es Bluesky Inc. quien controla su DID. Alojar su propio Personal Data Server en un VPS transfiere ese control: sus publicaciones, follows y handle le siguen sea cual sea el futuro de la plataforma. El repositorio oficial github.com\u002Fbluesky-social\u002Fpds ofrece un Compose listo para usar con Caddy (TLS automático) y Watchtower (actualizaciones automáticas), con una carga de mantenimiento comparable a la de cualquier otro servicio Docker.",[37,41,53,56,81,84,88,91],{"type":38,"title":39,"body":40},"h2","Ser dueño de su identidad Bluesky","La portabilidad del protocolo AT se basa en una separación estricta entre el DID (Decentralized Identifier), el PDS que almacena sus datos y el relayer de la red. Su DID doc, firmado criptográficamente por su servidor, enumera las claves de firma y el punto de entrada del servicio que aloja su repositorio. Cambiar de PDS actualiza ese documento sin modificar el DID en sí: sus seguidores no ven nada, sus enlaces de perfil siguen siendo válidos y su handle no cambia.\n\nMientras delegue ese alojamiento en bsky.social, la portabilidad sigue siendo teórica. Migrarla a un VPS que usted administra la hace efectiva: usted controla las claves, usted decide las reglas de registro, y ninguna decisión de política externa puede privarle de su repositorio de publicaciones.",{"type":42,"title":43,"items":44},"ul","Ventajas de un PDS autoalojado",[45,46,47,48,49,50,51,52],"Su handle de Bluesky pasa a ser un subdominio de su propio dominio, por ejemplo `usuario.su-dominio.com`.","Sus publicaciones, likes y follows se almacenan en un repositorio firmado criptográficamente en su servidor — usted es su único propietario.","Si bsky.social cambia de política, una migración no cuesta ni un seguidor ni una publicación: el protocolo AT transfiere el repositorio íntegro.","Usted gestiona la lista de cuentas admitidas mediante un sistema de códigos de invitación: una instancia estrictamente personal sigue siendo posible.","Watchtower vigila la imagen del PDS y lanza las actualizaciones automáticamente, sin intervención manual.","Caddy gestiona el TLS y la renovación de los certificados, incluido el wildcard DNS que exigen los handles en subdominio.","El consumo de memoria en reposo ronda los 512 MB: compatible con la mayoría de los VPS de gama de entrada.","El código se publica bajo licencia MIT en github.com\u002Fbluesky-social\u002Fpds; no existe ninguna edición empresarial de pago.",{"type":38,"title":54,"body":55},"Requisitos con cifras","Un VPS con al menos 512 MB de RAM y 1 vCPU basta para un uso personal (de una a cinco cuentas). Prevea 20 GB de almacenamiento SSD como mínimo para los medios y el historial de publicaciones. Para un uso asociativo con una decena de cuentas, 1 GB de RAM y 40 GB de almacenamiento ofrecen más margen.\n\nEn cuanto a la red, los puertos 80 y 443 deben ser alcanzables desde el exterior. El PDS mantiene una conexión WebSocket persistente hacia la red Bluesky: asegúrese de que su firewall no corta las conexiones largas inactivas.\n\nDNS: es indispensable un registro A wildcard `*.su-dominio.com` que apunte a la IP de su VPS. Permite que cada handle en subdominio se resuelva sin necesidad de una entrada DNS distinta por cuenta. Si su registrador no soporta los wildcards, la configuración manual de un handle mediante un registro TXT `_atproto.su-dominio.com` sigue siendo posible, pero más incómoda.\n\nSoftware necesario: Docker y Docker Compose v2. No hace falta ninguna otra dependencia; el Compose oficial incluye Caddy, Watchtower y el PDS en una red interna aislada.",{"type":57,"title":58,"steps":59},"steps","Instalación paso a paso",[60,63,66,69,72,75,78],{"title":61,"body":62},"Clonar el repositorio oficial","Conéctese por SSH a su VPS y clone el repositorio de referencia. La rama `main` es la rama estable recomendada por los mantenedores: `git clone https:\u002F\u002Fgithub.com\u002Fbluesky-social\u002Fpds \u002Fopt\u002Fpds`. Entre después en el directorio con `cd \u002Fopt\u002Fpds`.",{"title":64,"body":65},"Crear el archivo de entorno","Copie el ejemplo incluido en el repositorio: `cp .env.example .env`.\n\nInforme como mínimo `PDS_HOSTNAME` (su dominio raíz, sin el wildcard, p. ej. `su-dominio.com`), `PDS_JWT_SECRET` y `PDS_ADMIN_PASSWORD`. Genere valores aleatorios robustos: `openssl rand -hex 32` produce una cadena de 64 caracteres suficiente para cada uno de los dos secretos.",{"title":67,"body":68},"Configurar el DNS wildcard","En la interfaz de su registrador o de Cloudflare, cree un registro A `*.su-dominio.com` que apunte a la dirección IP de su VPS.\n\nLa propagación tarda en general unos minutos, a veces hasta 24 h. Compruébelo con `dig +short test.su-dominio.com @1.1.1.1` antes de pasar al paso siguiente: si la respuesta está vacía, espere.",{"title":70,"body":71},"Arrancar los servicios","El Compose oficial arranca el PDS, Caddy y Watchtower con un solo comando: `docker compose up -d`.\n\nCaddy obtiene automáticamente el certificado TLS para `su-dominio.com` y `*.su-dominio.com`. Siga los logs con `docker compose logs -f caddy` para confirmar que el challenge ha funcionado antes de crear la primera cuenta.",{"title":73,"body":74},"Crear la primera cuenta","La imagen del PDS expone un comando de administración en línea. Cree su cuenta: `docker compose exec pds \u002Fpds\u002Fbin\u002Fcreate-account --handle usuario.su-dominio.com --email usuario@su-dominio.com --password \u003Ccontrasena>`.\n\nAbra la aplicación Bluesky, elija «Servidor personalizado» (dirección: `https:\u002F\u002Fsu-dominio.com`), introduzca el código de invitación devuelto y finalice la creación de la cuenta.",{"title":76,"body":77},"Migrar desde bsky.social (si procede)","Si ya tiene una cuenta en bsky.social, el protocolo AT permite una migración sin perder seguidores ni publicaciones. En la aplicación Bluesky: Ajustes → Gestionar mi cuenta → Migrar la cuenta. Introduzca la dirección de su PDS (`https:\u002F\u002Fsu-dominio.com`) y siga los pasos. Su DID se actualiza para apuntar a su servidor; sus seguidores no tienen que hacer nada — le siguen viendo en su feed.",{"title":79,"body":80},"Verificar la instalación","Abra `https:\u002F\u002Fsu-dominio.com\u002Fxrpc\u002Fcom.atproto.server.describeServer` en un navegador.\n\nLa respuesta JSON confirma que su PDS es accesible y que el TLS es válido. Busque después `@usuario.su-dominio.com` en la aplicación Bluesky para comprobar que el handle se resuelve correctamente.",{"type":38,"title":82,"body":83},"Configuración posterior a la instalación","Códigos de invitación. Por defecto, los registros están cerrados: solo las cuentas creadas con un código de invitación pueden unirse a su PDS. Genere códigos adicionales con `docker compose exec pds \u002Fpds\u002Fbin\u002Fcreate-invite-code`. Para un uso estrictamente personal, esta restricción es la configuración recomendada.\n\nVigilancia con Watchtower. Watchtower ya está en el Compose oficial y vigila la imagen del PDS. En cuanto se publica una nueva versión en el registro de imágenes, descarga la imagen y reinicia el servicio, sin intervención por su parte. Para recibir una notificación en cada actualización, añada `WATCHTOWER_NOTIFICATION_EMAIL=usuario@su-dominio.com` en el archivo `.env`.\n\nCopias de seguridad. El directorio `data\u002F` (configurable mediante `PDS_DATA_DIRECTORY`) contiene la base SQLite y los medios. Programe una copia de seguridad periódica: el directorio es coherente en frío si detiene los servicios con `docker compose stop` antes de copiarlo.",{"type":85,"title":86,"body":87},"tip","Endurecimiento recomendado","Añada `PDS_REGISTRATION_DISABLED=true` en `.env` para exigir un código de invitación en cualquier registro. Reinicie el PDS con `docker compose restart pds` tras la modificación.\n\nPruebe con regularidad la restauración de sus copias de seguridad arrancando un PDS efímero en un segundo directorio: una copia de seguridad no probada no es una copia de seguridad. Una base SQLite corrupta sin una restauración válida significa la pérdida de todas las publicaciones.",{"type":38,"title":89,"body":90},"Resolución de problemas frecuentes","DNS no propagado. Si Caddy no consigue obtener el certificado, `docker compose logs caddy` muestra `failed to obtain certificate`. Compruebe la resolución del wildcard con `dig *.su-dominio.com @1.1.1.1`: una respuesta vacía indica que la entrada DNS aún no existe o aún no se ha propagado.\n\nError de certificado (puertos bloqueados). Si el registro DNS existe pero el challenge TLS-ALPN falla, es probable que un firewall esté bloqueando el puerto 80 o el 443. En un VPS con `ufw`, revise `ufw status` y autorice ambos puertos: `ufw allow 80\u002Ftcp && ufw allow 443\u002Ftcp`.\n\nMigración de DID fallida. Si la aplicación Bluesky devuelve un error durante la migración, confirme que su PDS responde desde el exterior (endpoint `describeServer` más arriba). La migración contacta con su servidor desde los servidores de bsky.social: un timeout indica un problema de red o un certificado no válido.\n\nHandle no resuelto. Si `@usuario.su-dominio.com` no se resuelve en la aplicación Bluesky, compruebe que el wildcard DNS está bien propagado y que el endpoint `\u002F.well-known\u002Fatproto-did` de su handle responde con el DID correcto (`curl https:\u002F\u002Fusuario.su-dominio.com\u002F.well-known\u002Fatproto-did`).",{"type":38,"title":92,"body":93},"Para ir más lejos","Un PDS autoalojado se integra de forma natural en una infraestructura Docker ya existente. La guía sobre \u003Ca href=\"\u002Fblog\u002Fdeployer-avec-caddy\">el despliegue con Caddy\u003C\u002Fa> cubre los casos más avanzados de reverse proxy multiservicio en el mismo VPS. Si además desea alojar su forja Git, la guía \u003Ca href=\"\u002Fblog\u002Fheberger-forgejo\">Forgejo en VPS\u003C\u002Fa> sigue el mismo modelo Compose. Para asegurar el acceso de administrador a sus servicios autoalojados sin exponerlos directamente a internet, la guía \u003Ca href=\"\u002Fblog\u002Fself-host-headscale-tailscale-vps\">Headscale\u002FTailscale en VPS\u003C\u002Fa> propone una alternativa a un bastión SSH.","Un VPS listo para su PDS de Bluesky","Despliegue su Personal Data Server en un VPS de alto rendimiento, configurable en unos minutos. Sus datos, su infraestructura.","Descubrir las soluciones para desarrolladores","\u002Fsolutions\u002Fdeveloppeurs",[99,121,137],{"id":100,"slug":101,"slugs":102,"title":106,"excerpt":107,"readTime":108,"views":109,"isPinned":19,"publishedAt":110,"updatedAt":21,"category":111,"categories":115,"featuredImage":29,"bgImage":30,"posterImage":117,"relatedSolution":118},39,"desplegar-con-caddy",{"fr":103,"en":104,"ar":105,"es":101},"deployer-avec-caddy","deploy-your-applications-with-caddy-on-a-vps","انشر-تطبيقاتك-باستخدام-caddy-على-خادم-vps","Desplegar sus aplicaciones con Caddy en un VPS","Despliegue Caddy en su VPS: servidor web y reverse proxy con HTTPS automático. Un Caddyfile de pocas líneas basta para pasar a producción.",3,1,"2026-05-12T00:00:00+00:00",{"id":108,"name":112,"slug":113,"color":114,"icon":113},"Despliegue","deploiement","bg-success\u002F10 text-success",[116],{"id":108,"name":112,"slug":113,"color":114,"icon":113},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caddy-poster.svg",{"categorySlug":119,"appSlug":120},"despliegue-de-aplicaciones-devops","caddy",{"id":122,"slug":123,"slugs":124,"title":128,"excerpt":129,"readTime":130,"views":131,"isPinned":19,"publishedAt":132,"updatedAt":21,"category":133,"categories":134,"featuredImage":29,"bgImage":30,"posterImage":136,"relatedSolution":29},75,"alojar-forgejo-en-un-vps",{"fr":125,"en":126,"ar":127,"es":123},"heberger-forgejo","host-forgejo-on-your-own-vps","استضافة-forgejo-على-خادم-vps-الخاص-بك","Alojar Forgejo en su VPS: guía completa 2025","Instale Forgejo en su VPS con Docker, SSL, runners Actions y seguridad reforzada. Guía paso a paso de 1900 palabras para una forja Git soberana.",9,2,"2026-04-06T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[135],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fheberger-forgejo-poster.svg",{"id":138,"slug":139,"slugs":140,"title":144,"excerpt":145,"readTime":146,"views":109,"isPinned":19,"publishedAt":147,"updatedAt":21,"category":148,"categories":154,"featuredImage":29,"bgImage":30,"posterImage":156,"relatedSolution":157},164,"auto-alojar-headscale-en-un-vps-servidor-tailscale",{"fr":141,"en":142,"ar":143,"es":139},"self-host-headscale-tailscale-vps","self-host-headscale-on-a-vps-your-own-tailscale-control-server","استضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك","Alojar Headscale en un VPS: servidor de control Tailscale","Sustituya el servidor de control en la nube de Tailscale por Headscale en su VPS: usuarios ilimitados, malla WireGuard completa, magic DNS y ACL, sin SaaS.",6,"2026-07-05T00:00:00+00:00",{"id":149,"name":150,"slug":151,"color":152,"icon":153},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[155],{"id":149,"name":150,"slug":151,"color":152,"icon":153},"\u002Fblog\u002Fcovers\u002Fself-host-headscale-tailscale-vps-poster.svg",{"categorySlug":158,"appSlug":159},"redes-vpn","headscale",1789665004332]