Skip to content

GiulioSavini/Docker_Compose_postam_password-manager-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Compose Password Manager

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.


Panoramica

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

Requisiti

  • Docker e Docker Compose
  • Postman (o curl) per testare le API

Avvio rapido

# 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

Porte esposte

Servizio Porta URL
Flask API 5000 http://localhost:5000
phpMyAdmin 8082 http://localhost:8082
MySQL 3307 localhost:3307

API Endpoint

POST /generate_password

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"
}

Esempio con curl

curl -X POST http://localhost:5000/generate_password \
  -H "Content-Type: application/json" \
  -d '{"length": 16, "label": "Router Admin", "use_special_chars": true}'

Esempio con Postman

  1. Metodo: POST
  2. URL: http://localhost:5000/generate_password
  3. Body: raw / JSON
  4. Incolla il JSON di esempio sopra

Architettura

Docker Compose
├── db (MySQL 8.0)
│   └── Volume: mysql_data (persistente)
├── phpmyadmin
│   └── Collegato a db
└── app (Flask + Python 3.9)
    └── Collegato a db

Sicurezza

  • Le password vengono generate usando il modulo secrets di 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)

Variabili d'ambiente

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

Licenza

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors