Logo de Uanna

Microblogging federado para comunidades

Uanna es un servidor ligero de microblogging, sin bases de datos ni complicaciones, para comunidades por invitación menores de 80 personas que quieren conectarse al Fediverso.

Acceder al repositorio
Sin base de datos Guarda objetos, usuarios, índices, colas y relaciones en archivos JSON y XML.
Comunidades por invitación Pensado para grupos menores de 80 personas que quieren control, moderación y mantenimiento sencillo.
ActivityPub Conecta perfiles, publicaciones, respuestas, favoritos e impulsos con otros servidores del Fediverso.
Interfaz multidioma Cada instancia define su idioma por defecto y cada usuario puede elegir su idioma de interfaz.
Ligero y portable Se instala en PHP 8, con pocos requisitos y sin servicios externos obligatorios.

Desarrollado para RuralNEXT por Compañía Maximalista S.Coop..

Características

Microblogging propio

Publicaciones breves, hasta cuatro imágenes adjuntas por entrada con texto alternativo, edición, borrado, favoritos, impulsos reversibles y respuestas en forma de árbol. Las imágenes adjuntas se abren en un modal aparte para centrar la atención en la lectura y las personas, y reducir el estrés del scroll.

Fediverso sin complejidad

Expone WebFinger, actores, perfiles públicos, outbox, inbox, seguidores y entregas ActivityPub para hablar con Mastodon, snac y otros servidores compatibles.

Archivos JSON, XML y ZIP

La instancia funciona sobre archivos. Los objetos canónicos son JSON, los índices se pueden reconstruir y cada usuario puede exportar un ZIP con XML y adjuntos.

Panel de usuario

Cada usuario accede a un menú de vistas independientes para gestionar perfil, idioma de interfaz, contraseña, avatar, cabecera, timeline con scroll infinito, buscador de publicaciones antiguas, notificaciones, red, mensajes privados y exportación o baja desde una interfaz responsive.

Grafo social del nodo

El administrador puede generar bajo demanda un PNG con la red social conocida por la instancia, incluyendo usuarios locales, usuarios remotos y relaciones de seguimiento. En Red, cada usuario puede descargar el grafo y consultar la vista Conectados con..., que lista perfiles remotos seguidos por miembros del nodo.

Soporte multidioma

La interfaz se traduce mediante archivos JSON. El administrador elige el idioma por defecto de la instancia y cada usuario puede seleccionar el suyo en el panel.

Perfiles federados

Los actores remotos pueden tener timeline interno dentro de la instancia, sin perder el enlace a su perfil original en el Fediverso.

Notificaciones útiles

El panel muestra contador de no leídas y pendientes de responder, con enlaces al perfil original del actor y a la publicación afectada.

Administración de instancia

El administrador configura nombre, presentación, favicon, avatar por defecto, cabecera por defecto, usuarios locales, contraseñas, permisos, actualizaciones y bloqueos.

Privacidad visible

Los mensajes privados no aparecen en vistas públicas y, cuando se muestran al destinatario en su timeline personal, llevan un aviso claro de privacidad.

Moderación comunitaria

Permite aprobar o descartar seguidores y publicaciones pendientes, silenciar, bloquear actores, bloquear servidores completos y recibir avisos de bloqueos relevantes.

Migración desde snac

Incluye herramientas de análisis, importación, reconstrucción de índices y validación de hilos para migrar instancias por invitación con cuidado.

Migración entre nodos Uanna

Exporta usuarios en ZIP con archive.xml, posts y adjuntos locales; el administrador puede importar XML o ZIP y restaurar el pasado del usuario en otro nodo.

Menciones locales y remotas

Reconoce menciones @usuario y @usuario@servidor, las enlaza y genera avisos para los usuarios locales mencionados.

App Android de instancia

El administrador puede compilar un APK desde el panel. La app toma el nombre de la instancia, usa el favicon como icono y se ofrece a todos los usuarios como descarga.

Logo EUPL

Software libre

Distribuido bajo la licencia EUPL v1.2 para que puedas usarlo, estudiarlo, modificarlo y compartirlo libremente con reciprocidad.

Instalación y requisitos

Requisitos mínimos

  • PHP 8.1 o superior.
  • Extensiones json, openssl, mbstring, fileinfo, gd, dom y zip.
  • Dominio con HTTPS si se quiere federar con otros servidores.
  • Permisos de escritura en oannes/data y oannes/public/assets.
  • Opcional para compilar app: JDK 17, Gradle y Android SDK.

Puesta en marcha rápida

  1. Clona github.com/ciamaximalista/uanna.
  2. Copia oannes/config/oannes.example.php como oannes/config/oannes.php.
  3. Ajusta host, base_url y zona horaria.
  4. Apunta el document root del dominio a oannes/public.
  5. Abre la web y crea el primer administrador.

Mantenimiento

Las colas de entrega y entrada se procesan con comandos PHP sencillos:

php oannes/bin/oannes.php queue-run 25

php oannes/bin/oannes.php inbox-run 25

El administrador puede elegir cron o actualización al detectarse actividad. Con cron, Uanna muestra el bloque exacto de crontab para la instalación.

También puede compilar desde el panel un APK Android de la instancia si el servidor tiene la toolchain necesaria.

Para qué sirve

Comunidades por invitación

Uanna prioriza comunidades de confianza, grupos menores de 80 personas, administración cercana y reglas claras frente al crecimiento masivo.

Infraestructura sobria

Al no depender de bases de datos ni servicios auxiliares, una copia de archivos bien hecha basta para entender, mover o restaurar la instancia, incluidos adjuntos de usuarios.

Identidad federada

Cada usuario tiene perfil público en su servidor, puede conversar con otros actores del Fediverso y actuar sobre publicaciones públicas cuando está logueado.