Aller au contenu

Blog

Savoir si votre site est en ligne avec Upptime & Github action

Introduction

Upptime est petit outil opensource qui va permettre de regarder si son site est en ligne avec des github action.

L’idée est d’avoir un petit dashboard extérieur à son serveur pour connaitre l’état de son site, recevoir des alertes et indiquer le status du site à d’autres utilisateurs.

Exemple avec mon blog : https://upptime.callot.fr/

Installation

Rendez vous sur le Github d’Upptime pour utiliser la template du repo.

Cliquer sur “use this template” :

Créer un repo public avec un nom et cocher la case pour inclure toutes les branches (nous aurons besoin d’autres branches du repo) :

Une fois le nouveau repo crée, allez dans les paramètres de celui-ci.

Dans la section “pages” choisir la branche “gh-pages” et le dossier “root”.

Vous pouvez rajouter un domaine personnalisé, mais n’oubliez pas d’autorisé auprès de votre fournisseur de DNS.  

Upptime va avoir besoin d’accéder à l’api de github pour cela, on va donc générer un token d’accès pour cela :

Cliquez sur votre photo de profil dans le coin supérieur droit et sélectionnez “settings”, puis dans la barre latérale gauche, sélectionnez “developper settings” Dans la barre latérale de gauche, cliquez sur “Personnal acces token”. Cliquez sur “generate new token”. Sélectionner les scopes “repo” et “workflow” et enfin cliquez sur “Générer un jeton”.

Dans la section security>secret configurer un nouveau secret appelé GH_PAT et ajouter le token crée précédement :

Ensuite passons à l’étape la plus interressante, la configuration, dans cette exemple je vais prendre la configuration de mon repo :

# Change these first
owner: FRE3X # Your GitHub organization or username, where this repository lives
repo: upptime-blog # The name of this repository
sites:
- name: blog.callot.fr
url: https://blog.callot.fr/
status-website:
# Add your custom domain name, or remove the `cname` line if you don't have a domain
# Uncomment the `baseUrl` line if you don't have a custom domain and add your repo name there
cname: upptime.callot.fr
#baseUrl: /upptime-blog
logoUrl: https://raw.githubusercontent.com/upptime/upptime.js.org/master/static/img/icon.svg
name: Upptime
introTitle: "**Upptime** is the open-source uptime monitor and status page, powered entirely by GitHub."
introMessage: This is a sample status page
navbar:
- title: Status
href: /

Il faut bien sûr modifier le nom et l’url. Vous pouvez également changer la description dans “introTitle”. Le cname va permettre d’avoir un domaine personnalisé comme vu plus haut.

Upptime va bien au delà est permet de faire des notifications mail, slack ou encore telegram. Je ferai un autre article quand j’aurai également testé cela.

Amusez-vous bien !

Sources

Étiquettes :

PIMP MY SHELL #1 > POWERSHELL & Oh-my-posh (Windows)

Introduction

Dans cette série de tutoriel, je vais vous expliquer comment j’ai personnalisé mon shell. Dans le cas présent sur mon PC sous Windows. Histoire d’avoir un jolie terminal pour travailler 😀.

Voici le résultat :

Tout d’abord on va installer NerdFont, celui-ci va vous permettre d’avoir de jolie font (bien lisible) pour votre shell mais aussi la gestion de plus de 3000 icones.

Le “Windows terminal”

Sous Windows 11 j’utilise le “windows terminal”.

Voici ma configuration :

Pour installer “CaskaydiaCove Nerd Font” qui est le font que j’utilise c’est avec NerdFonts et c’est ici.

Configuration et installation

Installation de scoop. Scoop est un gestionnaires de paquet sur windows, il y en a bien d’autres comme chocolatey. Il va notamment nous permettre d’installer oh-my-posh.

Installation de scoop :

Fenêtre de terminal
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('<https://get.scoop.sh>') # or shorter iwr -useb get.scoop.sh | iex

Si vous avez une erreur lors de l’exécution :

Fenêtre de terminal
Set-ExecutionPolicy RemoteSigned -scope CurrentUser

Tester :

