Serveur de stockage réseau privé, moderne et auto-hébergé. Interface rouge/blanc/noir, multi-utilisateurs, PWA installable, zéro dépendance cloud.
Sur une machine Linux (Ubuntu / Debian typique), ./install.sh prépare le venv Python, les dossiers de stockage et le service systemd. Le serveur FastAPI écoute sur le port 8888 ; Avahi expose nexusnas.local pour éviter de chercher l'IP. Depuis un téléphone, on ouvre l'URL, on ajoute à l'écran d'accueil pour obtenir la PWA, on crée les comptes famille (admin + utilisateurs avec quota), puis on teste glisser-déposer, prévisualisation PDF / média, corbeille et favoris — le tout sans fournisseur cloud.
Premier utilisateur = admin ; JWT 24 h ; isolation des répertoires par compte — parfait pour montrer le modèle multi-utilisateurs sur un seul disque.
Panneau CPU / RAM / disque et journal d'activité : utile pour une démo « infra maison » devant un NAS branché sur le LAN.
Service worker : reprise de l'interface et du cache après une coupure courte — illustre l'approche PWA documentée dans le projet.
| Composant | Technologie |
|---|---|
| Backend | FastAPI + Uvicorn |
| Base de données | SQLite (async via aiosqlite) |
| ORM | SQLAlchemy 2.0 (async) |
| Auth | JWT (python-jose) + bcrypt |
| Frontend | Vanilla JS (SPA) + CSS custom |
| Images | Pillow (thumbnails) |
| Monitoring | psutil |
| mDNS | Avahi |
| PWA | Service Worker + Web App Manifest |
| Variable | Défaut | Description |
|---|---|---|
SECRET_KEY | nexusnas-super-secret… | Clé JWT — à changer en production |
ACCESS_TOKEN_EXPIRE_MINUTES | 1440 (24h) | Durée de validité du token |
MAX_UPLOAD_SIZE | 10 Go | Taille max par upload |
PORT | 8888 | Port du serveur |
STORAGE_PATH | ./storage | Répertoire de stockage |
# Cloner le dépôt git clone https://github.com/Irkeedia/nas-nipogi.git cd nas-nipogi # Installation automatique chmod +x install.sh ./install.sh # Lancement ./start.sh
Prérequis : Linux (Ubuntu/Debian), Python 3.10+, accès réseau local.
Le script d'installation configure automatiquement le venv, les dépendances et les dossiers de stockage. Le premier utilisateur créé est automatiquement admin.
PWA : Installable directement depuis le navigateur sur Android, iOS, PC et Mac.