Instalado kaj Deplojo
Disvolviĝo (Loka)
Por kontribui aŭ testi kun disvolvaj iloj (Mailpit, Hot-reload...) :
git clone https://gitlab.com/militant1/millitant.git
cd millitant
docker compose up -d --build
Retejo
Retpoŝtoj (Mailpit)
Administrado
Profesia Mem-gastigado (Rekomendata)
La plej simpla kaj rapida metodo. Uzas la oficialan antaŭkonstruitan bildon.
1. Elŝuti dosierojn:
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. Agordi:
cp .env.template .env
nano .env # Plenigu viajn alirojn (DB, SMTP...)
3. Lanĉi:
docker compose -f docker-compose.hosting.yml up -d
Klasika Instalado (Fonto)
Por tiuj, kiuj deziras mem kompili la bildon el la fontkodo:
1. Elŝuti la dosieron:
curl -O https://gitlab.com/militant1/millitant/-/raw/main/docker-compose.prod.yml
2. Agordi la medion: Kreu .env dosieron:
DB_PASS=via_sql_pasvorto
SMTP_HOST=smtp.via-provizanto.com
SMTP_USER=kontakto@via-domajno.com
SMTP_PASS=via_smtp_pasvorto
APP_URL=https://via-domajno.com
3. Lanĉi:
docker compose -f docker-compose.prod.yml up -d
Progresinta Reta Agordo
Se vi uzas Cloudflare aŭ inversan prokurilon, MILITANT aŭtomate detektas la realan IP de viaj uzantoj.
Ĉiu kofiguro de Apache (`mod_remoteip`) estas administrata per nia varma ĝisdatiga skripto.
# Apliki la Cloudflare-agordon al via servilo
sudo ./hot_update.sh
La platformo nuntempe estas atingebla ĉe http://localhost:9000 (aŭ la URL agordita en
via .env).
4. Komenca agordo
Post la unua lanĉo, vi devas krei la unuan administran konton.
- Iru al
/register.phppor krei konton. - Uzu la skripton
setup_admin.php(en la radiko) por doni administrajn rajtojn al via uzanto.
Grava: Ne forgesu forigi setup_admin.php post la uzo pro sekurecaj
kialoj.
Instalado per CasaOS
- Malfermu la App Center kaj alklaku Custom Install (supre dekstre)
- Alklaku la ikonon Docker Compose (supre dekstre de la modalo)
- Algluu la enhavon de la dosiero
docker-compose.casaos.yml - Alklaku Install
- Iru al
http://IP-CASAOS:8080 - Krei la administran konton:
http://IP-CASAOS:8080/setup_admin.php
Sistempostuloj: ~512 Mo RAM minimuma, ~5 Go disko (laŭ alŝutoj)
Protekto Fail2Ban
MILITANT inkluzivas protekton kontraŭ brutfortaj atakoj (brute-force).
Agordo:
# La dosiero jail.local estas aŭtomate generita
# Ĝi analizas la protokolojn en logs/auth.log
Vérifier le statut
# Voir si Fail2Ban tourne
docker ps | grep fail2ban
# Statut des jails
docker exec militant-fail2ban fail2ban-client status
# Détails de la jail militant-auth
docker exec militant-fail2ban fail2ban-client status militant-auth
Configuration par défaut
| Paramètre | Valeur |
|---|---|
| Tentatives max | 5 |
| Durée du ban | 1 heure |
| Fenêtre de détection | 5 minutes |
Aŭtomata Rezervkopio
Rezervkopia skripto de la datumbazo MySQL (dump) estas inkluzivita.
# Lanĉu mane:
./scripts/backup.sh
Vi povas aldoni cron-taskon por aŭtomatigi la rezervkopiojn ĉiutage.
Noto: Semajnaj rezervkopioj estas agorditaj per cron dimanĉe je la 3-a matene.
🏥 Sankontrola Finpunktoj
MILITANT malkaŝas sankontrola finpunktojn por monitori la staton de servoj realtempe.
Publikaj Finpunktoj (Stata Paĝo)
Ĉi tiuj finpunktoj estas publike alireblaj kaj ne malkaŝas sentemajn informojn:
https://militant.revlibertaire.com/health-public.php
https://api.militant.revlibertaire.com/health-public.php
JSON Respondo:
{
"status": "ok",
"timestamp": 1771206234
}
Eblaj Valoroj:
ok- Servo funkcianta ✅degraded- Servo degradita ⚠️partial_outage- Parta interrompo 🔴
Privataj Finpunktoj (Interna Monitorado)
Ĉi tiuj finpunktoj estas limigitaj al loka aliro (localhost kaj internaj retoj) kaj provizas infrastrukturajn detalojn:
https://militant.revlibertaire.com/health.php
https://api.militant.revlibertaire.com/health.php
Detala Respondo (nur localhost):
{
"status": "ok",
"timestamp": 1771206234,
"services": {
"database": "ok",
"storage": "ok",
"php": "ok"
}
}
Ekstera Aliro:
{
"error": "Access denied",
"status": "forbidden"
}
Sekureco: Privataj finpunktoj nur akceptas konektojn de 127.0.0.1, ::1 kaj privataj retoj (10.x.x.x, 172.16-31.x.x, 192.168.x.x).
Publika Stata Paĝo
Kontrolu la staton de servoj realtempe:
https://militant.revlibertaire.com/status.html
La paĝo aŭtomate demandas publikajn finpunktojn ĉiujn 30 sekundojn.
Trajtoj
Sekureco & Konto
- Du faza aŭtentigo (2FA) per TOTP (Google Authenticator, Authy...)
- Passkeys (WebAuthn): Biometrika ensaluto (fingrospuro, vizaĝo)
- Pasvortoj ĉifritaj per Argon2ID
- Fail2Ban integrita (protekto kontraŭ brutforto)
- Strikta protekto kontraŭ CSRF, XSS kaj Rate Limiting
Publikaĵoj
- Afiŝoj kun fotoj/videoj (ĝis 500MB)
- Riĉaj ligantaj antaŭrigardoj (aŭtomataj)
- Emoji-reagoj
- Enmetitaj komentoj kun respondoj
- @mencioj kun sciigoj
Socia
- Privataj mesaĝoj kun baza ĉifrado
- Efemera historioj (24h) kun tuŝa navigado
- Kronologia fluo "Por vi" / "Sekvatoj"
- Sistemo de amikoj kaj sekvanto
- Unuigita tutmonda serĉo
Grupoj & Kolektivoj (Mesaĝado V2)
Kompleta integra tuŝmesaĝilo, desegnita por kolektiva organizado.
- Horizontala regado: Ĉiuj membroj estas administrantoj defaŭlte. Kolegia administrado de membroj kaj agordoj.
- Efemera mesaĝoj: Agordu aŭtomatan memdetruon (de 1 minuto ĝis 7 tagoj) por viaj sentemaj diskutoj.
- Aŭdio kaj Medioj: Rekta voĉregistrilo (kongrua kun iOS/Android), sendado de fotoj kaj videoj kun integra rigardilo.
- Sekureco de interŝanĝoj: Strikta izolado de mesaĝaj datumoj kaj avertoj okaze de provoj de seancokapto.
- Aliĝpetoj: Validsistemo por privataj grupoj kun agordeblaj demandaroj.
Internaciigo
- Interfaco tradukita en la francan, anglan, hispanan, esperanton
- Aŭtomata tradukado de afiŝoj kaj mesaĝoj (LibreTranslate)
- Aŭtomata lingvodekto
📱 Poŝtelefona Interfaco
Optimumigita sperto por saĝtelefonoj sen bezono de plia aplikaĵo.
- Malsupra navigadstrio: Rapida aliro al Hejmpaĝo, Serĉo, Mesaĝoj, Profilo.
- Flanka menuo (Offcanvas): Aliro al ĉiuj progresintaj trajtoj.
- Adapta kaplinio: Logoo kaj esencaj agoj ĉiam videblaj.
- PWA Insigno: Subteno de nativaj sciigoj en Android.
Agordo (.env)
| Variablo | Priskribo | Defaŭlto (Dev) |
|---|---|---|
DB_HOST |
MySQL Gastiganto | db |
DB_NAME |
Nomo de la bazo | militant |
DB_USER |
MySQL Uzanto | militant |
DB_PASS |
MySQL Pasvorto | militant123 |
SMTP_HOST |
SMTP Servilo | mailpit |
SMTP_PORT |
SMTP Pordo | 1025 |
APP_URL |
Publika URL | http://localhost:9000 |
HCAPTCHA_SITE_KEY |
hCaptcha Reteja Ŝlosilo | - |
HCAPTCHA_SECRET_KEY |
hCaptcha Sekreta Ŝlosilo | - |
Komunuma Moderigado
Neniu hierarkio. Decidoj per konsento.
- Raportoj traktitaj per komunuma voĉdono
- 70% de konsento postulata
- Moderigantoj elektitaj kaj malofteblaj de ĉiuj
Lingvoj
Disponebla en: Français, English, Español, Esperanto
Aldoni lingvon: krei lang/xx.php
PWA Aplikaĵo
MILITANT estas Progresema Reta Apo (PWA) instalebla sur poŝtelefono kaj komputilo. Ĝi funkcias eĉ senrete.
En Android
- Malfermu militant.revlibertaire.com en Chrome
- Premu la menuon ⋮ (tri punktoj supre dekstre)
- Elektu "Instali aplikaĵon" aŭ "Aldoni al la hejma ekrano"
- Konfirmu premante "Instali"
- La ikono de MILITANT aperos sur via hejma ekrano
En iPhone / iPad
- Malfermu militant.revlibertaire.com en Safari
- Premu la butonon Kundividi (malsupre de la ekrano)
- Rulumu kaj elektu "Aldoni al la hejma ekrano"
- Premu "Aldoni" supre dekstre
- La ikono de MILITANT aperos sur via hejma ekrano
En komputilo (Chrome, Edge)
- Malfermu militant.revlibertaire.com
- Alklaku la instalan ikonon en la adrestuŝo
- Aŭ iru al la menuo ⋮ → "Instali MILITANT"
- La aplikaĵo malfermiĝos en sia propra fenestro
Avantaĝoj de PWA: Rapida aliro de la hejma ekrano, puŝ-sciigoj, funkcias senrete, ne bezonas trapasi aplikaĵon.