Production

Déployez Wasteless sur un VPS protégé

Le chemin documenté exécute Wasteless et son scheduler sur un hôte Linux, avec PostgreSQL dans Docker et l'interface derrière un proxy authentifié.

Vérifié avec le code du produit12 minSRE et administrateurs système

Architecture prise en charge

Topologie
Internet
  |
HTTPS + authentification
  |
Reverse proxy
  |
127.0.0.1:8888
  |
FastAPI + jobs internes
  |
PostgreSQL dans Docker
  |
Rôles IAM AWS séparés

Installez et validez l'hôte

  • VPS Linux avec un utilisateur non root dédié

  • Python 3.11+, Git, Docker et Docker Compose

  • Ports publics limités à 22, 80 et 443

  • Domaine pointant vers le VPS

  • Identité capable d'assumer le rôle AWS de lecture

Terminal
git clone https://github.com/wasteless-io/wasteless.git
cd wasteless
./install.sh --doctor
./install.sh --install-system-deps --no-schedule

La commande --doctor diagnostique sans modifier le système. Validez l'installation avant d'activer la collecte automatique.

Configurez PostgreSQL, AWS et Steampipe

.env
DB_HOST=localhost
DB_PORT=5432
DB_NAME=wasteless
DB_USER=wasteless
DB_PASSWORD=UTILISEZ_UN_SECRET_UNIQUE

AWS_REGION=eu-west-1
AWS_ACCOUNT_ID=123456789012
AWS_ROLE_ARN=arn:aws:iam::123456789012:role/wasteless-readonly
# Optionnel
AWS_WRITE_ROLE_ARN=arn:aws:iam::123456789012:role/wasteless-remediation

Gardez WASTELESS_HOST=127.0.0.1 dans ui/.env. Configurez également Steampipe avec le rôle de lecture si vous voulez les quatre détecteurs associés.

Validation locale
./wasteless.sh start
curl -f http://127.0.0.1:8888/
./wasteless.sh collect
./wasteless.sh status

Ajoutez TLS et authentification

/etc/caddy/Caddyfile
wasteless.example.com {
  basic_auth {
    admin HASH_BCRYPT
  }
  reverse_proxy 127.0.0.1:8888
}
  • Le certificat TLS est valide
  • L'accès sans authentification est refusé
  • Les ports 8888 et 5432 sont inaccessibles depuis Internet
  • Le fichier .env est absent de Git et protégé par les permissions système

Planifiez, sauvegardez et surveillez

Exploitation
./wasteless.sh schedule
./wasteless.sh status
tail -100 ~/.wasteless.log
docker exec wasteless-postgres pg_isready -U wasteless
curl -f http://127.0.0.1:8888/

Le scheduler de collecte survit au redémarrage. Le processus FastAPI doit être confié à systemd ou à un superviseur pour redémarrer automatiquement.

Sauvegarde
docker exec wasteless-postgres pg_dump -U wasteless wasteless | gzip > wasteless_backup.sql.gz

Checklist de production

  • Interface liée à 127.0.0.1
  • TLS et authentification du proxy actifs
  • Rôles AWS de lecture et d'écriture séparés
  • Dry-run maintenu pendant la validation initiale
  • Steampipe connecté avec le rôle de lecture
  • Collecte planifiée active
  • FastAPI géré par un superviseur
  • Sauvegarde PostgreSQL planifiée et restauration testée
  • Erreurs et espace disque surveillés
Voir la source sur GitHub