Applicazione web per la condivisione di file tramite stanze. Semplice, senza autenticazione, pronta all'uso.
- Crea stanze: ogni utente può creare stanze per organizzare i file
- Visualizza stanze: tutti gli utenti vedono le stanze disponibili
- Carica file: all'interno di una stanza è possibile caricare file (fino a 500 MB)
- Scarica file: i file caricati possono essere scaricati da chiunque
- Elimina file: i file possono essere eliminati singolarmente
- Elimina stanze: eliminando una stanza vengono eliminati anche tutti i file contenuti
- Backend: Node.js + Express
- Frontend: HTML, CSS, JavaScript (vanilla)
- Upload file: Multer
- Container: Docker + Docker Compose
L'applicazione è configurabile tramite variabili d'ambiente:
| Variabile | Descrizione | Default |
|---|---|---|
PORT |
Porta HTTP su cui il server è in ascolto | 3000 |
DATA_DIR |
Percorso della directory per salvare i file | ./data |
- Node.js versione 18 o superiore
-
Entra nella cartella del progetto:
cd webboshared -
Installa le dipendenze:
npm install
-
(Opzionale) Configura le variabili d'ambiente:
Copia il file di esempio e modificalo secondo le tue esigenze:
cp .env.example .env
Oppure esporta direttamente le variabili:
export PORT=8080 export DATA_DIR=/percorso/personalizzato/dati
Su Windows (PowerShell):
$env:PORT = "8080" $env:DATA_DIR = "C:\percorso\personalizzato\dati"
-
Avvia l'applicazione:
npm start
-
Apri il browser su http://localhost:3000 (o la porta configurata).
Premi Ctrl+C nel terminale dove gira il server.
- Docker e Docker Compose installati
-
Dalla directory principale del progetto (quella che contiene
docker-compose-yaml):docker compose -f docker-compose-yaml up -d --build
Questo comando:
- Costruisce l'immagine Docker dal Dockerfile
- Avvia il container in background
- Mappa la porta 3000 sull'host
- Crea un volume Docker per la persistenza dei dati
-
Apri il browser su http://localhost:3000.
Modifica il file docker-compose-yaml per cambiare porta o percorso:
ports:
- "8080:3000" # Espone sulla porta 8080 dell'hostPer montare una directory specifica dell'host invece del volume Docker:
volumes:
- /percorso/host/dati:/data/webboshared/datadocker compose -f docker-compose-yaml downdocker compose -f docker-compose-yaml down -vwebboshared/
├── docker-compose-yaml # Configurazione Docker Compose
├── README.md # Questo file
└── webboshared/
├── Dockerfile # Definizione immagine Docker
├── .dockerignore # File ignorati nella build Docker
├── .env.example # Esempio di configurazione
├── package.json # Dipendenze Node.js
└── src/
├── server.js # Server Express (API REST)
└── public/
├── index.html # Pagina HTML principale
├── style.css # Foglio di stile
└── app.js # Logica frontend