linuxtarn.org

Association Tarnaise des Utilisateurs de GNU/LINUX et de Logiciels libres
Contact Calendier Messages diffusés
Visioconférence
  • Dessin (GIMP et Inkscape)

    Logiciels de dessin Evénement: Journée du numérique Carmaux 2025
    louis [Administrateurs] 5 mars 2025 10:08

    Animations Linux Tarn dans le cadre de la journée numérique à Carmaux

    samedi 22 mars prochain de 14h à 18h à la médiathèque

    Pour un meilleur accueil , vous pouvez demander des précisons ou indiquer une heure de passage en cliquant sur Contact

    • cochez Contact pour la journée du numérique de Carmaux 
    • posez vos questions ou demandez des précisions , indiquez éventuellment votre horaire de passage .

    GIMP et Inkscape sont des logiciels de dessin complémentaire. GIMP permet de modifier des photos ou dessins équivalents (similaire à Photoshop) et Inscape permet de créer des dessins "au trait" c'est à dire vectorisés

    retour vers la journée  du numérique

     

    GIMP (GNU Image Manipulation Program) est un logiciel libre et gratuit de retouche, de création et de manipulation d’images. Il est souvent comparé à Adobe Photoshop car il offre des outils avancés pour :

    • La retouche photo (correction des couleurs, suppression d’éléments, amélioration des contrastes…)
    • Le dessin numérique (brosses personnalisables, calques, filtres…)
    • Le photomontage (superposition d’images, masques de fusion…)
    • La création graphique (logos, affiches, icônes…)
    • L’animation GIF grâce à l’extension GAP

    Ses avantages par rapport aux autres logiciels :

    Gratuit et Open Source → Contrairement à Photoshop, il est entièrement libre, sans abonnement.
    Léger et performant → Fonctionne sur des configurations modestes (Windows, Mac, Linux).
    Extensible → De nombreux plugins et scripts personnalisables (Python, Scheme).
    Compatible avec Photoshop → Il peut ouvrir et éditer des fichiers .PSD.
    Personnalisable → Interface modifiable selon les besoins (mode fenêtre unique ou multiples).

    Limites ? ll peut être un peu moins intuitif que Photoshop pour les débutants, mais c'est une excellente et puissante alternative pour tout travail graphique !

     

    Inkscape est un logiciel libre et gratuit de dessin vectoriel, utilisé pour créer et éditer des images en SVG (Scalable Vector Graphics). Contrairement aux images en pixels (comme dans GIMP ou Photoshop), les images vectorielles peuvent être agrandies à l’infini sans perte de qualité.
    Création de logos et icônes
    Illustrations et dessins techniques
    Schémas et infographies
    Typographie et lettrage
    Découpe laser et CNC (grâce à l’exportation en formats compatibles)


    Avantages d’Inkscape par rapport aux autres logiciels (comme Adobe Illustrator) :

    Gratuit et Open Source → Pas d’abonnement, accessible à tous.
    Compatible avec le format SVG → Standard du web et largement utilisé.
    Supporte de nombreux formats → PDF, EPS, AI (Illustrator), DXF…
    Extensible avec des extensions → Possibilité d’ajouter des outils spécifiques (tracé CNC, effets spéciaux…).
    Outils avancés de dessin → Gestion précise des nœuds, des calques, des dégradés, et des effets de chemin.
    Léger et multi-plateforme → Fonctionne sur Windows, Mac et Linux, sans nécessiter une machine puissante.

    Limites ? Il est parfois moins optimisé pour le travail d’équipe et l’impression professionnelle que des logiciels payants comme Illustrator, mais il reste une excellente alternative pour le graphisme vectoriel !

  • Bureautique

    Libreoffice, ... Evénement: Journée du numérique Carmaux 2025
    louis [Administrateurs] 5 mars 2025 10:07

    Animations Linux Tarn dans le cadre de la journée numérique à Carmaux

    samedi 22 mars prochain de 14h à 18h à la médiathèque

    Pour un meilleur accueil , vous pouvez demander des précisons ou indiquer une heure de passage en cliquant sur Contact

    • cochez Contact pour la journée du numérique de Carmaux 
    • posez vos questions ou demandez des précisions , indiquez éventuellment votre horaire de passage .

    LibreOffice est une suite bureautique libre et gratuite, alternative à Microsoft Office. Elle permet de créer, éditer et gérer des documents avec plusieurs applications intégrées

    retour vers la journée  du numérique

     

    Les principaux logiciels de la suite :

     

    • Writer → Traitement de texte (équivalent de Word)
    • Calc → Tableur (équivalent d’Excel)
    • Impress → Présentations (équivalent de PowerPoint)
    • Draw → Dessin vectoriel et diagrammes (équivalent de Visio)
    • Base → Base de données (équivalent d’Access)
    • Math → Éditeur d’équations et de formules mathématiques

    Avantages par rapport aux autres suites bureautiques (Microsoft Office, Google Docs) :

    • Gratuit et Open Source → Pas d’abonnement, mise à jour continue grâce à la communauté.
    • Compatible avec Microsoft Office → Ouvre et édite les fichiers .docx, .xlsx, .pptx, même s'il peut y avoir des ajustements de mise en page.
    • Formats ouverts et standards → Utilise ODT, ODS, ODP, garantissant l’accès aux documents sur le long terme.
    • Fonctionne hors ligne → Contrairement à Google Docs, tout est accessible sans connexion internet.
    • Personnalisable et extensible → Ajout d’extensions, de macros et d’options avancées pour automatiser les tâches.
    • Léger et performant → Fonctionne bien sur des machines modestes, sans nécessiter un PC puissant.

    Limites ? Les mises en page complexes peuvent être moins compatibles avec Microsoft Office. Les images en particulier ont besoin d'ête replacées dans les textes.   pour une utilisation classique ou avancée en bureautique libre, c’est une excellente alternative !

    Pour Calc, le language des macro n'est pas VBA mais le langage de macro LibreOffice

  • Atelier Linux et logiciels libres

    Découverte du darkweb et de la cybersécurité Evénement: Journée du numérique et de la lecture
    denis [Superviseur] 16 janvier 2024 16:28

    kali linux darkweb tor vpn

    Dans le cadre de la journée du 20 Janvier 2024, lnuxtarn.org présentera quelques thèmes qui traiteront de la sécurité en matière de numérique.

    1. Kali Linux: boîte à outils des professionnels de la sécurité 
    2. VPN: réseau privé contribuant à la protection des données personnelles
    3. Réseau en Onion Tor: protection évoluée de la navigation internet
    4. Le réseau Darknet: un réseau pour rester anonyme, mais aussi un lieu de rassemblement pour les criminels

    Kali linux

    1- Kali ?

    Kali Linux est une distribution GNU/Linux basée sur Debian sortie en 2013. Elle fait suite à BackTrack, qui était basée sur Ubuntu.
    C'est une boîte à outils complète pour les professionnels de la sécurité, développé et maintenu par Offensive Security.

    DECLARATION IMPORTANTE:
    Une utilisation irresponsable de Kali linux pourrais constituer une violation grave des lois, notamment la fraude et les abus informatiques. Il est important de n'utiliser Kali qu'avec le consentement du propriétaire de l'ordinateur cible. L'accès non autorisé ou l'utilisation de l'ordinateur ou du réseau de quelqu'un d'autre sans autorisation pourrait entraîner des accusations criminelles et des sanctions sévères. L'utilisation de Kali à des fins illégales ou contraires à l'éthique est strictement interdite et peut entraîner de graves conséquences. En utilisant ces outils, vous reconnaissez et acceptez l'entière responsabilité de vos actes et de toutes les conséquences pouvant résulter de leur utilisation.

    Outils disponibles dans Kali Linux: 
        très nombreux, voir: https://www.kali.org/tools/
        Quelques exemples:
            Collecte d'information: nmap, tcpdump, wireshark, dig, etc...
            Attaques Wifi: suite aircrack, Kismet, Pixie
            Attaques mots de passe: Hydra, Crunch, Hashcat et John the Ripper
            Outils réseaux sociaux: The Social-Engineer Toolkit
            produits près à l'emploi: Maltego
            etc ...
    Liens web de collecte d'infos: 
        https://www.exploit-db.com
        https://www.shodan.io/
        https://tineye.com/
        https://archive.org/
        https://coveryourtracks.eff.org/

    2- Installer Kali
    Kali Linux est une distribution que l’on peut installer facilement sur un ordinateur. 
    Il est préférable de l'installer à partir d'une version live sur clef usb ou mieux dans une virtualisation (VirtuaBox, VMware, etc...)

        Installation dans virtualbox:
        - Vister le site https://www.kali.org/get-kali/#kali-platforms
        - choisir sa version (au 5/12/2023 Kali Linux 2023.4): 
            * virtualbox 3.0G: https://cdimage.kali.org/kali-2023.4/kali-linux-2023.4-virtualbox-amd64.7z
            * format iso 3.9G: https://cdimage.kali.org/kali-2023.4/kali-linux-2023.4-installer-amd64.iso
        
        La version virtualbox est directement utilisable. 
            login:kali
            pass:kali
            Attention le clavier est en QUERTY le a -> q
                - changer le clavier dans menu Parameters
                - Changer la langue: 
                    # dpkg-reconfigure locales
                - Autologin:
                    vim /etc/lightdm/lightdm.conf
                        autologin-user=kali
                    reboot
    3- Usage
        - Le navigateur Firefox contient tous les liens vers les documentations
        - Le menu contient les rubriques par thème des outils.
            * Les outils sont généralement en mode terminal

        Tous les outils ne sont pas installés
            - Paramètres (parameters)
                * Kali Tweaks
        
    Note:
    -----
    Ligne commençant par:
        # Terminal en mode root
        $ Terminal en mode kali

    VPN

    Un VPN ou réseau privé virtuel est un tunnel sécurisé situé entre votre appareil et votre réseau internet. 
    Les VPN vous protègent de l'espionnage en ligne, des interférences et de la censure.

    Comment un VPN fonctionne-t-il ?
        Votre réseau est redirigé vers un serveur distant le VPN. 
        Cela signifie que si vous surfez en ligne au moyen d'un VPN, le serveur VPN devient la source de vos données.
        Une connexion VPN camoufle votre trafic de données en ligne et le protège contre tout accès externe. 
        Du moins jusqu'au VPN.
        
        En gros votre machine crée une route vers le VPN quelque part sur le réseau à travers ce que l'on apppelle un tunnel.
            Le réseau est chiffré de votre orinateur jusqu'au VPN, invisible.
            Passé le VPN, le réseau redevient normal et visible.
            Par contre vous serez vu depuis l'emplacent du VPN placé quelque part sur la planète.

    Trouver un VPN
        Dans tous les cas les fournisseurs fournissent un login, un mot de passe et un fichier de configuration adapté à votre installation.
        Généralement un .ovpn
            ex: 
                utilisateur: user@proton.me
                mot de passe: xyzzzzzzzz
                un fichier: nl-free-xxxxxxx.protonvpn.udp.ovpn
        Installation sous linux c'est facile:
            # apt install openvpn
            Avec network-manager:
                Si ce n'est pas déjà fait:
                # apt install network-manager-openvpn network-manager-openvpn-gnome
                Dans paramètres réseau ajouter un VPN
                    importer depuis un fichier:
                        Choisir le fichier
                        Utilsateur
                        Mot de passe
            Dans le système directement pour un serveur ou autre:
                Copier le fichier .ovpn dans /etc/openvpn
                # cp nl-free-xxxxxxx.protonvpn.udp.ovpn /etc/nl-free-xxxxxxx.protonvpn.udp.conf (important)
                Creer in fichier texte dans /etc/openvpn contenant 1ère ligne: utilisateur et 2ème ligne: mot de passe
                # vim /etc/openvpn/protonvpn.auth
                    user@proton.me
                    xyzzzzzzzz
                Modifier /etc/nl-free-xxxxxxx.protonvpn.udp.conf
                # vim /etc/nl-free-xxxxxxx.protonvpn.udp.conf
                    auth-user-pass /etc/openvpn/protonvpn.auth

        VPNs payants et rapides:
            https://nordvpn.com
            https://www.expressvpn.com

        Vpn gratuit et de confiance: 
            https://protonvpn.com/fr
            If faudra prendre un mail chez eux gratuit aussi:
                https://account.proton.me/fr/mail
                    user@protonmail.com ou
                    user@proton.me
            Après connexion au mail:
                Dans le tableau de bord, trouver et cliquer le logo Application proton
                Proton VPN:
                    Dans OpenVPN/IKEv2 noter:
                        Nom d'utilisateur OpenVPN/IKEv2
                        Mot de passe OpenVPN/IKEv2
                        
                        Fichiers de configuration OpenVPN
                            Sélectionnez la plateforme
                            Sélectionnez le protocole (UDP)
                            Sélectionnez le fichier de configuration à télécharger
                                Choisir plutôt Pays-Bas (tolérant ++)
                                    (US législation défavorable, JP lent)
                                Télécharger
    Conclusion:
        Un VPN ne donne pas l'anonymat, il permet simplement de masquer le traffic entre votre machine et le VPN et de prendre l'identité du VPN. 
        Passé le VPN le traffic est visible. De plus les IPs des VPNs sont publiques et donc connues de tous les acteurs du NET.
        Par contre votre fournisseur d'accès s'il sait que vous utilisez un VPN, mais il ne saura pas ce que vous en faites.


    Réseau en Onion Tor

    https://fr.wikipedia.org/wiki/Tor_(r%C3%A9seau)
    Tor (Tor Onion Routing [le routeur oignon]) est un projet libre qui met à disposition un réseau décentralisé qui peut permettre l’anonymisation du traffic.
    Ainsi on peut masquer et cacher son adresse IP. 

    Tor est un réseau de routeurs, ces derniers sont appelés des noeuds TOR.
    Le trafic va transiter par ces routeurs et le chemin va ainsi changer périodiquement afin de rendre la traçabilité et l’analyse plus difficile.
    En général dans un circuit Tor, on utilise 3 sauts.
        * On entre par un garde
        * On passe à un noeud de relai
        * Au final, on se connecte au service internet par un noeud de sortie.
    Tous les relais seront listés dans la liste publique des relais Tor.
    Ils peuvent donc être bloqués par certains services pour différentes raisons.
    Les gardes et les relais intermédiaires ne reçoivent généralement pas de plaintes pour abus. 
    Ce n'est pas le cas des relais de sortie en cas d’utilisation frauduleuse.

    Vulnérabilités:
    les noeuds de sortie sont vulnérables car alloués de manière aléatoire.
    N’importe qui peut se porter volontaire pour faire office de noeu de sortie.
    Les pirates peuvent s’installer sur ces noeuds pour mettre en oeuvre une attaque de type Man-in-the-middle.
    Les noeuds d'entrée sont aussi vulnérables car ils connaissent votre adresse IP de navigation.
    D'où l'intérêt d'entrer dans Tor par un garde depuis un VPN

    Note: 
        Tor et VPN n’ont rien à voir. 
        Tor est un service lent du fait de sa conception.

    Conclusion:
        Tor est-il sûr et totalement anonyme ?
        - Oui
            * Votre FAI ne pourras pas suivre votre activité de navigation
            * Les harceleurs ne pourront pas vous pister
            * Les sites Web et les services ne peuvent pas suivre vos données et publier des annonces personnalisées
        - Non
            * Tor a déjà fait l’objet de différentes attaques
            * Tor est surveillé par les autorités gouvernementales
            * Tor est surveillé probablement par les fournisseur d’accès internet, d'où l'usage d'un VPN
            
        il convient donc d’appliquer les mêmes règles de sécurité informatique avec ou sans Tor.


    Le réseau Darknet


    https://fr.wikipedia.org/wiki/Darknet
    Un darknet est un réseau superposé qui utilise des protocoles spécifiques intégrant des fonctions d'anonymat. 
    Certains darknets se limitent à l'échange de fichiers, d'autres permettent la construction d'un écosystème anonyme complet comme Freenet

    1- Installation    
        La meilleur façon d'utiliser Tor Browser est de l'installer dans Kali linux.
            $ sudo apt update
            $ sudo apt install -y tor torbrowser-launcher
            $ torbrowser-launcher
                La première fois, il téléchargera et installera le navigateur Tor, y compris la vérification de la signature.
        Installer un VPN avec network-manager comme indiqué dans le chapitre VPN.
        Connexion et vérification:
            https://nordvpn.com/fr/what-is-my-ip/
            
    Lancer le navigateur Tor, bouton barre de menu:
        A tout moment, le navigateur Tor permet de visualiser le circuit empreinté.
        Clic sur le bouton lien (mauve/bleu) dans la barre d'adresse
        Avant de commencer toujours vérifier la connexion VPN.
        Le navigateur est déjà paramétré. 
        Pas de javascript et HTTPS uniquement autorisé. 
        
        ATTENTION:
        Faites preuve quand même de prudence et ne vous rendez que sur les sites de bonne réputation. 
        La sécurité du navigateur Tor dépend de ce que vous en faites et du bon sens dont vous faites preuve lorsque vous l’utilisez.
        Ne pa télécharger de fichiers inconnus qui peuvent contenir des virus et des malwares.
        Ne pas partager d’informations personnelles.

        
        Pour faire des recherche dans l'internet utilisez DuckDuckGo:
        DuckDuckGo est un moteur de recherche américain qui vise à préserver la vie privée de ses utilisateurs.
        
        Le darknet est un réseau informatique qui n’est pas indexé par les moteurs de recherche.
        Il n'est donc pas facile d'y circuler. 
        Commencer par dark.fail:
            https://dark.fail
                Ce site répertorie les liens onion des sites les plus utiles du Dark Web
                Il vous garantit de leur authenticité, quand les autres annuaires ont des liens onion qui changent régulièrement.
        Le wiki Hidden officiel 2024: 
            https://thehiddenwiki.cc/
                Indique différents liens et les thèmes proposés
                Tous les liens ne fonctionneront pas car censurés ou fermés.
        Alternative à The Hidden Wiki avec modération. 
            http://torlinksge6enmcyyuxjpjkoouw4oorgdgeo7ftnq3zodj7g2zxi3kyd.onion/
            Les sites sont exclusivement accessibles via Tor.
            
        C'est un bon début.
        
    Conclusion

        Quel que soit votre utilisation du Dark Web, restez prudent. 
        Le Dark Web reste avant tout un lieu de rassemblement pour les criminels.
        C'est quelque chose que vous decouvrirez rapidement.
        Quoiqu'il en soit:
            Travaillez à l'intérieur d'une virtualisation
            Choisissez de préférence une distribution linux (Kali ou MX Linux)
            Installez Tor Browser
            Connectez vous toujour à un VPN. 
                par ex: https://protonvpn.com/fr


    RAPPEL IMPORTANT: 
    Bien que Tor soit légal dans la plupart des pays, il peut également être utilisé à des fins illégales. Une utilisation irresponsable de Tor pourrais constituer une violation grave des lois. En utilisant cet outil, vous reconnaissez et acceptez l'entière responsabilité de vos actes et de toutes les conséquences pouvant résulter de leur utilisation.

  • Statuts de l'association

    STATUTS DE L’ASSOCIATION Linux-Tarn Evénement: Création de Linuxtarn
    blog [Contributeur] 29 juin 2023 09:41

    association linux

  • Quelques applications Django

    Présentation de quelques applications Django de l'auteur
    denis [Superviseur] 9 octobre 2023 19:26

    Application django CMS visioconférence Blog

    • Applications génériques
      • django-minuteblog
        • un CMS plutôt dédié au programmeur, complètement modulable
        • Facilement adaptable pour des applications plus complexes.
          ex: Ventes en ligne, Cours en ligne, Location-Ventes immobilières, etc...
      • django-videoconferencing
        Initialement développée pour l'association linuxtarn.org voici la version allégée de son application de visioconférence.
        Elle contient néanmoins les fonctionnalités suivantes:
        • Visioconférence
        • Partage d'écran
        • Audioconférence
        • Message vidéo
        • Enregistrement vidéo
        • Discussion ou chat
        • Echange de document
        • Cette version est dite privée, par le fait que les contacts sont créés par un administrateur ou un contributeur (celui-ci dispose de ses propres contacts).
          Il n'y a donc pas d'inscription en ligne..
          Après acceptation, les participants disposent d'un espace sur le serveur pour stocker leur profil. (Un email et éventuellement une photo et un profil couleur)
          Les salons de discussion sont dès lors accessibles directement, ou par un système d'invitation par email entre contacts.
          Des préréglages permettent les audioconférences, les messages vidéo et les communications entre mobiles.
        Cette visioconférence est destinée pricipalement aux associations, petites entreprises, et particuliers soucieux de préserver leur indépendance.
        Les performances de l'application dépendront principalement du réseau (Entre 6 et 10 participants en ADSL en visioconférence pure).
    • Applications en fonctionnement
      • Blog de linuxtarn
        • Montage à partir de django-minuteblog modulé en blog
        • Le site est hébergé chez Tetaneutral à Toulouse
        • Un calendrier à été ajouté
        • Une messagerie de diffusion a été installée.
        • Les messages sont diffusés sur la liste de diffusion de linuxtarn.org.
      • Yoga-Méditation
        • Montage à partir de django-minuteblog modulé en site d'activité professionnel.
        • Il est hébergé chez Contabo GmbH
        • Il est organisé en blog
        • Propose des cours vidéo en ligne
        • Propose des livres, des cds multimedia
      • Visioconférence de linuxtarn.org
        • Montage à partir de django-videoconferencing
        • Le site est hébergé chez Tetaneutral à Toulouse
        • Trois salons ont été installés
          • Le bar de linuxtarn: Discussions diverses, tout sujet, configuré sans enregistrement
          • Dépannage linux: Dépannage en ligne linux et marérie, configuré sans enregistrement
          • Réunion linuxtarn: Réunion du bureau ou membres de l'association, toutes options de configuration
      • SeriousGame ou quizmaster
        En test sur le site public de linuxtarn.org. Il faut donc un mot de passe pour jouer.
        L'application est prévue pour fonctionner en local depuis un raspberry pi3.
        Le raspberry pi3 est à la fois le point d'accès wifi et le serveur de jeu.
        Principe de fonctionnement:
        • Matériels nécessaires:
          • Raspberry pi3 (point d'accès et serveur)
          • PC pour l'adminstrateur
          • PC, portable, mobile, quizbox pour les joueurs
          • La quizbox est une interface de 70mm x 50mm x 30mm composée d'un écran tactile et d'un raspberry pico W.
            Le microcontrôleur est programmé en micro-python.
            A faire.
        • Une URL permet à l'administrateur de gérer les questionnaires et lancer les jeux.
        • Une URL permet l'accès aux joueurs.
        • Les jeux sont anonymes
      • RelayController [en cours de développement]
        • C'est une interface django qui pilote des relais de commande.
        • le nombre de relais dépend du nombre de circuits 74HC595 (8 x n)
        • Une petite électronique est reliée aux gpios d'un raspberry pi 2/3/4
        • Le Raspberry pi est à la fois
          • Un point d'accès
          • Le tableau de bord
          • Le planificateur
          • Le contrôleur
    • Applications en stand-by
      • django-vigiapis
        C'est une application complète de ruches connectées développée pour l'association Rucher école de Réalmont.
        La covid est passé par là et le projet s'est naturellement éteint.
        A ce moment, les matériels étaient en test, et la collecte, le transport, le traitement des données étaient opérationnels.
        Voici le principe reproductible pour des données différentes:
        • Ruches: collecte des données >> Esp32 + LoRa 433 Mz
        • Rucher ou concentrateur: transport des données par SMS >> Esp32 + LoRa 433 Mz + modem SIM808
        • Passerelle SMS: transport mqtt des données sur l'internet >> Raspberry piB + modem usb
        • Serveur Django: Réception des données et traitement à partir d'un tableau de bord
      • VigiCamera
        A la base, c'est une démonstration d'une application de surveillance interactive pour mobiles ou webcams embarquées.
        Permet de suivre et localiser un évènement au déclenchement du mobile ou webcam.
        On utilise le paquet yolo_image_detection d'openCV pour la détection d'objets (chien, chat, arme, etc...)
        Pas besoin d'une grosse puissance de serveur sauf en cas de détection d'objets.
      • CameraMonitor
        C'est un tableau de bord de vidéo surveillance pour webcams, mobiles, ou autres caméras suivant la technologie MQTT.
      • Fail2banMqttPublisher
        C'est un tableau de bord qui affiche les connexions malveillantes d'un serveur en ligne à partir d'une action de fail2ban. (f2b_mqtt_action_publisher.py)
    • Projet en étude
      • django-academia: Cours en ligne avec visioconférence
        • Monté à partir de django-minuteblog modulé en site de cours en ligne et de django-videoconference.
        • Installable sur un serveur public
        • Dockerisé pour une installation sur un Pc ou portable derrière une box ADSL ou Fibre
  • Comment déployer un projet Django sur un serveur en production ?

    déploiement de Django pour les serveurs et applications Web en python
    denis [Superviseur] 17 octobre 2023 08:45

    WSGI ASGI supervisor nginx daphne gunicorn

    Le déploiement de Django pour les serveurs et applications Web en python:
    • WSGI (Web Server Gateway Interface) application synchrone
      On utilisera alors le paquet gunicorn
    • ASGI (Asynchronous Server Gateway Interface) application asynchrone et synchrone
      On utilisera le paquet daphne
    Dans les 2 cas on utilise supervisor pour lancer le serveur et nginx comme reverse proxy. Dans tous les cas, préparer le serveur (dédié ou VPS).
    Un domaine devra pointer l'adresse publique du serveur ex: shop.domain.com. On accède au serveur par ssh.
    Voici la liste non exhaustive des tâches sur un serveur debian:
    • Le minimum pour compiler et installer des libraries python et outils système
      #> apt -y install build-essential git wget curl unzip python3-venv python3-pip
      #> apt -y install libz-dev libjpeg-dev libfreetype6-dev python-dev
      #> apt -y install supervisor nginx redis openssl libnss3-tools ssl-cert
      #> apt -y install certbot python3-certbot-nginx
      #> apt -y install iptables fail2ban
      #> apt -y install sqlite3
                  
    • On génère la clef dhparam pour compléter la certification
      #> openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
                  
    • Créer un utilisateur shop par ex:
      #> adduser shop
      #> adduser shop www-data (ajouter shop au groupe de nginx)
                  
      Copier par ftp ou git le projet derrière /home/shop
    • On se logue en tant que shop
      #> su - shop
                  
      On se retrouve donc en donc /home/shop
      • Comme en mode développement on installe l'environnement python
        (.venv) $> pip install django gunicorn
      • On modifie le settings.py
        DEGUG = False
        ALLOWED_HOSTS = ['127.0.0.1', 'shop.domain.com']
      • Faire la migration pour créer la base de donées (sqlite3 par défaut):
        (.venv) $> python manage.py migrate
      • Créer le super utilisateur pour l'administration du back end:
        (.venv) $> python manage.py createsuperuser
      • Générer les fichiers de type static
        (.venv) $> python manage.py collectstatic
      • Tout est prêt pour lancer l'application

    Application synchrone

    • Extrait du fichier de configuration de /etc/supervisor/conf.d/demo.conf:
      [program:shop]
      directory = /home/shop
      command=/home/shop/.venv/bin/gunicorn
              --chdir /home/shop/demo
              --bind 127.0.0.1:8000
              --user shop
              --group www-data
              --log-level error
               demo.wsgi:application
      user=root
      stopasgroup=true
      stopsignal=SIGINT
      autostart=true
      autorestart=true
      redirect_stderr=true
      redirect_stdout=true
                  
    • Configurer l'application dans supervisor
      #> supervisorctl reread
      #> supervisorct update
      	       
    • Lancer ou relancer le serveur
      #> supervisorct restart shop
      	       
    • Extrait du fichier de configuration de /etc/nginx/sites-enabled/demo.conf
      # virtualhost
      server {
          if ($host = shop.domain.com) {
              return 301 https://$host$request_uri;
          }
          listen                  80;
          listen                  [::]:80;
          server_name             shop.domain.comg;
          return                  https://$host$request_uri;
      }
      
      server {
          listen                  443 ssl http2;
          listen                  [::]:443 ssl http2;
          server_name             shop.domain.com;
      
          set $base_path          /home/shop;
          keepalive_timeout       5;
          client_max_body_size    4G;
      
          access_log              /var/log/nginx/shop.domain.com-access.log;
          error_log               /var/log/nginx/shop.domain.com-error.log;
          ssl_certificate         /etc/letsencrypt/live/shop.domain.com/fullchain.pem;
          ssl_certificate_key     /etc/letsencrypt/live/shop.domain.com/privkey.pem;
          ssl_dhparam             /etc/letsencrypt/ssl-dhparams.pem;
          include                 /etc/letsencrypt/options-ssl-nginx.conf;
      
          set $root_path          $base_path/demo;
          root $root_path;
      
          location /static/ {
              alias $root_path/staticfiles/;
          }
      
          location /media/ {
              alias $root_path/media/;
          }
      
          location /favicon.ico {
              alias $root_path/staticfiles/img/logo.png;
          }
      
          location /robots.txt {
              alias $root_path/staticfiles/robots.txt;
          }
      
          location / {
              include proxy_params;
              proxy_redirect off;
              proxy_http_version 1.1;
              proxy_set_header Upgrade $http_upgrade;
              proxy_set_header Connection "upgrade";
              proxy_pass http://127.0.0.1:8000;
          }
      }
      	       
    • Lancer ou relancer le serveur
      #> systemctl restart nginx
                 
    • L'application est maintenant disponible en https://shop.domain.com

    Application asynchrone

    Installer daphne dans l'environnement
    $> pip install django daphne
    Il faudra aussi porter daphne en première position de INSTALLED_APPS dans le settings.py
    INSTALLED_APPS = [
        'daphne',
        ...
        ]
            
    • Extrait du fichier de configuration de /etc/supervisor/conf.d/demo.conf
      [program:demo]
      directory = /home/shop
      command=/home/shop/.venv/bin/daphne
              --bind 127.0.0.1
              --port 8000
              --access-log -
              --proxy-headers
               demo.asgi:application
      user=root
      stopasgroup=true
      stopsignal=SIGINT
      autostart=true
      autorestart=true
      redirect_stderr=true
      redirect_stdout=true
                  
    • Configuration nginx comme synchrone
  • Principe et philosophie

    Django s'inspire du modèle MVC
    denis [Superviseur] 7 octobre 2023 18:58

    models views templates

    Django s'inspire du modèle MVC (disons plutot MVT).
    La structure du framework sépare les données ( models ) qui sont séparées des traitements ( controller ) qui sont eux-mêmes séparés de la vue ( view / template ).

    Architecture MVT, (Model-View-Template)

    • Model: le modèle définit la structure et la gestion de la base de données
      • Django ORM (Object Relational Mapping)
      • Modèles de données définis par des classes Python
    • View: une vue reçoit les requêtes HTTP et renvoie les réponses HTTP.
      • accède aux données requises pour satisfaire les requêtes par une fonction ou classe python via les modèles
      • formate la réponse aux templates ou rendu html
    • Template
      • interface html ou rendu visuel
      • langage de balisage personnel
      • interfaces dynamiques et interactives

    Principe DRY (Don’t Repeat Yourself)

    • environnement de travail propre et gérable
    • un espace unique pour stocker chaque objet distinct
    • supprime les redondances pour se concentrer sur la logique de l'application

    Authentification et sécurité

    • un système d'authentification utilisateur complet et sécurisé
    • comptes d'utilisateurs, groupes d'utilisateurs et sessions
    • un système de sécurité de pointe contre les failles de sécurité courantes

    DRF (Django REST Framework)

    • une boîte à outils de composants pour créer des API RESTFUL
    • Une API est une interface permettant d'interagir avec des bases de données.
    • Les API RESTFUL sont utilisées pour répertorier, modifier, créer et supprimer des données sur des serveurs Web
  • A propos des documents sur Python Django

    Découvrir la plateforme de développement Django
    denis [Superviseur] 7 octobre 2023 18:55

    Python Django

    Il s'adresse à tout développeur d'application Web dont le but est de produire des projets solides rapidement et sans surprise.
    Il n'a pas la prétention de tout expliquer et de tout dire sur la plateforme de développement Django, car le sujet est vaste.
    Il vous fera simplement découvrir cet environnement de programmation qui pourquoi pas, vous donnera l'envie d'aller un peu plus loin.

    Dans tous les cas, veuillez vous référer aux liens suivants indispensables pour démarrer:

Politique des cookies

Ce site nécéssite l'acceptation préalable des cookies en particulier celui qui permettra de mémoriser votre choix.
En accédant à ce site, vous acceptez implicitement l'utilisation des cookies uniquement nécessaires à l'application.

Logiciels libres

Publications

Vers le haut
Linuxtarn: Association tarnaise des utilisateurs de gnu/linux et logiciels libres. Partenaire de Linuxedu

CONTACT

Veillez compléter la fiche ci-dessous:

Votre demande concerne

captcha Je suis un humain en reproduisant les 4 caractères ci-contre.

×

Guide

Développer ou non les infos avec les commandes suivantes
  • Gauche ou droit
  • Clic sur l'icon du titre des articles
  • Devant un titre signale cette action
Autres infos
  • n Indique le nombre d'éléments