Inicio Instalación Características Fediverso Configuración Condiciones Privacidad Aviso Legal
Idioma / Language
v2.4

Documentación Técnica

Guía de instalación y despliegue de MILITANT, la red social militante autogestionada.

Instalación y Despliegue

Guía paso a paso para desplegar MILITANT en tu servidor.

Desarrollo (Local)

Para contribuir o probar con las herramientas de desarrollo (Mailpit, Hot-reload...) :

git clone https://gitlab.com/militant1/millitant.git
cd millitant
docker compose up -d --build

Instalación Guiada (Recomendada)

La forma más simple de desplegar la aplicación web principal con la imagen oficial preconstruida.

1. Descargar los archivos necesarios:

mkdir -p militant-install/installer
cd militant-install
curl -fsSLo installer/militant https://gitlab.com/militant1/militant-server-installer/-/raw/main/militant
curl -fsSLO https://gitlab.com/militant1/millitant/-/raw/main/docker-compose.prod.yml
curl -fsSLO https://gitlab.com/militant1/millitant/-/raw/main/.env.template
chmod +x installer/militant

2. Ejecutar el instalador:

./installer/militant

El script crea .env automáticamente, descarga la imagen Docker de la aplicación web principal, valida la configuración y arranca docker compose.

Despliegue manual con Compose

Alternativa si prefieres gestionar el archivo .env tú mismo.

1. Descargar archivos:

curl -O https://gitlab.com/militant1/millitant/-/raw/main/docker-compose.hosting.yml
curl -O https://gitlab.com/militant1/millitant/-/raw/main/.env.template

2. Configurar:

cp .env.template .env
nano .env # Completa tus accesos (DB, SMTP...)

3. Iniciar:

docker compose -f docker-compose.hosting.yml up -d

Variante mínima

También puedes usar directamente el compose de producción:

1. Descargar archivos:

curl -O https://gitlab.com/militant1/millitant/-/raw/main/docker-compose.prod.yml
curl -O https://gitlab.com/militant1/millitant/-/raw/main/.env.template

2. Configurar:

cp .env.template .env
nano .env # Completa tus accesos (DB, SMTP...)

3. Iniciar:

docker compose -f docker-compose.prod.yml up -d

Configuración de Red Avanzada

Si utilizas Cloudflare o un proxy inverso, MILITANT detecta automáticamente la IP real de tus usuarios.

Toda la configuración de Apache (`mod_remoteip`) es gestionada por nuestro script de actualización en caliente.

# Aplicar la configuración de Cloudflare en tu servidor
sudo ./hot_update.sh

Instalación en CasaOS

MILITANT es compatible con CasaOS para una instalación simplificada en un clic.

  • Abre el App Center y haz clic en Custom Install (arriba a la derecha).
  • Haz clic en el icono Docker Compose (arriba a la derecha de la ventana modal).
  • Pega el contenido del archivo docker-compose.casaos.yml.
  • Haz clic en Install.
  • Accede a http://IP-CASAOS:8080.
  • Crea la cuenta admin: http://IP-CASAOS:8080/setup_admin.php.
Asegúrate de haber configurado correctamente tus puertos antes de la instalación.

Requisitos del sistema : ~512 Mo RAM mínimo, ~5 Go disco (según subidas)

Protección Fail2Ban

MILITANT incluye protección contra ataques de fuerza bruta mediante Fail2Ban.

Verificar el estado:

docker exec -it militant-fail2ban fail2ban-client status apache-auth

Configuración por defecto: 5 intentos fallidos antes de un baneo de 1 hora.

Copia de Seguridad Automática

Se realiza una copia de seguridad automática de la base de datos y de los archivos (uploads) cada noche a las 02:00.

Las copias de seguridad se almacenan en el directorio backups/. Se recomienda exportarlas regularmente a un servidor externo.

🏥 Endpoints de Verificación de Salud

MILITANT expone endpoints de salud para monitorear el estado de los servicios en tiempo real.

Endpoints Públicos (Página de Estado)

Estos endpoints son accesibles públicamente y no revelan información sensible:

https://militant.revlibertaire.com/health-public.php
https://api.militant.revlibertaire.com/health-public.php

Respuesta JSON:

{
  "status": "ok",
  "timestamp": 1771206234
}

Valores Posibles:

  • ok - Servicio operativo ✅
  • degraded - Servicio degradado ⚠️
  • partial_outage - Interrupción parcial 🔴

Endpoints Privados (Monitoreo Interno)

Estos endpoints están restringidos al acceso local (localhost y redes internas) y proporcionan detalles de infraestructura:

https://militant.revlibertaire.com/health.php
https://api.militant.revlibertaire.com/health.php

Respuesta Detallada (solo localhost):

{
  "status": "ok",
  "timestamp": 1771206234,
  "services": {
    "database": "ok",
    "storage": "ok",
    "php": "ok"
  }
}

Acceso Externo:

{
  "error": "Access denied",
  "status": "forbidden"
}

Seguridad: Los endpoints privados solo aceptan conexiones desde 127.0.0.1, ::1 y redes privadas (10.x.x.x, 172.16-31.x.x, 192.168.x.x).