Fenêtre de terminal
scoop install curl

Installer git avec scoop :

Fenêtre de terminal
scoop install git

Puis installer oh-my-posh qui va permettre de personnalisé le shell :

Fenêtre de terminal
scoop install oh-my-posh

Savoir où se trouve le profile powershell :

Fenêtre de terminal
echo $PROFILE

Dans mon cas :

Fenêtre de terminal
C:\\Users\\fre3x\\Documents\\WindowsPowerShell\\Microsoft.PowerShell_profile.ps1

Ensuite modifier le fichier avec votre éditeur préférer (vim pour moi) :

Fenêtre de terminal
vi C:\\Users\\fre3x\\Documents\\WindowsPowerShell\\Microsoft.PowerShell_profile.ps1

Ajouter les lignes suivantes :

Fenêtre de terminal
Import-Module oh-my-posh oh-my-posh --init --shell pwsh --config ~/jandedobbeleer.omp.json | Invoke-Expression

Lancer ensuite un nouveau terminal, on progresse :

Pour plus de personnalisation on peut récupérer plus de thèmes :

Fenêtre de terminal
Get-PoshThemes

Vous pouvez retrouver plus de thèmes ici.

On peut ensuite appliquer un thème en modifiant le fichier de configuration :

Fenêtre de terminal
Import-Module oh-my-posh Set-PoshPrompt -Theme mojada

Dans cette exemple :

Voilà un jolie shell sur Windows tout simplement 😀.

Sources

Étiquettes :

Augmenter la vitesse du curseur dans un terminal sous mac

Introduction

Une des choses qui me fait littéralement “crisé” sous mac est la lenteur du curseur dans un terminal. Quand vous avez un texte à reprendre dans votre éditeur préféré ou une commande dans votre terminal que vous copiez/collez et que vous souhaitez modifier, c’est très relou d’attendre le curseur, voici la solution :

Dans préférence > clavier

Personnellement je règle tout à fond.

Sinon, dans un terminal vous pouvez utiliser la commande :

defaults write NSGlobalDomain KeyRepeat -int 0

Un script pour la conversion de word vers pdf en masse

Introduction

En essayant de trouver une solution simple pour convertir des word en .pdf en masse sous Windows j’ai trouvé ceci :

'Convert .doc or .docx to .pdf files via Send To menu
Set fso = CreateObject("Scripting.FileSystemObject")
For i= 0 To WScript.Arguments.Count -1
docPath = WScript.Arguments(i)
docPath = fso.GetAbsolutePathName(docPath)
If LCase(Right(docPath, 4)) = ".doc" Or LCase(Right(docPath, 5)) = ".docx" Then
Set objWord = CreateObject("Word.Application")
pdfPath = fso.GetParentFolderName(docPath) &amp; "\\" &amp; _
fso.GetBaseName(docpath) &amp; ".pdf"
objWord.Visible = False
Set objDoc = objWord.documents.open(docPath)
objDoc.saveas pdfPath, 17
objDoc.Close
objWord.Quit
End If
Next

Ce script VB, permet de simplement convertir des word en pdf en appellant une fonction de Word.

Il faut d’abord enregistrer le code en .vbs pour que le script s’exécute :

Vous pouvez ensuite créer une fonction pour le clique droit en enregistrant le script doc2pdf.vbs dans le répertoire suivant (remplacer username par le nom de votre utilisateur) :

C:\Users\%username%\AppData\Roaming\Microsoft\Windows\SendTo

Si vous faites à présent clique droit > Envoyer vers vous aurez à présent le raccourcie doc2pdf.vbs de présent :

Voilà ;)

Installation et sauvegarde de ghost CMS

Commençons par le début : Ghost est un CMS dédié au blog. Il est open source, trés simple d’utilisation et dispose de plein de fonction sympa. C’est ce que j’utilise pour ce blog. Je vais reprendre une parti de la documentation sur le sujet très bien faite.

Installation

Crée un utilisateur dédié (ne pas utiliser l’utilisateur ghost):

Fenêtre de terminal
# exemple ghostuser
adduser ghostuser
# ajouter au super user
usermod -aG sudo ghostuser
# Then log in as the new user
su - ghostuser

