archives_blog/public/search/index.json
2025-06-05 10:17:40 +02:00

1 line
No EOL
247 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[{"content":"Vim est un éditeur de texte intégré hautement configurable permettant dédition des textes efficacement. C\u0026rsquo;est une version améliorée de léditeur vi distribué avec la plupart des systèmes UNIX. Cet article sous forme de note regroupe les commandes, raccourcis, que j\u0026rsquo;utilise sous Vim. Il sera étoffé et mis à jours au fur et à mesure de mon utilisation de Vim.\nCommandes Rechercher et remplacer Utilisation de la commande: substitute (: s) en mode normal.\nRechercher « olivier » et remplacer par « famille » sans demander à chaque occurence trouvée : :%s/olivier/famille/g Rechercher « olivier » et remplacer par « famille » et demander à chaque occurence trouvée : :%s/olivier/famille/gc Rechercher « moi » et remplacer par « olivier » mais le mot en entier (exemple : le mot « moi » sera trouvé dans « je suis moi », mais pas « le mois de janvier ») : :%s/\\\\moi\\\\/olivier/gc Rechercher « olivier » ou « inès » et remplacer par « famille » : :%s/olivier\\\\|inès/famille/g Rechercher « olivier » et remplacer par « famille » dans la ligne où se trouve le curseur : :s/olivier/famille Rechercher tous les « olivier » et remplacer par « famille » dans la ligne où se trouve le curseur : :s/ancien/nouveau/g Rechercher « olivier » et remplacer par « famille » dans les lignes n° # à # du fichier : :#,#s/ancien/nouveau/g Rechercher Effectuer une recherche de texte.\nRechercher « olivier » N\u0026rsquo;hésitez pas à faire vos commentaires ou à suivre les publications sur Mastodon !\n","date":"2022-09-13T11:21:58+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/2022/09/13/commandes-et-raccourcis-utiles-pour-vim/","title":"Commandes et raccourcis utiles pour Vim"},{"content":"Cela fait quelques mois que j\u0026rsquo;ai armorcé ma migration de Proxmox vers Docker. Le but de cet article n\u0026rsquo;est pas de présenter le moteur de conteneurs le plus célèbre du paf d\u0026rsquo;autres l\u0026rsquo;ont déjà fait mais d\u0026rsquo;entamer une série d\u0026rsquo;articles autour de cette migration. Aujourd\u0026rsquo;hui je vais aborder le cas du reverse proxy avec Traefik.\nPrésentation Traefik est un reverse proxy HTTP moderne et un répartiteur de charge(load balancing). Il se configure selon deux méthodes, la première dite interactive, elle permet de passer la configuration en paramètre de lexécutable (méthode que j\u0026rsquo;utilise dans cet article) et la seconde dite déclarative,elle permet de passer par un fichier de paramètrage au format toml ou yaml. Le gros avantage de Traefik c\u0026rsquo;est qu\u0026rsquo;il fait de lauto-discovery via un système de fournisseurs de services comme Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS et dans mon cas Docker et des fichiers.\nConfiguration Docker-compose Comme je l\u0026rsquo;ai indiqué en introduction mon traefik est configuré de façon interactive. Les paramètres de l\u0026rsquo;exécutable sont renseignés comme suit dans mon docker-compose :\ncommand: - --providers.docker # J\u0026#39;utilise le provider Docker - --providers.docker.exposedbydefault=false # Je n\u0026#39;expose pas par défaut mes conteneurs - --providers.file.directory=/config/ # je charge les configurations du répertoire - --providers.file.watch=true # je surveille le répertoire précédent pour charger dynamiquement les configurations - --entrypoints.http.address=:80 # Création de l\u0026#39;entrypoint nommé http sur le port 80 - --entrypoints.https.address=:443 # Création de l\u0026#39;entrypoint nommé https sur le port 80 - --entrypoints.http.http.redirections.entrypoint.to=https #je redirige tout ce qui arrive sur le http vers le https - --entrypoints.http.http.redirections.entrypoint.scheme=https # utilisation du point d\u0026#39;entrée https pour la redirection - --certificatesresolvers.le.acme.email=${TRAEFIKEMAIL} # le courriel pour l\u0026#39;utilisation de Lets\u0026#39;encrypt - --certificatesresolvers.le.acme.storage=/certificates/acme.json # acme.json pour let\u0026#39;s encrypt - --certificatesresolvers.le.acme.tlschallenge=true - --global.sendanonymoususage=false # désactivation de l\u0026#39;envoi de donnée - --accesslog=true # j\u0026#39;active l\u0026#39;accès au logs - --log.level=INFO # je défini le niveau d\u0026#39;information dans les logs - --log.filePath=/logs/traefik.log # j\u0026#39;indique ou stocker les logs - --api # j\u0026#39;active l\u0026#39;Api et l\u0026#39;acès au dashboard Dans la configuration de traefik, je place un répertoire en écoute --providers.file.directory=/config/ qui est monté sur l\u0026rsquo;hôte dans /srv/traefik/config. Tous les fichiers présents dans ce répertoire seront chargés dynamiquement --providers.file.watch=true sans avoir à redémarrer la stack. Dans ce répertoire j\u0026rsquo;y place aussi les paramètres récurrent à chaque services exposés, comme la configuration TLS, les Headers, et autres middlewares. Cela m\u0026rsquo;évite d\u0026rsquo;alourdir les docker-compose de mes futurs services avec des paramètres fixent.\nVolumes J\u0026rsquo;utilise les volumes pour les certificats générés par Let\u0026rsquo;sencrypt, les secrets contenant les identifiants, l\u0026rsquo;enregistrement des logs et la configuration dynamique.\n[...] volumes: - /var/run/docker.sock:/var/run/docker.sock:ro # écoute de l\u0026#39;api docker - /mnt/nas/voljin/volumes/traefik:/certificates # stockage des certificats - ./secrets:/secrets:ro # stockage des mots de passes - ./config:/config:ro # configuration dynamique - ./logs:/logs # enregistrement des logs. [...] Identifiant de connexion L\u0026rsquo;identifiant de connexion se présente sous la forme d\u0026rsquo;une ligne de texte a ajouter tel quel dans le fichier traefik_auth_file, contenant le nom d\u0026rsquo;utilisateur et le mot de passe qui sera chiffré avec openssl. Dans le répertoire /srv/traefik/secrets je crée le fichier composé comme cela.\nCréation de l\u0026rsquo;identifiant.\nuser:mot_de_passe_chiffré Chiffrage du mot de passe avec openssl.\nopenssl passwd -apr1 mon_mot_de_passe Le mot de passe chiffré doit ressembler à cela.\n$apr1$89eqM5Ro$CxaFELthUKV21DpI3UTQO. Je copie-colle avec le nom d\u0026rsquo;utilisateur.\nuser:$apr1$89eqM5Ro$CxaFELthUKV21DpI3UTQO. On mettra une ligne par utilisateurs.\nConfiguration TLS Dans le répertoire /srv/traefik/config je crée un fichier tls.yml composé comme cela.\ntls: options: default: minVersion: VersionTLS12 sniStrict: true cipherSuites: - TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 # TLS 1.2 - TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 # TLS 1.2 - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 # TLS 1.2 - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 # TLS 1.2 - TLS_AES_256_GCM_SHA384 # TLS 1.3 - TLS_CHACHA20_POLY1305_SHA256 # TLS 1.3 - TLS_FALLBACK_SCSV # TLS FALLBACK curvePreferences: - secp521r1 - secp384r1 - X25519 - CurveP521 - CurveP384 - CurveP256 modern: minVersion: VersionTLS13 Il s\u0026rsquo;agit d\u0026rsquo;une configuration classique, j\u0026rsquo;utilise les ciphers autorisés dans la configuration par defaut, avec une version de TLS minimum en 1.2. Je force lutilisation de TLSv1.3.\nLes middlewares Voici les différents middlewares que j\u0026rsquo;utilise, je préfère utiliser un fichier par middleware. En effet si je me loupe dans la configuration d\u0026rsquo;un middleware celui-ci ne sera pas chargé et cela ne pertubera pas le fonctione de Traefik.\nHeaders et HSTS Dans un fichier appelé config.yml.\nhsts-headers: headers: frameDeny: true browserXssFilter: true contentTypeNosniff: true stsIncludeSubdomains: true stsPreload: true stsSeconds: 31536000 forceStsHeader: true Compression Compression en GZIP dans un fichier appelé compression.yml.\nhttp: middlewares: compression: compress: excludedContentTypes: - \u0026#34;text/event-stream\u0026#34; Accès au Dashboard Avec le paramètre --api j\u0026rsquo;active l\u0026rsquo;accès au dashboard de traefik. Pour ce faire j\u0026rsquo;ajoute ces labels docker dans ma stack.\nlabels: - traefik.enable=true # J\u0026#39;active traefik - traefik.docker.network=traefik # j\u0026#39;indique le réseau pour l\u0026#39;exposition du conteneur - traefik.http.middlewares.admin-auth.basicauth.usersfile=/secrets/traefik_auth_file # fichier contenant l\u0026#39;auhentification pour l\u0026#39;accès au dashboard - traefik.http.routers.traefik.rule=Host(`traffic.${DOMAIN}`) # url d\u0026#39;accès - traefik.http.routers.traefik.entrypoints=https # port d\u0026#39;écoute utilisé - traefik.http.routers.traefik.tls=true # chiffrage - traefik.http.routers.traefik.service=api@internal # service propre à traefik pour le dashboard - traefik.http.routers.traefik.tls.certresolver=le # Let\u0026#39;s encrypt comme resolveur de certificat - traefik.http.routers.traefik.middlewares=admin-auth # activation de l\u0026#39;authentification via le fichier défini plus haut - traefik.http.services.traefik.loadbalancer.server.port=8080 # port d\u0026#39;écoute du dashbord non exposé Docker-compose final version: \u0026#34;3.8\u0026#34; networks: traefik: external: true services: traefik: image: traefik:banon restart: unless-stopped container_name: traefik ports: - 80:80 - 443:443 labels: - traefik.enable=true - traefik.docker.network=traefik - traefik.http.middlewares.admin-auth.basicauth.usersfile=/secrets/traefik_auth_file - traefik.http.routers.traefik.rule=Host(`traffic.${DOMAIN}`) - traefik.http.routers.traefik.entrypoints=https - traefik.http.routers.traefik.tls=true - traefik.http.routers.traefik.service=api@internal - traefik.http.routers.traefik.tls.certresolver=le - traefik.http.routers.traefik.middlewares=admin-auth - traefik.http.middlewares.traefik.compress=true - traefik.http.middlewares.traefik.compress.excludedcontenttypes=text/event-stream - traefik.http.services.traefik.loadbalancer.server.port=8080 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - /mnt/nas/voljin/volumes/traefik:/certificates - ./secrets:/secrets:ro - ./config:/config:ro - ./logs:/logs command: # ------------------------------------------- providers Docker - --providers.docker - --providers.docker.exposedbydefault=false # ------------------------------------------- Providers Fichier - --providers.file.directory=/config/ - --providers.file.watch=true # ------------------------------------------- Ports - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 # ------------------------------------------- Redirection vers https - --entrypoints.http.http.redirections.entrypoint.to=https - --entrypoints.http.http.redirections.entrypoint.scheme=https # ------------------------------------------- Configuration SSL - --certificatesresolvers.le.acme.email=${TRAEFIKEMAIL} - --certificatesresolvers.le.acme.storage=/certificates/acme.json - --certificatesresolvers.le.acme.tlschallenge=true # ------------------------------------------- Configuration traefik - --global.sendanonymoususage=false - --accesslog=true - --log.level=INFO - --log.filePath=/logs/traefik.log - --api networks: - traefik Conclusion Je ne fait qu\u0026rsquo;effleurer les possibilités qu\u0026rsquo;offre traefik et il y en a tellement, les middlewares, le routage TCP et UDP, la possibilité de servir des machines non docker, la diversité des providers et j\u0026rsquo;en oublie. Jespère que vous avez apprécié cet article et que vous allez prendre autant de plaisir que moi à jouer avec traefik.\nN\u0026rsquo;hésitez pas à faire vos commentaires ou à suivre les publications sur Mastodon !\n","date":"2022-06-15T11:21:58+01:00","image":"https://archives.draconis.me/images/header/traefik.png","permalink":"https://archives.draconis.me/2022/06/15/utiliser-traefik-comme-reverse-proxy/","title":"Utiliser Traefik comme reverse proxy"},{"content":"Je faisais tourner Gitea sur mon serveur maison via docker depuis un petit moment déjà, puis la semaine dernière, le disque dur a commencé à faire des bruits horribles. J\u0026rsquo;ai donc arrêté les conteneurs, sauvegardé les volumes et les fichiers de configuration pour déplacer tout ce petit monde vers un nouveau disque dur que j\u0026rsquo;avais préparé mais que je n\u0026rsquo;avais pas encore implémenté. Tout est à nouveau en ligne et fonctionnel, tout du moins je le croyais. Lorsque j\u0026rsquo;ai voulu utiliser mes dépôts Git, j\u0026rsquo;ai découvert que je ne pouvais pas utiliser les requêtes Git (git pull ou git clone) via SSH. En revanche l\u0026rsquo;utilisation de Git via HTTPS fonctionne parfaitement.\nDans un premier temps j\u0026rsquo;ai pensé à mes clefs. J\u0026rsquo;ai regénéré et importé toutes mes clefs cela n\u0026rsquo;a pas fonctionné. Vérification de la configuration de la freebox et de mon docker-compose tout est bon de ce côté.\nDans un second temps je me suis concentré le container docker. J\u0026rsquo;ai vérifier la configuration du serveur ssh de gitea. Comme dirait Jean-Claude sur un mal entendu ça peut passer.\ndocker exec -it gitea bash bash-5.1#vi /etc/ssh/sshd_config Le service écoute bien sur le port 22, comme configuré dans mon docker-compose et Git est bien le seul utilisateur autorisé à se connecter. Je décide donc de faire un tour dans les logs de docker via un petit script de ma composition et bingo ! J\u0026rsquo;ai trouvé d\u0026rsquo;où provenait l\u0026rsquo;erreur.\ngitea | Authentication refused: bad ownership or modes for directory /data/git/.ssh gitea | Connection closed by authenticating user git xx.xx.xx.xx port 62830 [preauth] Ni une ni deux je suis allé vérifier le propriétaire du dossier /data/git/.ssh, celui-ci était bon, mais c\u0026rsquo;est au niveau des autorisations que cela clochait. En effet le dossier .ssh était configuré en mode 777 au lieu du mode 700.\nsudo chmod -R 700 /mnt/stock/volumes/gitea/data/git/.ssh Depuis mes requêtes git via SSH fonctionnent parfaitement.\n","date":"2022-03-22T11:21:58+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/2022/03/22/gitea-no-supported-authentication-methode/","title":"Gitea : No supported authentication methods available (server sent: publickey)"},{"content":"C\u0026rsquo;est un chantier que j\u0026rsquo;avais laissé de côté depuis la migration du blog de wordpress vers hugo, c\u0026rsquo;est aujourd\u0026rsquo;hui chose faite, les commentaires sont enfin ouverts sur le blog, histoire d\u0026rsquo;y apporter un peu plus de vie et pour entendre ce que vous avez à (re)dire sur mes coquilles orhtographiques ou autres. Lorsque l\u0026rsquo;on veut mettre en place un système de commentaires sur un site statique plusieurs outils s\u0026rsquo;offrent à nous. Le plus connu est surement Disqus qui possède un fonctionement plus que discutable, traçage sans gêne des visiteurs, hébergement dans leur cloud, aucune maîtrise sur les données collectées. Pour mon blog je voulais quelque chose que je puisse héberger, de rapide et qui ne traque pas mes visiteurs. Mon choix c\u0026rsquo;est donc porté sur Isso une alternative open-source à Disqus qui peut s\u0026rsquo;héberger facilement et dont j\u0026rsquo;ai la maîtrise totale. La documentation est très bien réalisée, mais j\u0026rsquo;ai rencontré quelques difficultés lors de l\u0026rsquo;installation que je vous détaille ici. Celle-ci se déroule sur container LXC avec pour système un Debian 10.\nInstallation Installation des dépendances afin d\u0026rsquo;utiliser par défaut Python3 et non Python2. En effet j\u0026rsquo;ai rencontré plusieurs problèmes de versions de dépendances avec python2 et n\u0026rsquo;étant plus supporté depuis le 1 Janvier 2020 j\u0026rsquo;ai décidé d\u0026rsquo;utiliser python3.\nsudo apt install python3.7-dev python3.7-pip sqlite3 build-essential Installation de Isso.\nsudo pip3 install isso Ensuite je crée un utilisateur dédié à isso, celui-ci permettra d\u0026rsquo;executé et d\u0026rsquo;envoyer les notifications par courriel et configuration de sont mot de passe.\nsudo adduser isso --disabled-login sudo passwd isso Configuration Isso installé passons maintenant à sa configuration. Pour l\u0026rsquo;occasion j\u0026rsquo;ai créé un dossier dans /etc/isso.d pour y stocker le fichier de configuration.\nmkdir /etc/isso.d sudo vim /etc/isso.d/blog.cfg J\u0026rsquo;ai ensuite renseigné le fichier comme suit.\n[general] name = blog dbpath = /var/lib/isso/blog.comments.db host = https://draconis.me/blog/ max-age = 15m notify = smtp log-file = /var/log/isso.log [moderation] enabled = false [admin] enabled = true password = # Mot de passe de l\u0026#39;utilisateur isso [server] listen = http://localhost:8080 reload = off profile = off public-endpoint = https://isso.draconis.me [guard] enabled = true ratelimit = 2 direct-reply = 3 reply-to-self = false require-author = false require-email = false [smtp] username = # utilisateur capable d\u0026#39;envoyer des courriels password = # son mot de passe host = # serveur d\u0026#39;envoi de courriels port = # le port utilisé security = starttls to = # mon adresse courriel from = # adresse d\u0026#39;envoi des notifications timeout = 10 Rendez-vous dans ma zone DNS afin de créer le sous-domaine isso.draconis.me correspondant au serveur de commentaires.\nisso 0 IN cname draconis.me. Attributions des droits à l\u0026rsquo;utilisateur isso afin qu\u0026rsquo;il puisse écrire dans la base de données et les fichiers de journalisation.\nsudo touch /var/log/isso.log sudo chown isso: /var/log/isso.log sudo mkdir /var/lib/isso sudo chown isso: /var/lib/isso sudo touch /var/lib/isso/blog.comments.db sudo chown isso: /var/lib/isso/blog.comments.db Vérifions maintenant que tout fonctionne correctement.\n# changement d\u0026#39;utilisateur su - isso # lancement de isso /usr/local/bin/isso -c /etc/isso.d/blog.cfg run Si tout vas bien rien de ne doit s\u0026rsquo;afficher dans le terminal. Mais dans mon cas j\u0026rsquo;ai rencontré cette erreur :\nTraceback (most recent call last): File \u0026#34;/usr/local/bin/isso\u0026#34;, line 6, in \u0026lt;module\u0026gt; from isso import main File \u0026#34;/usr/local/lib/python3.7/dist-packages/isso/__init__.py\u0026#34;, line 60, in \u0026lt;m\u0026gt; from werkzeug.wsgi import SharedDataMiddleware ImportError: cannot import name \u0026#39;SharedDataMiddleware\u0026#39; from \u0026#39;werkzeug.wsgi\u0026#39; (/usal/lib/python3.7/dist-packages/werkzeug/wsgi.py) Après une recherche internet il semblerai que la dernière version du paquet werkzeug ne soit pas compatible avec isso et qu\u0026rsquo;il faille rétrograder jusqu\u0026rsquo;à la version 0.16.1.\nsudo pip3 install werkzeug==0.16.1 Une fois ceci fait isso démarre normalement.\nMise en service Maintenant qu\u0026rsquo;isso fonctionne je souhaite qu\u0026rsquo;il démarre en même temps que le serveur, pour cela je crée un service systemd dans /etc/systemd/system/isso.service.\n[Unit] Description=commentaires pour le blog [Service] User=isso Environment=\u0026#34;ISSO_SETTINGS=/etc/isso.d/blog.cfg\u0026#34; ExecStart=/usr/local/bin/isso -c $ISSO_SETTINGS run [Install] WantedBy=multi-user.target Pour finir j\u0026rsquo;active et démarre le service.\nsudo systemctl enable isso sudo systemctl start isso sudo systemctl status isso ● isso.service - lightweight Disqus alternative Loaded: loaded (/etc/systemd/system/isso.service; enabled; vendor preset: ena Active: active (running) since Fri 2020-12-11 10:55:37 CET; 2h 52min ago Main PID: 19318 (isso) Tasks: 1 (limit: 4632) Memory: 27.2M CGroup: /system.slice/isso.service └─19318 /usr/bin/python3 /usr/local/bin/isso -c /etc/isso.d/blog.cfg Dec 11 10:55:37 stromgarde systemd[1]: commentaires pour le blog. A cette étape je vérifie qu\u0026rsquo;isso s\u0026rsquo;éxecute correctement sur le serveur.\nsudo curl localhost:8080/admin \u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Isso admin\u0026lt;/title\u0026gt; \u0026lt;link type=\u0026#34;text/css\u0026#34; href=\u0026#34;https://isso.draconis.me/css/isso.css\u0026#34; rel=\u0026#34;stylesheet\u0026#34;\u0026gt; \u0026lt;link type=\u0026#34;text/css\u0026#34; href=\u0026#34;https://isso.draconis.me/css/admin.css\u0026#34; rel=\u0026#34;stylesheet\u0026#34;\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div class=\u0026#34;wrapper\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;header\u0026#34;\u0026gt; \u0026lt;header\u0026gt; \u0026lt;img class=\u0026#34;logo\u0026#34; src=\u0026#34;https://isso.draconis.me/img/isso.svg\u0026#34; alt=\u0026#34;Wynaut by @veekun\u0026#34;/\u0026gt; \u0026lt;div class=\u0026#34;title\u0026#34;\u0026gt; \u0026lt;a href=\u0026#34;./\u0026#34;\u0026gt; \u0026lt;h1\u0026gt;Isso\u0026lt;/h1\u0026gt; \u0026lt;h2\u0026gt;Administration\u0026lt;/h2\u0026gt; \u0026lt;/a\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/header\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;main\u0026gt; \u0026lt;div id=\u0026#34;login\u0026#34;\u0026gt; Administration secured by password: \u0026lt;form method=\u0026#34;POST\u0026#34; action=\u0026#34;https://isso.draconis.me/login\u0026#34;\u0026gt; \u0026lt;input type=\u0026#34;password\u0026#34; name=\u0026#34;password\u0026#34; autofocus /\u0026gt; \u0026lt;/form\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/main\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; Je constate que la page d\u0026rsquo;administration d\u0026rsquo;isso s\u0026rsquo;affiche correctement.\nConfiguration de Nginx J\u0026rsquo;utilise Nginx comme proxy afin de pouvoir chiffrer les connexions sur le serveurs de commentaires. Dans le dossier /etc/nginx/site-available/isso.\nserver { listen 80; server_name draconis.me; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name isso.draconis.me; ssl_certificate /etc/letsencrypt/live/draconis.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/draconis.me/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/draconis.me/chain.pem; ssl_stapling on; ssl_stapling_verify on; resolver 80.67.169.12 80.67.169.40 valid=300s; resolver_timeout 5s; add_header Strict-Transport-Security \u0026#34;max-age=15552000; preload\u0026#34;; access_log /var/log/nginx/isso.access.log; error_log /var/log/nginx/isso.error.log; location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:8080; } } J\u0026rsquo;active, puis je vérifie que la configuration du vhost est bonne et pour finir je relance le serveur nginx\nsudo ln -s /etc/nginx/site-available/isso /etc/nginx/site-enabled/ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful sudo systemctl restart nginx Intégration au blog J\u0026rsquo;ajoute ce morceau de code directement dans mon template. Dans le cas d\u0026rsquo;un site sous hugo à la fin du fichier single.html dans ```themes/mon_theme/layouts/_default/single.htmljuste avant la dernière balise {{end}}``.\n\u0026lt;div class=\u0026#34;post-footer\u0026#34;\u0026gt; \u0026lt;section id=\u0026#34;isso-thread\u0026#34;\u0026gt;\u0026lt;/section\u0026gt; \u0026lt;script data-isso=\u0026#34;https://isso.draconis.me/\u0026#34; src=\u0026#34;https://isso.draconis.me/js/embed.min.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;/div\u0026gt; Conclusion Maintenant à vous me dire si ce billet vous a aidé en me laissant un petit commentaire ci-dessous. :)\n","date":"2020-12-11T11:21:58+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/2020/12/11/ouverture-des-comentaires/","title":"Ouverture des commentaires"},{"content":"Piwigo est une application de gestion d\u0026rsquo;albums photo pour le web, que j\u0026rsquo;utilise pour partager mes photos publiques ainsi que mes photos privées avec le reste de la famille. Afin de faciliter son utilisation pour Papi et Mamie et pour rester dans l\u0026rsquo;esprit de mon site j\u0026rsquo;ai choisi de placer piwigo dans un sous-dossier plutôt que d\u0026rsquo;utiliser un sous domaine.\nObjectif Rendre ma galerie de photo publique et privée accessible avec l\u0026rsquo;url draconis.me/photo/ plutôt qu\u0026rsquo;avec un sous-domaine.\nConfiguration de Nginx Tout ce passe dans le fichier de configuration du vhost draconis.me. Pour ce faire rendez-vous dans le dossier /etc/nginx/sites-available/ de nginx. J\u0026rsquo;ai ensuite ajouté ces lignes dans le bloc serveur :\nsudo nano /etc/nginx/sites-available/draconis.me server { listen 443 ssl http2; server_name draconis.me; ... location /photo { root /var/www/; location ~ ^(?\u0026lt;script_name\u0026gt;.+?\\.php)(?\u0026lt;path_info\u0026gt;/.*)?$ { include /etc/nginx/fastcgi_params; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; fastcgi_param PATH_INFO $path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_scr$ fastcgi_param HTTPS on; } } ... access_log /var/log/nginx/draconis.access.log; error_log /var/log/nginx/draconis.error.log; } Un redémarage de nginx plus tard, ma gallerie est enfin acessible via l\u0026rsquo;adresse web suitvante : https://draconis.me/photo. Papi et Mamie sont ravis.\nUne idée ? Un commentaire ? Une coquille dans le billet ? Discutons-en sur mastodon\n","date":"2020-12-03T14:46:16+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/piwigo-dans-un-sous-dossier-nginx/","title":"Piwigo dans un sous-dossier Nginx"},{"content":"Nichées au coeur des Alpilles, sur la route de Saint-Rémy-en-Provence les carrières de lumières nous proposent un voyage immersif aux coeur de l\u0026rsquo;art et la musique. Ces carrières de calcaire blanc autrefois nommées Carrières des Bringasses et Grands Fonts sont situées aux Beaux-de-Provence. Elles ont été principalement exploité pour la construction du château et de la cité jusqu\u0026rsquo;en en 1935. C\u0026rsquo;est en 1959 qu\u0026rsquo;elles furent remises sur le devant de la scène, grâce à Jean Cocteau qui y effectua quelques séquences pour son film Le Testament dOrphée.\nLe réel succès viendra quinze ans plus tard lors de la visite d\u0026rsquo;Albert Plécy qui tomba littéralement amoureux des carrières des Grands-Fonds. C\u0026rsquo;est alors qu\u0026rsquo;il se lance dans le projet très novateur Cathédrale d\u0026rsquo;images. Cathédrale d\u0026rsquo;images profitait du site exceptionnel qu\u0026rsquo;offrait les Carrières pour diffuser des diapositives géantes d\u0026rsquo;oeuvres d\u0026rsquo;arts accompagnées de musiques à thèmes. Aujourd\u0026rsquo;hui le procédé est toujours le même seule la technique a évolué. Ce ne sont plus des diapositives mais des vidéos qui sont projetées. En 2008 la mairie expulse illégalement la société (Cathédrale d\u0026rsquo;images) fondée par Albert Plécy pour confier en 2011 la gestion à la société Culturespaces filliale d\u0026rsquo;Engie, sur fond d\u0026rsquo;appel d\u0026rsquo;offre préférentiel, qui rebaptise le site Carrières de Lumières. Et c\u0026rsquo;est le début de mon expérience avec ce site très impressionant, je regrette tout de même le manque d\u0026rsquo;informations sur l\u0026rsquo;époque de son expploitation en tant que carrière de calcaire blanc.\nDali Mesures Coronavirus obligent , nous nous équipons de nos masques et pénétrons dans une pénombre intermitente qui nécessite un petit temps d\u0026rsquo;adaptation. A l\u0026rsquo;intérieur la première chose qui m\u0026rsquo;est venu à l\u0026rsquo;esprit c\u0026rsquo;est \u0026ldquo;immense\u0026rdquo;, on se sent tout petit face à ces gros blocs de calcaire perpendiculaires les uns des autres. Ensuite vient les textures, je n\u0026rsquo;ai pu m\u0026rsquo;empêcher de toucher de les surfaces. Lisses et rugueuses à la fois, je sens sous chacun de mes doigts le travail d\u0026rsquo;excavation à coup de marteau et de burrin. Il y a quelque-chose de puissant qui se détache et qui rayonne à chacune de mes intéractions physiques. Le fait même de déambuler parmi ses mastodontes de calcaire impose la modestie et le respect. Tout est droit, abrupte et saillant laissant entrevoir la dureté de cet environnement, ici pas de place pour les sentiments ni pour la douceur et le réconfort qu\u0026rsquo;offrent les rondeurs. J\u0026rsquo;ai l\u0026rsquo;impression qu\u0026rsquo;ils sont taillés à l\u0026rsquo;effigie des hommes qui y ont travaillés toutes ces années. Une roche dure pour des hommes durs, c\u0026rsquo;est en tout cas l\u0026rsquo;impression que j\u0026rsquo;en ai.\nGaudi Puis ensuite je découvre les projections et là bizarrement je suis moins emballé. Techniquement le rendu est magnifique tout s\u0026rsquo;accorde parfaitement mais je ne trouve pas l\u0026rsquo;expérience transcendante. Je m\u0026rsquo;attendais à quelque-chose de plus immersif, de plus grandiose, à la hauteur de la carrière et de ce qu\u0026rsquo;elle dégage. Je ne fais que me promener au milieu de vidéos géantes légèrements animées et accompagnées de musique. Rien ne m\u0026rsquo;a émotionellement bouleversé, pris aux tripes. Toute la projection est restée fade et insipide. Peut-être que le choix des artistes y est pour quelque-chose, cette année le thème s\u0026rsquo;est porté sur Gaudi et Dali deux artistes qui me laissent très indiférents à vrai dire. Il en aurait peut-être été autrement avec des artistes comme Alan Lee ou Hans Ruedi Giger . Le choix musical m\u0026rsquo;a déçu, mis à part quelques passages des Pink Floyd dont la musique se marie très bien avec certaines oeuvres de Dali. Je me suis ennuyé tout le long, bien paramétrer mon apareil photo afin de réaliser de jolis clichés m\u0026rsquo;a plus tenu en haleine que cette projection. Cela n\u0026rsquo;enlève rien à la prouesse technique et au travail réalisé pour donner vie ses oeuvres. La qualité des images, du son, est indégnable et tout s\u0026rsquo;emboîte parfaitement. Pouvoir se promener au milieu de ses oeuvres d\u0026rsquo;arts, les regarder sous des angles que les expositions classiques ne permettent pas est foncièrement unique. Mais il m\u0026rsquo;a manqué le côté immersif de l\u0026rsquo;expérience ou peut-être que je n\u0026rsquo;ai pas su le percevoir. J\u0026rsquo;ai été plus impressionné et admiratif par la carrière en elle-même que le reste. A l\u0026rsquo;inverse mon épouse et notre amie elles se sont régalées, émerveillés, elles sont sorties enchantées.\nDali Je m\u0026rsquo;aperçois que la subjectivité est très importante dans l\u0026rsquo;apréhension et la découverte d\u0026rsquo;une oeuvre d\u0026rsquo;art quelle qu\u0026rsquo;elle soit. Au final la meilleure reconnaissance pour un artiste c\u0026rsquo;est que son oeuvre soit vue et partagée, peut importe que l\u0026rsquo;on aime ou pas, plutôt que de finir seule au fond d\u0026rsquo;un grenier. Pour finir j\u0026rsquo;y retournerai surement, mais en sachant à quoi m\u0026rsquo;attendre, je serai plus sélectif sur le choix artistique proposé et qui sait l\u0026rsquo;immersion m\u0026rsquo;attendra peut-être cachée derrière un bloc de calcaire la prochaine fois.\nVoir l\u0026rsquo;album photo de la sortie\n","date":"2020-10-06T08:28:53+02:00","image":"https://archives.draconis.me/images/2020/10/carrieres-de-lumieres-8.jpg","permalink":"https://archives.draconis.me/p/carri%C3%A8res-de-lumi%C3%A8res/","title":"Carrières de Lumières"},{"content":"Beaucoup d\u0026rsquo;applications web que j\u0026rsquo;utilise au quotidien nécessitent une base de données sql. Ne voulant pas encombrer inutilement le serveur hôte avec des serveurs sql disséminés dans plusieurs containers, j\u0026rsquo;ai décidé de centraliser le serveur sql pour toutes mes applications web.\nConfiguration du serveur Rien de compliqué, il suffit d\u0026rsquo;éditer le fichier\nvi /etc/mysql/mariadb.conf.d/50-server.cnf de chercher la ligne\nbind-address = 127.0.0.1 de la remplacer par\nbind-address = 192.168.0.125 #ip sur le réseau local du serveur Un redémarrage plus tard\nsudo systemctl restart mariadb notre serveur sql est ouvert à notre réseau local. Il ne reste plus qu\u0026rsquo;à créer un utilisateur accompagné de sa base de données afin de réaliser une tentative une connexion distante. Par la suite de commencer la migration de toutes mes bases de données disséminées sur mes containers.\nCREATE DATABASE `mabase`; GRANT ALL PRIVILEGES ON `mabase`.* TO \u0026#34;monlogin\u0026#34;@\u0026#34;%\u0026#34; identified by \u0026#39;monpass\u0026#39;; FLUSH PRIVILEGES; Ne pas oublier le \u0026quot;%\u0026quot; sur la ligne \u0026quot;monlogin\u0026quot;@\u0026quot;%\u0026quot; ce paramètre défini que l\u0026rsquo;utilisateur peut se connecter depuis n\u0026rsquo;importe où. On peut restreindre encore cet accès en spéficiant une adresse du réseau local à la place du \u0026quot;%\u0026quot;.\nEssai de connexion Depuis une autre machine sur le réseau j\u0026rsquo;installe le client mariadb\nsudo apt install mariadb-client Je tente de me connecter avec l\u0026rsquo;utilisateur \u0026quot;monlogin\u0026quot;.\nmysql -u monlogin -h 192.168.0.125 -p Bingo ! cela fonctionne, en même temps je n\u0026rsquo;en doutais pas une minute :) .\nConclusion Désormais je peux me connecter depuis n\u0026rsquo;importe quel serveur sur mon réseau local, et ainsi centraliser toutes mes bases de données sur un seul serveur sql, contrairement au temps où j\u0026rsquo;avais un serveur sql pour chaque bases.\n","date":"2020-09-25T09:32:32+02:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/ouvrir-son-serveur-mariadb-au-reseau-local/","title":"Ouvrir son serveur Mariadb au réseau local"},{"content":"Objectif : Soulager apache pendant les heures daffluences, soulager ma machine virtuelle en consommation mémoire, permettre au contenu statique dêtre téléchargé plus rapidement. Héberger plusieurs serveurs web avec une seule connexion internet et donc un seul port 80 ouvert sur le pare-feu.\nfigure service apache2 stop apt-get install nginx service nginx stop Mise en place : 1.Apache : Modifier le fichier ports.conf et les fichiers de configurations du ou des hôtes virtuels.\nnano /etc/apache2/ports.conf\nListen 80 Listen 81 Listen 82 Listen 85 Listen 86 # port d\u0026#39;écoute pour les requêtes SSL \u0026lt;IfModule mod_ssl.c\u0026gt; # If you add NameVirtualHost *:443 here, you will also have to change # the VirtualHost statement in /etc/apache2/sites-available/default-ssl # to \u0026lt;VirtualHost *:443\u0026gt; # Server Name Indication for SSL named virtual hosts is currently not # supported by MSIE on Windows XP. Listen 8083 Listen 8084 \u0026lt;/IfModule\u0026gt; \u0026lt;IfModule mod_gnutls.c\u0026gt; Listen 8083 Listen 8084 \u0026lt;/IfModule\u0026gt; Sur les hôtes virtuels voici la modification à apporter (exemple) :\n\u0026lt;VirtualHost *:85\u0026gt; ServerName domain.tld DocumentRoot /var/www/blog/ \u0026lt;Directory /\u0026gt; Options FollowSymLinks AllowOverride None \u0026lt;/Directory\u0026gt; \u0026lt;Directory /var/www/blog\u0026gt; Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all \u0026lt;/Directory\u0026gt; ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ \u0026lt;Directory \u0026#34;/usr/lib/cgi-bin\u0026#34;\u0026gt; AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all \u0026lt;/Directory\u0026gt; ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined Alias /doc/ \u0026#34;/usr/share/doc/\u0026#34; \u0026lt;Directory \u0026#34;/usr/share/doc/\u0026#34;\u0026gt; Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 \u0026lt;/Directory\u0026gt; ServerSignature Off \u0026lt;/VirtualHost\u0026gt; Pour que les ip soient correctement journalisées sur le serveur apache, installer :\napt-get install libapache2-mod-rpaf 2.NGINX Configuration de nginx en mode reverse proxy :\nnano /etc/nginx/proxy_params\nproxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; client_header_buffer_size 64k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 16k; proxy_buffers 32 16k; proxy_busy_buffers_size 64k; Configuration globale de nginx :\nuser www-data; worker_processes 2; pid /var/run/nginx.pid; events { worker_connections 1024; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable \u0026#34;msie6\u0026#34;; gzip_min_length 0; gzip_vary on; gzip_proxied any; gzip_comp_level 5; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; ## # nginx-naxsi config ## # Uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # nginx-passenger config ## # Uncomment it if you installed nginx-passenger ## #passenger_root /usr; #passenger_ruby /usr/bin/ruby; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } Création dun hôte virtuel pour les différentes redirections\nnano /etc/nginx/sites-enabled/reverse\n#exemple de redirection depuis le port 80 vers le port 85 d\u0026#39;apache server { listen 80; server_name domain.tld; access_log /var/log/olivier.access.log; error_log /var/log/olivier.nginx_error.log debug; location / { proxy_pass http://127.0.0.1:85/; } } #Ici les images du blog sont chargé directement par nginx qui est plus performant qu\u0026#39;apache sur ce genre de contenu server { listen 80; server_name sub.domain.tld; location = /50x.html { root /var/www/nginx-default; } access_log /var/log/pictures.nginx.access.log; error_log /var/log/pictures.nginx.error.log; index index.html; location / { expires max; root /var/www/blog/content/images/; } } Pour finir on démarre les services :\nservice apache2 start service nginx start ","date":"2019-11-13T11:32:45+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/nginx-en-reverse-proxy-apache2/","title":"Nginx en reverse proxy d'apache2"},{"content":"J\u0026rsquo;évite autant que faire ce peut les GUI pour la réalisation de mes tâches d\u0026rsquo;administration. Je préfère la simplicité et la lisibilité d\u0026rsquo;une bonne veille ligne de commande. Depuis la version 10, les développeurs de Nextcloud ont mis en place l\u0026rsquo;application Updater qui permet de mettre à jour automatiquement Nextcloud lorsqu\u0026rsquo;une version mineure est publiée, mais nous laisse la main pour migrer sur une version majeur le tout réalisable depuis l\u0026rsquo;interface web d\u0026rsquo;administration. En ce jour de mise à jour majeure j\u0026rsquo;ai eu envie de passer par le terminal.\nVérifier les droits Il est important que les droits sur le répertoire d\u0026rsquo;installation de Nextcloud soient configurés correctement. Par sécurité seul l\u0026rsquo;utilisateur web doit pouvoir modifier ces fichiers. C\u0026rsquo;est pour cela qu\u0026rsquo;il est recommandé d\u0026rsquo;exécuter la commande de mise à jour via cet utilisateur. A noter qu\u0026rsquo;il est possible d\u0026rsquo;effectuer la mise à jour en root mais il faudra par la suite réaffecter les droits correctement. Pour vérifier les droits sous Debian :\nls -la /var/www/nextcloud total 160 drwxr-xr-x 14 www-data www-data 4096 oct. 11 10:31 . drwxr-xr-x 16 www-data www-data 4096 oct. 9 11:24 .. drwxr-xr-x 32 www-data www-data 4096 oct. 11 10:31 3rdparty drwxr-xr-x 48 www-data www-data 4096 oct. 11 10:36 apps -rw-rw---- 1 www-data www-data 12063 oct. 11 10:31 AUTHORS drwxr-xr-x 2 www-data www-data 4096 oct. 11 10:35 config -rw-rw---- 1 www-data www-data 3805 oct. 11 10:31 console.php -rw-rw---- 1 www-data www-data 34520 oct. 11 10:31 COPYING drwxr-xr-x 23 www-data www-data 4096 oct. 11 10:31 core -rw-rw---- 1 www-data www-data 4986 oct. 11 10:31 cron.php -rw-rw---- 1 www-data www-data 2478 oct. 11 10:35 .htaccess -rw-rw---- 1 www-data www-data 156 oct. 11 10:31 index.html -rw-rw---- 1 www-data www-data 3172 oct. 11 10:31 index.php drwxr-xr-x 6 www-data www-data 4096 oct. 11 10:31 lib -rwxr-xr-x 1 www-data www-data 283 oct. 11 10:31 occ drwxr-xr-x 2 www-data www-data 4096 oct. 11 10:31 ocm-provider drwxr-xr-x 2 www-data www-data 4096 oct. 11 10:31 ocs drwxr-xr-x 2 www-data www-data 4096 oct. 11 10:31 ocs-provider -rw-rw---- 1 www-data www-data 2951 oct. 11 10:31 public.php -rw-rw---- 1 www-data www-data 5139 oct. 11 10:31 remote.php drwxr-xr-x 4 www-data www-data 4096 oct. 11 10:31 resources -rw-rw---- 1 www-data www-data 26 oct. 11 10:31 robots.txt drwxr-xr-x 12 www-data www-data 4096 oct. 11 10:31 settings -rw-rw---- 1 www-data www-data 2232 oct. 11 10:31 status.php drwxr-xr-x 3 www-data www-data 4096 oct. 11 10:31 themes drwxr-xr-x 2 www-data www-data 4096 févr. 27 2019 updater -rw-rw---- 1 www-data www-data 101 oct. 11 10:31 .user.ini -rw-rw---- 1 www-data www-data 362 oct. 11 10:31 version.php Si ce n\u0026rsquo;est pas le cas il faut les accorder à l\u0026rsquo;utilisateur web, sous Debian cela donne :\nsudo chown -R www-data:www-data /var/www/nextcloud sudo chmod -R 775 /var/www/nextcloud/ Mettre à jour Toujours dans le répertoire Nextcloud /var/www/nextcloud :\nsudo -u www-data php updater/updater.phar A cet instant le processus est lancé.\nfigure1 Pour terminer le programme vous demande si vous souhaitez garder le mode maintenance activé ou non.\nApplications Tierces A cette même occasion il est possible de mettre à jour les applications tierces téléchargées depuis le dépôt.\nVérifier les mises à jour.\nsudo -u www-data php occ update:check Update for files_rightclick to version 0.15.1 is available. 1 update available Mettre à jour\nsudo -u www-data php occ app:update --all files_rightclick new version available: 0.15.1 files_rightclick updated Il est possible de mettre à jour une application en particulier.\nsudo -u www-data php occ app:update \u0026lt;nom_de_l\u0026#39;application\u0026gt; Problème rencontré Durant la mise à jour j\u0026rsquo;ai rencontré le message d\u0026rsquo;erreur suivant :\nSyntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes figure2 En fouillant le forum Nextcloud j\u0026rsquo;ai trouvé la solution à mon problème.\nsudo mysql -u root -p MariaDB [(none)]\u0026gt; use nextcloud; MariaDB [nextcloud]\u0026gt; set global innodb_large_prefix=on; MariaDB [nextcloud]\u0026gt; set global innodb_file_format=Barracuda; sudo -u www-data php occ maintenance:repair ","date":"2019-10-11T10:55:26+02:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/mettre-a-jour-nextcloud-via-le-terminal/","title":"Mettre à jour Nextcloud via le terminal"},{"content":"Petit mémo sur l\u0026rsquo;utilisation de tar.\nCompresser Pour compresser un fichier ou un répertoire au format \u0026quot;.tar.gz\u0026quot;.\ntar czvf \u0026lt;nom_archive\u0026gt;.tar.gz \u0026lt;nom_rep ou nom_fichier\u0026gt; \u0026ldquo;c\u0026rdquo; : créer une nouvelle archive \u0026ldquo;z\u0026rdquo; : permet d\u0026rsquo;activer la compression \u0026ldquo;gzip\u0026rdquo; pour un taux de compression plus important \u0026ldquo;v\u0026rdquo; : mode verbeux, permet d\u0026rsquo;afficher dans le détail les fichiers compressés \u0026ldquo;f\u0026rdquo; : utilise le fichier darchive ou le périphérique \u0026lt;nom_archive\u0026gt; Décompresser Pour décompresser un fichier ou un répertoire au format \u0026quot;.tar.gz\u0026quot;.\ntar xzvf \u0026lt;nom_archive\u0026gt;.tar.gz -C \u0026lt;rep_cible\u0026gt; \u0026ldquo;x\u0026rdquo; : décompresse l\u0026rsquo;archive \u0026ldquo;z\u0026rdquo; : spécifie qu\u0026rsquo;il s\u0026rsquo;agit d\u0026rsquo;une compression au format \u0026ldquo;gzip\u0026rdquo; \u0026ldquo;v\u0026rdquo; : mode verbeux, permet d\u0026rsquo;afficher dans le détail les fichiers compressés \u0026ldquo;f\u0026rdquo; : utilise le fichier darchive ou le périphérique \u0026lt;nom_archive\u0026gt; ","date":"2019-10-09T10:55:26+02:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/compresser-decompresser-en-tar-gz/","title":"Compresser et décompresser en tar.gz"},{"content":"Mon fils et moi sommes complètement dingue du jeu don\u0026rsquo;t Starve.\nJusquà présent mon fils jouait sur mon compte Steam et par conséquent il ne pouvait pas faire ce quil voulait sur le jeu. Pour Noël jai donc décidé de lui acheter le Jeu et la version multijoueurs pour que nous puissions jouer ensemble.\nComme le jeu est complètement dématérialisé, jai voulu lui créer une version collector fait par Papa et Maman qui sest greffé au projet un peu plus tard. Je lui est donc acheté le Jeu, sa bande originale et trois figurines de collection sur la boutique du jeu. Mais pour que cela soit vraiment collector je voulais quelque-chose en plus que lui seul aurai, jai donc contacté par courriel les dévelloppeurs du jeu pour leur demander une photo de wilson son personnage préféré, avec un petit mot pour lui. Ils se sont montrés très enchanté par cette demande et en retour ils mont envoyé plein de goodies, de quoi faire un diorama, poster géant etc..\nAvec cette base nous avons (mon épouse et moi-même) commencer à bosser sur la boîte.\nPetite galerie récapitulative de la fabrication de collector box.\nUn grand merci à léquipe de dont starve qui sest montré très disponible et généreuse. Vous êtes géniaux 🙂\nENGLISH VERSION My son and I are raving of the game dont starve. Its graphics, its music, its playability, in brief we do not count any more the last hours above.\nUntil now my son played on my account Steam and consequently he could not make what he wanted on the game. For Christmas I have decided to buy him the Game and the DLC.\nAs the game is completely dematerialized, I wanted to create him a collectors version makes by Dad and Mom who was joined the project later. I bought for him the Game, its soundtrack, and three figurines on the shop of the game. I contact the developpers game to have some goodies and they send me a lot of.\nThis is a small recapitulative gallery of the made of the kitchounets box.\nA big thank you to the dont starves team for they availability and generosity. You are awesome 🙂\nFigure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure ","date":"2019-10-07T10:55:26+02:00","image":"https://archives.draconis.me/images/2019/10/IMG_0169.jpg","permalink":"https://archives.draconis.me/p/noel-dont-starve/","title":"Noël Don't Starve"},{"content":"Voici le userChrome.css que j\u0026rsquo;utilise avec Firefox pour qu\u0026rsquo;il soit raccord avec mon thème I3wm. J\u0026rsquo;ai aussi modifié sa structure car je ne supporte pas les onlgets au dessus de la barre d\u0026rsquo;aresse.\nfigure N\u0026rsquo;étant pas développeur j\u0026rsquo;ai associé des morceaux de codes que j\u0026rsquo;ai trouvé :\nsur différentes sources internet pour les couleurs.\nsur le groupe reddit r/firefoxcss pour la partie de la barre cachée.\nPour utiliser ce fichier sous windows : Télécharger le fichier userChrome.css Se rendre dans le dossier C:\\Users\u0026quot;nom utilisateur\u0026quot;\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\u0026quot;profile_mozilla\u0026quot;.default Créer le dossier chrome s\u0026rsquo;il n\u0026rsquo;existe pas Copier le fichier userChrome.css Ouvrir Firefox et taper about:config dans la barre d\u0026rsquo;adresse Chercher la ligne toolkit.legacyUserProfileCustomizations.stylesheets et changer sa valeur à true Redémarrer firefox et profiter Pour utiliser ce fichier sous linux : Télécharger le fichier userChrome.css Se rendre dans le dossier ~/.mozilla/firefox/\u0026ldquo;profile_mozilla\u0026rdquo;.default/ Créer le dossier chrome s\u0026rsquo;il n\u0026rsquo;existe pas Copier le fichier userChrome.css Ouvrir Firefox et taper about:config dans la barre d\u0026rsquo;adresse Chercher la ligne toolkit.legacyUserProfileCustomizations.stylesheets et changer sa valeur à true Redémarrer firefox et profiter Code source Pour examiner le fichier d\u0026rsquo;un peu plus près c\u0026rsquo;est par ici\n","date":"2019-10-02T09:04:49+02:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/userchrome-css-pour-firefox/","title":"userChrome.css pour Firefox"},{"content":"Petit aide mémoire pour une installation rapide de certbot lorsque je crée un nouveau container sous debian. Cet aide mémoire est réalisé sur Buster, il sera complété à chaque sortie de debian stable. Certbot est le nouvel outil de lEFF permettant de gérer les certificats SSL sur les serveurs. Il est aujourdhui dédié aux certificats gratuits Lets Encrypt.\nInstallation de certbot : sudo apt install certbot Initialisation de certbot, création des répertoires de bases et fichiers de conf : sudo certbot certonly Création dun fichier de configuration pour ne pas répéter les mêmes commandes à chaque génération ou régénration de certificat dans le fichier /etc/letsencrypt/cli.ini : # Taille de la clé RSA sur 4096 bits au lieu de 2048 bits de base rsa-key-size = 4096 # Adresse courriel de l\u0026#39;admin pour le renouvellement de certificat email = admin@your.net # Utilisation de l\u0026#39;interface texte plutôt que ncruses text = True # Utilisation du port 80 pour la validation du domaine standalone-supported-challenges = http-01 Génération du certificat : sudo service nginx stop sudo certbot certonly --standalone -d mondomaine.tld sudo service nginx start Et voilà un certificat tout neuf pour 90 jours, si ladress courriel est renseigné dans le fichier de config un rappel sera envoyé par courriel avant lexpiration du certificat.\n","date":"2019-09-18T09:10:52+02:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/installer-certbot-sur-debian/","title":"Installer Certbot sur Debian"},{"content":"Que faire avec des bidons d\u0026rsquo;huile d\u0026rsquo;environ 200 ou 300L ? Un barbecue ? Je suis déjà équipé il me convient très bien. Et pourquoi pas un four à bois transportable! Pour ceux qui me suivent je fais mon pain au levain maison. Nous sommes aussi de grand amateur de pizzas, faites maison bien sûr, cela serait parfais surtout que je rêve de construire ce genre de four depuis longtemps. Vivant en appartement j\u0026rsquo;ai laissé ce rêve de côté, mais depuis peu nous habitons dans une maison avec jardin, l\u0026rsquo;idée me reprenait de temps à autre mais en location pour le moment hors question de faire un four maçonné, bref dans les règles de l\u0026rsquo;art. C\u0026rsquo;est en voyant ces bidons que l\u0026rsquo;idée de faire un four transportable me vint. Ni une ni deux ils étaient dans ma voiture direction le jardin pour commencer les préparatifs.\nfigure Avant de réaliser quelques opérations, j\u0026rsquo;ai vidé, récupéré l\u0026rsquo;huile moteur que j\u0026rsquo;ai ensuite porté à la déchèterie ne sachant pas si l\u0026rsquo;huile était encore utilisable, dommage. J\u0026rsquo;ai ensuite découpé la partie du bidon où se trouve les bouchons sur 10cm. Cela me permettra par la suite de travailler plus facilement à l\u0026rsquo;intérieur.\nfigure Nettoyage à l\u0026rsquo;eau chaude et au Saint-Marc en poudre pour enlever les derniers résidus d\u0026rsquo;huile dans le bidon. Ce n\u0026rsquo;est pas vraiment l\u0026rsquo;idéal pour la suite des travaux.\nfigure Cétait la partie la plus facile, maintenant il me faut travailler sur le cadre qui soutiendra le tout. Mais ce sera pour le prochain épisode.\n","date":"2019-05-09T14:08:21+02:00","image":"https://archives.draconis.me/images/2019/05/four2-ep1.jpg","permalink":"https://archives.draconis.me/p/diy-transformer-un-bidon-en-four-a-bois-ep1/","title":"DIY : Transformer un bidon en four à bois Ep.1"},{"content":"Objectif Déplacer le dossier data de nextcloud vers un autre disque dur plus grand. Le dossier data contient les données de tous les utilisateurs :\nles fichiers les agendas les contacts et autres Mise en place 1. Arrêt du serveur web.\nservice stop nginx #pour nginx Installer le nouveau disque dur, le partitionner, le formater et le monter. Pour le partitionner, jai utilisé cfdisk.\nfigure1 2. Le formatage.\nmkfs.ext4 /dev/sdb 3. Montage au système.\nmkdir /mnt/datacloud mount /dev/sdb1 /mnt/datacloud Afin que le montage soit permanent il faut éditer le fichier /etc/fstab pour ajouter cette ligne en fin de fichier :\n/dev/sdb1 /mnt/datacloud ext4 defaults 0 0 4. Migration des données.\nA présent les données peuvent être déplacées :\nmv /var/www/nextcloud/data/ /mnt/datacloud/data Cela prendra plus ou moins de temps en fonction de la taille du dossier.\nEnsuite mise en place des droits, sans cela les données ne seront pas visible depuis linterface Web. Il faut donner les droits à lutilisateur qui gère le service web sur le serveur, sous Debian il sagit de « www-data ».\nchown -R www-data:www-data /mnt/datacloud/data/ 5. Nextcloud.\nModification de la configuration de nextcloud.\nsudo nano /var/www/nextcloud/config/config.php Chercher la ligne datadirectory et modifier le champs avec le nouveau chemin.\n\u0026#39;datadirectory\u0026#39; =\u0026gt; \u0026#39;/mnt/datacloud/data\u0026#39;, Pour terminer, démarrage du serveur web :\nsudo systemctl start nginx Il n\u0026rsquo;y a plus qu\u0026rsquo;à se connecter et vérifier que nos petits ont bien été récupérés.\n","date":"2019-04-19T09:28:34+02:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/deplacer-le-dossier-data-de-nextcloud/","title":"Déplacer le dossier Data de Nextcloud"},{"content":"Après un mois et demi de travail j\u0026rsquo;ai enfin migré mon blog depuis Wordpress vers un site statique généré par hugo. Ce ne fut pas sans mal et il me reste encore pas mal d\u0026rsquo;articles à migrer. Mais l\u0026rsquo;essence même du blog est maintenant en ligne. Dans l\u0026rsquo;ensemble cette migration ne s\u0026rsquo;est pas faîte dans la douleur et c\u0026rsquo;est déjà beaucoup.\nPourquoi ? La raison principale s\u0026rsquo;appelle Guntenberg malgré mes efforts pour l\u0026rsquo;adopter et changer mes habitudes d\u0026rsquo;écritures, je n\u0026rsquo;ai jamais réellement accroché avec cet éditeur en ligne. Vers la fin je passais plus de temps sur la mise en page et la structuration de mes articles plutôt que sur l\u0026rsquo;écriture. De ce fait écrire devenait petit à petit une corvée, cela ajouté à d\u0026rsquo;autres contraintes comme le manque de temps, le manque dinspiration, et bien dautres. Déjà que je nétais pas très prolifique, Jai fini par écrire de moins en moins. La seconde raison qui ma poussée vers un site statique est lusine à gaz quest devenu Wordpress et le gaspillage ressources nécessaires pour le faire fonctionner. Sous WP lespace disque occupé par le blog était de 1,1 Go pour 8 ans dexistence, sous hugo il na besoin, actuellement, que de 93 Mo. Trouver un thème que me plaisait, sans version premium, sans mouchards, mis à jour régulièrement devenait une activité à part entière. Idem pour les quelques extensions que jutilisais. Au niveau ressources il y a aussi tout lattirail pour faire fonctionner wordpress :\nServeur Web : Nginx PHP : Fpm Base de données : Mariadb Tout ce petit monde avec dautres services prenait un mal un plaisir à tourmenter mon pauvre et valeureux serveur qui a fêté ses 8 ans lui aussi le mois dernier. Autant de programme à administrer cela prend du temps, de mon temps libre. Si javais le temps de le faire dans les années précédentes ce nest plus cas aujourdhui. A chaque fois que je me connectais pour écrire, jétais toujours accaparé par une mise à jour, une opération de maintenance, ou autre. Le modèle Wordpress ne correspondait plus avec mes habitudes quotidiennes. Le site statique na besoin que dun seul programme Nginx dans mon cas dont les mises à jour sont confiées à apt. Le renouvellement des certificats ssl est la seule opération dadministration qui me reste. Exit donc les multiples versions de php à maintenir et la surveillance des bases sql. Pour finir javais envie dessayer autre chose de nouveauté. Je lis beaucoup de blog qui sont développés avec un site statique. Et tous sont unanime, cest simple, peu chronophage, multiplateforme, rapide à mettre en place. Une chose était sûr le modèle Wordpress ne correspondait plus à mes habitudes de blog.\nComment ? Mon choix cest directement porter sur le générateur hugo, parce que j\u0026rsquo;ai trouvé beaucoup de sources sur ce générateur et c\u0026rsquo;est le prénom de mon neveu. Ce dernier argument prévalant sur tous les autres :). Sa simplicité, sa documentation, ont finis de me convaincre. Du coup je n\u0026rsquo;ai pas eu lenvie dessayer les autres générateurs. J\u0026rsquo;ai choisi de migrer en deux temps. Premier temps pour faire une migration wordpress -\u0026gt; ghost, et en second temps ghost -\u0026gt; hugo. Il y avait peut-être plus simple mais j\u0026rsquo;ai choisi dopérer ainsi. La migration WP -\u0026gt; Ghost m\u0026rsquo;a permis de convertir mon contenu au format markdown et dextraire facilement tout le contenu statique y étant rattaché. L\u0026rsquo;étape Ghost -\u0026gt; hugo me permet de réaliser un tri dans mes articles avec pour projet den mettre à jour certains. Je vous assure faire le ménage sur 8 ans décriture cest un vrai casse-tête. Pourquoi mettre cet article au rebut plutôt quun autre. Tient celui-là nest plus à jour mais il peu encore servir. Je prends mon temps petit à petit loiseau fait son nid. La gestion du blog sest considérablement allégée, je peux me concentrer sur ce que je veux décrire et non plus sur les autres éléments perturbateurs (mise en page, temps de chargement, visibilité). Avec le markdown pas de mauvaise surprise, si la syntaxe est correctement appliquée. En termes de syntaxe on ne pas dire quelle soit compliquée à appréhender. Lorsque jécrivais sous wordpress il marrivait de faire des prévisualisations à chaque paragraphe pour être sûr de ce je faisais. Aujourdhui créer un nouvel article ne me prend pas plus de temps quavant, mais sa mise en œuvre elle sest vue accélérée.\n•\tRédaction dans nimporte quel éditeur de texte. •\tGénération avec hugo. •\tMise en ligne avec un « push » sur le dépôt git.\nSeule la relecture me prend toujours autant de temps mais cela je ny peux rien.\nConclusion Je suis emballé par ce nouveau système de blog. Je ne sais pas si cela mencouragera à écrire beaucoup plus fréquemment, car je préfère la qualité à la quantité. En tout cas cela donnera lieu à de nouveaux articles sur les quelques bricoles quil me reste à configurer, comme la synchro en git et nginx par exemple. Une nouvelle aventure souvre pour le blog et je compte bien la vivre pleinement.\n","date":"2019-04-02T09:15:36+02:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/au-revoir-wordpress-bonjour-hugo/","title":"Au revoir wordpress, bonjour hugo"},{"content":"Le printemps pointe doucement le bout de se son nez, c\u0026rsquo;est le moment du traditionnel nettoyage de printemps. Mes figurines ne faisant pas exceptions, j\u0026rsquo;ai décidé de mettre un grand coup de frais à mes Orruk que je n\u0026rsquo;avais pas touchés depuis un an. Mais avant de reprendre les pinceaux un petit décapage s\u0026rsquo;impose.\nAvant le bain N\u0026rsquo;étant pas satisfait du résultat je les avaient laissés de côtés pour réfléchir à ce que je voulais faire, maintenant que j\u0026rsquo;ai fais mon choix de couleurs, ils vont prendre un bon bain avant de se refaire une beauté.\nAu bain !\u0026quot; Ils vont séjourner quelques jours dans ce bain d\u0026rsquo;alcool à brûler histoire de facilité le décapage. Suite au prochain numéro. image d\u0026rsquo;en-tête\n","date":"2019-03-11T14:27:15+01:00","image":"https://archives.draconis.me/images/2019/03/avant.jpg","permalink":"https://archives.draconis.me/p/decapage-de-printemps/","title":"Décapage de printemps"},{"content":"Lors de la mise à jour vers la version 14 de mon nextcloud jai fait face à deux erreurs bloquantes. Voici comment jy est remédié.\n504 Gateway Time-out Dès les préparatifs de la mise à jour je suis tombé sur ce bel écran.\nerreur !\nIl sagit du serveur nginx qui coupe délibérément la connexion. En effet comme il ne reçoit plus de données depuis la page de mise à jour, celle-ci étant en attente du téléchargement de larchive de nextcloud, il coupe simple les ponts au bout de quelques secondes. Cela est bloquant car le processus de mise à jour ne détecte pas que larchive est téléchargée et par conséquent reste bloqué sur létape du téléchargement. Pour y remédier il suffit dajouter la directive proxy_read_timeout dans le fichier proxy_params afin daugmenter le temps dattente de nginx. La mise à jour terminé jai désactivé cette directive par mesure de sécurité.\nsudo nano /etc/nginx/proxy_params [...] proxy_read_timeout 6000s; [...] sudo systemctl restart nginx Après le redémarrage de nginx jai pu passer aux étapes suivantes.\nfigure Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes Cette erreur est apparue lors de la deuxième phase de la mise à jour.\nfigure Pour rétablir la mise à jour jai joué avec ma base mariadb. Apparemment cest une erreur connue chez mariadb : https://www.youtube.com/watch?v=vPNU3fONY7c\nsudo mysql -u root -p MariaDB [(none)]\u0026gt; use nextcloud; MariaDB [nextcloud]\u0026gt; set global innodb_large_prefix=on; MariaDB [nextcloud]\u0026gt; set global innodb_file_format=Barracuda; Validation des changement auprès de nextcloud.\nsudo -u www-data php occ maintenance:repair Nextcloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade - Repair MySQL collation - Change row format for oc_addressbooks ... - Change collation for oc_addressbooks ... - Change row format for oc_authtoken ... - Change collation for oc_authtoken ... - Change row format for oc_calendarobjects ... - Change collation for oc_calendarobjects ... - Change row format for oc_calendars ... - Change collation for oc_calendars ... - Change row format for oc_calendarsubscriptions ... - Change collation for oc_calendarsubscriptions ... - Change row format for oc_dav_shares ... - Change collation for oc_dav_shares ... - Change row format for oc_migrations ... - Change collation for oc_migrations ... - Change row format for oc_mimetypes ... - Change collation for oc_mimetypes ... - Change row format for oc_systemtag_group ... - Change collation for oc_systemtag_group ... - Change row format for oc_trusted_servers ... - Change collation for oc_trusted_servers ... - Repair mime types - Fixed comicbook mime types - Clean tags and favorites - 0 tags of deleted users have been removed. - 0 tags for delete files have been removed. - 0 tag entries for deleted tags have been removed. - 0 tags with no entries have been removed. - Repair invalid shares - Remove shares of a users root folder - Move .step file of updater to backup location - .step file exists - .step file moved to .step-previous-update - Fix potential broken mount points - No mounts updated - Repair invalid paths in file cache - Add log rotate job - Clear frontend caches - Image cache cleared - SCSS cache cleared - JS cache cleared - Add preview background cleanup job - Queue a one-time job to cleanup old backups of the updater - Repair pending cron jobs - Repaired 1 pending cron job(s). - Fix component of birthday calendars - 2 birthday calendars updated. - Fix broken values of calendar objects 0 [\u0026gt;---------------------------] - Registering building of calendar search index as background job - Repair step already executed - Remove activity entries of private events - Removed 0 activity entries - Fix the share type of guest shares when migrating from ownCloud - Copy the share password into the dedicated column - Migrate binary status into separate boolean fields - Update OAuth token expiration times Retour sur la mise à jour, cela fonctionne !\nfigure Ma migration vers Nextcloud 15 nattend plus que moi.\n","date":"2019-02-13T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.jpg","permalink":"https://archives.draconis.me/p/nextcloud-13-vers-14/","title":"Nextcloud 13 Vers 14"},{"content":"Ce matin en parcourant mes flux RSS depuis mon instance Nextcloud, jai reçu une jolie notification minvitant à passer en version 14. Après une lecture rapide du changelog afin didentifier les différents changements, je décide de réaliser la mise à jour. Quelle ne fut pas ma surprise lorsque je vis ces messages :\n-Vous utilisez actuellement PHP 5.6.36-0+deb8u1. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.\n-Vous utiliser actuellement PHP 5.6. La version majeure actuelle de Nextcloud est la dernière qui est supportée sous PHP 5.6. Il est recommandé de mettre à niveau PHP vers la version 7.0+ pour pouvoir passer à Nextcloud 14.\nInterloqué je vérifie la version de php installée :\nsudo apt-cache policy php php: Installed: 1:7.0+49 Candidate: 1:7.0+49 Version table: *** 1:7.0+49 500 500 http://ftp.fr.debian.org/debian stretch/main amd64 Packages 100 /var/lib/dpkg/status Même si je ne dispose pas de la dernière version en date, jai bien php7 installé sur mon serveur. La question est pourquoi nextcloud détecte php 5.6 ? Jai fini par trouver la réponse en consultant le Vhost de nginx.\nupstream php-handler { server 127.0.0.1:9000; #server unix:/var/run/php/php5-fpm.sock; } Jusque là rien danormal, le moteur php écoute sur le port 9000 du pc local. Je décide donc de faire un tour dans la configuration de php-fpm, je maperçois quil est configuré pour écouter sur .sock et non un port réseau. Et que dans le dossier* /etc* jai un dossier php5 qui traîne.\nsudo nano /etc/php/7.0/fpm/pool.d/www.conf The address on which to accept FastCGI requests. Valid syntaxes are: \u0026#39;ip.add.re.ss:port\u0026#39; - to listen on a TCP socket to a specific IPv4 address on a specific port; \u0026#39;[ip:6:addr:ess]:port\u0026#39; - to listen on a TCP socket to a specific IPv6 address on a specific port; \u0026#39;port\u0026#39; - to listen on a TCP socket to all addresses (IPv6 and IPv4-mapped) on a specific port; \u0026#39;/path/to/unix/socket\u0026#39; - to listen on a unix socket. Note: This value is mandatory. listen = /run/php/php7.0-fpm.sock De plus jai toujours php 5.6 qui tourne sur le serveur.\nsudo systemctl status php* ● php5-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php5-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-02-12 10:20:04 CET; 10s ago Process: 15111 ExecStartPre=/usr/lib/php5/php5-fpm-checkconf (code=exited, status=0/SUCCESS) Main PID: 15118 (php5-fpm) Status: \u0026#34;Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec\u0026#34; Tasks: 3 (limit: 4915) CGroup: /system.slice/php5-fpm.service ├─15118 php-fpm: master process (/etc/php5/fpm/php-fpm.conf) ├─15121 php-fpm: pool www └─15122 php-fpm: pool www Feb 12 10:20:03 durotan systemd[1]: Starting The PHP FastCGI Process Manager... Feb 12 10:20:04 durotan php5-fpm[15118]: [12-Feb-2019 10:20:04] NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynami Feb 12 10:20:04 durotan systemd[1]: Started The PHP FastCGI Process Manager. ● php7.0-fpm.service - The PHP 7.0 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.0-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-02-07 10:40:19 CET; 4 days ago Docs: man:php-fpm7.0(8) Main PID: 10010 (php-fpm7.0) Status: \u0026#34;Processes active: 0, idle: 4, Requests: 18523, slow: 0, Traffic: 0.1req/sec\u0026#34; Tasks: 5 (limit: 4915) CGroup: /system.slice/php7.0-fpm.service ├─10010 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf) ├─10012 php-fpm: pool www ├─13024 php-fpm: pool www ├─14453 php-fpm: pool www └─15125 php-fpm: pool openmediavault-webgui Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. ● phpsessionclean.timer - Clean PHP session files every 30 mins Loaded: loaded (/lib/systemd/system/phpsessionclean.timer; enabled; vendor preset: enabled) Active: active (waiting) since Wed 2018-11-28 06:40:16 CET; 2 months 15 days ago Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. En y réfléchissant je me souviens avoir conservé php 5.6 nécessaire au fonctionnent de mon instance openmediavault (OMV3). De plus à cette époque jai déménagé deux fois en lespace de cinq mois (et pas des petits déménagements), je nai pas vraiment eu le temps de finaliser dans les détails cette migration. Mais aujourdhui les choses sont différentes, mon serveur est bien installé chez moi et la version dOMV que jutilise ne nécessite plus PHP5. Néanmoins je néchappe pas à ladage qui veut que les cordonniers sont toujours les plus mal chaussés. Il est temps de passer à laction !\nDabords je modifie mon Vhost nginx pour quil utilise php7.\nsudo nano /etc/nginx/sites-available/nextcloud upstream php-handler { #server 127.0.0.1:9000; server unix:/var/run/php/php7.0-fpm.sock; } sudo systemctl restart nginx Ensuite je désactive le vieux php.\nsudo systemctl disable php5-fpm Synchronizing state of php5-fpm.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable php5-fpm insserv: warning: current start runlevel(s) (empty) of script `php5-fpm\u0026#39; overrides LSB defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `php5-fpm\u0026#39; overrides LSB defaults (0 1 6). insserv: warning: current start runlevel(s) (empty) of script `php5-fpm\u0026#39; overrides LSB defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `php5-fpm\u0026#39; overrides LSB defaults (0 1 6). sudo systemctl stop php5-fpm De retour sur Nextcloud les deux messages précédents ont disparus mais la version de Php que jutilise nest plus supporté depuis le premier Janvier 2019. Il me faut donc migré vers une version encore maintenue. Problème jutilise les paquets fournis par Debian qui sont gelés en version 7 et les versions encore maintenues de php sont introuvables sur le dépôt backport. A force de chercher je suis tombé sur ce site https://deb.sury.org/ qui savère être le dépôt et site personnel du développeur en charge du paquet php pour Debian. Ce qui est selon moi un gage de sérieux. Je décide dutiliser son dépôt en attendant une mise à jour officielle de Debian ( lors de la migration vers Buster) en suivant les instructions.\nsudo apt -y install apt-transport-https lsb-release ca-certificates sudo curl -ssL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg sudo sh -c \u0026#39;echo \u0026#34;deb https://packages.sury.org/php/ $(lsb_release -sc) main\u0026#34; \u0026gt; /etc/apt/sources.list.d/php.list\u0026#39; sudo apt update sudo apt upgrade Une fois la mise à niveau effectuée ne pas oublier de modifier le Vhost de nginx pour quil pointe vers php 7.2 et non php7.0, puis redémarrer nginx.\nsudo nano /etc/nginx/sites-available/nextcloud upstream php-handler { #server 127.0.0.1:9000; server unix:/var/run/php/php7.2-fpm.sock; } susod systemctl restart nginx Avec cette version de php je suis tranquille jusquen 2020. Je peux maintenant mettre mon nextcloud à jour vers la version 14 et même la version 15 sortie au mois de décembre 2018.\nEn conclusion Cet incident met à mal le système Debian en ce qui me concerne. Jai toujours utilisé Debian pour mes serveurs. Debian a toujours privilégié la stabilité de son système sans pour autant sacrifier la sécurité, à tel point quune équipe de développeur lui est entièrement consacrée. Cest la première fois que suis obligé dutiliser, sur mes serveurs, un dépôt tier afin de maintenir un paquet à jour. Lorsquon regarde les différentes versions de php entre la stable, testing et sid il y a un fossé.\nhttps://packages.debian.org/stretch/php\nStable est bloquée en version 7 Testing et sid proposent une version en 7.3 Entre deux rien, on passe dune version quasi obsolète à une version ultra récente; en gros on passe du rien au tout sans transitions (comme dirai lautre). De plus pour une version stable il ny a pas eu pléthore de mise à jour de sécurité : https://security-tracker.debian.org/tracker/source-package/php7.0, la dernière datant de décembre 2018 juste avant la fin du support par léquipe de PHP. Depuis cette date plus rien, silence radio. Laisser une version obsolète sans autre procédure pour corriger cela, pour moi il sagit dune négligence pure et simple de la part de léquipe Debian ou une très grande prétention de croire que ses paquets sont si parfaits quil ny a plus besoin de les mettre à jour. En 20 ans de Linux cest la première que je suis déçu. Alors non je ne compte pas changer mon écosystème du jour au lendemain mais si cela venait à se reproduire je serai plus enclin à réfléchir à une nouvelle distribution pour mes serveurs.\n","date":"2019-02-12T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/en-route-vers-php-7.2/","title":"En route vers PHP 7.2"},{"content":"Petit mémo pour méviter de chercher linformation pendant deux heures.\nCréation tar zcvf monarchive.tar.gz dossier_compression/ Extraction tar zxvf monarchive.tar.gz ","date":"2019-02-05T15:00:14+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/creation-et-extraction-avec-tar/","title":"Création et Extraction d'une archive tar"},{"content":"Cette semaine une fournée spéciale provence pour préparer les grillades de cet été. Pain basilic-thym à lhuile dolive.\nPour deux denviron 500g\n500 g de farine (t65 bio pour moi) 200 g de levain dur hydraté à 50% 10 g de sel 350 g deau 1 c à soupe de thym 5 à 7 feuilles de basilic frais Ajouter dans le robot le levain, la farine, le thym et le basilic. Dissoudre le sel dans leau et commencer à mélanger dans le robot à vitesse 1 jusquà ce que tous soit mélangé. Puis pétrir pendant 20 minutes à vitesse 2.\nA la fin du pétrissage faire pousser le pâton pendant une nuit au réfrigérateur. Le lendemain finir la poussée jusquau soir à température ambiante. Le soir divisé en deux pâtons et finir la poussée pendant toute la nuit dans des bannetons. Le matin préchauffer le four à 210°c, faire cuire pendant 20 min. Ne pas oublier de jeter un verre deau dans le lèche frite pour le « coup de buée ». Faire refroidir sur une grille et déguster !\nfigure1 ","date":"2019-01-30T15:00:14+01:00","image":"https://archives.draconis.me/images/2019/01/fournee1.jpg","permalink":"https://archives.draconis.me/p/la-fournee-du-moment-1/","title":"La fournée du moment #1"},{"content":"Cette désactivation entrera pleinement en vigueur le 13 Mars 2019, après cette date tous les certificats créés avec la TLS-SNI-01 ne pourrons être renouvelés comme indiqué dans le courriel qu jai reçu hier matin.\nHello,\nAction may be required to prevent your Lets Encrypt certificate renewals\nfrom breaking.\nIf you already received a similar e-mail, this one contains updated\ninformation.\nYour Lets Encrypt client used ACME TLS-SNI-01 domain validation to issue\na certificate in the past 60 days. Below is a list of names and IP\naddresses validated (max of one per account):\ndomaine.mondomaine.tld (xxx.xxx.xxx.xxx) on 2018-12-23\nTLS-SNI-01 validation is reaching end-of-life. It will stop working\ntemporarily on February 13th, 2019, and permanently on March 13th, 2019.\nAny certificates issued before then will continue to work for 90 days\nafter their issuance date.\nYou need to update your ACME client to use an alternative validation\nmethod (HTTP-01, DNS-01 or TLS-ALPN-01) before this date or your\ncertificate renewals will break and existing certificates will start to\nexpire.\nOur staging environment already has TLS-SNI-01 disabled, so if youd like\nto test whether your system will work after February 13, you can run\nagainst staging: https://letsencrypt.org/docs/staging-environment/\nIf youre a Certbot user, you can find more information here:\nhttps://community.letsencrypt.org/t/how-to-stop-using-tls-sni-01-with-certbot/83210\nOur forum has many threads on this topic. Please search to see if your\nquestion has been answered, then open a new thread if it has not:\nhttps://community.letsencrypt.org/\nFor more information about the TLS-SNI-01 end-of-life please see our API\nannouncement:\nhttps://community.letsencrypt.org/t/february-13-2019-end-of-life-for-all-tls-sni-01-validation-support/74209\nThank you,\nLets Encrypt Staff\nCe certificat doit être renouvelé avant 23 mars il me faut agir avant de me retrouver avec une belle erreur. Je commence donc à vérifier si je suis à la version 0.28 de certbot.\ncertbot --version Malheureusement je maperçois que je suis encore en version 0.23 sur mon Ubuntu 18.04. Jajoute le PPA de certbot pour le mettre à jour\nsudo apt update sudo apt install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get full-upgrade La bonne version de certbot installée, jeffectue une simulation de renouvellement afin de constater que tout fonctionne correctement. Ne pas oublier de darrêter le processus du serveur web (nginx dans mon cas) et de le relancer à la fin.\nroot@mail:~#systemctl stop nginx root@mail:~# certbot renew --dry-run Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processing /etc/letsencrypt/renewal/mondomaine.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Cert not due for renewal, but simulating renewal for dry run Plugins selected: Authenticator standalone, Installer None Renewing an existing certificate Performing the following challenges: http-01 challenge for mondomaine.tld Waiting for verification... Cleaning up challenges - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - new certificate deployed without reload, fullchain is /etc/letsencrypt/live/mondomaine.tld/fullchain.pem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ** DRY RUN: simulating \u0026#39;certbot renew\u0026#39; close to cert expiry ** (The test certificates below have not been saved.) Congratulations, all renewals succeeded. The following certs have been renewed: /etc/letsencrypt/live/mondomaine.tld/fullchain.pem (success) ** DRY RUN: simulating \u0026#39;certbot renew\u0026#39; close to cert expiry ** (The test certificates above have not been saved.) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - La simulation est un succès je suis tranquille lorsque je devrai renouveler ce certificat\nSource : https://community.letsencrypt.org/t/how-to-stop-using-tls-sni-01-with-certbot/83210\n","date":"2019-01-29T15:00:14+01:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/lets-encrypt-desactive-definitivement-la-validation-des-certificats-en-tls-sni-01/","title":"Let's encrypt désactive définitivement la validation des certificats en TLS-SNI-01"},{"content":"Ce nest plus un scoop, chaque produit Google est un agent infiltré au sein de notre vie privée. Au fil des années ses agents se sont infiltrés dans tous leurs outils même les plus anodins. Le fameux Gboard, le clavier virtuel made in Google néchappe à la règle. Jen ai fait le triste découverte lors de sa mise à jour.\nfigure figure1 Mais dis moi Google quelle est lutilité pour Gboard de connaître et daccéder à ma connexion wi-fi ? Le but dun clavier nest-il pas simplement de taper du texte ? Ne voudrais-tu pas siphonner en douce tout ce que je tape sur mon clavier petit coquin ?\nRespectant ladage « si cest gratuit cest toi le produit » je nutilise quavec par simonie les produits Google et lorsque je le fait cest en connaissance de cause et donc je ne laisse rien de personnel « traîner ». Nayant pas le budget pour un Fairphone ou un smartphone compatible LineageOS je fais avec les moyens du bords. Jévite un maximum les applis Google et du playstore sauf quand lalternative nexiste pas sur le dépôt libre F-droid. Ça tombe bien il existe un clavier alternatif chez eux qui fait simplement ce pourquoi il a été conçu, taper du texte. Portant le nom de SimpleKeyboard il fait le taf sans te demander si tu as du wi-fi ou si tu sais dire à haute voix « Ok google ».\nSi tu veux retrouver un peu de dintimité quand tu envois des sms à ta belle, tu dois dabords installer le dépôt F-droid en téléchargeant leur apk sur cette page ou te rendre directement sur f-droid.org. Il ne faut pas oublier dactiver les sources inconnues sur le téléphone. Sur mon android 5 :\nParamètres -\u0026gt; Sécurité -\u0026gt; Sources Inconnues\nfigure2 Une fois le dépôt installé, lancer lapplication F-droid, rechercher SimpleKeyboard et linstaller. Une mise à jour du dépôt peu être envisagé si F-droid ne trouve pas Simplekeyboard du premier coup.\nfigure3 Pour finir il faut se rendre dans Langue et Saisie, toujours dans les paramètre et choisir SimpleKeyboard comme clavier principal. Au passage en profiter pour désactiver Gboard et la saisie vocale.\nfigure4 Si tu veux faire comme Maurice et pousser le bouchon un peu plus loin tu peux aussi rooter ton téléphone et supprimer complètement toutes les applications Google. Personnellement je nen suis pas encore à cette étape. Voilà comment retrouver un peu dintimité dans ce monde sans cesse à la conquête de nos données\n","date":"2018-10-19T15:00:14+01:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/quand-google-siphonne-les-frappes-de-ton-clavier/","title":"Quand Google siphonne les frappes de ton clavier"},{"content":" La transmo se compose comme suit :\nÉpaules : Protège-épaules Roharts\nTorse : Cuirasse en peau de troll crocs-dombre\nMains : Protège-mains noués\nTaille : Ceinture chante-ciel\nJambes : Kil de couroux de nordrassil\nBâton : Réplique du bâton de Guldan\nSi vous souhaitez me proposer, présenter votre transmo ou rester en contact avec moi\n►Le twitter : https://twitter.com/draconis3119\n►Le Mastodon : https://mstdn/@draconis\n►Le blog : https://draconis.me\nMusique de lintro :\nhttps://www.youtube.com/watch?v=vQPqbZs33j8\n","date":"2018-09-23T15:28:10+01:00","image":"https://archives.draconis.me/images/2018/08/enmodetransmo2.png","permalink":"https://archives.draconis.me/p/en-mode-transmo-2/","title":"En mode transmo #2"},{"content":"Petit bloc-notes rapide sur une erreur rencontrée ce matin au moment de mettre à jour ma Arch.\nfigure Pour une raison inconnue pacman a dû planté lors de sa dernière utilisation et donc le fichier de verrouillage na pas été supprimé.\nPour débugger cette erreur rien de plus simple il suffit de supprimer manuellement le fichier db.lock comme suit :\nsudo rm -fr /var/lib/pacman/db.lock Relancer ensuite sa commande de mise à jour comme si de rien nétait.\n","date":"2018-09-20T15:28:10+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/pacman-verrrouillage-base-de-donnee-impossible/","title":"Pacman : verrouillage base de donnée impossible"},{"content":"Je me suis retrouvé nez à nez avec une mouette célèbre en la personne de Eurêka.\nimage1 Vous vous rappelez lamie dAriel qui se voulait une encyclopédie sur les humains qui finalement nen savait pas plus quun tauren démoniste.\nimage2 En tout cas notre échange na pas été très amical et sest terminé avec un grand éclat lunaire dans sa face !\n","date":"2018-09-18T15:28:10+01:00","image":"https://archives.draconis.me/images/2018/09/expe2.jpg","permalink":"https://archives.draconis.me/p/au-detour-dune-expedition/","title":"Au détour d'une expédition"},{"content":"Quand cest fait maison cest tellement bon !\nQuitte à faire son pain autant le faire dans les règles de lart, hors de question de prendre des farines de grandes surfaces, blés traités, conditionnement non adapté. Il faudrait me réapprovisionner presque tous les jours, nous sommes des gros mangeurs de pain. Jai donc entrepris de chercher un moulin près de chez moi, travaillant avec des céréaliers locaux. Jai fini par trouvé un meunier qui travaille avec les blés de ma région dont certains possède le label bio. Il propose plusieurs type de la T65 à lintégrale avec un conditionnement par sac de 25kg. A raison dun pain denviron 1.2Kg tous les 3-4 jours le sac nous dure un peu plus dun mois et demi. Par la même occasion nous lutilisons pour tout (gâteaux, pâtes, ….), sauf pour la pâte à pizza mais ça cest une autre histoire. Maintenant que nous avons lingrédient principal je vous invite à mettre votre tablier et de passer à la préparation.\nLes Ingrédients\nIngrédients pour un pain denviron 1.2KG\n500g de farine T80 340 à 350 g deau (en fonction du taux dabsorption de votre farine) 300 à 400g de levain 9g de sel Premièrement je pèse le levain directement dans la cuve. Je travaille avec un levain dur hydraté à 50%. Par exemple pour 100g de farine dans mon levain jai 50g deau. Pour moi il est plus facile de travailler avec un levain dur, car il est moins exigeant quun levain liquide. 24h avant dutiliser mon levain je le rafraichis pour avoir la quantité dont jai besoin et quil soit bien actif, généralement le soir pour le lendemain.\nfigure1 Un levain dur actif doit être bien mousseux, très aéré, avec une légère odeur acide-aigre. Ensuite par dessus le levain je rajoute les 500g de farine.\nfigure2 Je place le bol sur le robot et je commence à pétrir en vitesse 1. Cest à Mme leau de rentrer en scène. Lorsque je boulange je fais en sorte davoir une température de pâte déterminée, cela me permet davoir une pâte qui lève bien, grâce à la formule suivante :\nT° pâte souhaitée = T°air + T°farine + T°eau\nDans mon cas je souhaite une température de pâte à 60°c, ne pouvant influer sur celle de la farine et lair il mest plus facile de travailler avec celle de leau. Pour connaître la température de leau nécessaire pour une pâte à 60°c japplique :\nT°eau = 60 - (T°Farine + T°air)\nAinsi hiver comme été je connais la température de leau quil me faut pour ma pâte à 60°c. Par exemple par ces températures estivales jai une :\nT°air (dans le pièce ou je boulange) : 26°c T°Farine : 24° 60 - (22 + 24 ) = 10\nPar conséquent je travaille avec un eau à 10°c, pour cela je place une bouteille au frigo. Concernant la quantité deau cela est très variable, elle dépend grandement du taux dabsorption de la farine utilisée. Cela peut varier dune farine à lautre, de lhumidité ambiante, de la météo … . Le mieux cest de partir dune base et dajouter le reste de leau et dobserver la pâte. Je pèse donc mes 340g deau dans lesquels je dissous les 9g de sel. Jutilise du gros sel que je vais chercher directement chez un producteur près de chez moi ce qui nous permet davoir du sel pour le pain et pour la cuisine.\nLe Pétrissage\nJajoute 300g deau avec la farine et le levain, je réserve le reste pour plus tard. Je pétrie toujours en vitesse 1 tant que la farine est visible. Une fois quil ny a plus de farine je passe en vitesse 2, pour commencer le pétrissage jusquà ce que le pâte se décolle du bol. Je rajoute une petite quantité deau quil me reste, jattends à nouveau que la pâte se décolle pour rajouter de leau. Je procède ainsi jusquà obtenir une pâte que me convienne, cette étape cest à lappréciation de chacun en fonction du pain que vous voulez. Si vous voulez un pain plutôt compact vous mettrez moins deau, à linverse un pain plus moelleux nécessitera plus deau.\nfigure3 Attention toute fois au temps de pétrissage il ne doit pas séterniser, car plus on pétri la pâte plus elle chauffe et une pâte trop chaude perd ses propriétés élastiques. Une pâte moins élastique lèvera moins bien. En effet cest le CO2 (généré par la fermentation du levain) emprisonné dans la pâte qui permet à celle-ci de lever. Si elle est moins élastique elle devient poreuse, par conséquent une partie du CO2 séchappe au lieu rester dans la pâte. Cela produira un pain petit qui durcira à la cuisson.\nLe Pointage\nMaintenant que notre pâte est prête elle a droit à un peu de repos, cest létape du pointage. Je la laisse reposer un heure à température ambiante dans une boîte fermée pour éviter quelle ne se dessèche. Au bout dune heure je la dépose sur un plan de travail très légèrement fariné, pour ne pas rajouter encore de la farine à la pâte je fais ce quon appelle le rabat, rabattre la pâte sur elle-même 4 fois. Je replace la pâte dans la boîte encore une heure.\nLe Façonnage et lApprêt\nLe pointage terminé, je dépose la pâte sur mon plan de travail, je fais un dernier rabat et en suivant je façonne une boule. Cette boule je la place la tête en bas dans un banneton recouvert dun tissu de lin préalablement fariné, cest létape de lapprêt. Et je la laisse encore au repos entre une demi-heure et une heure à température ambiante, jarrête lapprêt dès que la pâte soulève le tissu. En parallèle je préchauffe mon four à 230°c et je prépare un grand verre deau. Mon four est disposé dune grille à mi-hauteur et dun lèche frite tout en bas. A la fin de lapprêt je renverse la pâte sur une plaque de cuisson et je la grigne.\n![figure4](image src=\u0026quot;/images/2018/09/IMG_20180907_201600.jpg)\nJenfourne la pâte, je verse le verre deau dans le lèche frite et cest parti pour 50mn de cuisson. A la fin de la cuisson je fait refroidir le pain sur une grille. Inutile de se jeter dessus il faut attendre que le pain soit bien refroidit pour le consommer, dune part car le pain chaud nest pas digeste, dautre part le laisser refroidir lui permet de terminer sa cuisson en douceur. Profitez-en pour écouter la croute craquer, sentir ses effluves, laissez le finir de développer ses arômes, cest un moment magique.\nfigure5 C\u0026rsquo;était mon protocole de fabrication du pain, il ne conviendra pas à tout le monde, en effet le pain est un organisme vivant qui possède sa propre évolution. Vous pourrez faire 50 fois le même protocole vous aurez 50 pains différents. Lorsquon boulange il y aussi une grande place à linstinct. Jai mis au point ce protocole de fabrication après de nombreuses recherches, lectures et surtout énormément dessais, essayez, expérimentez, sortez des sentiers battus, ce qui fonctionne pour moi ne fonctionnera pas pour vous et vice-versa. Inspirez-vous en pour mettre au point le votre.\nBonne Dégustation !\n","date":"2018-09-14T15:28:10+01:00","image":"https://archives.draconis.me/images/2018/09/IMG_20180907_210508.jpg","permalink":"https://archives.draconis.me/p/jai-fait-du-pain-au-levain/","title":"J'ai fait du pain au levain"},{"content":"Première vidéo dune série dédié aux transmogrification de World of Warcraft que javais lancé sur mon ancienne page youtube. Aujourdhui je me suis amusé avec un prêtre sacré.\nLa transmo se compose comme suit :\nTête : Capuche val nocturne\nEpaules : Amict de la lumière éclatante\nDos : Mantelet de la fureur\nTorse : Habit de courbe lumière\nMains : Les mains de gilly\nBâton : Bâton de la récupération immaculée\nSi vous souhaitez me proposer, présenter votre transmo ou rester en contact avec moi\n►Le twitter : https://twitter.com/draconis3119\n►Le blog : Draconis.me\n","date":"2018-09-08T15:28:10+01:00","image":"https://archives.draconis.me/images/2018/08/enmodetransmo1.png","permalink":"https://archives.draconis.me/p/en-mode-transmo-1/","title":"En mode transmo #1"},{"content":"Petite surprise lors dun passage à Zuldazar, une tortue VOLANTE !\nfigure figure Puis dinstinct nous avons engagés le combat histoire de voir sil y avait du loot à prendre.\nfigure Au final elle repartie illico à la mer tant pis pour les loot épiques.\n","date":"2018-09-07T15:28:10+01:00","image":"https://archives.draconis.me/images/2018/09/WoWScrnShot_090218_173546.jpg","permalink":"https://archives.draconis.me/p/tortue-volante-en-zuldazar/","title":"Tortue volante en Zuldazar"},{"content":"Petit mémo pour créer un utilisateur avec sa base sous mariadb depuis son terminal préféré. Le truc classique, quon fait tout le temps et que lon oublie toujours.\nCREATE DATABASE `mabase` ; GRANT ALL PRIVILEGES ON `mabase`.* TO \u0026#34;monlogin\u0026#34;@\u0026#34;%\u0026#34; identified by \u0026#39;monpass\u0026#39;; FLUSH PRIVILEGES; Pour une connexion en locale on remplace % par localhost. Pour une connexion depuis un serveur dédié on replace % par ladresse ip de dit serveur. Le % permet de se connecter depuis nimporte quel machine public ou privé. ","date":"2018-03-13T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/creer-un-utilisateur-mariadb-limite-a-une-seule-base-de-donnee/","title":"Créer un utilisateur mariadb limité à une seule base de donnée"},{"content":"Avec le passage à Stretch des mes serveurs jai dû reprendre la configuration de Haproxy et Nginx que javais détaillé il y a quelques mois afin de récupérer les IP réelles à la place de celle du reverse-proxy. En effet Haproxy a bénéficié lui aussi dune mise à jour qui nécissitant quelques changements de syntaxe dans le fichier de configuration.\nNginx Ajout de lip publique comme hôte de confiance.\nset_real_ip_from IP LOCALE DE LA MACHINE HAPROXY; set_real_ip_from IP PUBLIQUE; real_ip_header proxy_protocol; real_ip_recursive on; Ne pas oublier dajouter la commande proxy_protocol dans les différents vhost.\nlisten 443 ssl proxy_protocol; Haproxy Du côté de Haproxy jai supprimé les directives check-ssl verify none, ce qui donne pour les requêtes http :\nserver draconis_www 192.168.x.x:80 check send-proxy weight 0 et pour le https :\nserver draconis_www 192.168.x.x:443 send-proxy check weight 0 Un redémarrage plus-tard, tout fonctionne à nouveau à merveille.\nsudo systemctl restart haproxy sudo systemctl restart nginx ","date":"2017-12-21T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/recuperer-les-ip-derriere-haproxy-le-retour/","title":"Récupérer les IP derière haproxy, le retour"},{"content":"Le mois décembre cest toujours le casse tête pour les parents afin de trouver, THE cadeau, pour nos cher têtes blondes. Pour nous cette année est dautant plus importante car Draconis premier du nom vient de fêter ses dix ans. Dix ans, déjà, dix ans que ce petit bonhomme observe son papa avec ses drôles dappareils tout autour de son ordinateur. Dix ans pendant lesquels il a, avec patience, supporté mes : » descends du bureau à papa ! Ne touches pas cest fragile ! Non tu es trop petit ! » et bien dautres réprimandes. Dix ans ou il narrêtait pas de venir me solliciter pour que je lui apprenne à bidouiller. Cette année cest décidé je lui fait une petite place dans mon fourbi informatico-electronique. Jai commencé par le plus facile, débarrasser une partie de mon espace de travail. Ensuite le plus dur fut de lui trouver des objets adaptés à son âge pour éviter de le dégoûter. Heureusement jai anticipé car ce nétait pas évident. Faisant foi de la solidarité entre papa geek et bidouilleur, je me décide aujourdhui à partager mes trouvailles, cela aidera peut-être. Pour faire taire les mauvaises langues, je ne suis pas sponsorisés pour parlé des ses produits, que jai choisi et acheté sur mes propres deniers.\nA laventure avec Arduino figure1 Ce livre sest immédiatement démarqué pendant mes recherches. Jai put parcourir en ligne la table des matières et les première pages. Cest bien écrit, laspect aventure est très intéressant et adapté aux enfants. Le livre est disponible pour 25€ chez Eyrolles.\nKit de démarrage Arduino figure2 Bien entendu pour mettre en application le livre, il lui fallait un arduino. Jai choisi ce kit sur aliexpress il lui permettra de réaliser les premières aventures, tout le matériel nécessaire nétant pas présent je complèterai par la suite. A cela jai ajouté ce kit de résistances composants indispensable. En revanche trois semaines se sont écoulée jusquà la réception du colis si vous êtes pressé commandé ailleurs.\nUn Raspberry pour relier le tout figure3 Pour bidouiller il ny a pas que larduino, le raspberry nest pas en reste non plus. Mon choix cest porté sur le Pi-Top CEED, ce petit ordinateur propulsé par un Raspberry 3 a lavantage de proposé différents accessoires (plaque de prototypage, speaker) qui sont modulables et se branchent directement dans le boîtier. Cela permet de faire pleins dactivités autour du R-PI et dy associer les travaux avec larduino. En effet le pi-top ceed est fourni avec son propre système exploitation (basé sur une raspbian) et pleins dapplications pour bidouilleurs en herbes. Avec le pi-top on apprend lélectronique, la programmation, linformatique et autre. Il pourra même parfaire son anglais car le système est entièrement dans la langue de Shakespeare. Ce dernier cadeau est vraiment optionnel car on peut faire la même chose sans ce packaging, il faut quand même débourser 126.38€ plus les frais de port pour lacquérir.\nLa liste est à présent terminé, jaurai loccasion de revenir détailler chaque produit, histoire de faire un petit retour dexpérience et de partager les réalisations de mon bidouilleur en herbe. Pour finir, en ces temps de débauche commerciale, rappelons-nous quimporte, le nombre, la taille, le prix, le principal à noël cest loccasion de se réunir avec les siens et profiter deux, le reste nest que superflus.\n","date":"2017-12-07T15:28:10+01:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/id%C3%A9e-de-cadeau-pour-bidouilleur-en-herbe/","title":"Idée de cadeau pour bidouilleur en herbe"},{"content":"Le proverbe sysadmin « Pas dinstallation, ni de mise à jour le vendredi » a pris tout son sens en ce vendredi matin. Cela faisait quelques mois que je navais pas touchés mon serveur gitlab et donc je décide dun pas tranquille de le mettre à jour, ainsi que le container qui lhéberge. Mais tout ne se passe pas comme prévu et une simple mise à jour de 5 mn ma finalement bloqué une bonne partie de la matinée. La mise à jour sest déroulée correctement, le container est monté de jessie vers stretch sans embûches. Gitlab est passé de la version 9.5 à 10.2. Je redémarre tout ce petit monde tout semble normal, pas danomalies ni de messages derreurs. Mais lorsque jai voulu me connecter à mon instance, celle-ci me répondait toujours la même chose : 502 Whoops, GitLab is taking too much time to respond. Et me voilà parti pour identifier le problème.\nfigure1 Premièrement, jeter un coup dœil aux journaux systèmes, ils donnent toujours de bonnes informations. Justement les devs de gitlab ont très bien fait les choses car il est possible de parcourir tous les logs services en une seule commande :\nsudo gitlab-ctl tail La vérité me fut révélée, mon problème venait du service gitlab_workhorse :\n==\u0026gt; /var/log/gitlab/nginx/gitlab_error.log \u0026lt;== 2017/12/01 07:38:07 [crit] 17531#0: *19 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:15:07 [crit] 1315#0: *1 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:15:11 [crit] 1315#0: *1 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:17:59 [crit] 2236#0: *1 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:18:00 [crit] 2236#0: *1 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:19:20 [crit] 2236#0: *4 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:19:21 [crit] 2236#0: *4 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:19:23 [crit] 2236#0: *4 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:40:51 [crit] 2236#0: *8 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; 2017/12/01 08:48:01 [crit] 6124#0: *1 connect() to unix:/var/opt/gitlab/gitlab-workhorse/socket failed (13: Permission denied) while connecting to upstream, client: 192.168.x.x, server: labo.draconis.me, request: \u0026#34;GET / HTTP/2.0\u0026#34;, upstream: \u0026#34;http://unix:/var/opt/gitlab/gitlab-workhorse/socket:/\u0026#34;, host: \u0026#34;labo.draconis.me\u0026#34; Deuxièmement, une fois le problème identifié, parcourir le site de gitlab afin de savoir si dautres ont eu ce problème et sils lont résolu. Daprès les premières constations de lenquête il sagit dun problème de droit que rencontre nginx sur le socket du service gitlab_workhorse. Vérifions cela :\nsudo ls -la /var/opt/gitlab/gitlab-workhorse/socket srwxr-xr-x 1 git git 0 déc. 1 08:52 /var/opt/gitlab/gitlab-workhorse/socket On voit bien que seul lutilisateur GIT et le groupe GIT ont accès au socket. Jai orienté mes recherches dans ce sens et jai fini par trouver :\nhttps://gitlab.com/gitlab-org/gitlab-workhorse/issues/129\nJe décide de faire comme préconisé :\nsudo usermod -aG gitlab-www www-data Je redémarre gitlab et paf ! Toujours cette maudite erreur 502 et toujours ce problème de droit sur le socket gitlab_workhorse. Japprofondis encore mes recherches directement sur la documentation de gitlab, je finis par trouver une piste qui navait rien avoir avec mon problème:\n** Set the right gitlab-workhorse settings if using Apache**.\nLévidence me sauta aux yeux. Pourquoi utiliser le service en mode socket ? Pourquoi ne pas essayer en mode tcp ?\nNi une, ni deux je modifie le /etc/gitlab/gitlab.rb avec les paramètres suivants (directement récupérés de la doc) :\ngitlab_workhorse[\u0026#39;listen_network\u0026#39;] = \u0026#34;tcp\u0026#34; gitlab_workhorse[\u0026#39;listen_addr\u0026#39;] = \u0026#34;127.0.0.1:8181\u0026#34; Comme à chaque modification du gitlab.rb, il faut lancer une reconfiguration.\nsudo gitlab-ctl reconfigure Me croyant sorti daffaire je pousse un ouf de soulagement et bien non, pendant la reconfiguration un nouveau problème apparut.\nERROR: Encountered unsupported config key \u0026#39;gitlab_git_http_server\u0026#39; in /etc/gitlab/gitlab.rb. Cela mapprendra à faire des mises à jour sans lire la note de version :\nhttps://about.gitlab.com/2017/09/22/gitlab-10-0-released/#gitlab-git-http-server-configuration-support-removed\nJe retourne dans le gitlab.rb, je commente la ligne :\n# gitlab_git_http_server[\u0026#39;listen_addr\u0026#39;] = \u0026#39;/tmp/gitlab-workhorse.socket\u0026#39; Je relance une configuration, tout ce passe bien. Je vérifie le service gitlab_workhorse, aucune erreur apparente. Je tente une connexion depuis linterface web tout fonctionne parfaitement. Je peux enfin pousser mon gros ouf de soulagement.\nCest décidé jarrête les mises à jour bancales juste après le petit-déjeuner, enfin jusquà la prochaine 🙂 .\n","date":"2017-12-01T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/mise-%C3%A0-jour-vers-gitlab-10/","title":"Mise à jour vers Gitlab 10"},{"content":"Après 10 ans de bons et loyaux services le disque dur système de mon Nas commence à montrer des signes de fatigue. Pour preuves les erreurs smart quil menvoit tous les matins lorsque je prends mon café. Jai bien conscience quil faut le changer mais jai dautres priorités dans limmédiat, ce qui reporte son remplacement à la fin du mois. Mais depuis hier le système est complètement bloqué en lecture seule. Impossible de faire la moindre mise à jour, ni de modifier ou sauvegarder quelque-chose. Cela me désappointe quelque peu car jai besoin de sauvegarder le système pour effectuer son remplacement. Il sent sa fin proche et il fait tout pour contrecarrer mes plans, hein ? on parle bien dun disque dur là ?\nPour contourner le problème jai opté pour une méthode un peu brutale, mais il a bien cherché, je vais marquer les secteurs défectueux de force. Attention ami geek gardes bien en tête que cette solution nest pas pérenne et quil te faudra quand même remplacer le vieux disque par un neuf.\nJai démarré le Nas sur une clé USB, la mienne contenait systemrescueCD mais nimporte quel live système peut être utilisé. Jai ensuite lancé la commande suivante pour chacune des partitions incriminées.\nfsck -t -y -f -c /dev/sdaX Petite explication de texte :\n-t : Affiche les statistiques temporelles pour fsck. Si cette option est utilisée deux fois, des statistiques supplémentaires seront affichés pour chaque passe. -y : Répond yes à toutes les questions, permet ainsi lutilisation non interactive de fsck. -f : Force la vérification même si le système de fichiers semble propre. -c : Cette option oblige fsck à exécuter le programme badblocks pour trouver les blocs défectueux du système de fichiers. Ils seront alors marqués comme défectueux et ajoutés à linode des blocs défectueux. Après une demi-journée de calculs, tambouilles et autres informatiqueries tous les secteurs défectueux sont désormais marqués, jusquà la prochaine fois. En tout cas mon système est reparti à la normale, jai put effectué la sauvegarde complète. Il ne me reste plus quà trouver un remplaçant, le commander et linstaller. Mais ça cest une autre paire de manche.\nPour conclure on ne le dira jamais assez : Sauvegarde !\n","date":"2017-10-12T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/survivre-quelques-semaines-avec-un-disque-dur-fatigue/","title":"Survivre quelques semaines avec un disque dur fatigué"},{"content":"Petit mémo pour sauvegarder en root mes bases de données, avant migration ou modifications majeurs par exemple.\nSAUVEGARDER Sauvegarder toutes les bases de données :\nmysqldump --user=mon_user --password=mon_password --all-databases \u0026gt; fichier_destination.sql Sauvegarder une base de données précise :\nmysqldump --user=mon_user --password=mon_password --databases nom_de_la_base \u0026gt; fichier_destination.sql Sauvegarder plusieurs bases de données :\nmysqldump --user=mon_user --password=mon_password --databases nom_de_la_base_1 nom_de_la_base_2 \u0026gt; fichier_destination.sql Sauvegarder une table précise :\nmysqldump --user=mon_user --password=mon_password --databases nom_de_la_base --tables nom_de_la_table \u0026gt; fichier_destination.sql Sauvegarder plusieurs tables :\nmysqldump --user=mon_user --password=mon_password --databases nom_de_la_base --tables nom_de_la_table_1 nom_de_la_table_2 \u0026gt; fichier_destination.sql RESTAURER Restaurer toutes les bases de données :\nmysql --user=mon_user --password=mon_password \u0026lt; fichier_source.sql Restaurer dans une base de données précise :\nmysql --user=mon_user --password=mon_password nom_de_la_base \u0026lt; fichier_source.sql ","date":"2017-10-09T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/mariadb-sauvegarder-et-restaurer/","title":"MariaDB : Sauvegarder et restaurer"},{"content":"Depuis plusieurs semaines je grappille ici et là des informations sur mastodon, dans le but dinstaller ma propre instance. Maintenant que jai terminé jouvre cet article afin dy regrouper toutes mes trouvailles.\nVoici le fruit des mes recherches.\nInstallation des dépendances sudo apt -y install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev nginx redis-server redis-tools postgresql postgresql-contrib letsencrypt yarn libidn11-dev libicu-dev Installation de Docker-ce sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common sudo curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - sudo add-apt-repository \u0026#34;deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable\u0026#34; sudo apt update sudo apt install docker-ce sudo groupadd docker sudo usermod -aG docker $USER Installation de Docker-compose sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/bin/docker-compose sudo chmod +x /usr/bin/docker-compose Déploiement de limage Rien de bien compliquer. Je clone le dépôt git de mastodon dans le dossier /srv\ncd /srv sudo git clone https://github.com/tootsuite/mastodon.git cd mastodon Pour une utilisation en production il faut activer les données persistantes pour postgresql et redis. Il suffit de dé-commenter les lignes volume dans le docker-compose.yml comme suit :\ndb: restart: always image: postgres:alpine volumes: - ./postgres:/var/lib/postgresql/data redis: restart: always image: redis:alpine volumes: - ./redis:/data Je copie ensuite le fichier exemple pour la configuration de mastodon.\nsudo cp .env.production.sample .env.production Je procède ensuite à la compilation de limage.\ndocker-compose build Limage est maintenant compilée, passons à la configuration.\nConfiguration Tout ce passe dans le fichier .env.production.\nsudo nano .env.production Nom de domaine de linstance et activation de ssl fortement recommandé.\nLOCAL_DOMAIN=toot.draconis.me LOCAL_HTTPS=true Je définis la langue par défaut.\nDEFAULT_LOCALE=fr Configuration du serveur smtp pour lenvoi des courriels admin et les activation de comptes. Jutilise ladresse courriel fournit avec mon nom de domaine.\nSMTP_SERVER=serveir smtp SMTP_PORT=587 SMTP_LOGIN=no-reply@draconis.me SMTP_PASSWORD=password SMTP_FROM_ADDRESS=no-reply@draconis.me Pour terminer la configuration il faut générer trois clés avec la commande :\ndocker-compose run --rm web rake secret Chaque clé sera de cette forme :\nd250201baf31243159865836db1826b8cf1d442ea5cc37119908cadde0d160b3f248b6e47a8035c62d7fd9538fb3a5bcec6bc808040bc4995426a5c27b230420 Il faut ensuite les lignes suivantes, il faut une clé par ligne.\nPAPERCLIP_SECRET= SECRET_KEY_BASE= OTP_SECRET= Activation de limage docker Création de la base donnée.\ndocker-compose run --rm web rake db:migrate Pré-compilation des fichiers CSS et JS.\ndocker-compose run --rm web rake assets:precompile Démarrage de linstance en tant que démon.\ndocker-compose up -d Linstance est maintenant prête et fonctionnelle. Pour plus de commodités je place nginx en tant que reverse proxy.\nConfiguration du reverse proxy Nginx sudo nano /etc/nginx/conf.d/mastodon.conf map $http_upgrade $connection_upgrade { default upgrade; \u0026#39;\u0026#39; close; } server { listen 80; #listen [::]:80; server_name toot.draconis.me; location /.well-known/acme-challenge/ { allow all; } location / { return 301 https://$host$request_uri; } access_log /dev/null; error_log /dev/null; } server { listen 443 ssl http2; #listen [::]:443 ssl http2; server_name toot.draconis.me; access_log /var/log/nginx/mstdn-access.log; error_log /var/log/nginx/mstdn-error.log; # HTTPS ssl_certificate /etc/letsencrypt/live/toot.draconis.me/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/toot.draconis.me/privkey.pem; ssl_protocols TLSv1.2; ssl_ecdh_curve prime256v1; ssl_ciphers EECDH+AESGCM:EECDH+AES; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_dhparam /etc/nginx/ssl/dhparam2.pem; add_header Strict-Transport-Security \u0026#39;max-age=15768000; includeSubDomains; preload\u0026#39;; add_header X-Content-Type-Options \u0026#34;nosniff\u0026#34;; add_header X-XSS-Protection \u0026#34;1; mode=block\u0026#34;; add_header Referrer-Policy \u0026#34;strict-origin-when-cross-origin\u0026#34;; add_header Content-Security-Policy \u0026#34;frame-ancestors \u0026#39;none\u0026#39;; object-src \u0026#39;none\u0026#39;; script-src \u0026#39;self\u0026#39;; base-uri \u0026#39;none\u0026#39;;\u0026#34;; keepalive_timeout 70; sendfile on; client_max_body_size 0; root /home/mastodon/live/public; gzip on; gzip_disable \u0026#34;msie6\u0026#34;; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; location / { try_files $uri @proxy; } location @proxy { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_pass_header Server; proxy_pass http://127.0.0.1:3000; proxy_buffering off; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } location /api/v1/streaming { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_pass http://127.0.0.1:4000; proxy_buffering off; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; } error_page 500 501 502 503 504 /500.html; } Avant de lancer nginx il me faut forger le dhparam. Cela peu prendre plusieurs minutes.\nsudo test -d /etc/nginx/ssl || mkdir -p /etc/nginx/ssl sudo nice openssl dhparam -out /etc/nginx/ssl/dhparam2.pem 4096 Puis générer les certificats avec letsencrypt et enfin démarrer nginx\nsudo apt install letsencrypt sudo letsencrypt certonly -d toot.draconis.me --agree-tos -m admin@draconis.me --rsa-key-size 4096 --standalone sudo service nginx start Mon instance est disponible ! Rendez-vous à la page daccueil https://mastoc.fr pour la création de mon compte et lui donner les droits dadministration.\nsudo docker-compose run --rm web rake mastodon:make_admin USERNAME=draconis Congrats! draconis is now an admin. \\o/ Navigate to https://toot.draconis.me/admin/settings to get started https://mastoc.fr/admin permet daccéder à linterface dadministration qui permettra de modérer, de personnaliser la page /about/more, daccéder à une interface pour Sidekiq/PGSQL.\nPour terminer je rajoute une tâche cron pour gérer les souscriptions PuSH et entre autres dalléger linstance.\nsudo crontab -e @daily docker-compose run --rm mastodon-web rake mastodon:daily Le travail est maintenant terminé il ny a plus qua profiter.\nConclusion Il faut maintenant interagir avec dautres personnes pour augmenter le nombre dinstances vues. Et comme dirait lautre y a plus quà tooter !\nSources :\nhttps://psychedeli.cat/mastodon/\nhttps://cloud.zaclys.com/Mastodon-config-nginx,p167,528\nhttps://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Docker-Guide.md\nhttps://angristan.fr/installer-instance-mastodon-debian-8/\n","date":"2017-04-25T15:00:14+01:00","image":"https://archives.draconis.me/images/header/virtualisation.jpg","permalink":"https://archives.draconis.me/p/recapitulatif-sur-linstallation-de-mastodon-avec-docker/","title":"Récapitulatif sur l'installation de Mastodon avec docker"},{"content":"Depuis que jutilise lets encrypt pour mes certificats la gestion de nginx en reverse proxy devient de plus en plus fastidieuse. Tous mes certificats sont éparpillés sur différents container lxc ce qui moblige à réaliser des opérations manuelles à chaque renouvellement. De ce fait impossible dutiliser un script de renouvellement automatique et cela implique dautres problèmes. Cest pourquoi jai décidé de déployer un vrai reverse proxy avec Haproxy qui ma été chaudement recommandé par un ami.\nJai récupéré cette configuration que jai adapté à mon infrastructure. Tout fonctionne à merveille depuis quelques mois. Je génère mes certificats directement du serveur concerné sans me soucier du reverse proxy. Mais je me suis aperçu en consultant les logs et mon piwik, que toutes les requêtes portaient lip locale du container qui héberge Haproxy.\nAu final il savérait que ma configuration nétait pas complète, il manquait quelques paramètres sur haproxy et surtout configurer nginx en mode « real ip ».\nNginx Le mode real ip nest pas vraiment un mode mais plutôt un module qui doit être activé à la compilation de nginx. Pour le vérifier.\nsudo nginx -V\nIl faut ensuite chercher la ligne with-http_realip_module, si elle est présente le module real ip est disponible. Pour info la version de nginx fournit par les dépôts officiels debian est déjà compilée avec le module. Il ne reste plus quà lactiver et le configurer.\nsudo nano /etc/nginx/nginx.conf On ajoute les lignes suivantes.\n## #real ip mode ## set_real_ip_from 192.168.xxx.xxx; real_ip_header proxy_protocol; real_ip_recursive on; Petite explication de texte :\n- set_real_ip_from : Définit ladresse de confiance celle du reverse proxy. - real_ip_header : Définit le champ den-tête de la requête dont la valeur sera utilisée pour remplacer ladresse du client. - real_ip_recursive : Remplace la dernière adresse utilisée par une nouvelle.\nSur chaque Vhost concerné je rajoute le paramètre proxy_protocol comme indiquer :\nsudo nano /etc/nginx/site-available/monsite server { .... listen 80 proxy_protocol; ... } server { ... listen 443 ssl proxy_protocol; ... } A partir de là nginx est capable dafficher les IP réelles de chaque visiteurs.\nHaproxy La configuration de Haproxy est très simple il suffit de rajouter les directives suivantes :\nsend-proxy check check-ssl verify none Par exemple pour que piwik affiche les IP réelles pour les visiteurs du blog :\nserver blog 192.168.x.x send-proxy check check-ssl verify none weight 0 Je redémarre les deux services :\nsudo systemctl restart haproxy sudo systemctl restart nginx Maintenant chaque requête effectuée sur mes serveurs est affichée avec sa véritable IP et non celle du reverse proxy.\n","date":"2017-04-22T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/nginx-recuperer-les-ip-derriere-haproxy/","title":"Nginx : récupérer les Ip derrière haproxy"},{"content":"Depuis ma migration sur nextcloud plusieurs mises à jour mineurs ont été publiées. Au niveau de mon instance aucune ne ma été proposée. Sur ownCloud à chaque nouvelle mise à jour un bandeau apparaissait mavertissant dune nouvelle version, majeur ou mineur. Jai commencé à investiguer sur le problème, mais en attendant de le résoudre je préfère réaliser les mises à jour manuellement. Petite particularité de mon installation le dossier data est hébergé sur un disque dur dédié 2to de stockage, ce qui simplifie la procédure, en effet celui-ci ne sera pas à déplacer lors de la mise à jour.\nPremièrement je récupère la dernière version stable : https://nextcloud.com/install/#instructions-server\nwget https://download.nextcloud.com/server/releases/nextcloud-9.0.53.tar.bz2 Sauvegarde de l\u0026rsquo;ancien repertoire avec l\u0026rsquo;ancien numéro de version et extraction du nouveau\nmv nextcloud nextcloud_0.9.50 cd /var/www/ nextcloud tar xvjf nextcloud-9.0.53.tar.bz2 Il ne reste plus qumigrer ma configuration qui contient le chemin vers le dossier data et attribuer les bons droits.\ncp /var/www/nextcloud_0.9.50/config/config.php /var/www/nextcloud/config/config.php chown -R www-data:www-data /var/www/nextcloud Nous arrivons enfin à la dernière étape, exécuter la mise à jour. Attention celle-ci doit être exécutée avec lutilisateur web, sous debian il sagit du compte www-data.\nsudo -u www-data -H ./occ upgrade Nextcloud or one of the apps require upgrade - only a limited number of commands are available You may use your browser or the occ upgrade command to do the upgrade Set log level to debug Turned on maintenance mode Checking whether the database schema can be updated (this can take a long time depending on the database size) Checked database schema update Checking updates of apps Checked database schema update for apps Updating database schema Updated database Starting code integrity check... Finished code integrity check Update successful Turned off maintenance mode Reset log level A noter que cette méthode évite de faire la mise à jour via linterface web dont jai parfois subi les instabilités. Une petite connexion pour vérifier que le plan sest déroulé sans accros et me voilà à jour. Cela me laisse le temps de résoudre le problème avec Update App.\n","date":"2016-08-10T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/update-app-de-nextcloud-ne-fonctionne-pas/","title":"Update app de nextcloud ne fonctionne pas"},{"content":"Mon FirefoxOS flame a rendu son dernier souffle en ce 17 Juillet 2016. Lécran tactile ne répond plus, impossible dobtenir une réponse. Le symptôme : le téléphone se comporte comme si jappuyais en permanence sur le coin supérieur gauche de lécran.\nDans un premier temps je pensais que le téléphone sétait tordu dans ma poche. Je lai posé sur un champ plat pour vérifier, non le téléphone nest pas tordu. Je suis parti sur la thèse de la poussière coincée. Après un démontage soigneux, un nettoyage, une inspection de la dalle tactile je ne vois aucun défaut ou autre gène sur lécran. Je redémarre le tout et miracle le téléphone redémarre comme au premier jour pendant seulement deux heures… il sest ensuite éteint pour ne jamais se rallumer.\nBien évidemment cest toujours lorsque tu en as besoin que ton téléphone te lâche. Il me fallait rapidement en retrouver un. Je suis allé sur le site internet de mon opérateur et jai choisi celui qui entrait dans mon budget cest-à-dire moins de 150€. Jai opté pour un Wiko Pulp 4gavec android 5, mon épouse possédant un Wiko Rainbow en est complètement satisfaite, je suis parti sur ce modèle.\nAlors oui je sais Android cest le mal, mais jai besoin dun mobile fonctionnel rapidement. Je nai pas forcément le temps en ce moment de me consacrer à la recherche dautres téléphones alternatifs qui tiennent la route. Je dois avouer que labandon par Mozilla de FirefoxOS ma un peu refroidit sur lexpérience alternative, même si la communauté à reprit le flambeau, je croyais en ce projet lidée était bonne, mais les partenaires nont pas joué le jeu. Cest vraiment dommage car à mon sens FFOS avait tous les atouts pour ce faire une place aux côtés dAndroid et IOS. Bref on ne refait pas le passé il faut savoir aller de lavant et pour moi cela passe par la case téléphone qui fonctionne.\nJe ne suis pas attaché au matériel mais jai quand même un petit pincement au cœur, car ce téléphone me correspondait en tout point et il a répondu à mes attentes pendant ses deux ans dexistence, mais une page se tourne et la vie continue. Pour linstant le Wiko fait bien son job je ne pense pas men séparer avant longtemps, cela va me permettre de suivre les différents projets de téléphones alternatifs avant de faire mon choix.\nfigure1 ","date":"2016-07-28T15:00:14+01:00","image":"https://archives.draconis.me/images/2016/07/ripflame.jpg","permalink":"https://archives.draconis.me/p/rip-mon-flame-2014-2016/","title":"Rip mon Flame 2014-2016"},{"content":"Suite au départ de Frank Karlitschek, je suis lactualité de NextCloud, fork annoncé de ownCloud, de très près. Utilisateur quotidien de owncloud les turbulences des dernières semaines dans le projet me concernent directement. Poussé par la curiosité, jai commencé à fouiller internet à la recherche dinformations. Mes trouvailles ont fini par me convaincre :\narrêt de lutilisation de la contributor license agreemen (CLA) un développement ouvert à la communauté à la place dun développement semi-fermé gestion de certaines fonctionnalités aujourdhui disponibles uniquement dans la version entreprise downCloud larticle de Dada sur sa migration lactuel client de synchronisation fonctionne aussi avec nextcloud Cest dun pas décidé que je me suis dirigé vers nextcloud et me voilà en route vers dautres nuages. Pour être honnête je ne pensais pas que celle-ci serait aussi facile même si les deux logiciels sont encore très similaires.\nEtat des lieux de linstallation existante. Le serveur est hébergé directement sur mon Nas, il me permet ainsi davoir accès à mes données depuis nimporte où. Il me sert également de sauvegarde pour mes documents professionnels. Je nutilise pas dapplications particulières, owncloud me sert uniquement pour du fichier. Mes agendas et mes contacts sont hébergés sur mon instance Sogo.\nIts migration time Récupérer la dernière version : cd /var/www/ wget https://download.nextcloud.com/server/releases/nextcloud-9.0.50.zip Extraire larchive : unzip nextcloud-9.0.50.zip Définir les droits pour le serveur web apache (www-data sous debian) : chown -R www-data:www-data /var/www/nextcloud/ Copier le config.php de owncloud vers nextcloud : cp /var/www/owncloud /var/www/nextcloud Modification de la configuration de mon Vhost Apache : sudo nano /etc/apache2/sites-available/owncloud DocumentRoot \u0026#34;/var/www/nextcloud\u0026#34; \u0026lt;Directory \u0026#34;/var/www/nextcloud\u0026#34;\u0026gt; Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Order allow,deny Allow from all \u0026lt;/Directory\u0026gt; sudo systemctl restart apache2 Me connecter et attendre la mise à jour de la base données, pour ensuite tomber sur le bel écran daccueil figure1 Jai profité de loccasion pour supprimer deux messages derreurs :\nL\u0026rsquo;en-tête HTTP \u0026ldquo;X-Content-Type-Options\u0026rdquo; n\u0026rsquo;est pas configurée pour être égale à \u0026ldquo;nosniff\u0026rdquo; créant potentiellement un risque relié à la sécurité et à la vie privée. Il est donc recommandé d\u0026rsquo;ajuster ce paramètre. L\u0026rsquo;en-tête HTTP \u0026ldquo;X-Frame-Options\u0026rdquo; n\u0026rsquo;est pas configurée pour être égale à \u0026ldquo;SAMEORIGIN\u0026rdquo; créant potentiellement un risque relié à la sécurité et à la vie privée. Il est donc recommandé d\u0026rsquo;ajuster ce paramètre.\nDabords sur le serveur apache directement dans le fichier de configuration /etc/apache2.conf\n\u0026lt;IfModule mod_headers.c\u0026gt; Header always set X-Content-Type-Options: nosniff Header always set X-Frame-Options: SAMEORIGIN \u0026lt;/IfModule\u0026gt; Puis sur le serveur nginx qui fait office de reverse proxy, toujours dans la configuration de nginx /etc/nginx.conf\nadd_header X-Frame-Options SAMEORIGIN; add_header X-Content-Type-Options nosniff; Par contre pas de grands changements, cest du owncloud sans le nom, mais tout fonctionne parfaitement et mon client de synchronisation a redémarré comme si de rien nétait. Je suis impatient de découvrir toutes les nouvelles fonctionnalités que va développer la nouvelle équipe.\nSuite au prochain épisode.\n","date":"2016-06-21T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/migration-owncloud-vers-nextcloud/","title":"Migration Owncloud vers Nextcloud"},{"content":"Ce soir petit moment de détente sur Steam mais celui-ci ne démarre pas. Je lexécute alors dans un terminal :\n$steam Running Steam on arch rolling 64-bit STEAM_RUNTIME is enabled automatically Installing breakpad exception hander for appid(steam)/version(1459463254) libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast Premier réflexe je vais faire une recherche sur le bug tracker dArchlinux au cas où. Au bout de quelques minutes jobtiens ma réponse via ce rapport de bug.\nEn gros les librairies libgpg-error embarquées avec Steam ne correspondent pas à celle dArchlinux, il suffit simplement de les supprimer pour utiliser celle dArchlinux.\n$find ~/.steam/root/ -name \u0026#34;libgpg-error.so*\u0026#34; -print -delete Et voîlà à présent mon Steam démarre correctement.\n","date":"2016-06-20T15:00:14+01:00","image":"https://archives.draconis.me/images/header/jeuxvideos.jpg","permalink":"https://archives.draconis.me/p/mise-a-jour-de-lib32-ligcrypt-et-steam-casse/","title":"Mise à jour de lib32-libcrypt et Steam cassé"},{"content":"Mes enfants et moi sommes de grand fan du film pixel. Mes enfants parce que les personnages sont très drôles et cartoon, moi parce que je retombe complètement en enfance avec les vieux jeux présents. Il est très amusant de voir prendre vie les jeux sur lesquels je me suis beaucoup amusé et dépensé mon argent de poche sans compter.\nBien évidemment jai eu droit aux questions : Cest un vrai jeu pacman ? Et centiped cétait vraiment comme ça ? QUOI ? toi aussi papa tu connais ? Tu sais jouer aux vieux jeux vidéos ? Nous aussi ont veux y jouer ! Je me suis donc décidé de monter une petite plate-forme pour émuler ces jeux, cela tombe bien jai un raspberry 1 qui traine à rien faire.\nNi une ni deux jy installe une raspbian et je mattelle à linstallation et la configuration de chaque émulateur dont jai besoin. Mais dans ma précipitation javais oublié que le raspberry possède une architecture ARM et cela limite grandement le choix logiciel, surtout en émulation. Ce fut dun compliqué pour faire fonctionner tout ce petit monde. Au cours dune recherche je suis tombé sur cet article qui présente recalbox, distribution linux pour transformer un PI en console de jeux rétro. De latari 2600 à la Playsation 2 en passant par la neo-geo et surtout ce qui mintéresse les vieux jeux darcades. Me voilà parti sur le site officiel www.recalbox.com pour en apprendre un peu plus sur la bête. Surprise je tombe sur une page en français et japprends que le projet est développé par des Français un peu chauvinisme ça fait pas de mal. Le site est très bien réalisé, la documentation est très complète et à jour, ce qui est très important pour moi. Franchement je dois dire que le temps de préparation et dinstallation est ridicule avec le mini how-to disponible en page daccueil. Il suffit de regrouper le matériel nécessaire et tout ce déroule aussi facilement quun copier-coller.\nVoici matériel que javais sous la main :\nRaspberry 1 Modele B\nCarte SD 8 go Sandisk\nUne manette Thrustmaster Dual Analog 4\nUne manette Thrustmaster firestorm dual power 3\nUn câble Hdmi Dvi\ndongle wifi ourlink fourni par adafruit\nPour installer recalbox jai suivi le guide créer sa recalbox.\nfigure1 figure2 A bout que quelques minutes, le PI redémarre et me voilà sous recalbox. Pour linstant la seule difficulté que jai rencontré est au niveau du dongle Wifi. Il est bien reconnu par le PI mais pas par recalbox. Un petit tour sur leur wiki, mapprend quil y a certains dongle wifi compatibles, je me suis basé sur la liste fourni pour commander mon nouveau dongle. Tout le reste a fonctionné plug and play et javoue que de temps en temps cela fait du bien de ne pas se creuser la tête à chercher le pourquoi du comment. Malgré les faibles performances du PI, les jeux sont parfaitement émulés, tu copies tu colles tes roms et ça marche. Au moment où jécris ses lignes, jai essayé lémulation Nes, Snes, Neo-Geo, Final Burn, Mega Drive, Master system, Mame, PC engine, Game Boy (version color inclue) sans aucun problème. Recalbox gère aussi les montages réseaux Samba et NFS pas besoin de stocker ses roms directement sur la SD on peut facilement y accéder depuis le NAS de la maison.\nDeuxième bonne surprise, la recalbox embarque Kodi 14.2, et cela tombe très bien car je venais juste de commander un PI2 pour un usage pc de salon. Je vais essayer de combiner les deux pour une utilisation quotidienne. Jaurai donc loccasion den reparler dans lavenir, jai un tas didées pour recycler mon PI et quil arrête enfin de prendre la poussière. Coïncidence la semaine dernière jai eu une longue discussion avec un ami sur lutilité du Raspberry dans la vie de tous les jours, jai enfin trouvé une réponse. Pour finir voici ma scène préférée de Pixel.\nhttps://www.youtube.com/watch?v=7aR15Xk0QyY\n","date":"2016-01-15T15:00:14+01:00","image":"https://archives.draconis.me/images/header/jeuxvideos.jpg","permalink":"https://archives.draconis.me/p/reaclbox-ou-comment-retomber-en-enfance/","title":"Recallbox ou comment retomber en enfance"},{"content":"Je ne me suis jamais habitué à la philosophie gnome-shell, cest pourquoi je me suis rapidement tourné vers XFCE puis Openbox. Mon but étant de trouver une interface graphique, épurée, légère, utilisable principalement au clavier. Openbox a rempli sa part du contrat jusquau jour ou je me suis intéressé au Tilling.\nAu départ jai commencé mes essais avec awesome, wmbfs, herbsluftwm, entre autres, mais aucun ne ma réellement séduit. Lorsque jai trouvé I3wm il avait pour moi tous les avantages décris plus haut avec une simplicité de mise en place et de configuration redoutable. En effet il se configure à partir dun seul fichier appelé config qui se situe dans ~/.i3/. La modification de la configuration ne fait très simplement grâce à une syntaxe très simple, expliqué brillamment dans son guide de lutilisateur.\nDepuis deux mois je tourne sous Archlinux avec le gestionnaire de fenêtre i3WM. Petit à petit japprends à dompter la bête. Au départ jutilisais la configuration de base générée au premier démarrage de I3wm, pour me faire la main. Au fur et à mesure de son utilisation je lai adapté à mes besoins. Voici un premier jet de la configuration que jutilise.\nLa barre des tâches Ce fut ma première modification.\nbar { position bottom # position en bas font pango:SourceCodePro-Medium, FontAwesome 8 # Choix des polices status_command ~/.i3/conky.sh #chemin vers le script conky #ci-dssous l\u0026#39;ancienne configuration #status_command i3status --config /home/olivier/.i3/i3status.conf #tray_output primary #output LVDS1 #output VGA1 #coouleurs à utiliser colors { background #0A0D14 statusline #0A0D14 separator #0A0D14 focused_workspace #0a0f14 #0a0f14 #CFCFD9 active_workspace #0a0f14 #0a0f14 #344169 inactive_workspace #0a0f14 #0a0f14 #344169 urgent_workspace #2f343a #900000 #ffffff } } Dans cette configuration je remplace la barre dorigine par un script conky perso. Celui-ci maffiche lutilisation des partitions racine et home, le niveau de batterie, le volume, la date et lheure. En plus jai rajouté une ligne pour mafficher le flux de mon serveur mpd.\nLes couleurs Je me suis aussi attaqué à lapparence de mon interface. Selon la philosophie i3 une fenêtre seule représente un container. Vous pouvez ajouter des fenêtres (clients) à ce container. Chaque container possède plusieurs modes:\nle mode diviser, le mode par défaut, verticalement (splitv) et horizontalement (splith) une le mode stacked (empiler) tous les containers sont empilés les un sur les autres le mode tabbed, les containers se placent les un contre les autres. Dans nimporte quels modes les containers peuvent prendre deux états « focused » ou « unfocused » pour lesquels il est possible dattribuer une couleur spécifique uniquement en hexadécimal.\n# class border backgr. text indicator client.focused #344169 #344169 #CFCFD9 #192033 client.focused_inactive #0A0D14 #0A0D14 #888888 #292d2e client.unfocused #0A0D14 #0A0D14 #888888 #292d2e client.urgent #EDE4DF #EDE4DF #ffffff #900000 client.focused : client sectionné (généralement celui sur lequel je suis en train de travailler). client.focused_inactive : client sélectionné mais par encore actif client.unfocused : client non sélectionné client.urgent : client qui nécessite une action durgence, la saisie dun mot de passe à louverture de Thunderbird par exemple Pour chaque état je définis la couleur de la bordure (border), larrière plan (backgr.), le texte (text), lemplacement où elle va safficher (indicator). Cest le même principe pour les couleurs de la barre des tâches.\nLes espaces de travail I3wm, comme tout les windows manager sous linux, il exploite la force des espaces de travail. Dans un premier temps je configure les nombre despace virtuel que je veux.\n# workspaces set $WS1 1: set $WS2 2: set $WS3 3: set $WS4 4: set $WS5 5: set $WS6 6: set $WS7 7: set $WS8 8: set $WS9 9: Afin dutiliser des icônes plutôt que des noms, jai installé le paquet ttf-font-awesome sous Archlinnux.\n$yaourt tt-font-awesome Par la suite afin de naviguer rapidement entre les différents espaces de travail je leur assigne un raccourcit clavier.\n# move focused container to workspace bindsym $mod+Shift+1 move container to workspace $WS1 bindsym $mod+Shift+2 move container to workspace $WS2 bindsym $mod+Shift+3 move container to workspace $WS3 bindsym $mod+Shift+4 move container to workspace $WS4 bindsym $mod+Shift+5 move container to workspace $WS5 bindsym $mod+Shift+6 move container to workspace $WS6 bindsym $mod+Shift+7 move container to workspace $WS7 bindsym $mod+Shift+8 move container to workspace $WS8 bindsym $mod+Shift+9 move container to workspace $WS9 bindsym $mod+Shift+0 move container to workspace $WS10 La chose que japprécie le plus dans la manipulation des espaces de travail, cest de pouvoir déplacer nimporte quel container (fenêtre) sur nimporte quel espace de travail en une simple combinaison de touches.\nAinsi pour déplacer Firefox par exemple de mon bureau 1 vers mon bureau 4, il me suffit de faire un touche_super + Shift + le numéro de lespace de travail désiré. Cette configuration est proposée dorigine par i3wm, jai simplement ajouté les petites icônes pour schématiser le rôle de chaque espace de travail. Ces icônes ne sont pas placées par hasard, elles me servent de moyen mémo technique pour assigner une application à un espace de travail dédié.\n#Move to workspace assign [class=\u0026#34;Steam|Playonlinux\u0026#34;] $WS4 Dans cet exemple jassigne lespace de travail n°4 aux applications Steam et Playonlinux en accord avec licône « play » configurée pour ce bureau. Cette configuration est totalement libre et chacun peut faire comme il lentend.\n# move focused container to workspace bindsym $mod+Shift+1 move container to workspace $WS1 bindsym $mod+Shift+2 move container to workspace $WS2 bindsym $mod+Shift+3 move container to workspace $WS3 bindsym $mod+Shift+4 move container to workspace $WS4 bindsym $mod+Shift+5 move container to workspace $WS5 bindsym $mod+Shift+6 move container to workspace $WS6 bindsym $mod+Shift+7 move container to workspace $WS7 bindsym $mod+Shift+8 move container to workspace $WS8 bindsym $mod+Shift+9 move container to workspace $WS9 bindsym $mod+Shift+0 move container to workspace $WS10 Lancement des Applications Il est possible de lancer les applications avec une combinaison de touches, comme par exemple pour lancer Firefox.\nkey bindings bindsym $mod+w exec firefox Cette est très utile pour les applications que jutilise très souvent\n#Move to workspace assign [instance=\u0026#34;terminator|urxvt\u0026#34;] $WS1 assign [class=\u0026#34;Firefox\u0026#34;] $WS3 assign [class=\u0026#34;ncmpcpp|vlc\u0026#34;] $WS4 assign [class=\u0026#34;Steam|Playonlinux\u0026#34;] $WS4 assign [class=\u0026#34;emacs\u0026#34;] $WS5 assign [class=\u0026#34;shotwell|gimp\u0026#34;] $WS6 assign [class=\u0026#34;pcmanfm\u0026#34;] $WS8 assign [class=\u0026#34;dontstarve|PillarsOfEternity\u0026#34;] $WS9 En conclusion Voici un premier jet de ma configuration réalisée après quelques semaines dutilisation, celle-ci bien évidemment sera amenée à évoluer avec le temps et en fonction de mon utilisation. Il y a encore des points sur lesquels je travaille toujours qui feront lobjet de futurs articles. Pour les intéresser voici ma configuration complète :\nhttps://framagit.org/draconis/dotfiles/-/tree/master/.i3\nfigure figure ","date":"2015-10-28T00:00:00Z","image":"https://archives.draconis.me/images/2015/10/desktop_free.jpg","permalink":"https://archives.draconis.me/p/mes-debuts-avec-i3wm/","title":"Mes débuts avec I3WM"},{"content":"Hier soir je décide de mettre à jour mon serveur Nas qui englobe une instance ownCloud. Celui-ci est monté dune version mineure la 8.0.4. Au moment de redémarrer le serveur web (apache) jobtiens un joli message derreur\n[....] Restarting web server: apache2[Mon Jun 15 22:31:31 2015] [warn] The Alias directive in /etc/apache2/conf.d/owncloud.conf.old at line 1 will probably never match because it overlaps an earlier Alias. ... waiting [Mon Jun 15 22:31:32 2015] [warn] The Alias directive in /etc/apache2/conf.d/owncloud.conf.old at line 1 will probably never match because it overlaps an earlier Alias. . ok Cette erreur nempêche en rien Apache de fonctionner correctement, mais cela ne fait pas propre de laisser traîner une erreur dans les logs.\nObjectif Identifier et cacher le fichier responsable de cette erreur.\nIdentifier Une analyse rapide du message mapprend quil sagit du fichier de configuration de ownCloud dans apache. Durant la mise à jour une copie de sauvegarde du fichier /etc/apache2/conf.d/owncloud.conf est réalisée. Le fichier est simplement renommé en owncloud.conf.old. Et cest cette copie qui sème la zizanie dans la paisible prairie de notre apache. Même si celle-ci est renommée, au redémarrage apache lit tout de même le fichier et constate quil y a doublon. Jai appris, souvent à mes dépends, quil ne fallait jamais supprimer un fichier sur un serveur afin de pouvoir revenir en arrière si quelques-chose se passait mal par exemple.\nCacher Le but de la manœuvre est dempêcher la copie de sauvegarde dêtre prise en compte par apache afin que le fameux message derreur napparaisse plus. Merci à tsyr2ko pour sa méthode.\nJ\u0026rsquo;édite le fichier apache2.conf\nsudo nano /etc/apache2/apache2.conf à la fin du fichier je commente la ligne avec #Include conf.d/ et je la remplace par Include conf.d/*.conf\nPour vérification je relance le serveur apache.\nsudo service apache2 restart [ ok ] Restarting web server: apache2 ... waiting . Tout est rentré dans lordre jusquà la prochaine mise à jour. Ce problème devrait être réglé sous Jessie et la nouvelle mise à jour dapache. En effet deux nouveaux répertoires voient le jour le /etc/apache2/conf-available/ et le /etc/apache2/conf-enabled/. Cest le même principe quavec les répertoires « sites-available » et « site-enabled », le repertoire « conf-available » contiendra les fichiers de configurations disponibles et il suffira des les activer avec la commande a2enconf. Cela permet duniformiser la configuration dapache ce qui est une bonne chose.\n","date":"2015-06-15T00:00:00Z","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/owncloud-8-0-4-et-apache-perd-la-tete/","title":"Owncloud 8.0.4 et Apache perd la tête"},{"content":"Anciennement XBMC (XBox MediaCenter), Kodi est un formidable outil pour gérer ses médiathèques. Il me sert principalement pour gérer mes fichiers multimédia. Il arrive parfois, au vu de la très grande quantité de fichiers que je possède, à SQLite de semballer et la base de données des médiathèques se corrompt. Dernier exemple en date dhier soir, la moitié de mes diaporamas étaient amputées dune voir plusieurs diapositives. Alors que le fichier image (jpg, png) sy rapportant était présent « physiquement » sur le disque dur ou le partage NFS. Au départ jai cru à une erreur du scrapeur, mais une analyse des logs ne révéla rien. Jai conclu que ma base de données était donc corrompue. En effet kodi créée un fichier SQLite pour chaque médiathèque (audio, photo, et autre). Ses fichiers sont sotckés dans : /home/$User/.kodi/userdata/Database/ Objectif Supprimer la base de données corrompue pour recréer une base de données saine avec comme moteur MariaDB. SQlite est très bien pour de petites bases de données mais jai atteint rapidement sa limite. Jai eu le même cas avec mon serveur owncloud que javais aussi migré vers mariaDB à lépoque.\nSuppression de la BDD corrompue Dans un premier temps à partir de kodi je supprime toutes les sources alimentant la médiathèque des photos. Ensuite, je nettoie la médiathèque et je quitte kodi. Je me rends dans le répertoire contenant le fichier de la base de données et je le renomme au cas où.\ncd /home/olivier/.kodi/userdata/Database/ mv MyPictures90.db MyPictures90_bak24032015.db Lancienne base est maintenant supprimée.\nCréation de la nouvelle BDD Je commence par installer MariaDB. Je me rends sur cette page qui permet de générer les dépôts pour sa distribution. Dans mon cas il sagit dune Debian Sid. Il ne me reste plus quà copier coller les dépôts dans mon sources.list et dinstaller la signature du dépôt :\nsudo apt-get install python-software-properties sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db sudo add-apt-repository \u0026#39;deb http://ftp.igh.cnrs.fr/pub/mariadb/repo/10.0/debian sid main\u0026#39; sudo apt-get update sudo apt-get install mariadb-server Je créer maintenant un utilisateur « kodi » qui pourra créer une BDD pour chaque médiathèque.\n`CREATE USER \u0026#39;kodi\u0026#39; IDENTIFIED BY \u0026#39;motdepasse\u0026#39;;` #réglage de ses privilèges `GRANT ALL ON *.* TO \u0026#39;kodi\u0026#39;;` Je configure kodi en mode Sql grâce à lajout dun fichier advancedesettings.xml qui sera stocké dans le dossier /home/olivier/.kodi/userdata .\n\u0026lt;advancedsettings\u0026gt; \u0026lt;videodatabase\u0026gt; \u0026lt;type\u0026gt;mysql\u0026lt;/type\u0026gt; \u0026lt;host\u0026gt;127.0.0.1\u0026lt;/host\u0026gt; \u0026lt;port\u0026gt;3306\u0026lt;/port\u0026gt; \u0026lt;user\u0026gt;kodi\u0026lt;/user\u0026gt; \u0026lt;pass\u0026gt;lemotdepasse\u0026lt;/pass\u0026gt; \u0026lt;/videodatabase\u0026gt; \u0026lt;musicdatabase\u0026gt; \u0026lt;type\u0026gt;mysql\u0026lt;/type\u0026gt; \u0026lt;host\u0026gt;127.0.0.1\u0026lt;/host\u0026gt; \u0026lt;port\u0026gt;3306\u0026lt;/port\u0026gt; \u0026lt;user\u0026gt;kodi\u0026lt;/user\u0026gt; \u0026lt;pass\u0026gt;lemotdepasse\u0026lt;/pass\u0026gt; \u0026lt;/musicdatabase\u0026gt; \u0026lt;picturesdatabase\u0026gt; \u0026lt;type\u0026gt;mysql\u0026lt;/type\u0026gt; \u0026lt;host\u0026gt;127.0.0.1\u0026lt;/host\u0026gt; \u0026lt;port\u0026gt;3306\u0026lt;/port\u0026gt; \u0026lt;user\u0026gt;kodi\u0026lt;/user\u0026gt; \u0026lt;pass\u0026gt;lemotdepasse\u0026lt;/pass\u0026gt; \u0026lt;/picturesdatabase\u0026gt; \u0026lt;videolibrary\u0026gt; \u0026lt;importwatchedstate\u0026gt;true\u0026lt;/importwatchedstate\u0026gt; \u0026lt;importresumepoint\u0026gt;true\u0026lt;/importresumepoint\u0026gt; \u0026lt;/videolibrary\u0026gt; \u0026lt;/advancedsettings\u0026gt; A partir de là mon instance Kodi est prête pour une nouvelle médiathèque.\nNouvelle mediathèque Rien de plus facile, il suffit dajouter les sources désirées dans Kodi pour quil se charge de créer les médiathèques et les BDD. Pour ceux qui voudraient aller plus loin, il est possible dutiliser plusieurs instances Kodi avec la même BDD en « ouvrant » le serveur MariaDB/MySQL au réseau. Cela permet aux différents appareils embarquant kodi davoir accès à la même information en temps réel. Pour cela je vous conseille cette excellente page du wiki de kodi.\n","date":"2015-03-26T00:00:00Z","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/bloc-notes-base-de-donnees-kodi-corrompue/","title":"Base de données Kodi corrompue"},{"content":"Au cours des ateliers de découverte Linux, on me pose souvent la question : « Comment trouver facilement des paquets sous Debian ? ». Sous Firefox il existe une extension qui ajoute un moteur de recherche destiné à effectuer ses recherches dans la base de données des paquets Debian. Cette méthode est beaucoup plus conviviale quune ligne de commande et moins lourde que Synaptic. De plus jutilise Firefox plus souvent que Synaptic.\nObjectif Cette extension permet de rechercher directement sur le site « Debian package » le paquet désiré.\nInstallation Pour linstaller il faut se rendre sur le site https://addons.mozilla.org, rechercher le nom « Debian Package ». Pour ensuite trouver la page suivante :\nfigure1 Cliquer « add to firefox » pour lajouter aux moteurs de recherche existant.\nfigure2 Utilisation Je choisis le moteur de recherche « Debian Package » parmi ceux déjà présent :\nfigure3 Il ny a plus quà rechercher le paquet voulu, exemple avec emacs24 :\nfigure4 ","date":"2015-03-25T00:00:00Z","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/rechercher-simplement-des-paquets-debian/","title":"Rechercher simplement des paquets Debian"},{"content":"Fin janvier javais reçu un courriel me signifiant que jallais recevoir un cadeau pour les dix ans de World of Warcraft. Ce cadeau était destiné aux joueurs qui avaient souscris un abonnement durant les soixante jours qui ont suivi la sortie du jeu et qui ne lont jamais interrompu.\nCe matin le livreur est enfin arrivé chez moi avec le fameux cadeau. Depuis le premier courriel, je me suis totalement coupé des sites spécialisés sur World of Warcraft pour garder la surprise.\nEt quelle surprise ! Je naurai jamais imaginé recevoir une chose pareille. Cest une statuette représentant un Orc chevauchant un loup de guerre qui fonce au combat. Entièrement en résine, son niveau de détail est impressionnant comparé à dautres de ma collection. Elle est peinte imitation bronze et pour un joueur de la Horde elle est vraiment classe. La fourrure du loup et de larmure orc est très réaliste. On sy croirait !\nSous le socle il y a un petit message en anglais :\nThe orc statue is a constant presence in our life at Blizzard Entertaiment. Its where we meet to talk, to eat, to celebrate. As we celebrate ten year of world of warcraft, we present this token of appreciation to you, stalwart adventurer. Thank you for being a constant presence in our lives as we adventure together.\nPour les non anglophones :\nLa statue orque est omniprésente dans notre vie à Blizzard Entertaiment. Cest là où nous nous réunissons pour parler, manger, célébrer. Comme nous célébrons les dix ans de world of warcraft, nous vous présentons cet appréciable présent, aventurier chevronné. Merci dêtre constamment avec nous dans nos vies comme notre aventure ensemble.\nPour la petite histoire cette représentation de lorc est une statue géante qui trône à lentrée de la maison mère de Blizzard en Californie. Chaque employé passe au moins une fois par jour devant, elle est souvent le théâtre des nombreux évènements publique de Blizzard. Elle est devenue au fil des ans un symbole pour les fans et pour le studio.\nLa statue Je trouve ce clin œil touchant, car dans toute ma vie de joueur aucun studio de jeu vidéo navait eu une telle attention. Et puis cest un peu comme si nous faisions partie de la famille Blizzard, car au vu des pré-requis pour la recevoir je ne pense pas que nous soyons nombreux à posséder ce cadeau.\nCertes on peut y voir un gros coup marketing, après tout ce nest pas un organisme à but non lucratif, mais en tant que fan de la première heure, mon aventure avec blizzard ayant commencé avec Warcraft premier du nom, je pense vraiment quils ont voulu faire un geste envers tous les fans qui sont restés fidèle au jeu pendant ses dix ans. Malgré toutes ses années je prends toujours autant de plaisir à venir en Azeroth, un peu plus modérément ses dernières années, famille, boulot, perpinux, mes travaux informatiques, etc. La magie est toujours là.\nMerci Blizzard pour ce cadeau unique et cette reconnaissance envers nous simple joueurs, cette statuette trouvera rapidement sa place auprès de mes Trolls et Taurens.\nPOUR LA HORDE !\nimage image image image image image image image image image image image image image image ","date":"2015-03-11T00:00:00Z","image":"https://archives.draconis.me/images/2015/03/IMG_0266.jpg","permalink":"https://archives.draconis.me/p/loktar-ogar/","title":"Lok'tar ogar !"},{"content":"Je navigue sur internet régulièrement depuis mes ordinateurs portables, un jour je me suis posé la question « et si je perds ou que lon me vole mon portable quarrivera til aux données persistantes du navigateur ? » Et bien elles sont encore présentes et donc exploitables. Cela fait maintenant plusieurs années que Mozilla travaille sur des fonctionnalités de vie privée, mais elles sont encore très méconnues et nécessitent souvent une modification. Voici comment j\u0026rsquo;utilise l\u0026rsquo;onglet vie privée afin de laisser le moins de traces possible mes ordinateurs portables.\nPrincipalement ce que je souhaite effacer :\nHistorique de navigation Historique de téléchargement Connexions actives Historique des formulaires Le cache Les cookies Les cookies tiers La configuration seffectue dans le menu préférence de Firefox. Pour information jutilise Debian qui a renommé Firefox en Iceweasel, mais le fonctionnement reste identique mis à part une différence dopinions entre Debian et Mozilla.\nLes préférences générales figure1 Je coche cette option pour indiquer au système danalyse du site internet que je ne souhaite pas être pisté. A savoir que certains systèmes danalyse peuvent passer outre cette demande, cest le cas de Piwik notamment. A ce sujet jutilise Piwik sur le blog, mais je nai pas activé ce bypass, je respecte le choix de chacun dêtre ou non enregistré dans les statistiques du blog. Je définis la règle dutilisation de lhistorique, jopte pour une configuration personnelle. Par défaut je naccepte pas les Cookies, mais jaffine les réglages avec les exceptions (voir Figure 2) Lhistorique sera effacer à la fermeture de Firefox (voir Figure 3) Jefface aussi les suggestions de la barre dadresse. Les Cookies figure2 Dans ce menu je configure les sites internet dont jaccepte les cookies. Hormis les différents outils web et sites internet où jai besoin de mauthentifier tous les autres cookies sont bloqués. Cela mévite davoir à faire le ménage dans mes cookies à période régulière et aux cookies tiers denvahir ma machine. Attention si vous optez pour une interdiction totale comme moi il faudra renseigner tous les sites où vous devez vous authentifier sinon l\u0026lt;span authentification ne fonctionnera jamais.\nLhistorique figure3 Ici je définis mes paramètres deffacement.\nHistorique de navigation : tous les sites visités durant ma session Historique de téléchargements : vide la liste des fichiers téléchargés Historique des formulaires et des recherches : efface tous les contenus des formulaires que jaurais put remplir (Nom, prénom, courriel, etc ) et les recherches effectuées dans la barre de recherche Cookies supprime : les cookies des sites autorisés Connexion actives : très pratiques lorsque lon a fermé le navigateur sans se déconnecté au préalable Cache : je vide le cache Je nai pas coché le reste, car se sont des options que je nutilise pas, je nenregistre jamais les mots de passes et nutilise pas les préférences de sites.\nPour terminer, cette configuration ne prévient pas contre, la perte et la casse matérielle dun ordinateur portable dont je sauvegarde régulièrement les données. De plus elle est complètement subjective et répond parfaitement à mes besoins et mes habitudes de navigation. Jespère quelle servira à dautres comme sources dinspirations.\n","date":"2015-03-03T15:28:10+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/longlet-vie-priv%C3%A9e-dans-firefox/","title":"L'onglet vie privée dans Firefox"},{"content":"Jai récemment installé une session xfce sur un de mes ordinateurs portables, pour mon fils et sa première réaction « Cest moche ! » , en effet je suis plutôt daccord avec lui. Sans pour autant dire quil est moche, mais de base il fait un peu vieillot.\nJai donc entrepris de le mettre au goût du jour.\nToute la configuration a été faite sur une Debian Sid et Xfce 4.10, avec lightdm comme chargeur graphique.\nRafraîchir Xfce Pour le thème du bureau, mon choix sest porté sur Numix du projet Numix\n1.Installation pour tous les utilisateurs :\n# Installation des pré-requies sudo apt-get install gtk2-engines-murrine murrine-themes #Installation de Numix cd ~/Téléchargements git clone https://github.com/numixproject/numix-gtk-theme.git sudo cp -r numix-gtk-theme /usr/share/themes/Numix Dans le menu xfce -\u0026gt; paramètres -\u0026gt; apparences : Styles : Numix\nIcônes : Numix-Circle. Pour linstaller\nsudo git clone https://github.com/numixproject/numix-icon-theme-circle /usr/share/icons/ Polices :\nfigure1 Notifications :\nfigure2 Gestionnaire de fenêtres :\nfigure3 Peaufiner les fenêtres :\nActiver le Compositeur\nBureau :\nJai enlevé toutes les icônes sauf les médias amovibles, taille des icônes 48\nTableau de bords :\nTaille : 24 px\nApparence : Tout à 100\nSuppression du deuxième tableau de bords\nThème du curseur :\nJai un faible pour le curseur Dmz en blanc.\nsudo apt-get install dmz-cursor-theme Puis dans Souris et Touchpad jai changé de thème.\nFond décran\nJai laissé le choix à mon fils.\nMenu Xfce\nJai remplacé licône du menu de base par une aux couleurs de Debian fournit avec le thème Numix.\nVoici le résultat :\nfigure4 figure5 Lightdm au lieu de GDM Pour avoir utiliser les deux, je préfère lightdm qui est plus léger et beaucoup plus simple à configurer.\nModifier la structure générale de lightdm :\nDans le dossier /etc/lightdm je créer un répertoire nommé lightdm.d. A lintérieur jajoute le fichier 01_malightdm.conf.\n#Contenu du fichier myligthdm.conf [SeatDefaults] greeter-session=lightdm-gtk-greeter #je défini le greeter par défaut greeter-hide-users=false #chaque utilisateurs du système sera visible. session-wrapper=/etc/X11/Xsession #démarrage de la session Modifier lapparence de lightdm\nCette modification sopère dans le fichier lightdm-gtk-greeter.conf qui est situé dans /etc/lightdm. Par précaution je fais une sauvegarde de loriginal :\nsudo cp /etc/lightdm/lightdm-gtk-greeter.conf /etc/lightdm/lightdm-gtk-greeter.bak Et je procède aux changements :\nsudo nano /etc/lightdm/lightdm-gtk-greeter.conf #chemin vers le fond d\u0026#39;écran background=/usr/share/xfce4/backdrops/numix-background.png #choix du thème pour les couleurs theme-name=Greybird #choix du thème des icônes icon-theme-name=Numix-Colmaris #choix de la police font-name=Droid sans 10 #activation de l\u0026#39;anti-crénelage xft-antialias=true #paramètres par défaut non changés xft-dpi=96 xft-hintstyle=hintfull xft-rgba=rgb show-indicators=~session;~language;~a11y;~power; show-clock=true clock-format=%d %b, %H:%M #keyboard= #position= screensaver-timeout=60 Et voilà une interface un peu plus actuelle.\n","date":"2015-01-17T00:00:00Z","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/embellir-sa-debian-et-xfce/","title":"Embellir sa Debian et Xfce"},{"content":"Voici la suite de mes travaux sur mon petit serveur dédié au stockage. Après linstallation des partages Linux (NFS), je mattaque maintenant aux partages windows. Même si je nutilise pas windows pour mes activités informatiques, mise à part quelques jeux, je trouve utile pour un serveur dêtre accessible depuis nimporte quel système notamment lorsque je veux échanger avec des invités qui sont sous windows, de plus cela faisait partie de mon cahier des charges.\nLes installations sous Debian se suivent et se ressemblent :\nsudo apt-get install samba Après cette formalité je passe directement à la configuration du serveur en lui-même. Tout se configure depuis le fichier /etc/samba/smb.conf. Voici la configuration détaillée que jutilise :\n#======================= Global Settings ======================= [global] workgroup = WORKGROUP server string = %h server proxy = no log file = /var/log/samba/log.%m max log size = 1000 encrypt passwords = true smb password file = /etc/smbpasswd security = user create mask = 0777 directory mask = 0777 use sendfile = yes aio read size = 16384 aio write size = 16384 null passwords = no local master = yes time server = no wins support = no Ensuite pour chaque utilisateurs autorisés à accéder aux partages je créer un compte samba. Exemple avec lutilisateur Draconis.\nsudo smbpasswd -a draconis New SMB password: Retype new SMB password: Added user draconis. Concernant les utilisateurs de passages avec qui je souhaite échanger, je crée un compte unique dédié avec leur répertoire. Ce qui me permet de détecter déventuels fichiers corrompus grâce à clamav avant de les intégrer à mes dossiers courants. Et cela évite que certain se baladent tranquillement dans mes photos ou autre.\nsudo mkdir /media/disk27B/johndoe sudo adduser johndoe Ajout de l\u0026#39;utilisateur «johndoe» ... Ajout du nouveau groupe « johndoe » (1001) ... Ajout du nouvel utilisateur « johndoe » (1001) avec le groupe « johndoe  » ... Création du répertoire personnel « /home/johndoe »... Copie des fichiers depuis « /etc/skel »... Entrez le nouveau mot de passe UNIX : Retapez le nouveau mot de passe UNIX : passwd : le mot de passe a été mis àjour avec succès Modification des informations relatives àl\u0026#39;utilisateur johndoe Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée Nom complet []: John Doe N° de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Cette information est-elle correcte ? [O/n]o sudo smbpasswd -a johndoe New SMB password: Retype new SMB password: Added user johndoe. Le serveur maintenant opérationnel je passe à la création des partages samba, toujours dans le fichier /etc/samba/smb.conf. En exemple le répertoire photos :\n#======================= Share Definitions ======================= [photos] path = /media/disk27B/photos/ guest ok = no read only = no browseable = yes inherit acls = yes inherit permissions = no ea support = no store dos attributes = no printable = no create mask = 0755 force create mode = 0644 directory mask = 0755 force directory mode = 0755 hide dot files = yes Une fois tous les partages configurés, je moccupe du dossier John Doe.\n#=============== Share Definitions fo John Doe user======================= [johndoe] path = /media/disk27B/johndoe #invités interdit guest ok = yes #lecture seule non read only = no #dossier navigable browseable = yes #hérite des différentes acl inherit acls = yes inherit permissions = no ea support = no store dos attributes = no printable = no #lorsqu\u0026#39;un dossier ou un fichiers est crée il hérite des autorisations suivantes create mask = 0755 force create mode = 0644 directory mask = 0755 force directory mode = 0755 hide dot files = yes Avec ce système mes utilisateurs courant ont accès aux dossiers partagés, sauf john doe qui a accès uniquement à son répertoire. Cette configuration est un premier jet, je lai réfléchi sur le « papier ». Je verrai à lusage si lutilisateur John Doe est utile ou sil faut que jadapte cette configuration.\n","date":"2015-01-07T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/mon-nouveau-nas-apprend-la-samba/","title":"Mon nouveau Nas apprend la samba"},{"content":"Petit bloc-notes en relation avec la construction de mon serveur de stockage. Aujourdhui lobjectif est de mettre en veille les disques-durs de stockage en veille lorsquils ne sont pas utilisés.\nCelle-ci permet de réduire la consommation électrique et de réduire l\u0026rsquo;usure pour des disuqes durs qui fonctionnent 24/24h.\nEn faisant toutefois attention que ces arrêts-démarrages ne se produisent pas trop souvent. Cela aura leffet inverse et détériorera plus rapidement les disques.\nMise en place cest le logiciel HDPARM qui permet de réaliser cette mise en veille.\nsudo apt-get install hdparm\nVoici un exemple de fonctionnement\nje vérifie létat du disque : sudo hdparm -C /dev/sdc /dev/sdc: drive state is: online\nje force la vielle au bout de 5 secondes sans utilisation : sudo hdparm -S 1 /dev/sdc\nJe vérifie à présent létat de mon disque : sudo hdparm -C /dev/sdc /dev/sdc: drive state is: standby\nLoption -S compte par tranche de 5 sec. Dans mon exemple la veille interviendra au bout de 5 sec. Si je veux activer la veille au bout d\u0026rsquo;une minute il me faut mettre 12, en effet 12 * 5 = 60 sec.\nPour mon utilisation je souhaite que les disques sarrêtent au bout de 20 minutes dinactivité, voici la commande que jutilise.\nsudo hdparm -S 240 /dev/sdc\n240 x 5 =1250 sec = 20 minutes.\nJai choisi 20 minutes car les disques ne sont pas sollicités pour de petites périodes à la maison. Le serveur est très souvent utilisé, musique, consultation de documents, vidéos et autres. Par conséquent les cycles marche-veille sont peu nombreux. Mais pour une utilisation plus occasionnelle je préfère augmenter les temps entre chaque veille, pour éviter des démarrages trop fréquents.\nJe crée le fichier /etc/hdparm.conf qui me permet de garder la configuration de façon permanente.\nsudo nano /etc/hdparm.conf\nJ\u0026rsquo;ajoute pour chaque disques la commande de mise en veille\n/dev/sdb { spindown_time = 240 } /dev/sdc { spindown_time = 240 }\nJe redémarre le serveur et après 30 minutes je procède à lessai\nsudo hdparm -C /dev/sdc /dev/sdc: drive state is: standby\nMes disques sont bien en veille jusquà leur prochaine utilisation.\n","date":"2015-01-03T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.jpg","permalink":"https://archives.draconis.me/p/programmer-la-mise-veille-de-ses-disques-durs/","title":"Programmer la mise veille de ses disques durs"},{"content":"La nouvelle machine montée avec son système installé, je peux maintenant commencer la configuration du Nas. Je commence donc par le partage de fichiers en NFS, pour les différents PC linux de la maison.\nPour rappel ma configuration se base sur une Debian 7.7 alias wheezy. Cest parti pour la configuration.\nJavais prévu de monter mes disques données en LVM, mais pour cela il fallait les formater et nayant pas de disque en plus pour mettre mes données à part le temps de créer le LVM. Du coup je men veux un peu de ne pas avoir anticipé sur ce sujet.Ce nest que partie remise puisque je compte investir dans dun 4 TO dici lannée prochaine ce sera donc loccasion de déployer le LVM. Je repars donc sur un système avec deux disques de 1To pour stockage.\nInstallation sur Serveur NFS Sous Debian en root il suffit de faire :\napt-get install nfs-kernel-server nfs-common Ensuite je créer un répertoire export à la racine qui centralisera tous mes partages sur le réseau local. Dans se répertoire je monte les répertoires que je souhaite partager, cette aspect de la configuration est inhérent à la version 4 de NFS. Une fois mes deux disques montés au système, je monte les répertoires à partager dans /export, au préalable je créer les dossiers cibles pour accueillir les partages.\nsudo mkdir /export cd /export sudo mkdir photos mount --bind /media/disk27B/photos photos Pour que ce montage soit permanent il faut le renseigner dans le /etc/fstab :\nUUID=27bd44d9-71aa-4b4a-9ed4-ab79e715d3fd /media/disk27B ext4 defaults,noatime,nofail 0 0 UUID=5b8275e1-85cb-4406-ba7f-8c54d48d7978 /media/disk5B8 ext4 defaults,noatime,nofail 0 0 /media/disk27B/photos /export/photos none bind 0 0 /media/disk5B8/videos /export/videos none bind 0 0 Maintenant il ne me reste plus qua configurer le serveur. Cela se passe dans le fichier /etc/exports.\nPour chaque partages il faut définir qui y aura accès et avec quels options.\n/export/photos 192.168.66.0/24(rw,subtree_check,insecure,no_root_squash) /export/videos 192.168.66.0/24(rw,subtree_check,insecure,no_root_squash) /export 192.168.66.0/24(ro,fsid=0,root_squash,no_subtree_check,hide) 192.168.66.0/24 : jautorise nimporte quels ordinateurs du réseau à se connecter au partage rw : accès en lecture/écriture subtree_check : vérification de larborescence insecure : permet au client de se connecter sur un port différent de celui par défaut le 1024, utile dans certains cas. no_root_squash : spécifie que le root de la machine sur laquelle le répertoire est monté possède les droits root sur le répertoire De plus jai configuré le dossier export afin quil ne soit pas visible sur le réseau, et non navigable.\nPour terminer je redémarre le service nfs.\nsudo service nfs-kernel-server restart Configuration des clients Dans le /etc/fstab des mes clients pour accéder aux partages jajoute :\n192.168.66.166:/photos /home/draconis/photos nfs rw,defaults 0 0 Conclusion Dommage je nai pas anticipé la configuration du LVM, mais ce nest que partie remise. Le services NFS tourne depuis 4 jours sans aucun souci.\n","date":"2014-12-23T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.jpg","permalink":"https://archives.draconis.me/p/mon-nouveau-nas-partage-nfs/","title":"Mon nouveau nas : Partage NFS"},{"content":"Objectif : Les collections intelligentes sont des groupements dapplications proposées en fonction dun thème. Les plus connues sont « social » « musique » et « jeux » que lon trouve par défaut. Mais il est possible den installer dautre et même davoir des thèmes personnalisés.\nMise en place : Un appuie long sur le bureau pour arriver sur menu de Firefox OS 2.0 :\nfigure Ensuite on « tape » sur « Ajouter des collections intelligentes ». Apparaît alors une grande liste de thèmes.\nfigure Personnellement jai choisi les thèmes : Actualité, Autour de moi, Restaurant.\nfigure Iil suffit douvrir une collection pour profiter de ses applications.\nfigure Il est même possible de créer ses propres collections en fonction dun thème particulier.\nfigure figure Dans lexemple ci-dessus jai demandé les applications en relation avec le thème « cloud ». Par contre rien nempêche dajouter des applications installés sur le téléphone dans chacune des collections.\nConclusion : Pour utiliser ses collections il faut être connecté à Internet, pas souvent évident lorsque lon ne possède pas de forfait illimité. En revanche, rien nest installé sur le téléphone, ce qui évite davoir des services non désirés exécutés, elles sont directement connectées au site internet en responsive design.\n","date":"2014-10-14T15:28:10+01:00","image":"https://archives.draconis.me/images/header/blogueris.jpg","permalink":"https://archives.draconis.me/p/samuser-avec-les-collections-intelligentes-de-firefox-os/","title":"S'amuser avec les collections intelligentes de Firefox-os"},{"content":"Objectif : Changer limage de fond sur lécran de connexion de gnome sous Debian.\nMise en place : Choisir une image par exemple :\nImge Brute\nSource : http://jesper-ullbing.deviantart.com/art/the-tree-196523563\nJai choisi de la modifier pour quelle sadapte à GDM et surtout à la résolution de mon écran sinon limage ne sera pas entièrement visible.\nImage modifiée avec la bonne résolution\nLe fichier est disponible ici. La suite tien deux lignes de commandes :\nsudo mv /usr/share/gnome-shell/theme/noise-texture.png /usr/share/gnome-shell/theme/noise-texture-bak.bak sudo cp Images/the_tree_by_flou.png /usr/share/gnome-shell/theme/noise-texture.png Le thème de base proposé par debian utilise un fichier appelé « noise-texture.png » qui permet dobtenir le fond gris foncé de base. Lidée est simplement de le remplacer par notre image modifiée.\nUne petite fermeture de session plus tard :\nImage modifier avec la bonne résolution\nImage modifier avec la bonne résolution\nCette opération sera à répéter à chaque changement de fond, ou en cas de mise à jour de gnome-shell comme en ce moment avec la mise à jour vers la 3.14.\n","date":"2014-09-26T00:00:00Z","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/changer-le-fond-decran-de-gdm/","title":"Changer le fond d'écran de gdm"},{"content":"Moi aussi jai succombé à la déferlante Firefox os-Flame que je viens hier soir. Je ne vais pas refaire le détail du packaging qui a déjà été très bien réalisé par mon confrère libriste Dada.\nA lheure actuelle jai fait un rapide flashage en 2.0, avec une image pré-compilée, mais dès que possible jessaierai de compiler un 2.1 histoire davoir une version avec les dernières modifications. Jai aussi rencontré des problèmes avec mon serveur mail chiffré pourtant je nai pas de certificat auto-signé, jutilise celui de Gandi.\nToujours de pas de carddav pour mes contacts hébergés sur ownCloud, mais par contre le calendrier fonctionne très bien tant que je ne souhaite pas le synchroniser en SSL.\nMis à part ses quelques problèmes à approfondir, jaccroche complètement à linterface, le téléphone en lui-même est très bien. Je ne suis de toute façon pas objectif puisque mon ancien mobile était un vieux Galaxy S qui peinait à faire tourner CyanogenMod 10.\nPour info je nai payé que 29 euros de frais de douane et TVA contrairement aux 36 euros annoncés sur le wiki de Mozilla ou les 47 euros payés par dautre. Je ne manquerai pas de faire dautres articles en essayant de ne pas reprendre ce qui a déjà été fait, mais toujours en partageant mes expériences bonnes ou mauvaises.\nPour linstant je suis encore dans leuphorie de la nouveauté et de la découverte.\n","date":"2014-09-12T15:00:14+01:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/mon-nouveau-jouet-tout-feu-tout-flame/","title":"Mon nouveau jouet tout feu tout flame !"},{"content":"Objectif : Afficher la console locale dune VM proxmox sans être bloqué par les paramètres de sécurité Java avec un pc sous Openbox. Par défaut Java bloque les connexions sur les sites chiffrés auto-signés.\nMise en place : Depuis un terminal j\u0026rsquo;ouvre le panneau de contrôle de java /usr/lib/jvm/jdk-8-oracle-x64/bin/ControlPanel.\nfigure Il suffit ensuite de cliquer sur le bouton Modifier la liste des sites.\nfigure1 Puis rajouter le site internet auto-signé, dans mon cas lurl de proxmox.\n","date":"2014-06-07T15:28:10+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/parametres-de-securite-oracle-java-sous-debian/","title":"Paramètres de sécurité Oracle Java sous Debian"},{"content":"Jai reçu le matériel de mon nouveau Nas personnel pour le stockage de mes données.\nLors dune précédente réflexion, jétais revenu sur mon projet dun Nas virtuel avec proxmox. Trop de contraintes logicielles, matérielles et une très grosse perte de performance nayant pas de machine hôte adaptée. De plus le trafic Nas ajouté au trafic web habituel sur le serveur hôte le mettait à genou régulièrement.\nCahier des charges Jai finalisé un cahier des charges avant de passer commande à mon revendeur habituel. Ce nouveau devra répondre à certain critères, au moment où jécris ses lignes je sais déjà que certains points ne pourront être réalisables jy reviendrai dans un autre article. Voici la liste :\nConsommation électrique la plus faible possible. Très silencieux, pour linstant il sera entreposé dans le salon. Ajouter des disques durs facilement, prévoir de la place dans le boîtier pour deux ou trois disques davance. Encombrement minimal, en opposition avec le point ci-dessus Système exploitation libre et configuration maison. Être disponible 24/24, sur nimporte quelle plateforme de la maison (Pc portable, le HTPC, Tablette) Multi OS, pouvoir accéder à nimporte quelledonnée depuis nimporte quel système dexploitation. Concernant le point du système dexploitation aucune hésitation se sera une Debian stable, avec partage Samba (windows), Nfs (Linux), ownCloud pour tout ce qui est de mon informatique dans les nuages. A cela se rajoutera un serveur rsync pour les sauvegardes des machines virtuelles de proxmox et autres données sensibles.\nPetite parenthèse sur les sauvegardes, je compte récupérer mon ancien Nas synology pour réaliser une sauvegarde externalisée. Cest très bien de faire des sauvegardes, mais cest encore mieux lorsquon peut les entreposer sur autre lieu.\nBien sûr rien nest arrêté, tout sera amené à évoluer, mais dans limmédiat cela constitue ma base de travail. Fort de cette petite liste en poche, jai commencé mes recherches sur les différents fournisseurs informatiques pour établir ma configuration.\nLe Matériel figure1 La carte mère, MSI J1800I :\nProcesseur Dual-Core Celeron J1800 basse consommation intégré (2.41 GHz / 2.58 GHz Cache 1 Mo TDP 10W) - 2 ports SATA 3Gb/s (obligé de prendre un carte dextension sata) Ports USB 3.0 (cela peut toujours servir en cas de récupération durgence) Format ultra-compact Mini-ITX (17 x 17 cm) (gain de place de la boîtier) Cest peut-être sur dimensionné pour un simple Nas, mais je prévois toujours large au cas où le Nas évolue sur des applications qui nécessitent un peu plus de ressources. Je naime pas être limité dans les projets à cause du matériel. Elle répond quand même à mon cahier des charges sur le point de la basse consommation.\nfigure2 La Ram, Corsair 2 Go en DDR3. Dhabitude je ne prends que de la Kingston pour sa garantie à vie, qui nest pas une garantie à vie réelle jen fais lexpérience il y a quelques temps déjà le service après vente est nickel, mais sur le site revendeur il navait que des packs à deux barrettes 8 et 16 Go, par pure flemme je lavoue jai pris cette barrette. Lavenir me dira si javais raison.\nfigure2 Une carte extension Sata afin de pouvoir brancher plus que les deux disques durs autorisés par la carte mère. Jespère quelle sera bien reconnue sous Debian, daprès mes recherches sur internet oui mais je me méfie toujours de ses cartes dextension.\nfigure2 Le boîtier un cooler master elite 130.\nLorsque je lai sorti du carton jai dit : « mince il faisait plus petit sur les photos », jaurai dû prendre mon mètre et vérifier les dimensions, mais au final il reste très compact et surtout il me permet de placer jusquà 5 disques durs, réparti entre 3×3.5 pouces et 2×2.5 pouces, ce qui est quand même lessence même du Nas avoir le plus grand espace de stockage. Je voulais aussi éviter du bricolage pour placer tous mes disques durs et quils soient un minimum ventilés.\nIl possède deux ventilateurs, un de 120 mm en façade et un autre de 80mm sur le côté pile en face de la carte mère. Il y a une possibilité den rajouter deux autres ventilateurs sur le côté. Pour le silence je verrai à lusage.\nfigure2 figure2 Dans lensemble le montage cest très bien passé, pas de difficulté particulière au niveau du boîtier. La Ram fut un peu dure à « enfoncer » dans son logement. Je ne lai pas encore démarré, car je suis en train de sauvegarder toutes les données qui migreront sur le Nas, pour ensuite en récupérer les disques durs, je nen ai pas acheté dautres ils ont moins dun an. Pour commencer il y aura trois disques durs.\nLa récupération de mes données est longue, très longue, mais je le savais en me laçant dans ce projet, une fois terminée, je pourrai commencer linstallation du système et réfléchir au stockage de mes données.\nLe boîtier une fois la carte mère montée.\nfigure2 figure2 figure2 ","date":"2014-06-07T15:00:14+01:00","image":"https://archives.draconis.me/images/header/adminsys.jpg","permalink":"https://archives.draconis.me/p/mon-nouveau-nas-le-materiel/","title":"Mon nouveau nas : le matériel"},{"content":"Suite au billet où jexpliquais comment gérer ses dotfiles avec git, mr et vcsh, jai décidé de me pencher plus précisément sur la configuration de myrepos alias mr. En effet maintenir un seul et même fichier pour une trentaine de dépôts cela devenait fastidieux. Jai donc opté pour une organisation décentralisée, avec un dossier pour stocker les différents fichiers de configuration de mes dépôts, appelé par le « mrconfig ».\n~ ├── .config │ └── labo │ └── config.d │ ├── emacs.vcsh │ └── zsh.vcsh │ └── .mrconfig Dans cette configuration, jai un fichier par dépôts, que jactive ou désactive à souhait dans le « mrconfig ». Un fichier de dépôt est configuré de cette façon, exemple avec mon dépôt emacs:\n[$HOME/.config/vcsh/repo.d/emacs.git] checkout = vcsh clone git@labo.olivierdelort.net:colmaris/emacs.git emacs vcsh emacs remote set-url --add origin git@github.com:colmaris/dotfiles-emacs.git Le fonctionnement reste le même, je clone depuis mon Gitlab et lorsque je pousse mes modifications elles sont simultanément poussées sur mon Gitlab et sur Github.\nPassons maintenant au chef dorchestre le fichier « mrconfig » qui contrôle tout ce petit monde :\n[DEFAULT] git_gc = git gc \u0026#34;$@\u0026#34; include = cat ~/.config/labo/config.d/conky.vcsh include = cat ~/.config/labo/config.d/terminator.vcsh include = cat ~/.config/labo/config.d/emacs.vcsh include = cat ~/.config/labo/config.d/zsh.vcsh Je renseigne tous les dépôts que jutilise et il me suffit de commenter le dépôt concerné pour le désactiver. Et linverse pour lactiver. Ce fonctionnement est beaucoup plus souple dans mes habitudes de travail.\n","date":"2014-05-23T15:28:10+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/optimisation-de-myrepos-mrconfig/","title":"Optimisation de myrepos - mrconfig"},{"content":"Lutilisation de plusieurs ordinateurs sous Linux, peut devenir un vrai cauchemar lorsque lon veut maintenir la même configuration à jour. Dans mon quotidien il marrive dutiliser trois ordinateurs différents. Et jaime bien retrouver mes marques quel que soit la machine utilisée. Au départ je « trimballais » partout une clef usb avec tous mes fichiers de configurations, mais cette solution a atteint sa limite très rapidement.\nElle était surtout très contraignante car, je devais en permanence avoir ma clef usb sur moi et en cas de modification de configuration penser à faire une copie (ce qui arrivait une fois sur mille) sur la dite clef pour pouvoir mettre à jour mes autres ordinateurs. Du coup je me retrouvais avec des configurations très hétéroclites.\nJai donc décidé de créer un dépôt git pour les différentes configurations que je souhaite déployer sur mes ordinateurs. Certains diront pourquoi ne pas tout grouper dans un même dépôt, je préfère les séparer en cas problème sur un cela ne me bloquera pas le reste.\nCest alors que jai entendu parler de vcsh et mr (Merci à Brice camarade libriste qui ma expliqué les bases). Ses deux petits programmes couplés avec git mont permit de centraliser tous mes fichiers de configurations sur mon serveur gitlab et ainsi de pouvoir installer mon environnement sur tous les ordinateurs que jutilise.\nVCSH Version Control System for $HOME multiple Git repositories in $HOME Comme son nom lindique il permet de faire de la gestion de version pour le $HOME. Grâce à lui plusieurs dépôts git peuvent cohabiter dans le même répertoire. Il centralise toutes les têtes de dépôts au même endroit, par défaut il les place dans ~/.config/vcsh/repos.d mais il est tout à fait possible de le changer, de même si lon désire maintenir plusieurs dépôts git ailleurs que dans le $HOME. Pour plus dinformations je vous invite sur la page github du projet\nPassons à son installation, sous Debian,\nsudo apt-get install vcsh mr pour myrepo mr intervient principalement sur lutilisation et la configuration des dépôts. Dans un premier temps il permet avec une seule ligne de commande, de livrer et pousser les modifications, mettre à jour simultanément tous les dépôts renseignés dans sa configuration. Dans un second temps il permet aussi de gérer la configuration de ses mêmes dépôts. Dans mon cas il me permet de pousser mes modifications à la fois sur mon serveur gitlab mais aussi sur mon compte github pour en garder une sauvegarde. Il me permet de rajouter une url à mon origin dès le clonage des dépôts, ce qui mévite une configuration post-installation de tous mes dépots. Pour plus dinformations voici la page du projet.\nLinstallation sur Debian est toujours aussi simple\nsudo apt-get install mr Préparatifs avant la transformation Tout dabords jai défini quels fichiers de configurations que je souhaite garder à jour et déployer sur mes différents ordinateurs:\nLa configuration dopenbox La configuration demacs La configuration de terminator La configuration de zsh Initialisation avec vcsh Jai au préalable créé sur gitlab et github un dépôt par configurations. Ensuite jai suivi la documentation de vcsh pour créer un par un par les dépôts. Exemple avec openbox :\n#initialisation du dépôt vcsh init openbox #création du gitignore pour éviter d\u0026#39;avoir des erreures sur les dossiers non #suivi vcsh write-gitignore openbox #ajout des fichiers vcsh openbox add ~/.config/openbox/rc.xml ~/.config/openbox/menu.xml ~/.config/openbox/autostart ~/.gitignore/openbox vcsh commit -am \u0026#39;intial commit\u0026#39; vcsh openbox remot set-url --add origin git@github.com:colmaris/dotfiles-openbox.git Pour emacs il faut de lon retrouve le chemin exact vers le fichier init.el.\ncd ~/.emacs mkdir .emacs/ git mv init.el .emacs git add .emacs git commit -am \u0026#39;moving file init.el\u0026#39; git push Ensuite jai supprimé totalement le dossier .emacs de mon $HOME, pour le cloner avec vcsh.\nvcsh clone git@git.olivierdelort.net:colmaris/emacs \u0026lt;span class=\u0026#34;crayon-e\u0026#34;\u0026gt;emacs\u0026lt;/span\u0026gt; Ainsi jai put garder lhistorique de mon dépôt emacs, et je peux maintenant lutiliser avec vcsh sans problème.\nConfiguration de mr Une fois tous mes dépôts de configuration initialiser avec vcsh, je suis passé à la configuration de mr dont le but premier, dans mon cas, est de pouvoir pousser mes modifications sur mon gitlab et les sauvegarder sur github. Il ny a pas très longtemps je nétais pas pour lutilisation de github, mais les différents commentaires sur cet article et une récente discussion avec des amis ma fait changer davis. Et comme de toute façon ses dépôts seront public pourquoi ne pas en faire profiter les utilisateurs de github cela pourra être utile à quelquun, qui sait.\nLa configuration de mr se fait via un fichier .mrconfig directement placé dans le $HOME. Voici le mien\n[DEFAULT] git_gc = git gc \u0026#34;$@\u0026#34; # * Dotfiles Organisation # ** Emacs [$HOME/.config/vcsh/repo.d/emacs.git] checkout = vcsh clone git@git.olivierdelort.net:colmaris/emacs.git emacs vcsh emacs remote set-url --add origin git@github.com:colmaris/dotfiles-emacs.git # ** Openbox [$HOME/.config/vcsh/repo.d/openbox.git] checkout = vcsh clone git@git.olivierdelort.net:colmaris/dotfiles-openbox.git openbox vcsh openbox remote set-url --add origin git@github.com:colmaris/dotfiles-openbox.git # ** Terminator [$HOME/.config/vcsh/repo.d/terminator.git] checkout = vcsh clone git@git.olivierdelort.net:colmaris/terminator-solarized.git terminator vcsh terminator remote set-url --add origin git@github.com:colmaris/terminator-solarized.git # ** Zsh [$HOME/.config/vcsh/repo.d/zsh.git] checkout = vcsh clone git@git.olivierdelort.net:colmaris/dotfiles-zsh.git zsh vcsh zsh remote set-url --add origin git@github.com:colmaris/dotfiles-zsh.git Petite explication :\n# ** Emacs #ici j\u0026#39;indique ou se trouve la tête du dépôt [$HOME/.config/vcsh/repo.d/emacs.git] #ici se trouve les actions à réaliser lors du clonage checkout = # je clone à partir de mon gitlab vcsh clone git@git.olivierdelort.net:colmaris/emacs.git emacs #je rajoute mon compte github à l\u0026#39;origin de mon dépôt vcsh emacs remote set-url --add origin git@github.com:colmaris/dotfiles-emacs.git Lors du clonage des dépôts mr rajoutera lurl de mon compte github à lorigin déjà configurée.\nCe qui me permet de pousser dun seul coup tous les dépôts sur mon github.\nmr push Déploiement A partir de maintenant je peux déployer mes configurations sur nimporte quel ordinateur ou git, vcsh et mr sont installés.\nJe procède comme suit :\n#installation des prérequis sudo apt-get install git vcsh mr #configuration de mr git clone git@git.olivierdelort.net:colmaris/dotfiles-mr.git ~/.mrconfig #clonage mr checkout Et voilà en quelques minutes jai déployé ma configuration et je suis prêt à travailler. Sil marrive de faire des modifications je les livre et les pousse directement dans le dépôt concerné. Et sur mes autres ordinateurs il me suffit de faire une mise à jour avec la commande mr update pour quelles soient prises en comptent.\nmr update mr update: /home/draconis/.config/vcsh/repo.d/apache-autoindex.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/draconis-install.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/emacs.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/eso-theme.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/motd-colmaris.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/mrconfig.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/mytheme-lightdm.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/openbox.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/terminator.git Already up-to-date. mr update: /home/draconis/.config/vcsh/repo.d/zsh.git Already up-to-date. mr update: finished (10 ok) Conclusion Depuis que jutilise cette méthode je revis littéralement, je ne me soucis plus de savoir si jai ma clef usb à jour et avec moi. Tout est centralisé sur mon gitlab et jai mon github en sauvegarde. Je lai étendu sur dautre projet sur lesquels je travaille.\n","date":"2014-05-19T00:00:00Z","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/g%C3%A9rer-ses-dotfiles-avec-git/","title":"Gérer ses dotfiles avec git"},{"content":"Encore un Bloc-Notes sur linstallation de mon Nas maison. Cette fois il sagit dintégrer ownCloud pour se créer un petit. Cela me permet davoir accès à un tas de choses depuis internet, musique, photos pour soirée diapos avec la famille, partager la dernière photo classe avec les grands-parents, etc.\nInstallation Pour linstallation il ny a rien de plus simple avec les dépôts proposer pour Debian. Lavantage, les mises à jour sont automatiques, toutes les dépendances sont installées dun seul coup. Il suffit de suivre la marche à suivre sur le site du dépôt.\necho 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' \u0026gt;\u0026gt; /etc/apt/sources.list.d/owncloud.list apt-get update apt-get install owncloud\nEt voilà notre owncloud fraîchement installé. Lors du premier démarrage je choisis dutiliser une base de données Mysql, possédant déjà un serveur MariaDB jaurai tort de men privé. De mon point vu il est plus facile et plus stable de maintenir une BDD Sql quune BDD SQlite, mais cest totalement subjectif.\nMigration de la base de Données : 1.Export de l\u0026rsquo;ancienne BDD\nmysqldump -u root -p cloud \u0026gt; save_cloud.sql\nJimporte le fichier save_cloud.sql sur le nas et je restaure la base sur un base de données préalablement créee appellée owncloud.\n2.Création de la nouvelle BDD\nCréation de l\u0026rsquo;utilisateur\nCREATE USER 'owncloud'@'%' IDENTIFIED BY 'motdepasse';\nParamétrage de ses privilèges\nGRANT USAGE ON * . * TO 'owncloud'@'%' IDENTIFIED BY 'motdepasse';\nCréation de la base de données\nCREATE DATABASE IF NOT EXISTS `owncloud`;\nL\u0026rsquo;utilisateur owncloud n\u0026rsquo;aura accès qu\u0026rsquo;a la BDD owncloud\nGRANT ALL PRIVILEGES ON `owncloud` . * TO 'owncloud'@'192.168.66.166';\n3.Restauration de la BDD\nmysql -u root -p owncloud \u0026lt; save_cloud.sql\nMigration des données Pour cette partie il ne sagit que dun copier-coller bête et méchant. Avant de commencer je monte le répertoire DATA du nouveau owncloud sur lancien en NFS.\nsudo cp -r /var/www/owncloud/data/* /media/nouveauownCloud/data/\nParamétrages des droits sur le nouveau cloud\nchown -R www-data:www-data /var/www/owncloud/data\nAccès depuis internet Pour laccès depuis internet jai configuré mon reverse proxy (nginx), et le serveur apache du nas. Pour une connexion en SSL avec un certificat gratuit de StartSSl.\n1.Nginx en reverse proxy\nSur le reverse proxy, jai rajouté ses lignes dans le fichier /etc/nginx/site-enabled/reverse\nserver { listen 443; server_name moncloud.mondomaine.tld; access_log /var/log/moncloud.access.log; error_log /var/log/moncloud.nginx_error.log error; ssl on; ssl_certificate [chemin vers le certificat]; ssl_certificate_key [chemin ver la clée]; location / { proxy_pass https://[adresse ip locale du serveur]/; } Apache serveur web Je crée l\u0026rsquo;hôte virtuel owncloud\nsudo nano /etc/apache2/sites-available/owncloud\nj\u0026rsquo;édite le fichier comme suit\n\u0026lt;VirtualHost *:443\u0026gt; ServerAlias moncloud.mondomaine.tld DocumentRoot \u0026#34;/var/www/owncloud\u0026#34; \u0026lt;Directory \u0026#34;/var/www/owncloud\u0026#34;\u0026gt; Options -Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all \u0026lt;/Directory\u0026gt; SSLEngine on SSLVerifyClient none SetEnvIf User-Agent \u0026#34;.*MSIE.*\u0026#34; nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0ean-shutdown downgrade-1.0 force-r$ SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile [chemin vers le certificat] SSLCertificateKeyFile [chemin vers la clée] SetEnvIf User-Agent \u0026#34;.*MSIE.*\u0026#34; nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 ServerSignature Off \u0026lt;/virtualHost\u0026gt; J\u0026rsquo;active l\u0026rsquo;hôte virtuel\nsudo a2ensite owncloud\nje relance apache\nsudo service apache2 restart\nLors de la migration je nai rencontré aucune difficultés particulières. Je profite à présent des avantages dun petit cloud personnel couplé à la puissance de stockage dun Nas.\n","date":"2014-05-14T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/integrer-owncloud-a-son-nas/","title":"Intégrer ownCloud à son Nas"},{"content":"Après des années dutilisation très basique je me suis enfin penché sur lamélioration de mon terminal. Au départ il me servait uniquement pour les mises à jour système, au fil du temps son utilisation sest imposée delle-même a tel point quil est en permanence ouvert dans le coin dun de mes bureaux virtuels.\nNe sachant pas où aller et de quoi javais besoin, jai constitué un mini cahier des charges comme ligne directrice.\nJai principalement besoin :\nUn thème graphique reposant pour le yeux.\nLa surbrillance des commandes tapées (mindiquer quand jai fait une faute de frappe sur une commande).\nDun seul coup doeil connaître la branche git sur laquelle je travaille, et si des changements sont à « commiter ».\nDans une même fenêtre travailler sur plusieurs terminaux, avec par exemple des sessions ssh différentes.\nUn Prompt succin avec les infos essentielles\nTout est prêt, lets go !\nLe choix de lapplication Mon choix cest porté sur Terminator, rapide, léger, paramétrable très simplement (un seul fichier de config). Je peux passer dun seul terminal à 10 avec une seule séquence de touche, et je peux tous les piloté à partir dun seul prompt.\nPour agrémenter le tout un joli thème inspiré du thème solarized de Ethan Schoonover.\nPour ceux qui sont intéressés voici Ma configuration -\u0026gt;\nLe choix du Shell Pour résumé le shell est la partie centrale du terminal, linterpréteur de commandes dans la langue de Molière, il permet daccéder aux fonctionnalités internes du système dexploitation. Le plus connu étant le bash et ses dérivés, jai préféré zsh.\nInstallation :\nsudo apt-get install zsh chsh -s /bin/zsh utilisateur Après le redémarrage du terminal zsh est opérationnel ! Tout le nécessaire de configuration de zsh se trouve dans notre home /home/utilisateur/.zshrc. Cest le coeur de zsh !\nPour simplifier grandement sa configuration je lutilise avec un petit utilitaire appelé antigen. Ce petit utilitaire me permet de mieux gérer les plugins dont jai besoin pour zsh, ainsi que dautre fonctionnalités que jai renseignés dans le zshrc.\nEn gros lorsque je veux installer et utiliser un plugin (bundle dans antigen) il me suffit de renseigner dans mon zshrc et il fait le reste. Exemple si je veux utiliser des plugins de oh-my-zsh :\nantigen use oh-my-zsh # * Plugins antigen bundles \u0026lt;\u0026lt;EOBUNDLES # Git and github autocompletions and aliases git git-extras # Other command-not-found systemd EOBUNDLES Antigen va minstaller oh-my-zsh, et activera les plugins que jai configurés par la suite.\nPour le prompt jutilise un thème perso, inspiré du thème powerline line\nPour ceux qui sont intéressés voici Ma configuration\nEn conclusion Depuis que je me suis penché sur lamélioration de mon terminal, je suis plus tranquille et moins fatigué dans son utilisation. Mes tâches dadministration souvent pénible et répétitives se font avec une effroyable efficacité. Jarrive maintenant à mettre tous les serveurs à jours en une ligne de commande. Le terminal fait partie de ses petits outils que lon néglige souvent, car leur puissance est méconnue.\nEt voici le résultat : figure ","date":"2014-05-13T00:00:00Z","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/un-terminal-aux-petits-oignons/","title":"Un terminal aux petits oignons"},{"content":"Il y a quelques jours je me suis débarrassé de mon vieil Asus pour un portable plus mobile, le Dell Vostro 3360. Lavantage du Vostro cest quil est très mobile, écran treize pouces, 1,6 kg et une autonomie annoncée jusquà 7H30. Et surtout il y avait la possibilité de lacheter avec une Ubuntu 11.10 pré-installé. En prenant une version Linux je me suis dit que je naurai pas de problème de pilote. Et bien non jai quand même eu un problème avec la nouvelle carte réseau dAtheros.\nCette nouvelle carte très récente intègre le nouveau bluetooth 4. Elle utilise les nouveaux pilotes alx qui ne sont pas encore intégrés au noyau (à lheure où jécris ses lignes). Pas de souci avec la version ubuntu de Dell, cela cest corsé quand jy ai installé ma Debian.\nPrérequis Il faut dabords installer ses paquets :\nsudo apt-get install build-essential linux-headers-`uname -r` Compilation du pilote Je suis allé sur le site http://www.orbit-lab.org/kernel/compat-wireless/\njai téléchargé la dernière version, mais impossible de la compiler. Après différents essais jai trouvé la version de mars 2012 fonctionnelle avec mon portable.\nTéléchargement du pilote wget -O- http://www.orbit-lab.org/kernel/compat-wireless/2012/03/compat-wireless-2012-03-12-p.tar.bz2\nDécompression du pilote tar xvjf compat-wireless-2012-03-12-p.tar.bz2 | cd compat-wireless-2012-03-12-p\nAvec cette commande je ne choisis que de compiler le pilote alx\n./scripts/driver-select alx\nInstallation du pilote\nmake | sudo make install\nLe pilote maintenant installé il suffit de lactiver.\nsudo modprobe alx\nLorsque je fais un ifconfig, je vois bien la carte filaire (eth0) et la carte wifi (wlan0). Tout fonctionne parfaitement.\n","date":"2012-11-10T00:00:00Z","image":"https://archives.draconis.me/images/header/materiel.jpg","permalink":"https://archives.draconis.me/p/atheros-ar8161-sous-debian-wheezy/","title":"Atheros AR8161 sous Debian wheezy"},{"content":"Mailman est un serveur de liste de diffusion. Une liste de diffusion ou liste de distribution (mailing list en anglais, abrégé en ML) est une utilisation spécifique du courrier électronique qui permet le publipostage dinformations aux utilisateurs qui y sont inscrits. (source Wikipédia)\nPour les besoins de Perpinux, GUL de Perpignan, jai du installer un serveur de messagerie iRedmail et une liste de diffusion pour tous les adhérents avec mailman.\nDabords jai créé un sous domaine liste.mondomaine.tld, dans bind sur mon serveur DNS.\nEnsuite sur le serveur de mail jai installé mailman.\napt-get install mailman A partir de là tout se passe dans la base de données mysql via phpmyadmin. En effet jai choisi Mysql pour la gestion diRedmail, ce choix se fait à linstallation du programme.\nDans phpmyadmin je me suis placé dans la base « vmail », puis dans longlet « SQL ». Afin que cela soit plus pratique pour les utilisateurs jai créé un alias pour raccourcir ladresse de la liste de diffusion de @lite.mondomaine.tld à @mondomaine.tld.\nINSERT INTO `vmail`.`domain` (`domain`, `description`, `disclaimer`, `aliases`, `mailboxes`, `maxquota`, `quota`, `transport`, `backupmx`, `defaultuserquota`, `defaultuseraliases`, `defaultpasswordscheme`, `minpasswordlength`, `maxpasswordlength`, `created`, `modified`, `expired`, `active`) VALUES (\u0026#39;liste.maondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;0\u0026#39;, \u0026#39;0\u0026#39;, \u0026#39;0\u0026#39;, \u0026#39;0\u0026#39;, \u0026#39;mailman:\u0026#39;, \u0026#39;0\u0026#39;, \u0026#39;1024\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;0\u0026#39;, \u0026#39;0\u0026#39;, NOW(), \u0026#39;0000-00-00 00:00:00\u0026#39;, \u0026#39;9999-12-31 00:00:00\u0026#39;, \u0026#39;1\u0026#39;); Maintenant il ma fallut créer tous les alias pour la liste de diffusion mailman. En effet cette liste est obligatoire pour chaque serveur mailman, même si par la suite je ne men servirai pas cest la première liste à créer pour mailman.\nINSERT INTO `alias` (`address`, `goto`, `name`, `moderators`, `accesspolicy`, `domain`, `created`, `modified`, `expired`, `active`) VALUES (\u0026#39;mailman@mondomane.tld\u0026#39;, \u0026#39;mailman@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-admin@mondomane.tld\u0026#39;, \u0026#39;mailman-admin@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-bounces@mondomane.tld\u0026#39;, \u0026#39;mailman-bounces@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-confirm@mondomane.tld\u0026#39;, \u0026#39;mailman-confirm@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-join@mondomane.tld\u0026#39;, \u0026#39;mailman-join@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-leave@mondomane.tld\u0026#39;, \u0026#39;mailman-leave@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-owner@mondomane.tld\u0026#39;, \u0026#39;mailman-owner@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-requests@mondomane.tld\u0026#39;, \u0026#39;mailman-requests@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-subscribe@mondomane.tld\u0026#39;, \u0026#39;mailman-subscribe@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-unsubscribe@mondomane.tld\u0026#39;, \u0026#39;mailman-unsubscribe@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1); Ses commandes sont à répéter pour chaque liste de diffusion du serveur, et à adapter en du nom de la liste. Les alias créer il faut juste configurer postfix:\npostconf -e \u0026#39;relay_domains = liste.mondomaine.tld\u0026#39; postconf -e \u0026#39;mailman_destination_recipient_limit = 1\u0026#39; /etc/init.d/postfix reload Lors de mes premiers essais je me suis aperçu que les mails reçu mettaient plus dune heure pour arriver sur mes boîtes. Ce problème était dû à la directive « greylist » dans le fichier /etc/postfix-policyd.conf. Pour la désactiver il suffit de la mettre à « 0 ».\nConfiguration de mailman :\nnano /etc/mailman/mm_cfg.py [...] DEFAULT_URL_PATTERN = \u0026#39;http://%s/\u0026#39; [...] DEFAULT_EMAIL_HOST = \u0026#39;mondomaine.tld\u0026#39; [...] DEFAULT_URL_HOST = \u0026#39;liste.mondomaine.tld\u0026#39; Pour terminer jai ajouté un virtualhost à apache :\nnano /etc/apache2/sites-available/mailman ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/ Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ \u0026lt;Directory /usr/lib/cgi-bin/mailman/\u0026gt; AllowOverride None Options ExecCGI AddHandler cgi-script .cgi Order allow,deny Allow from all Satisfy Any \u0026lt;/Directory\u0026gt; \u0026lt;Directory /var/lib/mailman/archives/public/\u0026gt; Options FollowSymlinks AllowOverride None Order allow,deny Allow from all \u0026lt;/Directory\u0026gt; \u0026lt;Directory /usr/share/images/mailman/\u0026gt; AllowOverride None Order allow,deny Allow from all \u0026lt;/Directory\u0026gt; \u0026lt;VirtualHost *:80\u0026gt; ServerName liste.mondomaine.tld DocumentRoot /var/www/lists ErrorLog /var/log/apache2/lists-error.log CustomLog /var/log/apache2/lists-access.log combined \u0026lt;Directory /var/lib/mailman/archives/\u0026gt; Options FollowSymLinks AllowOverride None \u0026lt;/Directory\u0026gt; Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm ScriptAlias /create /usr/lib/cgi-bin/mailman/create ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo ScriptAlias /options /usr/lib/cgi-bin/mailman/options ScriptAlias /private /usr/lib/cgi-bin/mailman/private ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ ScriptAlias / /usr/lib/cgi-bin/mailman/listinfo \u0026lt;/VirtualHost\u0026gt; Création du répertoire « lists » pour les différentes pages web de configuration des listes du serveur, activation du virtualhost, et redémarrage dapache pour prendre en compte les modifications.\na2ensite mailman mkdir /var/www/lists /etc/init.d/apache2 restart Comme expliqué plus haut lors de sa première configuration mailman a besoin dune première liste appelée « mailman. Pour terminer il suffit de démarrer mailman.\n/etc/init.d/mailman start Le serveur Mailman est désormais opérationnel. Pour créer dautre listes de diffusions il suffit de reprendre les requêtes SQL suivantes en changeant « mailman » par le nom de votre liste.\nINSERT INTO `alias` (`address`, `goto`, `name`, `moderators`, `accesspolicy`, `domain`, `created`, `modified`, `expired`, `active`) VALUES (\u0026#39;mailman@mondomane.tld\u0026#39;, \u0026#39;mailman@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-admin@mondomane.tld\u0026#39;, \u0026#39;mailman-admin@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-bounces@mondomane.tld\u0026#39;, \u0026#39;mailman-bounces@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-confirm@mondomane.tld\u0026#39;, \u0026#39;mailman-confirm@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-join@mondomane.tld\u0026#39;, \u0026#39;mailman-join@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-leave@mondomane.tld\u0026#39;, \u0026#39;mailman-leave@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-owner@mondomane.tld\u0026#39;, \u0026#39;mailman-owner@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-requests@mondomane.tld\u0026#39;, \u0026#39;mailman-requests@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-subscribe@mondomane.tld\u0026#39;, \u0026#39;mailman-subscribe@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1), (\u0026#39;mailman-unsubscribe@mondomane.tld\u0026#39;, \u0026#39;mailman-unsubscribe@liste.mondomaine.tld\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;\u0026#39;, \u0026#39;public\u0026#39;, \u0026#39;mondomaine.tld\u0026#39;, NOW(), NOW(), \u0026#39;9999-12-31 00:00:00\u0026#39;, 1); Et ensuite pour lactiver :\nnewlist nom de la liste ","date":"2012-11-06T00:00:00Z","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/serveur-mailman-sous-iredmail/","title":"Serveur Mailman sous iRedmail"},{"content":"Lors de la configuration dun serveur Ubuntu 12.04, je me suis aperçu que le fichier resolv.conf était effacé automatiquement à chaque démarrage.\nMême avec une carte réseau configuré en Ip fixe (mode static ), le fichier est réécrit.\nAu début il me semblait que le mode DHCP était forcé.\nDailleurs quand on lédite à la main on peut trouver ce message en commentaire :\n# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN Après enquête se serait dû à lactivation par défaut du paquet resolvconf. Ce paquet permet de gérer le contenu du fichier resolv.con de façon plus précise. Tout ce passe dans le dossier /etc/resolvconf/resolv.conf.d/. Il contient trois fichiers : base, head, original, qui ont chacun un rôle plus ou moins important dans le contenu du resolv.conf.\nbase : comme sont nom lindique cest le fichier de base. Il est utilisé par défaut quand les autres sont vides. head : il permet de mettre en avant certains serveurs DNS, ils seront placés en premier dans le fichier. original : nest simplement quune sauvegarde du resolv.conf lors de linstallation de resolvconf. Il existe un dernier fichier du nom de « tail », qui napparaissait pas lors de ma configuration. Selon le man, il nest utilisé quen cas de mise à jour dUbuntu. Il contient lancien resolv.conf.\nJai modifié le fichier base :\nsudo nano /etc/resolvconf/resolvconf.d/base Ensuite il suffit de procéder comme avec le resolv.conf :\nnameserver \u0026lt;ip du serveur dns\u0026gt; Après un redémarrage, mon fichier resolv.conf est complet avec la liste de mes serveurs dns préférés.\n","date":"2012-07-04T00:00:00Z","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/eviter-la-r%C3%A9%C3%A9criture-du-resolv.conf-sous-ubuntu-serveur-12.04./","title":"Eviter la réécriture du resolv.conf sous ubuntu serveur 12.04."},{"content":"Le grand avantage de travailler sur une plateforme virtuelle avec un hyperviseur cest de pouvoir créer des serveurs virtuels dédiés à ce que lon veut faire. Mon serveur héberge plusieurs serveurs, un serveur pour le blog de perpinux, mon propore blog, mes courriels, un serveur de base de données mysql etc etc…\nCela me permet de séparer les rôles en plusieurs machines et moffre une très grande souplesse dadministration en cas de panne logicielle ou matérielle.\nLe tout protégé par pare-feu qui fut à lorigine de mon problème. En effet celui-ci ne permet de transférer le port 80 (port par défaut pour lhébergement web) sur une seule machine.\nQuid des autres serveurs web ?\nLe proxy inverse dans la langue de molière fut ma solution. Jai créé une machine avec apache configurer en reverse proxy. Cest le même fonctionnement quun proxy classique mais à lenvers. Au lieu de rediriger le reseau local vers internet, il redirige tout ce qui vient dinternet à destination du réseau local. Cela permet de ne pas avoir ses serveurs web directement exposés au feu.\nCette solution est très simple à mettre en place.\njai installé une machine virtuelle avec ma distribition préférée et un apache. Jai activé le mode proxy:\n$sudo a2enmod proxy $sudo a2enmod proxy_http Pour vérifier si les modes sont bien actifs, il faut jeter un coup doeil dans /etc/apache2/mod-enabled/\nsudo ls /etc/apache2/mods-enabled/ alias.conf autoindex.load mime.load setenvif.conf alias.load cgid.conf negotiation.conf setenvif.load auth_basic.load cgid.load negotiation.load ssl.conf authn_file.load deflate.conf proxy.conf ssl.load authz_default.load deflate.load proxy_connect.load status.conf authz_groupfile.load dir.conf proxy_http.load status.load authz_host.load dir.load proxy.load authz_user.load env.load reqtimeout.conf autoindex.conf mime.conf reqtimeout.load Ensuite rien de plus simple cest le même fonctionnement quun apache en mode normal avec des Vhost pour chaque site à rédiriger.\nDans /etc/apache/sites-avaibles/ jai placer un fichier pour chaque sites, par exmple site1.org et site2.net :\nsudo nano /etc/apache/sites-avaibles/site1 \u0026lt;VirtualHost 192.168.XX.XX:80\u0026gt; #adresse ip locale du serveur reverse proxy ProxyRequests Off ProxyPreservehost on ServerName site1.org ServerAlias www.site1.org ProxyPass / http://192.168.XX.XX/ #adresse ip locale du serveur web ProxyPassReverse / http://192.168.XX.XX/ #adresse ip locale du serveur web ProxyPassReverseCookieDomain 192.168.XX.XX site1.org LogLevel debug \u0026lt;/VirtualHost\u0026gt; $sudo nano /etc/apache/sites-avaibles/site2 \u0026lt;VirtualHost 192.168.XX.XX:80\u0026gt; #adresse ip locale du serveur reverse proxy ProxyRequests Off ProxyPreservehost on ServerName site2.net ServerAlias www.site2.net ProxyPass / http://192.168.XX.XX/ #adresse ip locale du serveur web ProxyPassReverse / http://192.168.XX.XX/ #adresse ip locale du serveur web ProxyPassReverseCookieDomain 192.168.XX.XX site2.net LogLevel debug \u0026lt;/VirtualHost\u0026gt; Voilà nos deux Vhosts sont prêts et configurés, il reste plus qua les activer et redémarrer apache pour que les modifications soient prises en compte.\n$sudo a2ensite site1 $sudo a2ensite site2 $sudo /etc/init.d/apache2 restart Une dernière modification sur mon pare-feu pour faire un transfert du 80 sur le serveur reverse proxy. Grâce à se système je peux séparer tout mes serveurs web sur différentes machines virtuelles et ainsi ne pas mettre tout mes oeufs dans le même panier.\n","date":"2011-09-14T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/reverse-proxy-avec-apache/","title":"Reverse proxy avec Apache"},{"content":"DKIM ( Domain Key Identified Mail) grâce à ce petit logiciel installer avec Iredmail, jai la possibilité de créer une signature cryptographique dans le corps et lentête des messages envoyés avec mon serveur de mail. Cest un peu le même principe que pour SSH.\nDkim chiffre tout les courriels sortant pour quils soient ensuite authentifiés par la clé publique associée à leur domaine afin de garantir lintégrité du courriel. Dkim est installé de base avec Iredmail mais il nest pas activé.\nUne fois le serveur redémarrer (après la première installation diredmail), la commande suivante permet dafficher sa clef DKIM:\nsudo amavisd-new showkeys. La clef apparait sous cette forme :\n; key#1, domain mondoamine.tld, /var/lib/dkim/mondomaine.tld.pem dkim._domainkey.mondomaine.tld. 3600 TXT ( \u0026#34;v=DKIM1; p=\u0026#34; \u0026#34;MIGfMA0GCSqGSIb34GNADCBiQKBgQDKSYY1yWMBMOlsN5AOlgYCS1OR\u0026#34; \u0026#34;GZySWitF8XdraeoaNYJ4VJedjd8oFlTBLitiTc3YIejRiZk7n1SUItrdXoR\u0026#34; \u0026#34;2Q74qBK4wOb4TQDa3HBDskb\u0026#34; \u0026#34;ERflTVM+SWgPhgGJpQIDAQAB\u0026#34;) Maintenant que jai ma clef, il me faut signé mon domaine. Pour ça il suffit de rajouter la clef dans un enregistrment dns TXT.\ndkim._domainkey.mondomaine.tld. 3600 IN TXT \u0026#34;v=DKIM1; p=MIGfMA0GCSqGSIb34GNADCBiQKBgQDKSYY1yWMBMOlsN5AOlgYCS1OR\u0026#34; Pour vérifier que la signature fonctionne :\nsudo amavisd-new testkeys Cette dernière doit retourner le code suivant en cas de bon fonctionnement.\n#TESTING#1 : dkim._domainkey.mondomaine.tld =\u0026gt; pass Voila mon domaine est chiffré et signé, de plus je participe dans mon entourage du moins à évité la propagation du phishing.\n","date":"2011-06-14T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/iredmail-et-dkim-contre-le-phising/","title":"Iredmail et DKIM contre le phising"},{"content":" figure1 Une fois mon serveur de courriel installé et opérationnel, je me suis rendu compte que le peu de spam que je recevais nétait pas taggé (SPAM) pas spamassasin.\nPour en avoir le cœur net jai fait un essai avec le courriel test GTUBE fournit par spamassasin. Ce courriel test se trouve dans /usr/share/doc/spamassassin/examples/sample-spam.txt.\nIl suffit de copier coller dans un message la suite de caractères du fichier sample-spam.txt dans un nouveau courriel et de lenvoyer sur la boite mail hébergée par iredmail. Au bout de quelque secondes le message arrive avec le tag ***SPAM***, hors chez moi lors de se test le message ne sétait pas taggé.\nEn farfouillant dans les fichiers de config et sur internet, je me suis aperçu que le souci provenait damavis avec son daemon amavisd-new et de spamassasin.\nLe crime parfait (spamasassin). Dans un premier temps je me suis penché sur spamassasin qui est par défaut désactivé, je trouve bizarre pour une solution clef en main destiné au non administrateur quil soit désactivé de base.\nRien de bien compliqué spamasassin se configure dans /etc/default/spamassasin. Deux directives à modifier :\n-ENABLED (pour activer le daemon) de 0 à 1 -CRON (pour les mises à jours nocturnes) de 0 à 1 Spamasassin configuré jai relancé le daemon et fait une mise à jour immédiate, on est jamais trop prudent surtout quil était désactivé depuis linstallation (à peu près 3 mois), ça peu pas lui faire de mal.\nPour démarrer spamassasin :\nsudo /etc/init.d/spamasassin start Pour faire la mise à jour immédiate (sans attendre la tâche CRON) :\nsudo sa-update Le chef dorchestre (Amavis) Amavis cest un peu lui qui chapote le tout, il fait office de chef dorchestre. Il sert dinterface entre postfix (le MTA) et les differents logiciels de sécurités spamassasin et clamav.\nTout ce passe dans le répertoire /etc/amavis/conf.d/, jai édité le fichier 15-av_scanner pour vérifier quil avait bien détecté que mon antivirus mail est clamav. Les lignes suivantes sont décommentées:\n### http://www.clamav.net/ [\u0026#39;ClamAV-clamd\u0026#39;, \\\u0026amp;ask_daemon, [\u0026#34;CONTSCAN {}\\n\u0026#34;, \u0026#34;/var/run/clamav/clamd.ctl\u0026#34;], qr/\\bOK$/m, qr/\\bFOUND$/m, qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ], Cela signifie quil ma bien détecté clamav comme antivirus mail.\nDeuxième fichier très important 15-content_filter_mode, cest ce fichier qui me permet dactiviter spamassasin et clamav pour sinterfacé avec postfix.\nPour activer spamasassin :\n@bypass_spam_checks_maps = ( \\%bypass_spam_checks, \\@bypass_spam_checks_acl, \\$bypass_spam_checks_re); Pour activer clamav :\n@bypass_virus_checks_maps = ( \\%bypass_virus_checks, \\@bypass_virus_checks_acl, \\$bypass_virus_checks_re); Redémarrage du daemon :\nsudo /etc/init.d/amavis restart Répétition générale ! Jai procédé à un second essai avec le courriel test GTUBE, bingo ! le message sest bien taggé ***SPAM***.\nfigure2 ","date":"2011-06-03T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/iredmail-configuration-damavisd/","title":"Iredamil : configuration d'Amavisd"},{"content":"Free propose à ses abonnés depuis quelques temps déjà le multi TV. Quésaco !? Le multi TV permet de capter le flux télé de la freebox sur nimporte quel ordinateur du réseau local (branché sur la freebox). Il est ainsi possible de regarder le bouquet free sans la freeboxHD.\nPour ce faire jai configurer mon pare-feu pour laisser passer le multi tv, en ouvrant la plage de ports de 31336 à 31341 en UDP sur le pc où je voulais regarder le multi tv.\nMon pare-feu configuré, je me suis mit à la configuration de VLC.\nDans Outils -\u0026gt; Préférences (jai cliqué sur « Tous » en bas à gauche pour avoir la configuration avancé) :\nfigure Jai juste modifié le numéro de port dans « port client » rien de plus. Après avoir enregistré, je suis allé dans Média -\u0026gt; Ouvrir un flux réseau et jai rentré ladresse suivante:\nhttp://mafreebox.freebox.fr/freeboxtv/playlist.m3u\nA partir de là jai put correctement visionner le bouquet free de base, en HD ou en SD.\nJai aussi remarqué que TF1, M6, W9 ne figurées pas dans la liste des chaînes. Apparemment cest à leur demande que free ne les aurait pas intégrées.\nJe rappel que free propose aussi un multi TV pour les téléviseurs mais cest payant avec un boîtier Multi Tv et une pris CPL qui ressemble à la freebox HD.\n","date":"2011-06-03T15:28:10+01:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/multi-tv-free-avec-vlc/","title":"Multi tv Free avec VLC"},{"content":"Cette deuxième partie sera consacrée à linstallation de proxmox sur un serveur « vide » cest à dire sans système dexploitation.\nQuelle configuration me faut-il ? 2 x AMD Athlon(tm) Dual Core Processeur 4450B\n 6 go de RAM en DDR2 (8 go sont conseillés mais les barrettes de ram ne poussent pas dans les arbres lol )\n LSI Logic / Symbios Logic MegaRAID pour le contrôleur Raid matériel.\n 2 disques durs de 500 go.\nDeux petites contraintes sont à retenir pour la mise en place de proxmox, un processeur 64 bits obligatoire qui supporte le Intel VT pour un processeur Intel et AMD-V pour un processeur AMD.\nA lheure actuelle quatre machines virtuelles fonctionnent sur mon hyperviseur, et mon serveur nest absolument pas surchargé.\nOu télécharger proxmox ? Tout simplement sur www.proxmox.com\nComment Installer Proxmox ? Une fois lISO gravée sur un cd, il suffit de démarrer dessus, pour se retrouver sur cette page.\nfigure Appuyer sur entrée pour continuer puis cliquer sur « I agree » pour accepter les termes de la licence.\nfigure1 Cest la configuration habituelle pour toute installation dune nouvelle distribution, réglage de lheure, la date, la langue du clavier….\nDéfinition du mot de passe « root », pour laccès via linterface web et SSH.\nMaintenant la configuration réseau :\nfigure2 Linstallation se lance après cette dernière étape et ne prend que quelques minutes. Pour ce rendre sur linterface Web il suffit dentrer ladresse locale du serveur proxmox, soit en HTTP ou en HTTPS le dernier étant plus sécurisé.\nfigure3 Voici à quoi ressemble linterface web proxmox.\nfigure4 Configuration Post-installation. Même si Proxmox est une distribution clé en main, jai procédé à quelques modifications pour lintégré dans mon réseau.\nPremièrement la connexion sur linterface web. Chez moi les ports 80(http) et 443(https) étaient déjà utilisés par mes serveurs web et courriel (pour mon webmail).\nPour changer le port par défaut, jai modifié le Vhost dapache. En ssh depuis le serveur jai modifié le fichier :\nsudo nano /etc/apache2/sites-available/pve.conf \u0026lt;VirtualHost *:443\u0026gt; SSLEngine on SSLProtocol all -SSLv2 SSLCertificateFile /etc/pve/pve-ssl.pem SSLCertificateKeyFile /etc/pve/pve-ssl.key RewriteEngine on RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] \u0026lt;/VirtualHost\u0026gt; Jai changé le port 443 par le port désiré. Un redémarrage dapache pour que la modification soit prise en compte.\nJai aussi changer le port découte SSH. Par défaut ssh écoute sur le port 22 mais ce port est très connu et la majorité des pirates bases leurs attaques dessus.\nLe changement de port ne garantie pas une meilleure sécurité mais il permet de dérouté la majorité des attaques.\nCela se passe dans le fichier /etc/ssh/sshd_config, jai modifié la première ligne port 22 avec le port souhaité.\nPour valider un redémarrage de ssh suffit.\nLe serveur proxmox est maintenant prêt à accueillir ses premières machine virtuelles.\n","date":"2011-06-03T15:28:10+01:00","image":"https://archives.draconis.me/images/header/virtualisation.jpg","permalink":"https://archives.draconis.me/p/proxmox-la-virtualisation-libre-2-2/","title":"Proxmox : La virtualisation libre 2/2"},{"content":"En mai 2011 le démarrage de mon serveur mettait fin à deux ans de travail, de recherche et de prises de têtes pour pouvoir mauto-héberger. Geek depuis lâge de six ans (jai toujours eu un clavier entre les mains aussi loin que je men souvienne) jai toujours rêvé davoir mon propre serveur. 26 ans plus tard jy suis parvenu.\nCela fait maintenant un peu plus dun an que mon serveur fonctionne, alors pourquoi ne pas faire un petit bilan? Ce bilan se base principalement sur les questions que je me suis posés lors de ma phase préparatoire et de réalisation. Peut être quà travers ce bilan je donnerai envie à dautre de se lancer ?\nPourquoi mauto-héberger ?\nLe but est simple : retrouver mon indépendance. Comme tout le monde jutilisais des services externes pour mes mails, fichiers, agenda, contacts etc.\nLe problème de ses services cest quils sont gérés par des sociétés privées, souvent dans des pays étrangers où les lois sur la vie privée ne sont pas les mêmes quen France. De plus ses systèmes sont soumis à des conditions dutilisations plutôt douteuses pour certains. Ses services sont principalement gratuits et par conséquent blindés de publicités non désirées.\nQuels sont mes besoins ?\nCest la première question que je me suis posé. Jai besoin :\nde consulter mes mails (webmail et logiciel de messagerie)\nde pouvoir sauvegarder mes contacts\nde consulter mon calendrier depuis mon téléphone et pc\ndaccéder aux documents sur mon NAS\nLa création du blog est venu bien après, je voulais participer à ma façon au développement des logiciels libres.\nQuels moyens mis en place ?\nCe nest pas un secret lauto-hébergement à un prix. Financier et humain. Financier avec lachat dun ordinateur dédié (il faut compter 300 euros environ), sa consommation électrique, un abonnement internet. Humain, car il faut assurer sa maintenance et passer du temps à installer et configurer son serveur.\nEn tout premier lieu le choix de mon FAI a été primordial. Cest de lui que dépend entièrement la solution dauto-hébergement. Dans ce choix je me suis fixé un cahier des charges. Il doit disposer :\nDune Ip fixe inclut dans labonnement,\nDune option pour désactiver le mode routeur, mon installation étant derrière un pare-feu.\nDe la téléphonie IP, même en mode modem.\nDun débit sortant raisonnable,\nDun prix pas trop élever.\nLe choix du matériel et des logiciels est aussi important. Jai préféré acheter du matériel générique, il est plus facile de trouver des pièces détachées en cas de panne et cest moins cher que lachat dun ordinateur de grandes marques. Lors de lachat jai choisi des composants le moins énergie-vore possible, environnement et consommation électrique oblige.\nPour le système jai choisi de virtualiser le tout. Pourquoi la virtualisation ? Parce que cest une technologie que je connais bien, lutilisant très souvent. Elle offre une souplesse dadministration remarquable, elle permet de saffranchir du matériel. En cas panne on peut restaurer une machine en 10 minutes. De plus pour un seul serveur physique on peut héberger beaucoup dautres serveurs. Cela permet de cloisonner les services et de ne pas mettre tous ses oeufs dans le même panier et ainsi déconomiser sur la consommation électrique. Seule ombre au tableau avec ce système, il faut disposer dune mémoire vive très importante, en fonction du nombre de VM, je suis parti sur huit go de ram extensible à 16.\nQuels outils pour la mise en œuvre ?\nLibriste, cest tout naturellement que jai choisi GNU/Linux comme système dexploitation et tous les logiciels utilisés sont libres.\nLa plate-forme de virtualisation cest la distribution Proxmox qui a retenu mon attention. Elle dispose dune interface web très bien réalisée pour gérer toutes ses machines virtuelles. Basé sur la branche stable de Debian elle regroupe tous les outils pour les différents types de virtualisations :\nLa virtualisation noyau (Openvz)\nLa virtualisation pleine (Kvm)\nPour plus de précisions je vous invite à lire cet article : Proxmox, la virtualisation libre.\nPour les mails jai choisi iredmail. Un script qui permet dinstaller et de configurer automatiquement tous les logiciels pour un serveur de messagerie. Jai quand même fait quelques réglages manuels, mais dans lensemble cest out of the box.\nEt pour le reste de mes données, agenda, contacts, fichiers jai choisi owncloud qui nest plus à présenter.\nLa supervision de mes VM, de mon hôte, est assuré par Munin. Simple rapide à mettre en place avec la configuration des alertes mails je suis informé directement en cas de dysfonctionnements.\nQuel système de sauvegarde et de tolérance au panne ?\nAucun système nest infaillible, mais prendre quelques précautions ce nest jamais du temps perdu.\nPour les sauvegardes de mes VM jutilise le système inclut dans proxmox. Jai créé un point de montage NFS sur mon Nas pour y regrouper toutes mes sauvegardes qui seffectuent quotidiennement. Le seul inconvénient avec la sauvegarde proxmox, il ne garde pas les anciennes sauvegardes en archives.\nEn cas de grosse panne matériel jai un serveur de secours, une machine de récupération, qui me sert à restaurer mes VM depuis les sauvegardes de mon nas, le temps de réparer le serveur principal.\nEn conclusion.\nLes résultats obtenus après pratiquement un an dauto-hébergement sont au-delà de ce que javais espéré.Au départ je ne pensais pas pourvoir héberger que mes mails et du stockage de fichiers. Cest en rédigeant cet article que jai pris conscience de tout le travail que jai accompli depuis trois ans.Jai réussi à atteindre mon but, ne plus dépendre dun tiers pour mes données personnelles.\nIl me reste encore des choses à faire, notamment en cas de coupure internet, finir la supervision de certains serveurs, gérer automatiquement les mises à jour etc. Malgré certaines contraintes jencourage vivement tous ceux qui veulent se lancer dans lauto-hébergement. Certes cela demande quelques compétences, du temps, de lénergie, et un peu dargent, mais je lai fait avec passion et quand on aime on ne compte pas.\nSi vous avez une machine qui traîne dans un placard, lancez vous ! Prenez-le comme un défi !Même si vous narrivez pas au bout cest toujours formateur, y a toujours quelque-choses à apprendre.\n","date":"2011-06-03T15:28:10+01:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/un-an-dauto-h%C3%A9bergement-le-bilan/","title":"Un an d'auto-hébergement : Le bilan"},{"content":"En ce mercredi de printemps, enfin printemps cest vite avec la chaleur qui fait depuis ses derniers jours. Du coup je reste au frais. Je me suis lancé alors dans le test de Mageia un fork de mandriva.\nJai donc voulut installer liso sur une de mes clefs usb pour éviter de gaspiller un dvd.\nArchlinux ne prend pas nativement le fat32 il faut installer un petit paquet qui gère les différents fat.\n$sudo pacman -S dosfstools Il ne reste plus qua formater la clef en fat32 pour y installer liso de Mageia Beta 2.\n","date":"2011-05-25T15:28:10+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/formater-une-clef-usb-en-fat-32/","title":"Archlinux : Formater une clef usb en fat 32"},{"content":"Suite à mon expérience personnelle je propose une suite de quatre articles sur la distribution hyperviseur Proxmox Virtual Environment.\nLa bête mis à nue :).\nProxmox VE est une distribution Linux qui permet grâce à des outils libres comme OpenVZ et KVM de mettre en place une plateforme de virtualisation en barre métal. Cest à dire sans OS à installer au préalable.\nDe plus grâce à son interface web intégré ladministration des machines virtuelles est très simple et peut se faire de nimporte quel endroit sur le réseau, sur nimporte quel système (Linux, Windows, Macos) puisquun simple navigateur internet suffit pour sa configuration.\nProxmox VE permet deux modes de virtualisation. Le premier basé sur une virtualisation noyau basé sur le noyau Linux. Gérée par openVZ, elle permet au noyau de la machine physique de faire tourner plusieurs instances de systèmes dexploitation isolés, appelés des environnements virtuels. Par contre il faut que le système hôte et le système invité soit de base Linux. A linverse la virtualisation au niveau noyau permet une meilleure gestion des ressources et des performances accrues par rapport à une para-virtualisation.\nLe deuxième mode est la virtualisation pleine. Cest à dire que la machine invité est complètement virtuelle (carte réseau, processeur, ram ….). Avec ce système la machine est complètement indépendante du matériel physique et du système hôte, on peut donc virtualiser du Linux ou du Windows. Géré par KVM, il faut sassurer dans un premier temps que le processeur physique soit compatible avec les technologies Intel VT pour un processeur Intel et AMD-V pour un processeur AMD. Cela se vérifie dans le bios de lordinateur.\nPour utiliser proxmox VE pas besoin de système dexploitation, tout est intégré. Cest ce quon appel un hyperviseur il possède sont propre OS. Pour proxmox VEcest une Debian Lenny 64 bits qui fait tourner le tout, ce qui est quand même un gage de stabilité.\nLinstallation et la configuration en elle même ne prend pas plus de 5 ou 6 minutes et elle sont simplicimes.\nIl faut savoir que tout ce qui se trouvent sur la machine est effacé lors de linstallation. Proxmox VE utilise le stockage local en raid (0, 1, 5) ou non. Pour ma part je lai installé sur un raid 1 matériel géré par une carte adaptec avec deux disques durs de 500 Go. En plus de ça on peut y rattaché des espaces de stockages externes en NFS ou ISCSI. Dans mon cas pour sauvegarder mes machines virtuelles, jai connecté mon serveur proxmox VE sur un NAS en NFS.\nDans linterface dadministration proxmox VE permet de faire du clustering entre différents serveur Proxmox VE, ce qui permet une migration des machines virtuelles dun serveur à lautre sans interruption de service, ou pour la gestion de fermes virtuelles.\nSeul petit bémol et encore cest pas grand chose, il faut impérativement que le processeur du serveur soit en 64 bits, sinon seul le module de virtualisation openVZ fonctionnera.\nProxmox VE est téléchargeable à cette adresse : http://www.proxmox.com/products/proxmox-ve\n","date":"2011-04-20T15:28:10+01:00","image":"https://archives.draconis.me/images/header/virtualisation.jpg","permalink":"https://archives.draconis.me/p/proxmox-lavirtualisation-libre-1-2/","title":"Proxmox : La virtualisation libre 1/2"},{"content":"Tout fraîchement déballé le 6 avril 2011 gnome 3 se retrouve sur le dépôt [testing] darchlinux. Cette mise à jour majeur du célèbre gestionnaire de bureau viendra remplacer gnome 2. Quand les paquets seront jugés stables ils seront placés dans le dépôt [extra].\nA noter que linstallation de gnome 3 garde sous le coude une version de gnome 2 dans le cas où lordinateur ne serait pas capable déxécuter Gnome-shell, par exemple si la carte graphique ne gère pas lopenGL.\nPour en profiter il suffit dactiver le dépôt [testing] dans le /etc/pacman.con. Si comme moi vous avez fait une installation avant la date de sortie officielle il faudra désactiver le dépôt [gnome-unstable].\nDésactivation du dépôt [gnome-unstable], il suffit de commenter ses deux lignes avec un « # ».\n#[gnome-unstable] #Include = /etc/pacman.d/mirrorlist Pour la suite de linstallation, jai suivit cette procédure sur le wiki darchlinux(en).\nNhésitez pas à repporter tous les bugs recontrés aux développeurs de gnome mais aussi aux mainteneurs darchlinux.\nBon courage.\n","date":"2011-04-08T15:28:10+01:00","image":"https://archives.draconis.me/images/header/blogueries.jpg","permalink":"https://archives.draconis.me/p/gnome-3-phase-de-test-pour-archlinux/","title":"Gnome 3, phase de test pour Archlinux"},{"content":"Cela fait maintenant un peu plus de 13 heures que jai migré ma Arch sous Gnome 3. Le principal changement vient du gestionnaire de fenêtres le tant controversé Gnome-shell.\nEt je dois dire que tous mes acquis avec lancien gnome ont volé en éclats. Javance dans mon nouvel environnement tout doucement à pas de gnome :D.\nMon premier souci était dut à un conflit entre nautilus 3.0 et nautilus-elementary.\n$sudo pacman -S nautilus Résolution des dépendances... Recherche des conflits possibles entre paquets... :: nautilus et nautilus-elementary sont en conflit. Supprimer nautilus-elementary ? [o/N] Jai répondu oui à la question et nautilus 3.0 cest installé correctement, il fonctionne parfaitement.\nDeuxième petit souci, impossible de trouver le bouton arrêter, dans le menu déroulant lorsque je clique sur mon nom dutilisateur en haut à droite.\nEn fait il suffit juste dappuyer sur ALT quand le menu apparaît, et alors le bouton « mettre en veille » se transforme en « éteindre ».\nPour linstant à part ses deux inconvénients tout fonctionne parfaitement, affaire à suivre…..\n","date":"2011-04-05T15:28:10+01:00","image":"https://archives.draconis.me/images/header/linux.jpg","permalink":"https://archives.draconis.me/p/premiers-pas-avec-gnome-shell/","title":"Premiers pas avec Gnome-Shell"},{"content":"Il y a pas très longtemps jai mit en place une architecture virtuelle avec vmware serveur 2 sous ubuntu server. Ce serveur hébergé deux machines virtuelles sous windows 2003 et lautre sous windows XP pro.\nLe tout sauvegarder sur un autre ubuntu server dans un autre batiment. Je reviendrais dans un autre article sur cette architecture.\nPourquoi faire compliqué quand on peut faire simple? Je décide de monter un partage nfs entre les deux serveurs. Au bout de deux jours de recherches ce fichu montage ne voulait toujours pas se faire.\nEt là je me suis dit pourquoi ne pas essayer la v4 de nfs ? sur un malentendu ça peut passer. Voici comment jai procédé :\nInstallation de nfsv4 Pour le serveur\napt-get install nfs-kernel-server Pour le client\napt-get install nfs-common Création dun dossier qui va permettre dexporter le dossier partagé en loccurrence /home/superu mkdir /export # mkdir /export/users On monte le dossier utilisateur dans notre dossier partagé\nmount --bind /home/superu /export/users Et pour automatiser tout ça jai modifié le /etc/fstab\n/home/superu /export/users none bind 0 0 Enfin jai put procéder à la configuration dnfsv4. Dans /etc/default/nfs-kernel-server sur mon serveur jai mis NEED_SVCGSSD=no.\nCe réglage était mit par défaut mais vaut mieux vérifier au cas ou.\nEt dans /etc/default/nfs-common sur mon client jai mis NEED_IDMAPD=yes NEED_GSSD=no.\nPour finir jai configuré mes exportations nfs dans le fichier /etc/exports\n/export 192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async) /export/users 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,async) Un petit redémarrage du serveur nfsv4\n/etc/init.d/nfs-kernel-server restart Montage du partage nfs sur le client mount -t nfs4 -o proto=tcp,port=2049 nfs-server:/users /home/superu/sauvegarde Pour automatiser le tout toujours dans le /etc/fstab\nnfs-server:/users /home/superu/sauvegarde nfs4 _netdev,auto 0 0 Le partage fonctionne correctement ! De plus en me documentant sur la version 4 de nfs\njai appris quelle géré mieux la sécurité que la v3 du coup jai basculé tous\nmes partages nfs en V4.\n","date":"2011-03-30T15:28:10+01:00","image":"https://archives.draconis.me/images/header/adminsys.webp","permalink":"https://archives.draconis.me/p/partage-avec-nfs-v4/","title":"Partage avec nfs v4"}]