416 links
  • Johndescs's mini-recording
  • Home
  • Login
  • RSS Feed
  • ATOM Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 1 / 8
158 results tagged adminsys x
  • thumbnail
    Reusing ssh session for repeated rsync commands - Johndescs's mini-recording

    Attention : si on modifie la commande forcée liée à la clef SSH (command=) utilisée pour la connexion ControlMaster, il faut relancer la connexion, le fichier n'est pas relu.

    June 3, 2021 at 15:11:40 GMT+2 * - permalink -
    QRCode
    - https://jonathan.michalon.eu/shaarli/shaare/Auq5bg
    adminsys réseau
  • Can socat be started directly by systemd?

    Ne pas oublier que pour un service systemd, stdin est /dev/null… sinon on peut passer du temps de debug bizarre au moment où on veut passer un script en service systemd… ici socat, qui y est très sensible puisque c'est son seul taff (de gérer des flux).

    June 3, 2021 at 15:02:16 GMT+2 * - permalink -
    QRCode
    - https://unix.stackexchange.com/questions/218407/can-socat-be-started-directly-by-systemd/218597#218597
    réseau unix systemd adminsys
  • thumbnail
    Reusing ssh session for repeated rsync commands

    Ho sympa ça, l'implémentation OpenSSH permet de créer une connexion persistante "ControlMaster" qu'on pourra utiliser par la suite pour aller taper régulièrement sur un serveur sans à chaque fois refaire la connexion à zéro (et donc spammer les logs, manger la latence etc.).

    Lancée via autossh, on a donc une sorte de connexion permanente et qui doit être résiliente en cas de coupure (volontaire ou panne).

    May 31, 2021 at 21:29:15 GMT+2 * - permalink -
    QRCode
    - https://unix.stackexchange.com/questions/50508/reusing-ssh-session-for-repeated-rsync-commands
    adminsys réseau
  • Bandwidth: a memory bandwidth benchmark

    Petit outil d'estimation de la bande passante CPU⇔RAM, avec cœur écrit en assembleur directement (pour s'assurer d'avoir toujours le même code).
    Nous allions changer de RAM sur une machine et passer de 2133 à 2666 MHz, du coup j'ai cherché et testé cet outil pour voir s'il y avait réellement une différence.
    Il y en a une légère, de l'ordre du Go/s en brut… mais les tests de memset/memcpy, eux, n'ont pas vraiment montré de changement significatif.
    En tous cas, petit outil simple et facile à utiliser, qui sait même générer quelques graphs en fonction du test et de la taille des échantillons.

    February 18, 2021 at 15:10:52 GMT+1 * - permalink -
    QRCode
    - https://zsmith.co/bandwidth.php
    adminsys hardware
  • Example of BMC Configuration Using IPMItool

    Quand tu as une BMC, il peut être parfois compliqué de lui causer depuis le système hôte. Sauf que se connecter à l'interface web c'est pas toujours pratique non-plus. Et SSH peut être en carafe ou pas configuré.
    Il y a une norme IPMI pour cela. Des fois ça marche, des fois ça marche pas. Ce qui est à noter c'est que sur des carte mères presque grand public (les Asrock Rack X470D4U) ça fonctionne directement, avec le module mainline Linux 5.4 sans avoir rien besoin de faire (d'autre qu'installer un outil pour lui parler comme ipmitool). La plupart des fonctions sont OK comme changer l'IP par exemple ou voir les sensors directement. C'est cool \o/

    January 18, 2021 at 16:40:50 GMT+1 * - permalink -
    QRCode
    - https://docs.oracle.com/en/database/oracle/oracle-database/18/cwaix/example-of-bmc-configuration-using-ipmitool.html#GUID-11E563E0-3688-4FE9-8440-81402A7AC23A
    adminsys
  • QEMU/KVM ACPI Guest Shutdown - Proxmox VE

    Qu'est-ce qui fait réagir un système avec systemd aux événements ACPI (poweroff etc.) ? logind !
    Du coup la doc qui dit qu'il faut acpid n'est plus utile : quand acpid fonctionne, il appelle un script qui vérifie juste que logind tourne et qu'un appel dbus précis est possible (voir /usr/share/acpi-support/policy-funcs).

    J'ai creusé tout ça parce que une seule VM parmi une grosse dizaine ne répondait pas aux injonctions d'extinction "propre" de son hyperviseur…
    Il se trouve que cette VM était à la base un conteneur LXC non-privilégié (oui j'ai testé ça un moment pour voir). Et dans ce conteneur, le service systemd-udevd était masqué…

    J'ai appris plein de choses sur udev, acpi, logind.
    J'ai découvert les modules noyal "button" et "evdev".
    Par hasard je suis tombé sur lsinitramfs.
    Pas si mal :)

    Pour lancer acpid en mode debug + log : acpid -d -l -f

    November 29, 2020 at 22:48:26 GMT+1 * - permalink -
    QRCode
    - https://pve.proxmox.com/wiki/QEMU/KVM_ACPI_Guest_Shutdown
    adminsys Linux virtualisation
  • linux - Maximizing rsync performance and throughput - directly-connected gigabit servers - Server Fault

    Pour faire un gros transfert (plusieurs centaines de To), j'ai tenté d'après cette réponse le coup de tar + mbuffer. Avec de gros buffers côté mbuffer, c'est vraiment pas mal. Et mbuffer gère lui-même la partie réseau (avec -I et -O). On pourrait peut-être imaginer compresser en plus ou éviter les header de tar mais c'est déjà pas si mal je trouve.
    Sur réseau 10 Gbps, on arrive à monter à du 250 Mo/s avec le vent dans le dos : c'est probablement un des systèmes de fichiers distribué qui traine, le transfert tourne alors que tout est en prod, etc. En tous cas c'est beaucoup plus rapide qu'un simple rsync (encore heureux). Mais forcément on ne peut pas reprendre s'il y a un crash…

    November 9, 2020 at 21:10:49 GMT+1 * - permalink -
    QRCode
    - https://serverfault.com/questions/590230/maximizing-rsync-performance-and-throughput-directly-connected-gigabit-servers/590231#590231
    réseau data adminsys
  • thumbnail
    ffmpeg - Use a IP-camera as a virtual camera - Super User

    ffmpeg utilisé comme ici et couplé à un serveur rstp (comme spydroid, disponible sur f-droid) sur le téléphone permet d'avoir une webcam via android sur son linux. v4l2loopback est packagé dans Debian. C'est donc assez simple à tester.

    Je n'ai cependant pas réussi à avoir mieux que 320×240 de définition depuis spydroid et il faut passer un paramètre au module v4l2loopback (https://github.com/umlaeute/v4l2loopback/issues/78) pour le rendre compatible avec les applis "relou" comme Chromium. Sinon ça va. Et non je ne vais pas montrer ma tronche en visio conf mais j'ai quand même tout testé comme si… histoire de savoir.

    April 28, 2020 at 21:11:14 GMT+2 * - permalink -
    QRCode
    - https://superuser.com/questions/751568/use-a-ip-camera-as-a-virtual-camera
    adminsys Debian vidéo
  • Adminer - Database management in a single PHP file

    J'ai voulu tester un hébergement web + PHP + MariaDB rapidement et j'avais vu passer adminer sans vraiment prêter attention. J'ai donc testé… et oui ça juste marche. Un simple fichier PHP et c'est parti on peut a priori faire ce qu'on veut avec ses bases de données (il y a plein de SGBD reconnus) sans se prendre la tête avec les commandes SQL reloues. Ça permet de mettre son nez "graphiquement" et tester toute la chaine, tester des sauvegardes, etc.

    En tous cas beaucoup plus simple que phpMyAdmin…

    April 25, 2020 at 11:38:44 GMT+2 * - permalink -
    QRCode
    - https://www.adminer.org/
    adminsys Web
  • thumbnail
    Jonathan Michalon / WebMutu · GitLab

    J'ai quelques sites web qui tournent chez moi depuis un moment (2010…), et au fur et à mesure j'ai appris des choses, mis d'autres choses en vrac, changé des configurations, etc.

    Je suis en train de migrer une partie de mes services dans des VM sur d'autres machines. C'était donc le moment de revoir de fond en comble mon setup web.

    J'ai beaucoup cherché s'il n'y aurait pas moyen de tout mettre dans un système magique qui s'occupe un peu de tout, calcule des infos en plus (graph), permet de filer un coin de web rapidemement à quelqu'un sans se prendre la tête etc. et forcément il y a plein d'outils qui existent et qui prétendent faire le café.

    Grosso modo j'ai vu soit des gros trucs pour revendeurs à la cpanel/vesta/ispconfig/… soit des scripts maison mais qui du coup ne fonctionnent que sur par exemple Ubuntu (LEMPer) ou CentOS (VPSSIM). Or toute mon infra est en Debian, et je n'ai pas besoin d'intégration mail/DNS/TLS/… car tout cela est déjà géré par d'autres briques. Sortent un peu du lot, froxlor et tinycp…

    J'ai hésité pour froxlor mais beaucoup de doc date de Debian wheezy, il y a tout de même cette notion de revendeur, DNS, mail, … qui ne m'intéresse pas (mais il suffit de ne pas les utiliser, on est d'accord… alors que ça rajoute quand même de la complexité et des risques de failles). Et au final ça ne semblait pas me rajouter beaucoup de facilité. Il aurait aussi fallu gérer les mise à jour et mises à niveau (comme pour tout outil quoi).

    Tinycp avait l'air vraiment sympa mais actuellement les dev sont en train de se demander comment ils vont fournir leur bidule et dans tous les cas le code n'est pas libre. Donc compliqué dans le temps si on a pas envie de se prendre le chou et pas propre éthiquement.

    J'ai donc perdu beaucoup de temps pour au final écrire le script qui fait juste ce que je veux et voilà. J'espère que je ne suis pas passé à côté de certaines notions élémentaires que les panel sus-cités ont déjà pris dans la tronche et corrigé : le web c'est compliqué et pas vraiment passionnant.

    April 25, 2020 at 11:26:24 GMT+2 * - permalink -
    QRCode
    - https://gitlab.netlib.re/johndescs/webmutu
    adminsys Web Debian Linux
  • thumbnail
    Allow to manually trigger timer unit activation · Issue #12998 · systemd/systemd · GitHub

    De nos jours sur un système avec systemd (comme une Debian "à jour" sans bidouille pour l'enlever), logrotate est lancé par un timer systemd, et enregistré en tant qu'unit systemd. Pour faire un run de test, il suffit de le start comme un service normal du coup… trop simple.

    Pour tester une configuration logrotate, on peut aussi feinter la date de dernière exécution dans /var/lib/logrotate/status et donc après un start, bien vérifier que tout se passe bien… trop simple aussi, mais j'ai dû chercher pour tout ça, je me dis que ça peut servir souvent plutôt que "flemme".

    April 23, 2020 at 15:09:27 GMT+2 * - permalink -
    QRCode
    - https://github.com/systemd/systemd/issues/12998
    adminsys Debian systemd
  • thumbnail
    packages - Check all debian binaries against the checksum of the original - Server Fault

    J'ai un système de fichiers corrompu (un rootfs de RPi), mais pas trop, et pour la science je me demande quels sont les fichiers impactés. Je me suis souvenu qu'il y a dans les metadata de tous les paquets deb (ou presque) un fichier avec les md5sum de tout ce qu'ils contiennent. Je me suis dit qu'il devait bien y avoir un moyen de les utiliser. C'est possible avec debsum.
    Sur le post ci-lié ils suggèrent debsums -a, pour mon cas c'est plutôt debsums -s qui m'intéresse.
    On obtient une liste des fichiers qui ne correspondent pas au md5sum d'origine (pour peu que lui-même ne soit pas corrompu…) avec pour chaque le nom du paquet auquel il appartient.
    Pas la peine de troller sur les collisions dans md5sum etc. pour ça, ça suffit amplement.

    November 10, 2019 at 22:28:56 GMT+1 - permalink -
    QRCode
    - https://serverfault.com/questions/548417/check-all-debian-binaries-against-the-checksum-of-the-original
    adminsys Debian
  • thumbnail
    Checkinstall DEBs done the CMake way… | やった

    J'ai toujours trouvé checkinstall pratique pour complier, tester avec installation réelle et modifier un soft sans risquer de mettre le bazar sur son système (oui on peut aussi faire des chroot, des VM, … mais bon).
    Apparemment cmake a une fonction équivalente, cpack. On peut soit le configurer dans le projet, et il suffit de faire "make package" pour que le projet soit packagé/taré à la fin soit directement lancer l'outil cpack avec toutes les variables sur la ligne de commande. Ici le lien utilise la configuration.

    Pour être honnête j'ai pas trop compris, je me mangeais un mur tout le temps comme quoi cpack ne pouvait pas initialier la sortie en "DEB" mais tout à coup ça s'est débloqué après avoir testé d'autres sorties… les magies de cmake et des configurations changées à la volée je suppose (oui j'avais reset le dossier build…).
    Bref bien pratique !

    September 20, 2019 at 18:23:15 GMT+2 - permalink -
    QRCode
    - https://apachelog.wordpress.com/2009/05/02/checkinstall-debs-done-the-cmake-way/
    dev Debian adminsys
  • thumbnail
    Bug #1159205 “Hibernate won't resume after image was successfull...” : Bugs : hibernate package : Ubuntu

    Bug entre uswsusp et plymouth de 2013, dup d'un de 2010, qui apparait en 2019 dans Debian Buster car desktop-base dépend de plymouth… on adore les broutilles qui passent entre les mailles des filets et qui pètent à la gueule des années plus tard.

    July 23, 2019 at 21:20:17 GMT+2 - permalink -
    QRCode
    - https://bugs.launchpad.net/ubuntu/+source/hibernate/+bug/1159205
    Debian libre adminsys
  • thumbnail
    alpine-make-vm-image/alpine-make-vm-image at master · alpinelinux/alpine-make-vm-image · GitHub

    Sur une idée basée sur ce script qui affirme qu'il n'y a pas besoin de partition pour créer un disque de machine virtuelle et en utilisant extlinux, j'ai passé un peu de temps à transférer un conteneur LXC non-privilégié (fait alamano au début quand LXC 1.0 est sorti) vers une VM full qemu/kvm sous Proxmox.
    Voici ce que j'ai fait :
    sudo qm create 302
    sudo qm set 302 -virtio0 local-zfs:10
    => création de la VM, avec un disque de 10 Go dans le zfs ; oui ça aurait pu se faire en une ligne mais entretemps j'ai réfléchi et au lieu de faire un fichier qcow2 et de le monter avec qemu-nbd et tout ce bazar je me suis dit que ça serait plus simple avec un bon vieux block device
    sudo mkfs.ext4 /dev/rpool/data/vm-302-disk-0
    => pas de partition
    sudo mount /dev/rpool/data/vm-302-disk-0 /mnt/
    cd /mnt
    => tellement simple par rapport à un qcow2 + partition + éventuellement LVM… oui c'est pas chiffré mais pour un site d'affichage public, ça devrait aller
    ssh IP-VM-avec-LXC 'sudo -S -u lxcguests lxc-usernsexec -- tar cf - /home/lxc/lxcguests/.local/share/lxc/web/rootfs/' | sudo tar xf -
    => copie avec tar pour la préservation des attributs de tout le rootfs ; lxc-usernsexec pour que tar soit exécuté dans le namespace uid du lxc (sinon root aurait été uid 100000 etc. selon ma configuration de l'époque). EDIT: Si l'on copie un LXC booté ou avec des montages, ajouter --one-file-system au tar cf pour être sûr de ne pas emporter trop de monde (/dev, /proc …) - FEDIT
    sudo chroot .
    apt install linux-image-amd64
    => on ajoute un noyau, ça va servir…
    exit
    sudo extlinux --install /mnt/
    => on le fait de l'extérieur, partition montée. d'après le man, c'est fait pour et ça nous évite de bind-mount /dev et compagnie dans le chroot ; là si on lance la VM on est déjà dans notre bootloader, qui demande quoi faire avec boot:

    On peut alors booter en tapant tout à la main dans extlinux. Après un peu de tests et en regardant la config d'un autre extlinux qui fonctionne, j'ai pu arriver dans l'initramfs, puis dans un système qui boot mais avec le / en read-only.
    Ma commande à la main dans extlinux (promt boot:) était :
    /vmlinuz initrd=/initrd.img modules=ext4 root=/dev/vda
    On utilise les liens dans / qui sont encore créés par le paquet du noyau sous Debian… :)
    Ensuite j'ai posé ça dans un fichier de conf histoire de booter facilement quand même :
    DEFAULT virt
    LABEL virt
    MENU LABEL Linux oasis
    LINUX vmlinuz
    INITRD initrd.img
    APPEND root=UUID=db01b05e-2e90-4df7-a9b2-96a1ee04b1aa modules=ext4

    J'ai aussi créé un fstab puisqu'il était vide (mais a priori pas vraiment utile du coup). L'histoire du / qui restait en read-only a perduré même avec un rw sur la cmdline linux, même avec le fstab… et est parti dès que j'ai mis systemd…
    EDIT: sans fstab et avec systemd, read-only aussi ; réglé avec un fstab donc il faudrait les deux… ?

    Bref ça fonctionne bien. J'ai perdu du temps à vouloir booter depuis extlinux à la main, à ne pas pouvoir monter / car pas de module ext4 (il disait juste "no such file or directory" ce con de mount…) et avec le read-only. Et j'ai aussi passé la mise à jour de jessie à stretch que j'avais jamais faite avant…

    April 14, 2019 at 18:05:55 GMT+2 * - permalink -
    QRCode
    - https://github.com/alpinelinux/alpine-make-vm-image/blob/master/alpine-make-vm-image
    adminsys Linux virtualisation
  • thumbnail
    Script for periodic renewal of certificates using BSD’s acme-client

    J'ai voulu tester du let's encrypt (oui…) sur une VM Alpine. Apparemment il y a enfin un setup simple, qui fait ce qu'on veut et qui juste marche. Mais je n'ai pas encore pu tester le renouvellement auto évidemment.
    Avec les paquets, on peut installer acme-client-plus et acme-client. Le dernier est le client ACME d'OpenBSD, écrit en C et avec pas mal de fontionnalités (mais pas les wildcard si j'ai bien compris). Le premier est un script shell et les quelques fichiers de conf pour qu'il renouvelle au besoin.
    Plus rien à copier, mettre en place, installer, il suffit de faire un "acme-client-plus issue" et hop on a son certificat (une fois qu'on a corrigé nos erreurs de DNS/routage/config serveur web/…). Un peu comme le script que j'avais mis en place il y a longtemps, à la main. Là c'est pareil mais en tout prêt.
    À voir au renouvellement… !

    April 9, 2019 at 14:05:14 GMT+2 - permalink -
    QRCode
    - https://github.com/jirutka/acme-client-plus
    adminsys réseau sécurité Alpine
  • thumbnail
    Configure Networking - Alpine Linux

    Apparemment Alpine, bien qu'utilisant /etc/networg/interfaces à la Debian, n'a pas les petits sugar genre autoconf, dad-attempts, accept_ra etc.
    Dans leur doc ils disent de désactiver la prise en compte des RA d'IPv6 avec un pre-up (soit avec un echo, soit avec sysctl). Seulement chez moi ça ne suffit pas, la route par defaut est déjà mise en place avant que ifup ne se bouge, donc on a une erreur "file exists" (mais qui ne gène pas). Par contre, la default est valide seulement le temps d'expiration du RA qui a été pris en compte. Donc au bout d'un moment la default disparait \o/ pour le voir, champ "expires" :
    default via fe80::xxxx dev eth0 proto ra metric 1024 expires 1778sec hoplimit 64 pref medium
    J'ai simplement créé un fichier sysctl :
    $ cat /etc/sysctl.d/01-noslaac.conf
    net.ipv6.conf.all.autoconf = 0
    net.ipv6.conf.all.accept_ra = 0
    net.ipv6.conf.all.dad_transmits = 0
    net.ipv6.conf.default.autoconf = 0
    net.ipv6.conf.default.accept_ra = 0
    net.ipv6.conf.default.dad_transmits = 0
    net.ipv6.conf.eth0.autoconf = 0
    net.ipv6.conf.eth0.accept_ra = 0
    net.ipv6.conf.eth0.dad_transmits = 0

    et là plus de problème. Oui je bourrine, mais on sait jamais si le nom de l'interface venait à changer par exemple #traumatisé. :)

    April 9, 2019 at 13:59:14 GMT+2 - permalink -
    QRCode
    - https://wiki.alpinelinux.org/wiki/Configure_Networking#IPv6_Static_Address_Configuration
    adminsys Linux réseau Alpine
  • thumbnail
    Bug #6635: Long startup delay caused by random generator on v3.5 - Alpine Linux - Alpine Linux Development

    On peut ajouter dans Qemu via virtio une source de random qui remonte de l'hôte. A priori c'est pour accéder aux sources "matérielles" mais on peut aussi coller ça sur par exemple /dev/urandom.
    J'ai testé pour voir, et ça a effectivement débloqué le "problème" que je vois, à savoir que ssh boot tellement avant que urandom soit setup qu'il attend des fois plus d'une minute d'avoir de l'entropie. Pas très important, juste pour le level up/connaissance.
    Je n'ai pas eu besoin de lier cette sources au random "kernel" d'une manière ou d'une autre genre avec hwrng comme proposé par-ci par-là.

    April 9, 2019 at 13:55:28 GMT+2 - permalink -
    QRCode
    - https://bugs.alpinelinux.org/issues/6635
    adminsys Linux Alpine
  • thumbnail
    Serial Terminal - Proxmox VE

    Pour pouvoir déverrouiller le disque chiffré de ma VM, je me suis dit que plutôt que de passer par l'interface et le noVNC ou de bidouiller le VNC hors interface, je pourrais utiliser le port série. J'avais déjà joué avec ça dans des VM il y a un moment, bah ça s'est pas trop arrangé.
    Avec systemd, maintenant on a bien un getty partout automatiquement, ça c'est pas si mal.
    Par contre, les messages de boot et le prompt pour le mot de passe ça a l'air d'être le chantier (et pas à cause de systemd, hein, no troll).
    https://github.com/systemd/systemd/issues/9899
    Le workaround qu'on retrouve partout, c'est d'installer plymouth… sur une VM serveur etc. je me suis d'abord dit que nope nope nope. Mais en vrai ça juste marche, y'a un thème "text only" par défaut et l'installation a pris…882 ko donc bon si ça fait le job, en vrai, pourquoi pas… bootlogd par exemple ne fonctionne pas avec systemd, donc pas trop d'alternative pour le mot de passe en lui-même donc bidouiller un truc juste pour le blabla de boot c'est pas si utile.
    Bref en gros, ajouter un serial au KVM, configurer le cmdline de Linux, configurer grub, installer plymouth et on peut tout faire par les deux moyens (qm terminal et noVNC).

    April 5, 2019 at 17:22:01 GMT+2 - permalink -
    QRCode
    - https://pve.proxmox.com/wiki/Serial_Terminal
    adminsys Linux systemd
  • thumbnail
    RAM high load on node with no VM running | Proxmox Support Forum

    Utilisant depuis peu un serveur sous proxmox pour la virtualisation, avec du ZFS pour la gestion du raid soft et des "partitions" des VM, j'ai eu la surprise de voir une utilisation complètement folle de la RAM d'après les outils classiques (top/free/htop).
    Il s'agit apparemment d'un cache ARC utilisé par ZFS qui est supposé être meilleur dans le cadre d'un serveur de fichiers (ce qui du coup n'est pas le cas mais est un cas fréquent).
    D'après https://superuser.com/questions/1137416/how-can-i-determine-the-current-size-of-the-arc-in-zfs-and-how-does-the-arc-rel :
    Because of how ZFS on Linux is implemented, the ARC memory behaves like cache memory (for example, it is evicted if the system comes under memory pressure), but is aggregated by the kernel as ordinary memory allocations.

    Pour regarder :
    arcstat, /proc/spl/kstat/zfs/arcstats, arc_summary

    Pour jouer un peu :
    https://www.svennd.be/tuning-of-zfs-module/
    pour le désactiver :
    zfs set zfs set secondarycache=none rpool
    zfs set secondarycache=none rpool
    cela réagit bien à un drop des caches (mais pas complètement, moi il restait dans les 400 méga) :
    echo 3 > /proc/sys/vm/drop_caches

    Pour l'instant j'ai remis, c'est supposé être capable de réagir en cas de demande de mémoire (mais pas toujours : some applications will require a certain amount of memory to start, or request memory on a rate that is quicker then ARC size can lower, resulting in a crash/swapping). Je verrai bien mais il vaut mieux être prévenu…

    March 28, 2019 at 14:09:31 GMT+1 - permalink -
    QRCode
    - https://forum.proxmox.com/threads/ram-high-load-on-node-with-no-vm-running.25207/
    adminsys virtualisation stockage mémoire
Links per page: 20 50 100
◄Older
page 1 / 8
Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community - Help/documentation