Installation Nginx :

Fenêtre de terminal
sudo apt install nginx

Installation de Mysql :

Fenêtre de terminal
sudo apt install mariadb-server

Connexion à Mysql :

Fenêtre de terminal
sudo mysql

Changer le mot de passe root de mysql en vous connectant à mysql :

Fenêtre de terminal
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NouveauMotDePasse');

Créer un utilisateur ghostuser et une BDD dédié au site, ici appellé ghost pour l’exemple. Ensuite lui donner les droits sur la BDD.

GRANT USAGE ON *.* TO 'ghostuser'@localhost IDENTIFIED BY 'mypassword';
CREATE DATABASE ghost;
GRANT ALL privileges ON `ghost`.* TO 'ghostuser'@localhost;

Installer NodeJS :

Fenêtre de terminal
curl -sL <https://deb.nodesource.com/setup_14.x> | sudo -E bash
sudo apt-get install -y nodejs

Installation de Ghost CLI (ghost CLI va permettre de simplifier l’installation) :

Fenêtre de terminal
sudo npm install ghost-cli@latest -g

Création du dossier du site internet :

Fenêtre de terminal
# creation du dossier pour le site
sudo mkdir -p /var/www/sitename
# on donne les doits a l'utilsateur ghost
sudo chown ghostuser:ghostuser /var/www/sitename
# les permissions
sudo chmod 775 /var/www/sitename
# on va dans le dossier
cd /var/www/sitename

L’avantage est que ghost-cli simplifie bien le processus.

Lancer le processus de lancement automatisé de ghost (avec l’utilisateur ghost) :

Fenêtre de terminal
ghost install

En cas de second site ?

Se connecter à mariadb puis refaire une base de donnée :

Fenêtre de terminal
CREATE DATABASE mondeuxiemesite;
GRANT ALL privileges ON `mondeuxiemesite`.* TO 'ghostuser'@localhost;

Refaire une installation avec :

Fenêtre de terminal
ghost install

Suivre les étapes, mais ne pas lancer tout de suite ghost, il faut modifier la conf nginx et modifier les ports :

Fenêtre de terminal
sudo vim /etc/nginx/sites-available/mon-deuxième-site.fr.conf
sudo vim /etc/nginx/sites-available/la-migraine-et-moi.fr-ssl.conf

Toujours une sauvegarde

Création de l’utilisateur de backup :

GRANT USAGE ON *.* TO 'backup'@localhost IDENTIFIED BY 'mypassword';
GRANT ALL privileges ON `backup`.* TO 'ghost'@localhost;
FLUSH PRIVILEGES;

Création du fichier .cnf avec les logins de l’utilisateur :

Fenêtre de terminal
vi ~/.my.cnf
Fenêtre de terminal
[client]
user=backup
password="###"

Changement des droits sur le fichier :

Fenêtre de terminal
chmod 600 ~/.my.cnf
#!/bin/bash
now=$(date +'%Y-%m-%d_%H-%M')
echo "Making backup folder for $now"
mkdir "/home/mon_utilisateur/Backups/ghost/$now"
echo "Saving ghost_prod Database Backup $now"
mysqldump ghost | gzip > "/home/mon_utilisateur/Backups/ghost/$now/ghost_prod.sql.gz"
echo "Compressing content folder"
tar -zcvf "/home/mon_utilisateur/Backups/ghost/$now/content.tar.gz" --absolute-names /var/www/mon_blog/content/ > /dev/null
# supprimer les backups au dela de 7 jours
find /home/mon_utilisateur/Backups/ghost -mtime +6 -exec rm -r "{}" \\;

Ajout du cronjob :

Fenêtre de terminal
crontab -e

Activation tous les jours :

Fenêtre de terminal
0 0 * * * /home/(USER)/Backups/backup.sh

Ensuite il suffit de récupérer le dossier de backup avec un rsync ou un scp.

La cli de ghost permet également d’autres chose comme :

Fenêtre de terminal
ghost update # mettre à jour ghost
ghost restart # redemarer ghost