API REST per la generazione e il salvataggio di password sicure, con backend MySQL e interfaccia di gestione phpMyAdmin. Testabile tramite Postman o qualsiasi client HTTP.
| Componente | Descrizione |
|---|---|
| Flask API | Genera password crittograficamente sicure e le salva su MySQL |
| MySQL 8.0 | Database per lo storage delle password con etichetta |
| phpMyAdmin | Interfaccia web per visualizzare/gestire il database |
- Docker e Docker Compose
- Postman (o curl) per testare le API
# Clona il repository
git clone https://github.com/GiulioSavini/Docker_Compose_postam_password-manager-.git
cd Docker_Compose_postam_password-manager-
# Imposta la password del database (opzionale, default: changeme)
export MYSQL_ROOT_PASSWORD=MySecureP@ss
# Avvia i container
docker-compose up -d| Servizio | Porta | URL |
|---|---|---|
| Flask API | 5000 |
http://localhost:5000 |
| phpMyAdmin | 8082 |
http://localhost:8082 |
| MySQL | 3307 |
localhost:3307 |
Genera una password e la salva nel database.
Request body (JSON):
{
"length": 16,
"use_special_chars": true,
"use_numbers": true,
"label": "Server SSH"
}| Campo | Tipo | Default | Descrizione |
|---|---|---|---|
length |
int | 12 |
Lunghezza della password |
use_special_chars |
bool | true |
Includi caratteri speciali (!@#$%^&*()) |
use_numbers |
bool | true |
Includi numeri |
label |
string | "Generico" |
Etichetta per identificare la password |
Response:
{
"label": "Server SSH",
"password": "xK9#mP2$vL4&nQ"
}curl -X POST http://localhost:5000/generate_password \
-H "Content-Type: application/json" \
-d '{"length": 16, "label": "Router Admin", "use_special_chars": true}'- Metodo: POST
- URL:
http://localhost:5000/generate_password - Body: raw / JSON
- Incolla il JSON di esempio sopra
Docker Compose
├── db (MySQL 8.0)
│ └── Volume: mysql_data (persistente)
├── phpmyadmin
│ └── Collegato a db
└── app (Flask + Python 3.9)
└── Collegato a db
- Le password vengono generate usando il modulo
secretsdi Python (crittograficamente sicuro) - Le credenziali del database sono configurabili tramite variabili d'ambiente
- Le password sono salvate in chiaro nel DB (per un uso produttivo, aggiungere crittografia a riposo)
| Variabile | Default | Descrizione |
|---|---|---|
MYSQL_ROOT_PASSWORD |
changeme |
Password root MySQL |
MYSQL_HOST |
db |
Hostname MySQL |
MYSQL_USER |
root |
Username MySQL |
MYSQL_DATABASE |
password_db |
Nome database |
MIT License