Página de Estado Pública

Consulta el estado de los servicios en tiempo real:

https://militant.revlibertaire.com/status.html

La página consulta automáticamente los endpoints públicos cada 30 segundos.

Funciones

Seguridad y Cuenta

  • Autenticación de doble factor (2FA) mediante TOTP (Google Authenticator, Authy...)
  • Passkeys (WebAuthn): Inicio de sesión biométrico (huella, rostro)
  • Contraseñas cifradas con Argon2ID
  • Fail2Ban integrado (protección anti-fuerza bruta)
  • Protección estricta contra CSRF, XSS y Rate Limiting

Publicaciones

  • Publicaciones con fotos/vídeos (hasta 500MB)
  • Rich Link Previews (vistas previas automáticas de enlaces)
  • Reacciones emoji
  • Comentarios anidados con respuestas
  • @menciones con notificaciones

Social

  • Mensajes privados con cifrado básico
  • Historias efímeras (24h) con navegación táctil
  • Feed "Para ti" / "Seguidos" cronológico
  • Sistema de amigos y seguidores
  • Búsqueda global unificada

Grupos y Colectivos (Mensajería V2)

Un sistema de mensajería instantánea íntegro y completo, diseñado para la organización colectiva.

  • Gobernanza horizontal: Todos los miembros son administradores por defecto. Gestión colegiada de miembros y ajustes.
  • Mensajes efímeros: Configura la autodestrucción automática (de 1 minuto a 7 días) para tus discusiones sensibles.
  • Audio y Medios: Grabación de voz directa (compatible con iOS/Android), envío de fotos y vídeos con visor integrado.
  • Seguridad de los intercambios: Aislamiento estricto de los datos de mensajería y alertas en caso de intentos de secuestro de sesión.
  • Solicitudes de adhesión: Sistema de validación para grupos privados con cuestionarios personalizables.

Internacionalización

  • Interfaz traducida al Francés, Inglés, Español, Esperanto
  • Traducción automática de publicaciones y mensajes (LibreTranslate)
  • Detección automática de idioma

Federación (Fediverso)

¡MILITANT está conectado al Fediverso! Interactúa con usuarios de Mastodon, Bluesky y otras plataformas descentralizadas directamente desde tu red.

  • Sigue cuentas remotas fácilmente mediante búsqueda de handles
  • Un feed federado dedicado para seguir las actualizaciones de tus suscripciones externas
  • Compartición asíncrona para una interoperabilidad perfecta con otros servidores

📱 Interfaz Móvil

Una experiencia optimizada nativamente para smartphones sin necesidad de aplicaciones adicionales.

  • Barra de navegación inferior: Acceso rápido a Inicio, Búsqueda, Mensajes, Perfil.
  • Menú Offcanvas: Acceso lateral a todas las funciones avanzadas.
  • Encabezado adaptativo: Logo y acciones esenciales siempre visibles.
  • Badge PWA: Soporte de notificaciones nativas en Android.

Configuración (.env)

Variable Descripción Por defecto (Dev)
DB_HOST Host MySQL db
DB_NAME Nombre de la base militant
DB_USER Usuario MySQL militant
DB_PASS Contraseña MySQL militant123
SMTP_HOST Servidor SMTP mailpit
SMTP_PORT Puerto SMTP 1025
APP_URL URL pública http://localhost:9000
HCAPTCHA_SITE_KEY Clave del sitio hCaptcha -
HCAPTCHA_SECRET_KEY Clave secreta hCaptcha -

Moderación Colectiva

Sin jerarquía. Decisiones por consenso.

  • Reportes tratados por voto colectivo
  • 70% de consenso requerido
  • Moderadores elegidos y revocables por todos

Idiomas

Disponible en: Français, English, Español, Esperanto

Añadir un idioma: crear lang/xx.php

Aplicación PWA

MILITANT es una Aplicación Web Progresiva (PWA) instalable en móvil y escritorio. Funciona incluso sin conexión.

En Android

  1. Abre militant.revlibertaire.com en Chrome
  2. Pulsa el menú (tres puntos arriba a la derecha)
  3. Selecciona "Instalar aplicación" o "Añadir a pantalla de inicio"
  4. Confirma pulsando en "Instalar"
  5. El icono de MILITANT aparecerá en tu pantalla de inicio

En iPhone / iPad

  1. Abre militant.revlibertaire.com en Safari
  2. Pulsa el botón Compartir (en la parte inferior de la pantalla)
  3. Desplázate y selecciona "Añadir a la pantalla de inicio"
  4. Pulsa "Añadir" arriba a la derecha
  5. El icono de MILITANT aparecerá en tu pantalla de inicio

En ordenador (Chrome, Edge)

  1. Abre militant.revlibertaire.com
  2. Haz clic en el icono de instalación en la barra de direcciones
  3. O ve al menú "Instalar MILITANT"
  4. La aplicación se abrirá en su propia ventana

Ventajas de la PWA: Acceso rápido desde la pantalla de inicio, notificaciones push, funciona sin conexión, sin necesidad de pasar por una tienda de aplicaciones.