An extensive and up-to-date collection of beautifully formatted man pages.
Man : Manuel
( les instructions affichées pour aider à utiliser un log.app.cmd )
Voir aussi
Liste d'antisèches #cheatsheet ( dont Commande not found)
Apprendre à utiliser un terminal
( via une petite histoire relationelle )
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
restaurer son pad trop gros
Je m'en suis finalement tiré en trifouillant le settings.json
...
j'ai illimité la taille d'upload + le temps de requête max...
et tout remis après pour éviter une DDOS ;)
Tools
( pas testés ) ( ressources / tools )
- https://pypi.org/project/etherpump/
- https://github.com/ether/ep_post_data
- https://github.com/redhog/ep_copypad
API
-> https://etherpad.org/doc/v1.6.0/#index_api_methods
-> https://github.com/ether/etherpad-lite/blob/develop/doc/api/http_api.md
list pads
curl "http://0.0.0.0:PORT/api/1.2.13/listAllPads?apikey=SECRETAPI&padID=PADNAME&rev=NUMERO
restaurer version ( restoreRevision )
( pratique pour un pad de démo restauré à 1h du mat )
curl "http://0.0.0.0:PORT/api/1.2.13/restoreRevision?apikey=SECRETAPI&padID=PADNAME&rev=NUMERO
(source)
supprimer ( deletePad )
curl "http://0.0.0.0:PORT/api/1.2.13/deletePad?apikey=SECRETAPI&padID=PADNAME&rev=NUMERO
( ... )
API + Mojo ( Perl )
NB:
- https://metacpan.org/pod/Etherpad
- https://metacpan.org/pod/Etherpad#get_html
- https://metacpan.org/pod/Etherpad#send_clients_message
- https://metacpan.org/pod/Etherpad#get_revisions_count
- https://metacpan.org/pod/Etherpad#restore_revision
use Etherpad; my $ec = Etherpad->new( url => 'http://0.0.0.0:PORT', apikey => 'SECRET', user => 'USER', password => 'PWD', proxy => { http => 'http://0.0.0.0:PORT', https => 'http://0.0.0.0:PORT' } ); $ec->restore_revision('new_pad_name', NUMBER);
- https://metacpan.org/pod/Etherpad#restore_revision
- https://metacpan.org/pod/Etherpad#copy_pad
\#!/usr/bin/perl -w use Etherpad; # # my $ec = Etherpad->new( url => 'http://0.0.0.0:PORT', apikey => 'SECRET', user => 'USER', password => 'PWD', proxy => { http => 'http://0.0.0.0:PORT', https => 'http://0.0.0.0:PORT' } ); # # # # # OUTPUT Arguments (optional) my $total = $#ARGV + 1; my $counter = 1; # # # INPUT + OUTPUT (arguments needed) if($total != 2){ print("2 arguments please..."); print("\n1. old pad name"); print("\n2. new pad name"); exit; } # # # OUTPUT Arguments (print) # Use loop to print all args stored in an array called @ARGV foreach my $a(@ARGV) { print "Arg # $counter : $a\n"; $counter++; } # # # GET 1. and 2. argument my $oldname = $ARGV[0]; my $newname = $ARGV[1]; # Execution $ec->copy_pad($oldname, $newname);
- https://metacpan.org/pod/Etherpad#move_pad