Hello
Je mets en place une newsletter...
Pour moi, pour test, pour communiquer mes actualités
( en évitant des utilisateur.ices à me suivre sur de dangereux réseaux sociaux)
( ce qui est quand même possible par ici https://mamot.fr/@vincentb )
Et puis aussi parce que c'est un service qui m'est souvent demandé !
( on voudrait une alternative à Mailchimp et ses darkpaterns )
Des solutions "open" il en existe :
https://libreselfhosted.com/category/mailing-lists-and-newsletters
J'ai testé https://libreselfhosted.com/project/gray-duck-mail/
( sans grand succès )
J'ai finalement opté pour Listmonk
( qui, après quelques configurations fonctionne )
( envoie des mails, crée des listes et formulaires )
Editor
Seul problème/limitation, /VS/ Mailchimp, l'éditeur de code de Listmonk ...
... est très rustre/rudimentaire
( donc pas top pour du grand public qui ne code pas )
J'ai bien trouvé qui un buider "drag-n-drop" par "blocs"
- unlayer/vue-email-editor: Drag-n-Drop Email Editor Component for Vue.js
↳ https://github.com/unlayer/vue-email-editor?tab=readme-ov-file - vue-email-editor
↳ https://vue-email-editor-demo.netlify.app/
Mais je n'arrive pas à exporter le template en HTML/CSS...
( ce qui n'augure rien de bon )
Conclusion
En attendant Listmonk /VS/ Sympa vient avec de nombreuses solutions et une interface soignée ! En outre, on peut très bien se contenter d'un design sobre qui, de toute façon, une fois créé/mis en place, ne demandera pas tant de retouches/arrangements.
Il s'agit juste d'envoyer un mail habillé, quelques fonctions et liens magiques (dont lien de désinscription... que je ne cacherai pas en bas de page)
Comme toujours l'objectif aujourd'hui était de préparer l'outil
Son usage pouvant devenir urgent (dans un avenir proche) je suis rassuré de l'avoir sous la main !
Ranger / ordonner / classer / partager
ses documents ( pdf et autres formats )
instance https://pdf.vincent-bonnefille.fr
Pratique pour rassembler mes lectures
Partage (lien unique) intégré...
Mise à jour majeure de ma petite #raspberrypi
( sur laquelle une grande partie de mes sites tournent )
64bit pour du calcul plus rapide, il était temps !
même si j'étais dans une résistante pro lenteur...
je me confrontais à de trop nombreuses limites
( #Docker demande souvent de l'ARMel
= 64bit )
L'occasion de faire le ménage dans mes services
De réinstaller pas mal à la main, de vérifier mes acquis
Projet monté en #2020~ la remise à plat était bienvenue !
Bonne visites . Bonnes vacances . Bonne rentrée .
Chroot
- Permet d'accéder au contenu d'un système avec les ressources propres d'une autre machine
Je peux accéder à au système contenu sur une carte_SD ou disque dur... depuis mon terminal... sans avoir démarrer dessus (sur ces supports)... qui normalement sont branchés sur un autre ordinateur. - C'est très pratique (par exemple quand la machine en question ne démarre plus /ou/ comme ici, quand on veut apporter des modifications /ou/ accéder au contenu).
- Mais je n'y suis pas arrivé pour cette fois ... j'ai donc fais mes migrations avec
rsync
etsshfs
- J'ai finalement utilisé :
losetup
et ce petit alias : https://unix.stackexchange.com/a/430415 (pour monter mon img, retrouver mes fichiers : pas une emu/chroot...)
Les pistes ( VM/Docker/chroot ) :
-
Chroot to pi sd card
↳ https://gist.github.com/htruong/7df502fb60268eeee5bca21ef3e436eb -
[GUIDE] Build Debian image to run on Tab via chroot | XDA Forums
↳ https://xdaforums.com/t/guide-build-debian-image-to-run-on-tab-via-chroot.1172504/ -
Chroot into Raspberry Pi ARMv7 Image with Qemu on Linux
↳ https://docs.j7k6.org/raspberry-pi-chroot-armv7-qemu/ -
Comment "chroot" une raspbian sur son linux? [script] - tutox.fr
↳ https://tutox.fr/2020/01/08/comment-chroot-une-raspbian-sur-son-linux-script/ -
lukechilds/dockerpi: A Virtualised Raspberry Pi inside a Docker image
↳ https://github.com/lukechilds/dockerpi -
carlosperate/docker-qemu-rpi-os: Docker images with Raspberry Pi OS running on QEMU
↳ https://github.com/carlosperate/docker-qemu-rpi-os?tab=readme-ov-file -
Emulating Raspberry Pi 4 with Qemu
↳ https://gist.github.com/cGandom/23764ad5517c8ec1d7cd904b923ad863 -
Chroot into Raspberry Pi ARMv7 Image with Qemu
↳ https://gist.github.com/jkullick/9b02c2061fbdf4a6c4e8a78f1312a689
Si vous utilisez un VPN provider (fournisseur) alors faire passer l'intégralité de vos connexions via ce tunnel peut être intéressant.
KillSwitch
Il faut ensuite s'assurer que rien (aucun packet) n'en sorte
ET couper le courant si le VPN est OFF/éteint/injoignable
La plupart des VPN le proposent
On appelle ca un "KillSwitch"
Option VM / USB
Pour ma part je préfère encapsuler les applications que je veux voir passer uniquement via un VPN. Je pourrais utiliser un système embarqué sur clé USB (et amnésique) comme Tail.
Mais ca demande de redémarrer... donc non.
Je pourrais aussi lancer une VM (mais c'est lourd)
Gluetun
Alors je me suis dirigé vers des systèmes/applications isolées dans des containers (docker)
Gluetun permet de facilement configurer son VPN + de faire passer les connexions des autres docker via lui
APP_CONTAINER_1 / 2 / 3 ... ==> GLUTEN_CONTAINER network ==> Internet
Fournisseurs :
https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/
Exemple de containers / apps
Navigateurs
- https://docs.linuxserver.io/images/docker-mullvad-browser/
- https://docs.linuxserver.io/images/docker-firefox/
Tor
- kasmweb/tor-browser - Docker Image | Docker Hub
↳ https://hub.docker.com/r/kasmweb/tor-browser - DomiStyle/docker-tor-browser: Tor Browser (in a browser)
↳ https://github.com/DomiStyle/docker-tor-browser
VOPONO
Solution NON docker, intégré au system
https://github.com/jamesmcm/vopono/blob/master/USERGUIDE.md#custom-providers
BONUS
Openvpn sans sudo/privilleges
https://community.openvpn.net/openvpn/wiki/UnprivilegedUser
Docker acces via SSH
Objectif :
Simplifier le développement en accédant aux fichiers de mon container #Docker via SSH
( on ouvre le container comme dans un gestionnaire de fichier )
STORY (motivation)
J'installe un nouveau #Shaarli
( autour d'un #corpus élargi ) ( qui sera privé )
Je voudrais suivre la branche Master du projet Shaarli
( {ici} j'ai bifurqué pour ajouter quelles fonctionnalités )
( {ici} j'ai ajouté un champ pour l'aperçu illustrant chaque {bulle} )
( l'image à gauche... car parfois Shaarli n'en trouve pas dans la page/lien )
Ajout de champ
Dans la nouvelle version je veux ajouter le même champ
... en suivant la documentation : edit_link_plugin
En faisant mes propres recherches...
je m'aperçois que le plugin Démo nous montre la voie :
- https://github.com/shaarli/Shaarli/tree/master/plugins/demo_plugin
( après, intégrer par moi-même un field.champ n'avait pas été compliqué )
( la Démo nous montre comment l'ajouter + enregistrer -pas comment l'intégrer )
Bug
Malheureusement, dans la nouvelle version de #shaarli il y a un bug...
- https://github.com/shaarli/Shaarli/issues/2000
- https://github.com/shaarli/Shaarli/issues/1808 )
qui fait que l'ajout de champ + récupération des données ne marche pas...
( ... c'est bien la peine que je mette en place un accès à mon #Docker #SSH en local )
Docker
Du coup je repars sur une version Docker
Et pour faire ça (mes modifs / ajouts)..
je vais vouloir interagir avec le contenu de container de façon fluide.
. La technique "normale" consiste à récupérer un fichier dans le Container
. L'éditer
. et le remettre...
. . cela me semble fastidieux...
Du coup, j'ai envie de tester avec #SSH !
Pour cela le container doit faire tourner SSH
( et ses ports doivent être ouverts vers l'Host )
( Host = hôte = machine.ordi dans lequel est installé Docker qui contient le container)
( Ordi = Host > Docker > Container(s) > OS > Apps.services, ex: Shaarli )
Version courte
( open host -> docker )
sudo docker exec -it -u root DOCKER_NAME sh
( dans docker )
sleep 1
echo "--- Install stuffs"
apk update; apk add openssh-server
apk add openrc openssh
# opt
apk add --no-cache nano
apk add --no-cache bash
echo
echo "--- Generate SSH Keys" && sleep 3
mkdir -p /root/.ssh
chmod 0700 /root/.ssh
ssh-keygen -A
echo
echo "--- allow ROOT Authentification" && sleep 3
echo " " >> /etc/ssh/sshd_config
echo " " >> /etc/ssh/sshd_config
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "PermitEmptyPasswords yes" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
echo
sleep 1
echo "--- creat ROOT password"
passwd
echo "\n------- ALL CONFIGURED ==> reStart \n"
echo
echo "--- reSTART sshd, can be long" && sleep 3
rc-status
touch /run/openrc/softlevel
/etc/init.d/sshd restart
( ok, on exit du Docker_Container )
( on chope son IP, on s'y connecte en SSH )
echo "---- You can exit"
exit
echo "\n------- HOWTO CONNECT \n"
echo
echo "then get Container IP"
echo "D_NAME == Container Name"
echo "docker container inspect -f '{{ .NetworkSettings.Networks.shaarli_default.IPAddress }}' D_NAME"
echo
echo "---- Then connect"
ssh root@172.17.0.X -p 22
Marche à suivre (notes installation)
SOURCES
- https://dev.to/yakovlev_alexey/running-ssh-in-an-alpine-docker-container-3lop
- https://techoverflow.net/2021/05/17/how-to-enable-ssh-root-login-on-alpine-linux/
DOCKERFILE
( ex. instructions - shot version )
- https://gdevillele.github.io/engine/examples/running_ssh_service/
- https://stackoverflow.com/a/68302177
PORT forward
( Port SSH par défaut : 22 )
( Connexion Host -> Docker )
0.0.0.0:2222 22/tcp
! at dock creation
--publish 8800:80 --publish 2222:22
Go into Docker Container
( where to install ssh-serveur access )
( on pourra aussi créer un nouvel utilisateur non root )
docker exec -it -u root D_CONTAINER_NAME sh
INSTALL d'app/services via APK (Alpine)
apk update
apk add openssh-server
apk add openrc openssh
Optionnel
apk add nano
apk add bash
INIT CONFIG SSH
mkdir -p /root/.ssh
chmod 0700 /root/.sshssh-keygen -A
rc-status
touch /run/openrc/softlevel
/etc/init.d/sshd start
SET PWD (root)
passwd
passwd -u root # <- UNSET = null
Allow Host SSH->Container connexion
( default user is root )
( here we allow for root, not most secure )
( ... you can creat a new user if needed )
For Root user :
nano /etc/ssh/sshd_config
PermitRootLogin yes
authentification w/ pwd
PasswordAuthentication yes
PermitEmptyPasswords yes
... THEN on redémarre le service SSH
... pour qu'il fonctionne avec nos nouveaux paramètres
service sshd restart
CONNECTION
GET CONTEINER IP
( into docker > sh/bash )
ifconfig
( or outside, from host )
sudo docker container inspect shaarli_e2jk | grep -i IPAddress
( or )
docker container inspect -f '{{ .NetworkSettings.Networks.shaarli_default.IPAddress }}' D_NAME
FINALY : CONNECT
ssh root@172.21.0.2 -p 22
PASSWORD
AUTOreSTART - OPENRC
- https://docs.alpinelinux.org/user-handbook/0.1a/Working/openrc.html
- https://www.linuxtricks.fr/wiki/openrc-les-commandes-essentielles (FR)
- https://wiki.gentoo.org/wiki/OpenRC_to_systemd_Cheatsheet
- https://www.cyberciti.biz/faq/how-to-enable-and-start-services-on-alpine-linux/
ex
Status
service sshd status
Redémarrer
service sshd restart
-- auto-restart (on host restart)
( rc-update add <service> <runlevel> )
rc-update add sshd
( not working for me )
-> temp. solution
sudo docker restart D_NAME
sudo docker inspect D_NAME -f "{{json .NetworkSettings.Networks.bridge.IPAddress }}"
AUTRES PISTES
C to C
J'utilises aussi #Signal API
ntfy lets you send push notifications via scripts from any computer or phone. Made with ❤ by Philipp C. Heckel, Apache License 2.0, source at https:
Et voila, un outil pour prévenir mes utilisateurices.eurs d'un New content
( avec des notifications push )
Howto
2e tentative d'install,
Par défaut sans espace privé le web UI me posait pbl,
c'est chose résolue en fouillant dans :
https://docs.ntfy.sh/config/?h=ntfy_cache_duration#config-options
Full story
Succession de /Gotify/ que j'utilise depuis longtemps
https://liens.vincent-bonnefille.fr/?searchterm=ntfy
Plein de projets /portages !
Integrations + projects - ntfy
- https://ntfy.bonnebulle.xyz/docs/integrations/
( dont : )
ntfyd: ntfy desktop daemon - https://github.com/joachimschmidt557/ntfyd/tree/trunk
ntfy-browser: A ntfy browser extension - https://github.com/johman10/ntfy-browser
ntfy-electron: Electron wrapper for the ntfy web app - https://github.com/xdpirate/ntfy-electron
ntfyr: A simple commandline tool to send notifications to ntfy.sh - https://github.com/haxwithaxe/ntfyr
ntfy.sh.sh: 📟 run scripts on ntfy.sh events - ntfy.sh.sh - Codeberg.org
https://codeberg.org/zvava/ntfy.sh.sh
Un article de #@noted.lol https://noted.lol/self-hosted-roundup-34/
fait récemment le tour des #alternativeto :
/borg/ (souvent cité sur des sites.forums.blogs) me parait une bonne piste
: https://www.borgbackup.org/?ref=noted
Duplicati
Free backup software to store backups online with strong encryption. Works with FTP, SSH, WebDAV, OneDrive, Amazon S3, Google Drive and many others.
Faire des sauvegardes est mère de toutes les vertus !
Hacked ? Restore from last week Backup !
Est plutôt pensé pour de la sauvegarde de HDD en local, on peut faire monter le contenu d'un serveur (FTP) en local... et en copier le contenu.
installation ( docker )
MAIS ne prend en charge que les dossiers LOCAUX (pas FTP/SFTP/SSH)
(une honte !) Du coup, il faut monter son serveur distant en local(host)
...
DIRECT try...
FTP ( ncftp )
- https://www.filestash.app/ovh-ftp.html (*ndbp)
- https://nguoiquynhon.blogspot.com/2009/08/how-to-backup-to-ftp-with-ncftp.html
Monter le contenu d'un serveur ( curlftpfs + Fuse )
--> /!\ Buggy/Laggy #error_échec <--
Final use ( service.systemd : root ready )
-
https://github.com/systemd/systemd/issues/1053#issuecomment-921456374
-
https://linuxconfig.org/mount-remote-ftp-directory-host-locally-into-linux-filesystem ( détailed )
Using Curl profiles
Rclone
( ma solution de cœur, avec un GUI/WebGUI )
( ... but, it's not working with my hoster, cant figure out why )
( mon IP était... blacklistée ! trop de requêtes avec curlftpfs )
fonctionne avec moult protocoles / plateformes !
Après configuration ( rclone config )
Lister
rclone lsd conf_name:
rclone lsd conf_name:Path/to/folder
Sync ( du serveur -> localhost ) :
TESTS
rclone sync --interactive conf_name:Path/folder /local/folder/
rclone sync conf_name:Path/folder /local/folder/ --dry-run --verbose
GO
rclone sync conf_name:Path/folder /local/folder/ --verbose
*) /Filestash/ est pas mal pour se connecter depuis le web à un serveur !
( bon remplaçant de web2ftp ) --- avec une offre gratuite en self_host !
Complémentaire d'un /Filebrowser/
qui, lui, affiche vos dossiers locaux dans votre Navigateur !
( avec une authentification "normale" : non s.FTP )
--> Supprimer/déplacer/renommer (bien sûr)
--> Possibilité de liens de partage (mdp/non)
--> Upload (même gros fichiers)
Tuto source :
.filebrowser.json
{
"port": 80,
"baseURL": "",
"address": "",
"log": "stdout",
"database": "/database.db",
"root": "/srv"
}
Ma commande finale ( pour un user www-data )
docker run --name filebrowser -d \
-v /mon_dossier_racine/Fichiers/:/srv \
-v /mon_dossier_config/filebrowser.db:/database.db \
-v /mon_dossier_config/.filebrowser.json:/.filebrowser.json \
--user $(id -u www-data):$(id -g www-data) \
--restart=always \
-p PORTDISPO:80 \
filebrowser/filebrowser
https://hub.docker.com/r/filebrowser/filebrowser
https://github.com/filebrowser/filebrowser
Des Services web...
encore des #CHATONS
" Aurore est une association à but non lucratif gérée par des bénévoles étudiants de l'université Paris-Saclay. Nous nous efforçons de fournir une couverture Internet filaire et Wi-Fi très haut débit aux étudiants pour 50€ par an, ainsi que l'accès à de nombreux services Web. "
Proposent une ma fois bonne documentation #tuto
(par là que je les ai découvert.es)
" Documentation technique
Bienvenue sur la documentation technique d'Aurore.
Ce wiki est fait pour documenter tout ce qui fait partie de l'infrastructure technique (hardware et software) à Aurore. Il sert à s'autoformer et à avoir accès à toutes les informations concernant notre infrastructure rapidement et clairement "Au programme :
- Sites géographiques (Accès restreint) Sites où Aurore est implantée
- Serveurs Liste des serveurs d'Aurore et de leurs fonctions
- Services Liste des services d'Aurore
- Plan IP Les adresses IP d'Aurore et leurs répartitions
- VM Toutes les VM d'Aurore
- Monitoring Installation et utilisation Prometheus / Grafana
- Les VLAN Virtual Local Area Network
- VPN OVH Documentation du tunnel entre OVH et Saclay
- Les onduleurs Liste et documentation des onduleurs
- Bornes dans les chambres Bornes installées dans les chambres d'adhérents en résidence
- Reserve Proxy Nginx en tant que RP et un peu plus
- Ansible Système de configuration et de gestion de parc
- Liaisons optiques Les liaisons optiques utilisées par Aurore
Fait partie du réseau inter-universitaire :
https://federez.net
et aussi
https://viarezo.fr
https://www.rezel.net
Commenter le web de façon ouverte.
Joie d'un Web 2.0 surligné
avec https://hypothes.is
( plutôt que commenté en bas de page )
De nombreux outils + plugins / intégrations :
- https://web.hypothes.is/tools-plug-ins-and-integrations/
L'API permet d'afficher ailleur, d'exporter ( tel : ) - https://jonudell.info/h/
- https://jonudell.info/h/facet/
#maj #@2023
- J'ai finalement réussi à installer
Isso
( qui génère un espace commentaire sans tracking ) - testez #comments
- infos / tuto :
https://liens.vincent-bonnefille.fr/?vbm_vg
AJOUT : /Histre/ (alt)
Une alternative solide pour annoter le web (en couleurs)
On sent un projet +plus solide que @H, peut-être moins ouvert
( on peut exporter ses datas + API mais j'ai pas test )
On peut facilement créer des listes de liens/tags
Partager + Annoter
( le tout de façon automatique (+fluide), sans avoir à activer l'outil dans le navigateur à chaque fois/nouvelle page )
notes de retours (feedbacks)
Limites d'Hypothèsis
... par défaut un surlignage n'est pas en Public
... il faut ajouter un commentaire pour qu'il le soit
Et...
On peut créer des goupes (privés / publics)
<-- limitation générale
<-- par défaut, meme si on met l'annotation dans le group mondial "Public", l'annotation est par défaut visible uniquement par MOI... on perd un peu' l'intérêt de la chose. Pour passer un "public = visible" on doit annoter chaque surlignage... et passer sa visiblité en Public...
<-- source : https://web.hypothes.is/help/why-are-highlights-private-by-default/
... greate tool
- https://github.com/ravenscroftj/md-hypothesis-sync
... not easy API use - https://h.readthedocs.io/en/latest/api/authorization/
- https://h.readthedocs.io/en/latest/api/using-oauth/#registering-an-oauth-client
... installer /h/ #todo #Docker - https://github.com/hypothesis/h/issues/6014
- https://lyz-code.github.io/blue-book/linux/hypothesis/
- https://h.readthedocs.io/en/latest/developing/install/ #<3
Story
J'ai décidé de l'intégrer {{ici}}
J'utilise aussi...
Android
URL Forwarder
: add "via.hypothesis"
https://boffosocko.com/2020/05/24/a-hack-for-using-hypothes-is-to-annotate-on-mobile/
Web
Firefox
- https://addons.mozilla.org/fr/firefox/search/?q=Hypothes.is&sort=rating&type=extension
Chromium - https://chrome.google.com/webstore/detail/hypothesis-web-pdf-annota/bjfhmglciegochdpefhhlphglcehbmek?hl=fr
...
( si l'extension ne marche pas )
Userscripts ( add on any pages ) - https://gist.github.com/potter0815/10ebf62d9c94fd58228cf0a3ef0b1615
- https://gist.github.com/AFutureD/7a5674cd515ebb57db7ac5b5bff47049
CORS / SCP
Certains serveurs sécurisent le droit d'accès à leurs ressources...
Ainsi, un autre serveur (ou site / domain / service) n'y aura pas accès
: un point crutiale de #sécurité
. Mais un et limitation / fermeture qui empêche l'interaction libre
: ici, hyp. ne pourra pas s'intégrer ou récupérer des infos...
.! Mais on peut modifier l'entête d'une page web pour contourner sa politique restrictive
Cet article, 2) explique comment
Autres articles :
- https://web.hypothes.is/blog/integrating-hypothesis-using-ajax-and-cors/
- https://web.hypothes.is/help/overview-of-the-hypothesis-system/
Git
- https://github.com/hypothesis/bouncer
- https://github.com/hypothesis/pdf.js-hypothes.is
- https://github.com/hypothesis/facet
Commenter
( bas de page )
Alternatives à /Disqus/ =
- https://ourcodeworld.com/articles/read/1265/top-7-best-open-source-self-hosted-comment-system-alternatives-to-disqus
dont : https://supacomments.vercel.app
dont : https://isso-comments.de
--> installé ! https://liens.vincent-bonnefille.fr/?vbm_vg
Surligner
( comme sur Médium )
-- JS libraries
Annotations ( 2.0 : coments + highlight ) #todo
- https://www.cssscript.com/text-annotation-highlighting/
--> http://annotatorjs.org #<3 ( <- this )
"Who is using it?
More than a dozen projects rely on Annotator for their digital annotation needs and many are open source. A few noteables include Hypothes.is, edX, Annotation Studio, and Peer Library. Please checkout our showcase page for a more complete list. "
Surlignage ( sever_side )
Tufte : SideNotes
Une question similaire à celle des notes de bas de page...
mises en évidence sur le côte / bord du texte (dans la marge)
-->
En CSS ça donnerait
+
2 articles #<3
- https://www.gwern.net/Sidenotes
- https://www.arthurperret.fr/blog/2018-12-04-semantique-et-mise-en-forme.html
--> renvoie à un artil le sur Zotero / BibLatex + #pandoc + #md ( #tuto )
https://zotero.hypotheses.org/2258
An open-source, self-hosted memo hub with knowledge management and socialization.
Un espace d'écriture, prise de notes.
Interface claire, sobre ( distraction free,.. important )
L'idée ça serait de tenir un genre de journal de bord de thèse
Un espace où je jette des idées.
Où l'inspiration peut prendre.
Une instance à part.
Juste #écrire
Not Twitter.
- pas de limite de caractères
- une sociabilité choisie
( une instance peut accueillir des ami.e.s / auteurs.ices )
Not Git.
- mais on retrouve son outil emblématique de /tracking/ de #travail
( commit history ) je cherche de la routine, ça peut aider...
VIA : https://noted.lol/memos/
Android
ARMV7
#raspberrypi you can try :
https://github.com/usememos/memos/issues/770
32bit only
-> FAIL
docker buildx build --platform linux/arm/v7 -t mgschwandtner/memos-unofficial-testing:0.8.3 --push .
-> TRY
OK :)
https://memos.vincent-bonnefille.fr
#todo_done -> MàJ last version
+ export buit image -> Prod
## checkout release branch, e.g. 1.0.6
docker save [IMAGE] > memos.tar #building machine
Aidons d'autres Internautes à accéder à un #internet libre : non censuré / surveillé :
-
Créons des ponts (bridges) vers le réseau #Tor
: soyons des Snowflakes par millions ! -
Installez l'addon Firefox
-
Lisez l'article du Projet Tor :
https://snowflake.torproject.org
Instructions ( installation #Docker / service )
- https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/wikis/home ( + AUR )
: En #2022 un outil qui aide les populations persécutées par la guerre :
Iran, Ukraine, etc
Une VM (/quickemu/) MacOS avec #Docker
https://github.com/sickcodes/Docker-OSX
+ astuces add memory
-e RAM=8
source
+ ....
https://github.com/sickcodes/osx-optimizer
Tutos
-> Howto
https://github.com/sickcodes/Docker-OSX#additional-boot-instructions-for-when-you-are-creating-your-container
-> Tuto
https://dev.to/gombosg/running-macos-inside-linux-with-docker-osx-4e1i
+ Xcode + iOS simulator + SSH
https://dev.to/ianito/how-to-emulate-ios-on-linux-with-docker-4gj3
Android VM w/ /Quickemu/
. . .
Explications
Docker ≠ VM
. . . oui on peut installer un système dans un Docker...
. . . avec /Qemu/ .... qui virtualise le système OSx (VM)
. . . le Container va ici pré-configurer l'installation de /Qemu/
. . . et télécharger l'img du système
Alors c'est quoi la différence entre VM et Docker ?
VM = Virtual Machine
Chemin ( Linux /VS/ Docker Containers )
Á l'écriture de {cette} bulle je me mélangeais un peu les pinceaux,
je commençais tout juste à basculer vers #Docker
Au sein d'un même système Linux, sur ma Raspberrypi..
je comprends assez bien..
les interactions entre logiciels installés pêle-mêle
tous inter-dépendants / de vulnérabilités (allongeant la chaîne de risques).
ex/ de /Faker/ :
https://liens.vincent-bonnefille.fr/?-YFRMg
Les app installées pour qu'un site web fonctionne communiquent par des ports avec le reste du monde, le web !
Elles sont chargées simultanément, ce qui peut devenir compliqué à gérer.
Avec Docker, chaque application/projet démarre dans son propre système (linux) avec les variables et dépendances nécessaires à son déploiement/installation.., sans nécessairement avoir de relation avec les autres application/projet.
: les app sont séparées dans leur propre environnement
: des "Containers"
C'est + propre, + facile à mettre à jour...
Courbe d'apprentissage
Éviter #Docker dans ma phase d'apprentissage m'a permis de comprendre tout un spectre de problèmes inhérents à la mise en production (ex : port forward/ NAT.PAT ; d.dns ; loging et autres maintenances).
: Docker rend industrialisable un déploiement que j'ai eu le temps et plaisir de faire de façon artisanale !
Limites
Le fait que les Containers soient isolés rend parfois difficile la modification de leurs contenus.
On peut utiliser #SSH .. j'ai essayé de faire comme ca :
Si on veut bidouiller à l'intérieur, on se trouve embêter à chaque pull de mise à jour (de la part du développeur du logiciel). On est aussi limité avec des outils de base : comme on l'a dit, ces systèmes viennent souvent avec le minimum vital.
Monter des volumes -- comme si c'était un serveur distant -- pour travailler ses données avec les outils locaux -- habituels dans mon quotidien -- est compliqué.
- https://github.com/plesk/docker-fs est instable (Fuse se déconnecte)
- https://blog.px.dev/container-filesystems/
- https://martinheinz.dev/blog/44
... en recherche d'alternatives / solutions
... voir d'un alt. à Docker :
https://medium.com/nttlabs/containerd-and-lima-39e0b64d2a59
VM
Un container Ce n'est pas lourd comme une VM.
Petite video bien faite a ce sujet.
https://youtu.be/J0NuOlA2xDc
Une VM vient simuler l'intégralité des composants d'un ordinateur, une carte vidéo, une carte mère, son, un processeur, etc
L'application qui crée et lance la VM va démarrer un ordinateur dans votre ordinateur !
On prenait /Quemu/ et MacOSX en ex/ au début de cette {bulle}
{ Bulle } d'origine :::
Non VM
- https://alternativeto.net/software/distrobox/
- https://alternativeto.net/software/lxc-linux-containers/
( l'intérêt ici c'est d'avoir les avantages d'autres distributions sans l'imulation de tout un système -- mémoire / GPU / CPU == plus léger, intégrable, #linux first )
... me fait plus penser à de la virtualisation ou à https://www.dosbox.com !
... mais sans doute rien à voir ( je mets juste ici des pistes )
/VS/ VM
- https://github.com/quickemu-project/quickemu (dont MacOSX )
- https://www.osboxes.org/virtualbox-images/
- https://www.linuxvmimages.com (non testé)
- https://bitnami.com/stacks/virtual-machine
( dont env. MYSQL / LAMP + #Docker )
Remarque
De nombreux systèmes proposent des VM prêtes au téléchargement
Docker #GUI #linux
Pour une gestion #GUI j'ai test https://www.portainer.io
puis https://podman.io
( et https://podman-desktop.io )
. Il y aussi https://cockpit-project.org
. ( gestion #linux dans un Web #GUI .. )
. . ( intégration de /Podman/, #VM ... )
. Au sujet de #Docker / Podman
( / Kubernetes ), un article sur...
https://www.lemondeinformatique.fr
" Come on in and check out what's new in Self Hosted applications and stick around for the Homelab guides ! "
$ Des sites comme { ça }
$ d' #alternativeto on en trouve plein...
$ mais le design et degrès d'édition est différent
> ex : https://thewhale.cc
Un n'ieme site dédié à la config/install d'app auto-hébergées
... trouvé durant ma remise sur pied de /HedgeDoc ( ici )
https://liens.vincent-bonnefille.fr/?N9aC7g
"Le meilleur moyen d'écrire et partager votre savoir en markdown." HedgeDoc
--> Demo : https://demo.hedgedoc.org
Un nouveau petit "service" / #projet_perso en #self_host_hébergement
Pour remplacer vos frampad !
Une bonne #alternativeto aux google.docs et powerpoints...
L'occasion surtout de vous mettre à l'écriture #md_markdown
... Je voulais vérifier mes acquis de la veille au sujet de #Docker
... Merci linuxserver.io pour l'image Armhf
#raspberrypi et configs
MAJ
Après une perte de données ( inodes deffectueux ) j'ai décidé de tout reprendre à zerro
: de réinstaller "à la mano"
Objectif :
Refaire sans /Portainer qui, par design... invisibilise des process
: les GUI c'est youpi mais ça ne nous dit pas tout ( c'est moins verbeux )
/PostgreSQL plutôt que /MYSQL
Le premier charge la base depuis un fichier...
il est beaucoup plus facile à mettre en place !
L'intéret ici c'est qu'on lance les deux services d'afilée
: la base de donnée puis /HedgeDoc
Source :
https://github.com/linuxserver/docker-hedgedoc/issues/7
mixée avec
https://docs.linuxserver.io/images/docker-hedgedoc
CONFIG
On lance avec :
docker-compose up --remove-orphans
Dans le dossier contenant docker-compose.yml
:
--
version: "2.1"
services:
database:
image: postgres:latest
container_name: hedgedoc_db
restart: unless-stopped
volumes:
- <PATH>/data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=hedgedoc
- POSTGRES_DB=hedgedoc
- POSTGRES_PASSWORD=<PASSWORD>
hedgedoc:
image: lscr.io/linuxserver/hedgedoc:latest
container_name: hedgedoc
environment:
- PUID=1000
- PGID=1000
- CMD_DB_URL=postgres://hedgedoc:<PASSWORD>@hedgedoc_db:5432/hedgedoc
- TZ=Europe/Paris
- CMD_DOMAIN=<HOST>
- CMD_URL_ADDPORT=false
- CMD_PROTOCOL_USESSL=true
- CMD_PORT=3999 #optional
- CMD_ALLOW_ORIGIN=['localhost','<IP_ALT>','<HOST>']
volumes:
- <PATH>:/config
ports:
- 3999:3999
restart: unless-stopped
NOTES
- Mon domaine = <HOST>
pad.vincent-bonnefille.fr
( à remplacer ) - Mon Volume (chemin d'accès) = <PATH> ( idem )
- On peut autoriser certains domaines à afficher les contenus
.... utilise si on dev' ( ex: <IP_ALT> ) - NB : J'uitilise le port
3999
(3000
est pris par #nodejs )
AJOUTS
J'ai aussi ajouté une connexion avec l'API de /Github + /Nexcloud
NB: pour github j'ai du ajouter ( Source ) :
CMD_URL_ADDPORT=false
CMD_PROTOCOL_USESSL=true
( sinon j'avais un "mismatch" d'URL de /callback/ )
Et une un "code/id" de session
( pour reprendre après reboot )
CMD_SESSION_SECRET
RESSOURCES
- Postg / mysql / service / tips ( <3 ) :
https://deleteonerror.com/2021/04/how-to-install-hedgedoc/ - Doc Officielles, config options
https://docs.hedgedoc.org/configuration/
/Bitwarden/ un gestionnaire de mots de passes que j'utilise depuis longtemps...
suite au rachat de /LastPass/ . BW est Multi-platforme j'utilise aussi leur #cli_bash ici
L'occasion pour moi d'une petite prise en main de #Docker avec l'interface #GUI :
Portainer ( #GUI : +facile à configurer qu'en ligne de #cli_bash ... {tuto intégré}
( Depuis, j'ai aussi découvert https://podman-desktop.io )
( série #.bib_perso )
Comme annoncé précédemment (dans une bulle sur les bib. en ligne et meta.moteurs de recherche)... j'ai finalement mis en place une bibliothèque numérique (de mes lectures passées et à venir) dans le but de consolider ma bibliographie. ( et plus largement ma bib.liothèque )
Je vais regrouper {{ici}} les {bulles} contenant des ref' avec le tag :: #.bib
Calibre
-
J'utilise l'interface calibre-web ( pour lire+afficher+admin+custo côté server )
https://github.com/janeczku/calibre-web ( #calibre_web ) -
et le thème intégré
Caliblur
https://github.com/leram84/layer.Cake/tree/master/caliBlur
... au final non. Je préfère celui de base
-- > à noter : un #Docker existe (ARMv7 ok) : linuxserver.io
Un autre tuto en français avec Docker
avec une connexion à distance
->
J'ai finalement installé via pip
+ virtual env
- calibreweb · PyPI
↳ https://pypi.org/project/calibreweb/ - Manuel Installation · janeczku/calibre-web Wiki
↳ https://github.com/janeczku/calibre-web/wiki/Manual-installation
Suite à une Maj
j'ai perdu une partie de mon design basé sur /Caliblur/...#error : Ok, dommage colatéral...
mais, au final, le design sans Caliblur me plait +plus
=> Une seule page, livres ouverts dans un popup
=> ( plutôt que de charger une fiche par livre )
#error => Un mal pour un bien
. . .
et un autre tuto ici
ya aussi kavita reader
Alternatives à Calibre
Découvert via
le post y oppose quelques critiques, limites, vulnérabilités..
et, en alternative à /Calibre/ propose
↳ https://sigil-ebook.com/sigil/guide/
↳ https://gitlab.com/trantor/trantor
↳ ( https://trantor.is - Trantor (also known as Galactic Library) )
↳ https://git.autistici.org/ale/liber )
voir aussi
Un thème sombre/clair (en fonction de vos options de navigateur/OS)
À retrouver aussi via Tor :
http://u3kfftpqmmrqpslbye2rcwy2doxasqly2sjirxdggslkbth6jmdqh7yd.onion
Voir aussi :
https://liens.vincent-bonnefille.fr/?tRbejw ( détails et explication .onion / DNS )
Et la {bulle} sur les bibliothèques des l'ombre :
↳ https://liens.vincent-bonnefille.fr/?gxOl0A
( + tag = #bibliothèque_librairie et #.bib )
Push
Cet outil sert à notifier d'un incident, à faire de la #veille sur une activité spécifique.
Ce n'est pas une messagerie mais plutôt de feedbacks programmables.
https://push.vincent-bonnefille.fr
MAJ
( pour un usage public avec comptes/users + mutli cannaux + plateformes )
https://ntfy.vincent-bonnefille.fr/
Une alternative :)
https://ntfy.sh
https://ntfy.readthedocs.io/en/latest
( found via https://alternativeto.net/software/gotify/about/ ) #alternativeto
Mais on est sur du push !
Le serveur qui gère les abonnements est maître, c'est lui qui envoie !
Gotify est pensé sur le même model.
une multiplication des protocoles/app/canaux qui pose problème, le projet https://unifiedpush.org tache de répondre à cette diversité ( unifiée grâce à #Fédivers )
Concept, principe général ( Gotify )
Un serveur (écrit en Go) centralise des messages envoyés entre des clients (d'autres machines / écrans) qui connaissent son adresse (au serveur) (ici push.vin... mais ça peut être une adresse IP).
Ces clients interrogent courament ce serveur de micro messagerie pour s'actualiser, savoir s'il ya de nouveaux messages...
Serveur et clients peuvent ainsi s'envoyer des messages courts, des "pushs" / notifications entre eux #p2p !
Le serveur vérifie que les clients destinataires sont autorisés (par un /token.jetton/ ou /login.connexion/ renseigné au préalable).
La base de donnés se fait du côté du serveur.
Va me servir...
- pour ma #veille admin (les #log quotidiens, rapport de plantages)
- de façon domestique (avec mes proches) de messagerie multi-canaux
. #chat_conversation
Libre de source
Le tout en open-source, multi-plateforme...
https://www.linux-magazine.com/Issues/2020/230/Gotify
https://www.scrample.xyz/gotify-service-de-notifications/
https://gotify.net/docs/install
Autre avantages
. On peut ajouter autant d'utilisateur.ice qu'on veut
. et de "canaux" / "chaine" / "salon" thématiques...
. Un plus+ par rapport à des services comme /Pushbullet/ #alternativto
. . API est hyper basique
. . Le fichier config permet facilement d'intégrer des certificats SSL (HTTPS)
Compatibilité
On trouve des clients (applications d'envoi et consultation)
sur Android / iOS / #Firefox / Chrome ...
: . . firefox oui, avec un seul canal-serveur
: . . Android on peut envoyer depuis l'UI
: . . iOS Non
Limites
Les "applications-interfaces" d'envoi sont fondamentalement.
Chacun de ces "terminaux" se voit attribué un ID client
Ce qui est Bizarre.pénible quand même c'est de ne pas pouvoir envoyer depuis l'UI (web.User.Interface) du serveur... qui gêre l'admin.users , canaux.tokens , affiche les messages , voit tout mais reste muet.
Lui donner la parole ça rendrait compatible sur tout écran...
(à tester, ajout d'un broadcast). . .
Cela oblige à installer des clients.UI.apps pour envoyer des push.messages...
Installation
Léger, (très) facile à installer / lancer / configurer
J'ai essayé avec #Docker
(mais c'est pas trop mon truc)
(ca cloisonne par environnements)
J'ai préféré un /reverse-proxy/ avec #Nginx !
La suite
https://github.com/atareao/gotify-indicator ( cool intégration #linux )
https://github.com/gotify/contrib - index
https://github.com/eternal-flame-AD/gotify-broadcast - #todo_done (:
https://github.com/schwma/gotify-push - PIP
https://awesomeopensource.com/project/gotify/cli - #cli_bash
https://teddit.ggc-project.de/r/selfhosted/comments/pv3sa5/how_do_you_use_gotify/
https://www.scrample.xyz/gotify-service-de-notifications/