[NOTE] Erreur phpMyAdmin /libraries/sql.lib.php#613

Rédigé par citizenz - - 7 commentaires
Comme moi, il vous est peut-être déjà arrivé de tomber sur cette erreur de phpMyAdmin à l'ouverture d'une table :
Warning in ./libraries/sql.lib.php#613 count(): Parameter must be an array or an object that implements Countable
J'ai cherché pendant un petit bout de temps et en fait, il s'agit d'un bug de phpMyAdmin qu'il est possible de contourner en corrigeant 2 lignes :

Dans /usr/share/phpmyadmin/libraries/sql.lib.php
Rechercher
(count($analyzed_sql_results['select_expr'] == 1) 
et remplacer par
((count($analyzed_sql_results['select_expr']) == 1)

Dans /usr/share/phpmyadmin/libraries/plugin_interface.lib.php
Rechercher
if ($options != null && count($options) > 0) 
et remplacer par
if (! is_null($options) && count((array)$options) > 0) {
... et l'erreur devrait avoir disparu.

ft4a.fr : Bittorrent au service de la culture libre

Rédigé par citizenz - - 5 commentaires

ft4a.fr est un projet de partage de tout media sous licence libre ou licence de libre diffusion par le biais du protocole Bittorrent.
Il reprend le code de (feu) freetorrent.fr, nom abandonné en 2019 (le mot Torrent semblant faire "peur" à certaines personnes...).

Débuté en 2006 (!!!) comme un projet technique basé sur l'apprentissage du HTML, du PHP, etc. freetorrent.fr était né.
Premièrement basé sur XBTIT les premières années, j'ai souhaité être plus "autonome". Je me suis alors tourné vers le tracker XBT d'Olaf Van Der Spiek. Mais il fallait un "front-end" à ce tracker afin de proposer un contenu accessible à tous et proposant des infos sous forme d'articles, d'images, etc.
C'est là le gros du travail qui a débuté : j'ai appris "sur le tas", avec plus ou moins de réussite :D, notamment côté sécurité (le site a été hacké 3 ou 4 fois...).

Après cette première version assez basique, une deuxième version, basée sur PHP, MySQL + PDO, a été proposée à partir de 2016.
Les dernières versions 2.1 puis 2.1.5 ont apporté courant 2019 quelques corrections et améliorations (notamment du côté de l'envoi des mails...).

Il y a encore peu de contenu sur ft4a.fr. Je reste de plus très vigilant quant aux licences d'utilisation des médias postés. Il m'arrive régulièrement de supprimer des torrents "qui n'ont rien à faire sur ft4a.fr"...
Il y a certainement plein d'améliorations à faire, de corrections de code, etc.

Je relance donc ici pour une énième fois l'info :
- ft4a.fr est une plateforme de partage de la culture libre : elle s'adresse à tous ! Il vous suffit de créer un compte et de déposer (upload) ou charger (download) un media grâce au protocole Bittorrent
- je m'attends comme à chaque fois aux critiques (quelques fois limite violentes) : "pas assez de contenu !", "le contenu est nul !", "ft4a.fr ne devrait pas proposer des ISO Linux car ainsi il dilue l'information des sites officiels...", etc.
- si vous avez un peu de temps à accorder à ce projet, j'en serais ravi, notamment pour jeter un œil avisé au code du site, proposer des améliorations, de nouvelles idées, etc.

Sachez que ce projet est avant tout le projet d'un passionné de la culture libre et du Net en général. Ce n'est pas mon métier : je bosse dans le social et pas dans l'informatique.
C'est aussi et surtout du temps, des sous (quelques euros par mois pour le serveur et le nom de domaine).

Je vous donne rendez-vous sur https://www.ft4a.fr !

QAS : QuickAppsServer, un script Bash basique pour vos serveurs web

Rédigé par citizenz - - Aucun commentaire
Je me suis amusé, en cette période de Noël, à me concocter un petit script Bash basique que j'utilise pour installer facilement tout ce dont j'ai besoin pour un serveur web Debian ou Ubuntu.

Ce que propose ce script :

  1. Installation de quelques appli basiques (vim, mc, screen, htop, git, curl, ntp, ntpdate, sudo, dnsutils)
  2. Installation de quelques appli web (Nginx, php-fpm, Mariadb, openssl, memcached)
  3. Installation de quelques appli pour la sécurité (ufw firewall, fail2ban)
  4. Installation de Letsencrypt certbot
  5. Ajout et configuration d'un user système (+ sudo)
  6. Configuration de /etc/hosts
  7. Configuration de /etc/hostname
  8. Reboot
Toutes les explications sont ici : https://github.com/citizenz7/QAS
Hope it helps :D

freetorrent.fr est mort : vive ft4a.fr !

Rédigé par citizenz - - 3 commentaires
[UPDATE 29/08/19] - Le nom de domaine ft4a.xyz vient d'être suspendu par le Registry .xyz, semble t-il pour "abusive operations"... Je n'ai aucun détails, j'en ai demandé. Il semblerait que tout site en rapport avec Bittorrent soit suspendu avec ce TLD, peu importe si les contenus diffusés sont légaux ou non. C'est bien Bittorrent qui semble "pointé du doigt".

Le site est de nouveau online ici : 
https://www.ft4a.fr

Après plus de 13 années, le projet freetorrent.fr a été arrêté et le nom de domaine vendu (et oui, c'est la crise...).
Mais, après plusieurs semaines de réflexion et de "décantation", je n'ai pas souhaité abandonner l'idée d'un projet de tracker bittorrent exclusivement réservé aux médias sous licence libre ou licence de libre diffusion.

J'ai repris le code du projet de feu freetorrent.fr et j'ai mis en ligne : https://www.ft4a.xyz https://www.ft4a.fr
Le site est en ligne et fonctionnel autant que faire ce peut. Vous pouvez créer un compte, télécharger les quelques médias déjà présents sur le site, proposer un média en Upload, déposer des commentaires, etc.

Comme freetorrent.fr, ft4a.fr est composé de :
- XBT tracker qui est le tracker bittorrent
- d'un frontend (site web) qui a été complètement créé par mes soins. 

L'idée est de partager le code du frontend (c'est un énorme boulot, surtout pour moi qui ai des compétences limitées) avec ceux qui seraient intéressés, notamment pour "débuger" le code, faire des améliorations, etc.

A l'heure où des projets de trackers bitorrent "non légaux" (de par le contenu proposé) voient régulièrement le jour, je rêve toujours de pouvoir initier une communauté exclusivement centrée sur le Libre.
Je suis un utopiste, je sais...

Je mettrai rapidement le code du front-end sur Github et je vous redis.

[UPDATE] : et voila ---> https://github.com/citizenz7/ft4a

De votre côté : contactez moi ! En masse ! Tout le monde ! Aller ! :D directement à citizenz7 AT protonmail.com.

Seedbox "complète" sous Debian 10 avec Rtorrent, Rutorrent, Emby, Couchpotato

Rédigé par citizenz - - 4 commentaires
SEEDBOX COMPLETE SOUS DEBIAN 10

Pourquoi créer une seedbox ?
- partager facilement les médias libres (films, animés, OS, etc.)

Cette seedbox sera composée de :
- Debian 10
- Rtorrent
- Rutorrent
- Emby
- Couchpotato
- phpsysinfo


Il reprend l'installation sur un serveur de type VPS Hetzner (https://hetzner.com/ ) + un volume monté en /home


Serveur VPS Hetzner CX21 (2 cpu, 4 GB RAM, 40 GB SSD, 1 Gbps): 5.88 €/M
+ volume supplémentaire de 200 GB monté en /home/seedbox pour fichiers médias : 9,60 €/M

AVANTAGES
- proc performant
- connexion 1 Gbps
- volume à la dimension voulue
- payable à l'heure

INCONVÉNIENTS
- VPS (ressource théoriquement partagées)
- Petit espace de stockage
- Trafic (Out) limité à... 20 TB
- Plus cher qu'un "petit" serveur Dédié Kimsufi ou Online

Postulats de départ :
- J'utilise la même annotation que le tuto de ex-rat : <username> signifie qu'il faut remplacer par son véritable nom d'utilisateur, <votre.domaine.com> signifie qu'il faut remplacer par son véritable nom de domaine, etc.
- Installation "fraîche" d'une Debian 10.
- Le Volume de 200 GB est monté en /home/<username>

--------------------------------------------
AVERTISSSEMENT :
Cet article n'a pas pour but de décrire la mise en place d'un "système" servant à "pirater" des oeuvre sous droit(s) d'auteur.
La seedbox devra être utilisée à des fins de test ou de partage de médias sous licences libres ou licences de libre diffusion (GPL, Creative commons, etc.).
--------------------------------------------


TUTORIEL : Go !
Une fois le serveur installé avec une Debian 10, on met à jour et on installe quelques applis :
sudo apt update && apt upgrade -y
sudo apt install -y sudo nano vim-nox htop git mc screen ntp rkhunter fail2ban ufw curl


On crée un utilisateur qui aura les droits sudo (il ne s'agit pas de l'utilisateur de la seedbox. Il s'agit d'un "vrai" utilisateur avec les droits sudo) :
sudo adduser citizenz
sudo adduser citizenz sudo


On crée le /home de l'utilisateur <username> (fichiers multimédia) :
sudo mkdir /home/<username>

On configure le fstab pour "monter" le volume à chaque redémarrage.
Pour trouver la config exacte de ce volume, dans votre Panel Hetzner, pour votre serveur :
- menu Volumes
- Trois petits points au bout de la ligne de votre volume puis Configuration

Sur mon serveur, ça donne ça :
sudo echo "/dev/disk/by-id/scsi-0HC_Volume_2942248 /home/<username> ext4 discard,nofail,defaults 0 0" >> /etc/fstab

Redémarrage nécessaire :
sudo reboot

L'essentielle de la config de base du système est prête, on va désormais suivre le tutoriel de ex_rat :
https://mondedie.fr/d/10831-tuto-installer-rutorrent-sur-debian-10-nginx-php-fpm


Après un reboot, on a accès à :
ruTorrent Webui
URL : XXX.XXX.XXX.XXX/rutorrent

SFTP
IP : XXX.XXX.XXX.XXX
Port : 22

Pour obtenir de l'aide plus facilement, un script de debug est dispo, qui permet d'obtenir un lien vers un récap' complet de vos fichiers de conf en rapport avec le tuto.
cd /tmp
git clone https://github.com/exrat/Script-Debug-MonDedie
cd Script-Debug-MonDedie
chmod a+x Script-Debug-Mondedie.sh && ./Script-Debug-Mondedie.sh


Vous aurez accès à un lien sur Pastebin. En ouvrant le lien dans votre navigateur vous verrez une "copie" des infos de votre système concernant votre seedbox.
En fin de fichier, il peut y avoir des erreurs qui s'affichent. Elles permettront certainement de voir où se situe votre problème de config et cela permettra d'y remédier rapidement.

#########################################
AJOUTS PERSOS
#########################################

-----------------------------------------
1/ Letsencrypt (HTTPS)
-----------------------------------------
Votre fichier Nginx de configuration pour votre seedbox (vhost) ne comporte pas de nom de domaine.
Si vous souhaitez en configurer un, il va falloir légèrement modifier le fichier.
Par contre, même si la connexion sur l’adresse IP + SSL restera possible, votre seedbox sera associée à un nom de domaine. A vous de voir si vous voulez faire ça (anonymat, etc.).

sudo nano /etc/nginx/sites-enable/seedbox.conf

Début du fichier :
server {   
listen 80 default_server;   
server_name _;

On va remplacer par : <votre.domaine.com> à remplacer par votre vrai nom de domaine ou sous-domaine... par exemple : seedbox.mondmaine.com
server {   
listen 80;   
server_name <votre.domaine.com>;

Vérifiez toujours que votre configuration Nginx ne comporte pas d'erreur - avant de relancer Nginx - avec la commande :
sudo nginx -t

Vous devriez avoir quelque chose comme ça si tout va bien :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

On va ajouter le plugin Nginx de Letsencrypt (certbot). Très pratique pour Nginx, cela permettra de générer "tout ce qu'il faut" et de configurer automatiquement votre fichier Nginx vhost pour HTTPS.
On installe quelques dépendances :
sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface

Puis on installe le plugin Nginx pour certbot (letsencrypt) :
sudo apt install python3-certbot-nginx

On va demander un certificat SSL Letsencrypt avec la commande suivante :
* évidemment <www.your_domain> et <your_domain> sont à adapter avec votre VRAI domaine
** vous n'êtes pas obligé de déclarer un www. et vous pouvez juste faire : certbot --nginx -d <your_domain>
sudo certbot --nginx -d www.<votre.domaine.com>-d <votre.domaine.com>

1/ Vous devrez ensuite rentrer une adresse E-mail qui servira à vous envoyer des infos de renouvellement du certificat - valable 90 jours mais renouvelable - ou des infos de sécurité.
2/ Acceptez les termes du service.
3/ Vous pouvez répondre non à la question d'après qui consiste à donner votre e-mail.
4/ Enfin vous choisirez la manière dont le HTTPS sera configuré :
- soit en entrant l'URL HTTPS directement dans le navigateur, à savoir que vous aurez aussi le choix de rester en HTTP (choix 1)
- soit en redirigeant toutes les demandes sur HTTPS (choix 2)
Moi je prends le 2ème choix.

Une fois fait, vous aurez votre certificat Letsencrypt installé pour votre domaine et votre fichier vhost Nginx aura été reconfiguré automatiquement pour tenir compte de la nouvelle configuration.
En vous reconnectant sur votre seedbox, vous pourrez voir que le cadenas vert est apparu (sous Firefox). Votre seedbox est désormais accessible en HTTPS.

Petit ajout pour HTTP2 :
Vers la fin du fichier vhost Nginx seedbox.conf, vous verrez cette ligne :
listen 443 ssl; # managed by Certbot

Ajoutez http2 en fin de ligne, juste avant le point-virgule :
listen 443 ssl http2; # managed by Certbot

Redémarrez Nginx :
sudo /etc/init.d/nginx restart

HTTP2 va permettre d'apporter certaines fonctionnalités. Vous retrouvez toutes les infos ici : https://blog.eleven-labs.com/fr/http2-nest-pas-le-futur-cest-le-present/


-----------------------------------------------
2/ Emby
-----------------------------------------------
Emby (anciennement Media Browser) est un serveur multimédia conçu pour organiser, lire et diffuser du contenu audio et vidéo sur une variété de périphériques.
Très pratique (à mon goût...), il va permettre d'organiser tous les fichiers multimédia, les lire, etc.

On va prendre le lien pour Debian 9, Debian 10 n'existe pas... encore :
wget -nv http://download.opensuse.org/repositories/home:emby/Debian_9.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
sudo echo 'deb http://download.opensuse.org/repositories/home:/emby/Debian_9.0/ /' > /etc/apt/sources.list.d/emby-server.list
sudo apt-get update
sudo apt-get install emby-server

Pour permettre à Emby de démarrer automatiquement à chaque reboot :
systemctl enable embyserver.service
systemctl start emby-server.service

Vous devriez pourvoir accéder à Emby sur le port 8096 de votre serveur/seedbox.
Exemple : http://<your_domain>:8096

(Attention pas d'accès en HTTPS, ca ne fonctionne pas chez moi...)
Lors de votre première connexion, plusieurs options de configuration vous seront proposées. Rien de compliqué.


--------------------------------------------
3/ Couchpotato
--------------------------------------------
CouchPotato est un téléchargeur automatique NZB et torrent.
Vous pouvez garder une liste de "films que je veux" et il recherchera les NZBs/torrents de ces films toutes les X heures.
Une fois qu'un film est trouvé, il téléchargera le torrent dans un répertoire spécifié.
Il correspond à la version "films" de SickRage.

J'ai choisi de mettre les fichier de Couchpotato dans /opt

sudo apt install git-core python python-cheetah
cd /opt
sudo git clone https://github.com/CouchPotato/CouchPotatoServer.git couchpotato
sudo cp couchpotato/init/ubuntu.default /etc/default/couchpotato
sudo nano /etc/default/couchpotato

Adaptez le fichier /etc/default/couchpotato comme ceci :
CP_USER=<username>
CP_HOME=/opt/couchpotato
CP_DATA=/opt/couchpotato
CP_PIDFILE=/var/run/couchpotato/couchpotato.pid
PYTHON_BIN=/usr/bin/python

Création d'un fichier service systemd :
sudo cp couchpotato/init/couchpotato.service /etc/systemd/system/couchpotato.service
sudo nano /etc/systemd/system/couchpotato.service

On adapte le path du ExecStart dans /etc/systemd/system/couchpotato.service :
ExecStart=/opt/couchpotato/CouchPotato.py

Pour permettre à Couchpotato de démarrer automatiquement à chaque reboot :
sudo systemctl enable couchpotato
sudo systemctl start couchpotato

Vous devriez pourvoir accéder à Couchpotato sur le port 5050 de votre serveur/seedbox.
Exemple : http://<your_domain>:5050

P.S. : Couchpotato c'est bien, mais on y trouve surtout des médias en langue anglaise (GB/US)... Il y a peu de médias FR.
La faute au "Searchers", c'est à dire aux sites de torrents référencés. Dommage qu'il ne soit pas possible d'en ajouter.

--------------------------------------------
4/ phpsysinfo
--------------------------------------------
PhpSysInfo (PSI) est une interface web, écrite avec le langage PHP, qui permet d'afficher des informations concernant le système et le matériel sur lequel elle est installée.
phpSysInfo est distribué sous GNU GPL version 2.

On télécharge la dernière version de phpsysinfo dans /var/www :
cd /var/www
wget https://github.com/phpsysinfo/phpsysinfo/archive/v3.3.1.tar.gz
tar xvfz v3.3.1.tar.gz
mv phpsysinfo-3.3.1/ phpsysinfo
chown -R www-data:www-data phpsysinfo
cd phpsysinfo
cp phpsysinfo.ini.new phpsysinfo.ini

Tout devrait fonctionner "tel quel".
Si vous voulez mettre phpsysinfo en FR :
nano phpsysinfo.ini
DEFAULT_LANG="fr"

--------------------------------------------
Résumé des accès :
--------------------------------------------
PAGE D'ACCUEIL : https://<your_domain> : y'a rien ! A vous de voir pour y mettre une page d'accueil, une "plateforme" type muximux (https://github.com/mescon/Muximux), etc.

RUTORRENT : https://<your_domain>/rutorrent - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

EMBY :  http://<your_domain>:8096 - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

COUCHPOTATO : http://<your_domain>:5050 - Connectez vous avec votre nom d’utilisateur <username> + mot de passe créés grâce au tuto de ex_rat

PHPSYSINFO : http://<your_domain>/phpsysinfo

PS : si vous avez installé un firewall (type UFW), pensez à ouvrir les ports suivants :
80 + 443 : HTTP + HTTPS
5050 : Couchpotato
8096 : Emby
Pensez aussi à SSH (généralement sur le port 22) et votre ou vos port(s) Rtorrent !
Fil RSS des articles de ce mot clé