Skip to content

scriptura/bash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

dotnet-fsharp-pg.sh

Bash Script Ubuntu 24.04 Debian 13 .NET LTS PostgreSQL 17 Idempotent Secure

Script Bash d’installation automatisée d’un environnement F#/ASP.NET Core + Giraffe + PostgreSQL sur Ubuntu 24.04 et Debian 13 (Trixie).


⚠️⚠️⚠️ Nota bene :

Ce script tente d'imposer des invariants (idempotence, nettoyage, sécurité) sur un système d'exploitation par nature instable et global (les paquets .deb, les chemins apt). C'est une bataille contre la mutation d'état.

Nix est l'étape logique après ce type de script, pas Docker.

Le problème de l'impératif : Si le script échoue à la ligne 150, le système est dans un état intermédiaire incertain. Il n'y a pas de garantie transactionnelle.

La solution fonctionnelle (Nix) : Nix est déclaratif et pur. Il n'installe rien globalement. Il lit un graphe de dépendances (votre flake.nix), calcule un hash cryptographique pour l'ensemble du graphe, et place le résultat dans /nix/store/. Il n'y a pas de mutation d'état du système hôte, donc l'idempotence n'a pas à être codée, elle est garantie mathématiquement par le modèle.

ADR : Nix sera désormais notre choix par défaut.


Fonctionnalités

  • Installation du SDK .NET (dernière version LTS)
  • Templates et outils F# (FSAutoComplete, Fantomas, FSharp.Analyzers)
  • Framework web Giraffe (version LTS)
  • PostgreSQL 17 avec configuration sécurisée (mots de passe forts, pg_hba.conf restrictif)
  • Configuration nginx pour reverse proxy
  • Optimisations système pour ASP.NET Core (sysctl, limites)
  • Script idempotent et sécurisé
  • Nettoyage automatique et gestion d’erreurs robuste

Usage

  1. Rendez le script exécutable :

    chmod +x dotnet-fsharp-pg.sh
  2. Lancez le script :

    ./dotnet-fsharp-pg.sh
    • Mode production :
      ./dotnet-fsharp-pg.sh --production
    • Utiliser les dépôts Microsoft pour .NET (méthode recommandée : mise à jour via apt, intégration système, désinstallation propre) :
      ./dotnet-fsharp-pg.sh --repo-method
    • Afficher l’aide :
      ./dotnet-fsharp-pg.sh --help
  3. Après installation :
    Pour appliquer les variables d’environnement immédiatement :

    source ~/.bashrc

Informations de connexion

  • Les mots de passe PostgreSQL sont générés et stockés dans : ~/.fsharp-aspnet-credentials
  • Fichier .pgpass créé pour la connexion automatique avec psql.

Exemples de commandes

  • Lancer le projet de test :
    cd ~/fsharp-aspnet-test/GiraffeTestApp
    dotnet run
  • Créer un nouveau projet Giraffe :
    dotnet new giraffe -n MonProjetGiraffe
    cd MonProjetGiraffe
    dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

Prérequis

  • Ubuntu 24.04 ou Debian 13 (Trixie)
  • Accès sudo

Sécurité

  • Ne pas lancer le script en tant que root.
  • Les accès PostgreSQL sont restreints et les mots de passe forts.

Auteur : Olivier Chavarin

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages