# WebuxLab

> Articles and notes about DevOps, web development, security, CNC/3D DIY projects, and self-hosted tooling, in English and French. The site serves whichever language matches the `lang` cookie, defaulting to English. Append `Accept: text/markdown` on any article URL to get the raw source.

## Web Projects

- [Simple Deno script to parse my markdown to JSON](https://webuxlab.com/web-projects/script-to-index-for-algolia) (en): Create an index.json for algolia
- [Experimenting with data encoding](https://webuxlab.com/web-projects/encoding) (en): Custom solution vs. CBOR
- [Setup a typescript project](https://webuxlab.com/web-projects/typescript-project) (en): including eslint and prettier
- [Group by function in javascript](https://webuxlab.com/web-projects/group-by-js) (en): Code Snippet
- [Typescript, Markdown, Tauri, Browser](https://webuxlab.com/web-projects/marked) (en): Using Marked !
- [Typescript Helper Functions for Browser](https://webuxlab.com/web-projects/typescript-helper-functions) (en): Typescript Helper Functions for Browser
- [Javascript and Regexes](https://webuxlab.com/web-projects/javascript-regexes) (en): Javascript and Regexes
- [NodeJS POC with queue and nosql](https://webuxlab.com/web-projects/nodejs-queuing) (en): Using local technology
- [POC to use Knex, Postgres and node](https://webuxlab.com/web-projects/knex-postgres-node-filetree) (en): to build a file tree system
- [Simple helper to control console output](https://webuxlab.com/web-projects/nodejs-console) (en): Simple helper to control console output
- [Playing around with HTML5 canvas to draw a grid using triangles](https://webuxlab.com/web-projects/canvas-triangle) (en): This is a quick prototype for a unity 3D grid
- [Extend Error handling with NodeJS](https://webuxlab.com/web-projects/nodejs-error-handling) (en): Nodejs, vuex & axios with extended error handling
- [NodeJS script to calculate pricing](https://webuxlab.com/web-projects/price-calculator) (en): NodeJS Script to calculate price based on minimum and maximum quantity for subscriptions
- [NodeJS script to validate timesheet and work hours](https://webuxlab.com/web-projects/nodejs-tool-to-check-timesheet-and-work-hours) (en): NodeJS and date-fns to calculate the difference between hours and minutes
- [SQLite, Sequelize and NodeJS](https://webuxlab.com/web-projects/sqlite-sequelize-encryption) (en): POC with encryption using SQLCipher
- [Fun with Electron 13 and vue 2](https://webuxlab.com/web-projects/fun-with-electron-vuejs) (en): Using Electron with vuejs and bootstrap to create a desktop app
- [Package NPM scoped (@)](https://webuxlab.com/web-projects/npm-scoped-packages) (fr): Publier ses packages NPM
- [Héberger un site web statique avec AWS](https://webuxlab.com/web-projects/aws-godaddy-static) (fr): Projet AWS

## Misc Projects

- [JQ Notes](https://webuxlab.com/misc-projects/jq-notes) (en): Manipulate json data with bash
- [Star Citizen Custom Board](https://webuxlab.com/misc-projects/arduino-button-matrix) (en): Arduino board with 15 buttons
- [NodeJS - CLI Queue System](https://webuxlab.com/misc-projects/cli-queue) (en): Simple Queue using the command line
- [Learning Elixir - Markdown and Http Client](https://webuxlab.com/misc-projects/elixir-md-httpc) (en): earmark and :httpc
- [Learning Elixir - Card Validator](https://webuxlab.com/misc-projects/learning-elixir-card-validator) (en): Credit card validation
- [My experience with Sienci Longmill MK2](https://webuxlab.com/misc-projects/longmill-mk2) (en): WOW !
- [Seaweedfs and Docker Compose](https://webuxlab.com/misc-projects/seaweedfs-storage) (en): For a simple and efficient Object Storage
- [Obsidian Local API + Firefox](https://webuxlab.com/misc-projects/obsidian-local-api) (en): Experimenting with Obsidian Local API and Firefox Extension
- [Obsidian Plugin](https://webuxlab.com/misc-projects/obsidian-plugin) (en): Experimenting with custom obsidian plugin and protocol handler
- [Create a booklet with NodeJS from a PDF](https://webuxlab.com/misc-projects/booklet) (en): Book Binding made simple with this signature generator
- [Libvirt, Parsec, GPU Passthrough and others](https://webuxlab.com/misc-projects/vm-passthrough-parsec) (en): An everything station using Linux as the base with a lot of possibilities
- [Install and configure Atom as an IDE](https://webuxlab.com/misc-projects/atom-ide) (en): Javascript, Ansible, Yaml and etc.
- [Install Gitea with docker and configure Obsidian with Git](https://webuxlab.com/misc-projects/gitea-obsidian) (en): For MacOS, Linux, Windows and iPhone
- [Image AI NodeJS script to prepare the training folder](https://webuxlab.com/misc-projects/imageai-preparing-training) (en): I have raw data collected using a crawler.
- [Exposer un socket IPC sur le réseau](https://webuxlab.com/misc-projects/ipc) (fr): Exemple d'utilisation avec socat
- [Configure events and push notifications with cncjs](https://webuxlab.com/misc-projects/cncjs-events) (en): Using pushover to handle the push notifications
- [Laser engraved a feather with a Sainsmart 3018 pro](https://webuxlab.com/misc-projects/laser-feather) (en): Using a 5W laser
- [Notes about experimentations with a CNC Shapeoko2](https://webuxlab.com/misc-projects/shapeoko2-notes) (en): Using Fusion 360 and different roatry tools / routers
- [Installation of cncjs on a raspberry pi](https://webuxlab.com/misc-projects/cncjs-raspberry) (en): Portable Linux to quickly connect the CNC
- [How to automatically fix the round corners](https://webuxlab.com/misc-projects/fusion-internal-corners) (en): With Fusion 360 and DogBone plugin
- [Shapeoko 2 CNC Grid](https://webuxlab.com/misc-projects/cnc-grid) (en): Using a 0.8mm bit to create a grid and 1/8 bit to drill holes for clamps
- [I built my first tea box](https://webuxlab.com/misc-projects/first-tea-box) (en): Using mitered joint and dado joint
- [Installation of ImageAI on Ubuntu 18](https://webuxlab.com/misc-projects/image-ai) (en/fr): Using a Nvidia 1660 TI
- [Cadre avec colibri](https://webuxlab.com/misc-projects/cnc-hummingbird) (fr): Création d'un cadre avec une CNC et plusieurs autres outils
- [Catan](https://webuxlab.com/misc-projects/catan) (fr): Nos règles pour jouer à Catan
- [Elasticsearch et NodeJs](https://webuxlab.com/misc-projects/elk) (fr): Apprendre à utiliser Elastic Search cloud
- [Générateur de sitemap](https://webuxlab.com/misc-projects/sitemap-generator) (fr): NodeJs pour générer un fichier sitemap
- [Station IOT](https://webuxlab.com/misc-projects/iot-control) (fr): Température, Humidité, Lux, Détection de mouvement
- [Capteur de porte](https://webuxlab.com/misc-projects/door-sensor) (fr): Contact sensor avec ESP-01
- [Pixel Arts](https://webuxlab.com/misc-projects/pixel-arts) (fr): Quelques dessins faits avec asprite
- [Ansible Cheatsheet et notes](https://webuxlab.com/misc-projects/ansible-cheatsheet) (fr): Mes notes sur Ansible
- [Déploiement d'application(s) avec Ansible](https://webuxlab.com/misc-projects/portfolio) (fr): sur AWS (ou autres)
- [Jenkins pipeline avec Gitlab et sonarqube pour module NodeJS](https://webuxlab.com/misc-projects/jenkins-pipeline) (fr): Projet Jenkins avec Gitlab
- [Sapin de Noël illuminé](https://webuxlab.com/misc-projects/sapin-noel-illumine) (fr): Projet électronique
- [Confluence vers Markdown](https://webuxlab.com/misc-projects/confluence-to-markdown) (fr): Exporter les pages confluence vers markdown
- [Déployer un serveur DHCP avec Docker](https://webuxlab.com/misc-projects/dhcp-server-docker) (fr): Projet docker
- [Déployer un serveur PXE avec Docker](https://webuxlab.com/misc-projects/pxe-server-docker) (fr): Projet docker
- [Installez Openstack avec packstack](https://webuxlab.com/misc-projects/openstack) (fr): sur CentOS 7 minimale

## Tutorials

- [Cognito authentication for a CLI Tool](https://webuxlab.com/tutorials/cognito-client-side) (en): Using Deno and Cognito User Pool
- [Cognito authentication  for server side authentication](https://webuxlab.com/tutorials/cognito-server-side) (en): Using Deno and Cognito User Pool
- [Prototype to setup cardano with Flutter](https://webuxlab.com/tutorials/flutter-cardano) (en): Prototype to setup cardano with Flutter
- [MVP to build a wallet mobile app with flutter](https://webuxlab.com/tutorials/flutter-cardano-part2) (en): MVP to build a wallet mobile app with flutter
- [Light and Dark Theme with Flutter](https://webuxlab.com/tutorials/flutter-theme) (en): Light and Dark Theme with Flutter
- [Fedora Workstation and Virtualization](https://webuxlab.com/tutorials/setup-fedora) (en): Fedora Workstation and Virtualization
- [AWS Cognito with Flutter](https://webuxlab.com/tutorials/flutter-cognito) (en): Mobile IOS with User Pool Authentication
- [Keycloak exploration](https://webuxlab.com/tutorials/attempt-to-document-keycloak) (en): Keycloak exploration
- [Nginx proxy + let's encrypt with Docker](https://webuxlab.com/tutorials/jwilder-docker) (en): docker compose to expose docker service with HTTP/S
- [Notes to use milkomeda](https://webuxlab.com/tutorials/cardano-milkomeda) (en): Notes to use milkomeda
- [Convert markdown document to pdf using tauri](https://webuxlab.com/tutorials/md-to-pdf-tauri) (en): Simple NodeJS Sidecar to convert MD to PDF
- [Epub to Kindle](https://webuxlab.com/tutorials/epub-to-kindle) (en): How to import epub to kindle
- [Javascript and a simple loading effect](https://webuxlab.com/tutorials/javascript-loading) (en): Javascript and a simple loading effect
- [Install and Setup DaisyUI with Phoenix Framework](https://webuxlab.com/tutorials/elixir-daisyui) (en): Elixir, tailwindcss
- [Install tortoise-tts on windows 10](https://webuxlab.com/tutorials/tortoise-tts-windows-10) (en): Install tortoise-tts on windows 10
- [Convert image to black or white (No Grey)](https://webuxlab.com/tutorials/convert-image-black-or-white) (en): Convert image to black or white (No Grey)
- [Instal GRBL 1.1 on Keyestudio KS0288](https://webuxlab.com/tutorials/cnc-grbl) (en): CNC GRBL
- [How to Setup Daisy UI with Vue 3](https://webuxlab.com/tutorials/how-to-setup-vue3-daisyui-tailwindcss) (en): Tailwindcss, typescript and tauri
- [Postgres Dump and Restore on MacOS](https://webuxlab.com/tutorials/pg-dump-macos) (en): Postgres Dump and Restore on MacOS
- [Docker Remote API](https://webuxlab.com/tutorials/portainer-mtls) (en): Portainer, Docker and mTLS
- [Serverless Offline](https://webuxlab.com/tutorials/sls-offline-dynamodb-sqs-s3) (en): With DynamoDB, S3 and SQS
- [Setup Zinc with Docker on Linux](https://webuxlab.com/tutorials/zinc-with-docker) (en): Small Bash Script to setup zinc quickly
- [Unity C# Auto comment using ///](https://webuxlab.com/tutorials/unity-visual-studio-code-auto-comment) (en): With VSCode
- [PS5 Controller with Linux, Windows 10 VM and parsec](https://webuxlab.com/tutorials/ps5-controller-linux) (en): USB-C or Bluetooth connections with PlayStation 5 controller
- [Use docker on a remote machine](https://webuxlab.com/tutorials/remote-docker-macos) (en): Setup a MacOs to access Docker on a remote machine
- [Configure WSL2 on Windows 10](https://webuxlab.com/tutorials/wsl2-ubuntu) (en/fr): Installing my toolkit on WSL2
- [Mac M1, Ionic, VueJS, SQLite and IOS Simulator](https://webuxlab.com/tutorials/ionic-vue-sqlite-ios-m1) (en): Use the XCode simulator with Ionic on Mac M1
- [Cypress & XHR response](https://webuxlab.com/tutorials/cypress-intercept-xhr) (en): Using VueJS, Amplify & Cognito
- [Cypress with VueJS and Amplify for Cognito User Pool](https://webuxlab.com/tutorials/cypress-amplify-vuejs) (en): Cypress with VueJS and Amplify for Cognito User Pool
- [Missing certificate on Macos with python 3.9](https://webuxlab.com/tutorials/ansible-python-certificate) (en): Missing certificate on Macos with python 3.9
- [Send email using a raspberry pi and SES](https://webuxlab.com/tutorials/raspberry-pi-smtp-ses) (en): Debian, exim and mailx
- [Install docker and docker-compose on raspbian](https://webuxlab.com/tutorials/simple-docker-raspbian) (en): Install docker and docker-compose on raspbian
- [Cognito User Pool, Vue 3 et amplify](https://webuxlab.com/tutorials/cognito-vuejs) (fr): Vuex, Bootstrap 5, Authorization Code Flow
- [Cognito avec le CLI de AWS](https://webuxlab.com/tutorials/cognito) (fr): Tester rapidement la création et confirmation d'un usager et une lambda
- [How to create an email alias with cpanel](https://webuxlab.com/tutorials/cpanel-email-alias) (en/fr): Simple way to use one primary email with multiple aliases
- [Install nmap with brew on MacOS](https://webuxlab.com/tutorials/brew-macos) (en/fr): Install nmap with brew on MacOS
- [Extraire le contenu de notes manuscrites](https://webuxlab.com/tutorials/tesseract-ocr) (fr): Utilisant le ML pour analyser l'image
- [Send a JSON message with an SNS](https://webuxlab.com/tutorials/sns-cli) (en/fr): Process the payload with a lambda
- [Convertir un vidéo en GIF](https://webuxlab.com/tutorials/video-to-gif) (fr): Avec FFmpeg
- [Récupérer le MD5 des fichiers](https://webuxlab.com/tutorials/get-md5) (fr): Pour détecter et compter les duplicates
- [Convertir un vidéo en images](https://webuxlab.com/tutorials/ffmpeg-to-image) (fr): Avec FFmpeg sur Linux
- [Erreur Codecs vidéo sur Firefox et Ubuntu 18.04](https://webuxlab.com/tutorials/ffmpeg-video-error) (fr): This video file cannot be played.(Error Code: 102630)
- [Erreur NodeJS avec node-gyp](https://webuxlab.com/tutorials/error-node-gyp) (fr): Sur Windows 10
- [NodeJS 15.14.0, Windows 10 et le module sharp](https://webuxlab.com/tutorials/sharp-nodejs-15-win10) (fr): Installer sharp sur windows 10 avec NodeJS 15
- [Déployez Terraforming Mars sur AWS avec Fargate](https://webuxlab.com/tutorials/terraforming-mars-aws) (fr): Déployer bafolts/terraforming-mars sur AWS
- [Lint ses fichiers CloudFormation avec VSCode](https://webuxlab.com/tutorials/cloudformation-lint) (fr): Installer `cfn-lint` et configurer son IDE
- [Installer `cncjs` sur Windows 10](https://webuxlab.com/tutorials/cnc-js-windows) (fr): Controller une CNC avec cncjs sur Windows 10
- [Configurer NPM pour installer des modules depuis Github](https://webuxlab.com/tutorials/github-repository) (fr): Installer des modules privés publiés sur Github
- [Expérimentation avec SAM CLI de AWS](https://webuxlab.com/tutorials/sam-cli) (fr): Utilisation du SAM CLI
- [Installer `zip` dans git bash sur Windows 10](https://webuxlab.com/tutorials/zip-git-bash) (fr): Installer la commande zip sur git bash
- [Git avec une autorité de certificat locale](https://webuxlab.com/tutorials/git-cacert) (fr): Staging et sécurité
- [NodeJS + Serveur SMTP](https://webuxlab.com/tutorials/nodejs-smtp-server) (fr): Projet NodeJS
- [Bloquer les sources dans CentOS 7](https://webuxlab.com/tutorials/bloquer-source-centos-7) (fr): Éviter un upgrade système par erreur
- [ESP32 avec ESPruino](https://webuxlab.com/tutorials/esp32-espruino) (fr): Projet électronique

## Security

- [Linux hardening](https://webuxlab.com/security/linux-hardening) (en): Basic Linux hardening on rocky linux
- [Network Ports](https://webuxlab.com/security/network-ports) (en): Commands to perform network verifications
- [OpenVAS avec Docker](https://webuxlab.com/security/openvas-docker) (fr): Installez OpenVAS avec Docker
- [TryHackMe - Vulnversity](https://webuxlab.com/security/challenge-vulnversity) (fr): Notes du CTF
- [Kali Linux](https://webuxlab.com/security/kali) (fr): Notes et cheatsheet
- [nmap](https://webuxlab.com/security/nmap) (fr): Notes et cheatsheet
- [OpenVAS](https://webuxlab.com/security/openvas) (fr): Scanner Open Source

## Devops

- [Preview Environments per PR with FluxCD, Gitea and Woodpecker CI](https://webuxlab.com/devops/preview-environment) (en): Spawn and tear down ephemeral environments on pull request events, served under a wildcard domain
- [Webux Pages: Self-Hosted Artifact and Static Site Hosting with Nginx and WebDAV](https://webuxlab.com/devops/webux-pages) (en): A single Nginx server to store build artifacts and serve static websites, secured with Basic Auth
- [Fedora 44 Throwaway-VM Bootstrap Script](https://webuxlab.com/devops/fedora-vm-bootstrap) (en): Idempotent setup for a gaming VM with Sunshine streaming + Firefox
- [Time Machine Backups to a Fedora NAS over SMB](https://webuxlab.com/devops/macos-nas-time-machine) (en): Turn a Fedora 40 box into a Time Capsule with Samba's fruit module
- [Lock Down Your Origin with Cloudflare IPs and firewalld](https://webuxlab.com/devops/cloudflare-firewalld) (en): Only Cloudflare reaches your server — everyone else gets dropped
- [Rollback Permission-Only Changes in Git](https://webuxlab.com/devops/git-rollback-permission-changes) (en): Stop committing accidental chmod noise
- [Backing Up a k3s Single Node](https://webuxlab.com/devops/k3s-single-node-backup) (en/fr): SQLite snapshot backup and restore for k3s
- [K3s on OVH Baremetal](https://webuxlab.com/devops/k3s) (en): Single-node K3s with hardening, VPN, and Traefik
- [Go App with OpenTelemetry on K3s](https://webuxlab.com/devops/k3s-golang-otel) (en): Traces, metrics, logs, and pprof profiling via OTLP
- [K3s Observability Stack](https://webuxlab.com/devops/k3s-monitoring) (en): Self-hosted LGTM + Prometheus + Pyroscope
- [K3s Private Docker Registry](https://webuxlab.com/devops/k3s-registry) (en): Self-hosted registry with htpasswd auth and Traefik TLS
- [Compile tmux on macOS](https://webuxlab.com/devops/tmux-compile-macos) (en/fr): Build from source with dependencies
- [tmux Project Launcher](https://webuxlab.com/devops/tmux-setup) (en/fr): Predefined window layouts per project
- [Setup Sunshine, Moonlight, Nvidia on Fedora 40](https://webuxlab.com/devops/sunshine-moonlight) (en): With or without physical display
- [Setup Ollama and Zed](https://webuxlab.com/devops/setup-ollama-zed) (en): Setup Ollama and Zed
- [Setup stable swarm on fedora using docker](https://webuxlab.com/devops/stable-swarm) (en): With NVIDIA GPU
- [Setup zed and deno](https://webuxlab.com/devops/zed-deno) (en): Setup zed editor to use deno and hono
- [Private local Cardano cluster](https://webuxlab.com/devops/cardano-private-cluster) (en): Experiment on private cardano cluster
- [Install docker on rocky linux](https://webuxlab.com/devops/docker-rocky-linux) (en): Install docker on rocky linux
- [Setup Github app with Jenkins](https://webuxlab.com/devops/github-app-jenkins) (en): Setup jenkins credentials
- [Setup Prometheus node_exporter on linux](https://webuxlab.com/devops/prometheus-node-exporter) (en): Setup Prometheus node_exporter on linux
- [Coredns with Docker](https://webuxlab.com/devops/coredns) (en): Simple local DNS Server using coredns and docker
- [Jenkins Docker in Docker](https://webuxlab.com/devops/jenkins-dind) (en): Custom docker jenkins image for dind
- [Changing Global Email in Git](https://webuxlab.com/devops/git-change-email) (en): a Step by Step Guide
- [Gitea and More !](https://webuxlab.com/devops/gitea-file-limit) (en): File Limit, SSH, Jwilder HTTPS and Docker
- [Linux Notes - Text-to-Speech with Bark](https://webuxlab.com/devops/bark) (en): Linux Notes - Text-to-Speech with Bark
- [Linux Notes - ramdisk](https://webuxlab.com/devops/ramdisk) (en): Linux Notes - ramdisk
- [mina-protocol using docker](https://webuxlab.com/devops/mina-protocol) (en): Testing block producer deployment
- [Monitoring Solution](https://webuxlab.com/devops/monitoring) (en): Prometheus, Grafana, Alert Manager, Open Observe
- [Cardano Notes](https://webuxlab.com/devops/cardano-notes) (en): Infrastructure Notes
- [Llama 2 Installation and Usage](https://webuxlab.com/devops/llama-2) (en): Llama 2 Installation and Usage
- [NodeJS Tools and Commands](https://webuxlab.com/devops/nodejs-tools) (en): My Day to Day commands to troubleshoot
- [Prometheus, Grafana, nvidi-smi, windows_exporter](https://webuxlab.com/devops/prometheus-grafana-smi) (en): Learning Path and experimentation
- [Terraform with libvirt](https://webuxlab.com/devops/terraform-virsh) (en): Experimenting with terraform to spawn VM using libvirt
- [Kubernetes Learning Path](https://webuxlab.com/devops/kubernetes-learning-path) (en): Kubernetes Learning Path
- [Generate Self Signed Certificate](https://webuxlab.com/devops/self-signed-certificate) (en): For local development
- [Simple Bash Script to cleanup CloudFlare entries](https://webuxlab.com/devops/cloudflare) (en): Simple Bash Script to cleanup CloudFlare entries
- [Simple Lambda to test the network connectivity](https://webuxlab.com/devops/lambda-test-network) (en): Using a private VPC and a NAT Gateway
- [What I think about when doing technical architecture as a DevOps](https://webuxlab.com/devops/projects-architecture) (en): What I think about when doing technical architecture as a DevOps
- [Self Hosted Object Storage](https://webuxlab.com/devops/seaweedfs) (en): With SeaweedFS
- [Troubleshoot Cardano with DB Sync and SMASH](https://webuxlab.com/devops/cardano-troubleshooting) (en): Troubleshoot Cardano with DB Sync and SMASH
- [NodeJS and Cognito Identity Pool](https://webuxlab.com/devops/cognito-identity-nodejs) (en): NodeJS with cognito identity pool (federated)
- [Serverless offline with offline SQS](https://webuxlab.com/devops/serverless-sqs-offline) (en): There are known limitations, here is how I "fixed" my issues
- [Ansible with conditional environment variables](https://webuxlab.com/devops/ansible-environment-variables) (en): How to add and remove environement variables with a set_fact
- [Kubernetes Notes](https://webuxlab.com/devops/kubernetes) (en): Kubernetes Notes
- [Cloudformation](https://webuxlab.com/devops/cloudformation) (en): Notes with AWS
- [Install Ansible on MacOS with python 3.9](https://webuxlab.com/devops/install-ansible) (en): Install ansible on MacOS with python 3.9
- [Github Deployment integrated with Jira using Codebuild/Codepipeline](https://webuxlab.com/devops/jira-github-codebuild) (en): Bash commands to quickly use codebuild with github api
- [Changer le mot de passe d'un usager jenkins avec docker](https://webuxlab.com/devops/jenkins-docker-password) (fr): Changer le mot de passe d'un usager jenkins avec docker
- [Assume role with AWS](https://webuxlab.com/devops/assume-role-aws) (en): Simple Script to open a subshell and assuming an AWS role
- [Lerna pour déployer seulement les changements](https://webuxlab.com/devops/lerna-monorepo-changes) (fr): Usage de lerna avec les lambdas
- [Ansible Vault](https://webuxlab.com/devops/ansible-vault) (fr): Utiliser Ansible Vault avec un playbook
- [Client Minio](https://webuxlab.com/devops/minio) (fr): commande avec mc
- [Création d'une image docker pour le pipeline](https://webuxlab.com/devops/codebuild-custom-docker) (fr): Exemple avec CodeBuild
- [Exporter le coverage sur codebuild avec Jest](https://webuxlab.com/devops/jest-coverage) (fr): Exporter le coverage sur codebuild avec Jest
- [Tester Sentry avec une requête cURL](https://webuxlab.com/devops/sentry-curl) (fr): Intégration avec cURL pour comprendre le fonctionnement
- [Github Actions](https://webuxlab.com/devops/github-actions) (fr): Configurer un pipeline avec Github
- [Plusieurs comptes AWS avec une organisation](https://webuxlab.com/devops/multi-account-and-organisation) (fr): Utiliser une organisation pour gérer plusieurs comptes AWS
- [Récupérer un user id dans AWS](https://webuxlab.com/devops/get-aws-userid) (fr): Trouver un aws:userid d'un usager avec le AWS CLI
- [Snippets](https://webuxlab.com/devops/snippets) (fr): Notes et Commandes
- [Jest JUnit](https://webuxlab.com/devops/jest-junit) (fr): Intégrer le reporter Junit avec Jest
- [Lerna](https://webuxlab.com/devops/lerna) (fr): Intégrer lerna à un projet NodeJS
- [Commit Lint](https://webuxlab.com/devops/commit-lint) (fr): Intégrer commit-lint à un projet NodeJS
- [Husky](https://webuxlab.com/devops/husky) (fr): Intégrer Husky à un projet NodeJS
- [Lint staged](https://webuxlab.com/devops/lint-staged) (fr): Intégrer lint-staged à un projet NodeJS
- [ESLint](https://webuxlab.com/devops/eslint) (fr): Intégrez ESLint à un projet NodeJS
- [Jest](https://webuxlab.com/devops/jest) (fr): Intégrez Jest à un projet NodeJS

## Cnc 3d Diy

- [Custom keyboard design notes](https://webuxlab.com/cnc-3d-diy/custom-keyboard) (en): Technical specifications for KS-33 & KS-9 fittings and high-detail text printing.
- [Measurements: 3D Printing Tolerances and CNC Feeds and Speeds](https://webuxlab.com/cnc-3d-diy/measurements) (en): Tested offsets for FreeCAD screws, threads and sliding fits, plus CNC settings for plywood
