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

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

Auto-alojamiento Profesional (Recomendado)

El método más sencillo y rápido. Utiliza la imagen oficial pre-construida.

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

Instalación Clásica (Source)

Para quienes deseen compilar la imagen ellos mismos desde el código fuente:

1. Descargar el archivo:

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

2. 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

2. Configurar el entorno : Crea un archivo .env :

DB_PASS=tu_contraseña_sql
SMTP_HOST=smtp.tu-proveedor.com
SMTP_USER=contacto@tu-dominio.com
SMTP_PASS=tu_contraseña_smtp
APP_URL=https://tu-dominio.com

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

📱 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 Comunitaria

Sin jerarquía. Decisiones por consenso.

  • Reportes tratados por voto comunitario
  • 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.