Plusieurs semaines après avoir reçu mon Raspberry Pi, je lui ai enfin trouvé une fonction intéressante, qui marche, et qui s’est bien adapté à mon installation informatique domestique (en gros, je n’ai rien pourri, du moins pas à ma connaissance).
Le but
L’objectif vite fait que je m’étais fixé, c’est un serveur de téléchargement. L’idée c’était de pouvoir lancer des torrents à distance pour récupérer d’obscure distribution linux ou bien encore faire bénéficier la terre entière d’une source supplémentaire pour Warsow 1.0. Oui, je suis un geek altruiste. Également à mon cahier des charges, pouvoir lancer des téléchargements directs, en passant par une interface web. En effet, si un coup de ssh + wget fait l’affaire, d’un point de vue commodité d’utilisation ce n’est pas top, surtout quand les ports différents du 80 sont bloqués au boulot. Et par dessus le marché, se débrouiller pour que cela soit accessible un peu tout le temps malgré l’IP dynamique de ma box.
Préambule
Je ne sortirais pas un pack de binaire pour faire le taf, car j’ai utilisé plein de brique différente pour remplir chaque tâche fixée, entre ce qui se télécharge, ce qui se configure sur la box, les bouts de code php, les configs de serveur web et les scripts linux, il y a un peu trop de bazars pour « faire un pack ». Certains passages peuvent être délicat, surtout si on connait que pouic à Linux et à Debian. De plus, je considère certain point comme acquis de base, genre l’installation de l’OS sur le R-Pi.
Tout ce qui est décrit est surtout inhérent à Debian et à Linux plutôt qu’au R-Pi lui-même, si vous avez un PC qui traine dans un coin et que vous voulez faire la même utilisation c’est très possible. Sauf qu’il y aura des moyens probablement plus simples, voir meilleurs. Typiquement, j’aurai pu installer Java puis JDownloader, et en terme de fonctionnalité j’avais déjà presque tout le boulot de fait. Sauf que JDownloader c’est vachement trop lourd pour le Raspberry, et surtout c’est pas terrible pour la partie ligne de commande (certaines fonctions ont refusé de se lancer parce qu’aucun serveur X ne tournait). Et sur un ARM11@700MHz avec 256Mo, le serveur X est utilisable, mais si on peut se passer de le faire tourner c’est pas plus mal, surtout sans écran…
Matériel
- Un Raspberry Pi, évidement
- Un chargeur 5V/850mA de téléphone avec son câble micro-USB
- Un carte SD de 4go (classe 4 à la limite, classe 6 ou plus préférée)
- Un disque dur USB (fabriqué avec un boitier Antec fanless et un disque sata dedans)
- Un dongle USB Wifi – DLink DWA131, reconnue sans problème par l’OS.
Pourquoi me galérer avec du Wifi puisque j’ai de l’Ethernet à bord ? Et bien parce que ma box est dans mon salon, et que pour des besoins d’esthétique de ce dernier j’ai décidé de ne pas y coller mon serveur en kit. Etant donné que le R-Pi est proche de mon PC, j’ai donc câblé l’Ethernet entre les deux. Comme ça, j’ai une connexion directe au serveur en cas de besoin…
A noter au passage que j’ai également intercalé un hub USB avec alimentation externe afin d’éviter que la clé Wifi ne tire trop de courant du Raspberry. Je vous passe les détails électriques, mais ce n’est pas forcément une bonne idée de faire consommer de l’élec sur un si petit appareil.
Au final, j’ai quand même 3 prises de courant d’utilisée… C’est sur qu’on est moins sur un modèle de discrétion qu’un Raspberry tout seul, mais bon, au pire je fabriquerais une alim unique en partant de celle du disque dur externe, mais on verra plus tard.
Logiciels
Comme je le disais, c’est un amas de brique disponible sur le net, de fonction de l’OS, et deux trois configurations et scripts maison. Voilà dans l’ordre ou je l’ai fait les grandes étapes de réalisation. Tiens au passage, j’en profite pour citer un outil Windows sympa: HDDRawCopy 1.02. Je m’en sers pour faire des copy brut de la carte SD avant de tenter des trucs à la con pour pouvoir revenir à un état précédant en cas de besoin.
- Installer l’OS et le configurer proprement, assez simple avec la dernière version disponible, alias Raspbian “Wheezy”
- Configurer la partie réseau, Ethernet d’abord, Wifi ensuite
- Connecter le disque dur USB, et l’ajouter à la table de montage par défaut avec les paramètres qui vont bien
- Installer et config de samba pour partager les fichiers
- Installer Transmission comme client Torrent
- Installer Lighttpd et PHP pour la suite
- Installer et configurer wget4web pour lancer des téléchargements directs
- Configuration de la box pour gérer tout ça de loin
- Comment se débrouiller avec son IP dynamique
Bon, zou, on y va.
Installer l’OS
Soyons honnête, celui-là, vous le faites tous seul. D’ailleurs on peut voir ça comme un test d’admission. Si vous n’y arrivez pas, vendez vendre Raspberry Pi sur internet, vous en tirerez plus de satisfaction. Sinon, vous avez le Beginners Guide sur elinux.org, et surtout quand même dans la version Wheezy, la commande raspi-config qui permet de tout bien faire joli sans se fatiguer, et qui de surcroit se lance automatique au premier démarrage de l’OS. Profitez en pour utiliser la fonction qui permet d’assigner un maximum de RAM au CPU au détriment du GPU, complètement inutile dans notre application. Et tant qu’à faire changez le mot de passe de l’utilisateur de base… (protip hacking : le login/mdp par défaut, c’est pi/raspberry. Si vous tentez de vous connecter malicieusement au R-Pi de quelqu’un, commencez par testez ça.)
Configurer la partie réseau
Phase assez importante puisqu’une fois réalisé, votre Pi va enfin pouvoir devenir indépendant de son écran. Commencez par vérifier que votre dongle Wifi est reconnu (ne le cherchez pas si vous n’en avez pas…) avec un lsusb
:
moi@tarte ~ $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 005: ID 152d:2329 JMicron Technology Corp. / JMicron USA Technology Corp. JM20329 SATA Bridge
Bus 001 Device 006: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 007: ID 07d1:3303 D-Link System DWA-131 802.11n Wireless N Nano Adapter(rev.A1) [Realtek RTL8192SU]
On voit dans le bordel un machin D-Link, c’est que ça doit être bon. Vérifiez maintenant que vos deux interfaces réseaux apparaissent quand vous taper ifconfig
. Vous devriez voir lo, eth0 et wlan0. Si vous n’utilisez qu’une connexion Ethernet et que vous avez connecté votre R-Pi à votre box, sa config réseau doit être bonne et un ping www.google.fr
vous confirmera que votre Pi est connecté au monde. Sinon, un petit
moi@tarte ~ $ sudo nano /etc/network/interfaces
vous donnera accès au fichier de config des interfaces réseaux. Voici la mienne, avec la partie wifi avec clé wep en DHCP, et la partie Ethernet en IP fixe.
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet dhcp
wireless-mode managed
wireless-essid mon_reseau
wireless-key ###CLE_WEP###
iface eth0 inet static
address 192.168.137.85
netmask 255.255.255.0
Le contenu du fichier tel que je l’utilise vous permet d’avoir une connexion wifi en DHCP sur votre réseau ultra protégé par clé Wep (je vous laisse l’ami Google pour les autres types de clé de chiffrement bien plus sécurisée) pour la partie Web, ainsi qu’une connexion « de backup » directement branché en ethernet sur votre PC. Il conviendra bien évidement d’utiliser une adresse IP sur le même sous-réseau sur le PC.
Connexion d’un disque dur USB
Je ne l’ai pas précisé, mais un boitier disposant de sa propre source d’alimentation est préférable, voir indispensable. Je vous parlais de l’alim du dongle wifi qui était limite, c’est encore plus critique avec un disque dur, nettement plus gourmand. Pour connecter un disque dur sous Linux, il faut le « monter » dans l’arborescence. En gros dire à l’OS « Quand tu détectes tel périphérique, affiche son contenu à tel endroit, de tel façon, avec tel droit ». Quand vous êtes sur la ligne de commande uniquement, il faudra taper la commande adequat une fois le disque dur connecté. Si vous avez lancé l’interface graphique LXDE, il se montera tout seul avec des paramètres génériques plutôt pas mal. J’ai donc profité de ce montage automatique pour recopier les paramètres et les mettre dans le fichier /etc/fstab
afin d’avoir un montage automatique du disque dès le démarrage de l’OS.
Je récapitule :
- Allez dans LXDE avec un
startx
. - Branchez le disque.
- Récupérez les paramètres actuellement utilisé en tapant
mount
- Débranchez le disque
- Créez le répertoire de montage la où bon vous semble (chez moi
mkdir /media/disque_ext
) - Editez le fichier fstab pour rajouter la ligne
/dev/sda1 /media/disque_ext auto rw,nosuid,nodev,allow_other,default_permissions 0 0
- Dans la ligne de commande, tapez
sudo mount -a
pour monter tout ce qui est décrit dans fstab.
Voilà, vous avez normalement à présent un système qui monte son disque tout seul au démarrage et qui se connecte à l’Internet mondial. Et dès fois que votre box explose, vous gardez un accès via Ethernet.
Partager le contenu du disque
Bon, je ne vous le cache pas, c’est une partie qui m’a un peu fait chier. Si l’installation de base de samba (l’outil Linux qui permet de partager des fichiers « façon partage de fichiers Windows ») est très simple comme n’importe quelle installation sous linux, sa configuration est toujours un peu hasardeuse à mon gout. Mais au moins, on contrôle TRES finement le moindre droit d’accès.
Premier truc, installer samba :
sudo apt-get install samba
Ensuite viens la partie la plus marrante, celle où on va remercie Google d’exister, l’édition du fichier de configuration. Mon but à moi était d’avoir un repertoire publique, accessible par n’importe quel utilisateur de mon réseau, sans login ni mot de passe. Les plus « power user » d’entre vous voudront peut être également des répertoires par utilisateur, mais dans mon cas, le seul répertoire qui m’intéresse est celui dans lequel vont attérir tout les téléchargements lancés via torrent ou via direct download.
Le fichier de configuration de samba est le suivant : /etc/samba/smb.conf. Avant de tout pourrir parce que vous risquez de faire quelques essais à taton avant d’obtenir la bonne solution, faites une petite copie du fichier.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.original
Ensuite, pour l’éditer :
sudo nano /etc/samba/smb.conf
Dans mon fichier, j’ai modifié le droit d’accès général (section ####### Authentication #######), qui est passé de
#security = user
à
security = share
J’ai également rajouter
map to guest = bad user
guest account = nobody
Et enfin j’ai inséré à la fin le bloc
[Partage]
comment = Public Storage
path = /media/disque_ext/
read only = no
public = yes
browseable = yes
guest ok = Yes
create mode = 777
directory mode = 777
pour désigner mon répertoire de partage. J’ai également changé les droits d’accès, de façon un peu brutale il est vrai, à mon disque externe. En effet, vous avez beau avoir le droit de passer l’étage d’authentification samba avec votre PC, ça n’octroit pas forcement le droit d’accéder à tout les répertoires du serveur. Un chmod sur le repertoire /media/disque_ext devrait faire l’affaire.
Dernière étape, à faire à chaque modification de /etc/samba/smb.conf, relancez le serveur samba :
sudo /etc/init.d/samba restart
Félicitation, si tout marche bien, vous avez un NAS. A noter au passage que votre R-Pi devrait apparaitre dans l’explorateur de réseau de Windows, mais la règle qui décide par quelle interface réseau vous y accédez m’est complètement inconnue. En effet, vous pouvez utilisez soit votre carte Wifi, qui étant connecté au même réseau que le serveur permet de s’y connecter, soit votre carte Ethernet. Le meilleur moyen que j’ai trouvé pour forcer Windows à utiliser une carte ou l’autre est d’entrer directement l’adresse IP correspondant à l’interface voulue dans la barre d’adresse de l’explorateur (ou via le menu « Executer »). Ainsi, en passant par \\192.168.137.85, vous utilisez l’IP que vous avez configurée pour Ethernet, et donc vous bénéficierez d’un débit nettement meilleur pour lire et écrire sur votre serveur. Tant qu’à automatiser les choses, j’ai créé dans Windows un disque réseau lié directement à mon repertoire de partage, m’évitant donc de me poser la question quand je veux récupérer mon DVD d’install de Ubuntu de 6Go.
Installer Transmission
Transmission est un client torrent un peu connu, à tel point que c’est celui fourni avec les distributions Ubuntu et leurs dérivées (LinuxMint, par exemple). Pour l’installation, comme d’hab c’est assez simple, il faut juste savoir que c’est le paquet transmission-remote et pas transmission tout court qui vous intéresse. Transmission-remote contient juste ce qu’il faut pour utiliser le client avec une interface web ou bien la ligne de commande. C’est le premier cas qui nous intéresse.
Ensuite vient la config de transmission, et cela se fait par le fichier /var/lib/transmission-daemon/info/settings.json
Il convient de modifier plusieurs choses, du genre :
accès par l’importe à partir de n’importe quelle adresse source : "rpc-whitelist": "127.0.0.1,*.*.*.*",
Nom de l’utilisateur : "rpc-username": "moi",
Mot de passe : "rpc-password": "les-fps-c-lol",
NB: cette ligne sera crypté au prochain restart du service
Port de connexion : "rpc-port": 1234,
Emplacement de téléchargement : "download-dir": "/media/disque_ext/",
Dernière étape, on redémarre le service pour prendre en compte les modifs
sudo service transmission-daemon start
Voilà, vous pourrez donc vous connectez à votre interface en allant sur http://server_ip:1234, en utilisant soit l’adresse du Wifi, soit celle de l’Ethernet.
L’interface web permet déjà quelques réglages sans avoir à toucher à settings.json, mais au besoin vous pourrez paramétrer un peu plus finement votre serveur en tapant dans le fichier.
Installer Lighttpd et PHP pour la suite
Alors non, mon but n’était pas d’hebergé un serveur web avec mon CV et mon blog, parce que 1) je ne cherche pas de taf, et j’ai déjà un blog que vous êtes dessus. Mais pour gérer les téléchargements directs, je n’ai trouvé que wget4web, qui est un ensemble de scripts CGI en Perl qui fonctionnent donc à partir d’une page web. Et pour le PHP, c’est que j’avais besoin d’information pour certain lien que seul PHP pouvait me fournir. Mais on verra cela dans les parties suivantes.
L’installation de Lighttpd est relativement conne, et c’est encore une fois la config qui s’avère plus délicate.
Pour l’installer, one more again :
sudo apt-get install lighttpd
Puis les extensions PHP
sudo apt-get install php5-common php5-cgi php5
Activation de l’extension PHP
sudo lighty-enable-mod fastcgi-php
Activation de l’extension CGI
sudo lighty-enable-mod cgi
L’activation de CGI va créer un fichier /etc/lighttpd/conf-enabled/10-cgi.conf, que vous modifierez de la façon suivante
$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = (
".cgi" => "/usr/bin/perl",
)
}
pour spécifier à votre serveur quels binaires il devra utiliser lors d’un accès à un fichier .cgi .
On termine par dire serveur web de prendre en compte la nouvelle config
sudo service lighttpd force-reload
D’un point de vue facilité d’utilisation, il est pratique d’autoriser votre utilisateur linux du R-Pi à utiliser facilement le dossier /var/www/ dans lequel se trouve vos pages (genre éviter de faire des sudo à foison pour mettre des fichiers dans le repertoire).
Changez le propriétaire du dossier pour assigner le groupe www-data
sudo chown www-data:www-data /var/www
Donnez le droit d’écriture au groupe
sudo chmod 775 /var/www
Ajoutez votre utilisateur (« moi ») au groupe
sudo usermod -a -G www-data moi
Vous avez maintenant un serveur web capable d’executer des scripts en Perl et du PHP, et vous pouvez donc monter un site web 1.0 accessible à http://server_ip, en mettant vos pages dans /var/www/ .
Installer et configurer wget4web
On arrive à un point qui n’est plus très compliqué. Télécharger à la main (oui, des fois ça arrive!) l’archive contenant wget4web dans votre /var/www, en créant un répertoire cgi-bin au préalable.
cd /var/www
mkdir cgi-bin
cd cgi-bin
wget http://exir.ru/wget4web/wget4web-1.0.tar.gz
Et décompresser là directement dedans
tar xzf wget4web-1.0.tar.gz
Il vous faudra ensuite modifier /var/www/cgi-bin/wget4web/data/info.cgi dans lequel se trouve les emplacements de téléchargements ainsi que certaines autres infos intéressantes :
# Directory for Wget logs
$logsdir = "/media/disque_ext/logs";
# Directory for tasks for wget
$tasksdir = "/media/disque_ext/tasks";
# There save downloading files
$filesdir = "/media/disque_ext/p";
N’oubliez pas d’aller créer les répertoires logs et tasks à la racine de votre disque externe…
Puis, dans le fichier /var/www/cgi-bin/wget4web/data/users.cgi, ajouter les utilisateurs qui auront droit d’utiliser le service. La syntaxe est simple, chaque ligne contient un utilisateur, son mot de passe, et la mention admin pour accéder à quelques options de niveaux supérieurs :
moi|mo2pass|admin
lui|lololol
Vous avez maintenant accès à :
http://server_ip/cgi-bin/wget4web/add.cgi – Permet d’ajouter un téléchargement
http://server_ip/cgi-bin/wget4web/progress.cgi – Permet de voir les DL en cours
http://server_ip/cgi-bin/wget4web/admincenter.cgi – Permet de voir certaines statistiques et permettre la supression des téléchargement en cours.
Quand on lui demande télécharger un truc, ça fait le boulot. Le soucis c’est que les pages de stats ne fonctionnent pas bien. C’est un peu pénible, mais bon, on peut faire avec. J’ai vu un type proposer une version modifié, mais uniquement sous forme de binaire pour des Mybook de WD. Les binaires… chouette…
Voilà, vous disposez maintenant d’un serveur qui fait tourner des services de téléchargement divers, pour peu que vous connaissiez les adresses de chaque pas. C’est la où c’est super classe d’avoir un serveur http déjà prêt, vous allez pouvoir faire une page de résumer de tout les liens disponibles sur votre Raspberry.
Configuration de la box pour gérer tout ça de loin
Bon, c’est super cool, mais si vous pouviez manager tout ça de loin, genre avec votre smartphone pendant que vous êtes au pestacle de fin d’année de votre moutard, ça serait mieux. Dans l’idée, vous avez 3 ports à rerouter sur votre box. Le port 80 pour le serveur web, le port 1234 pour Transmission, et éventuellement, le port 22 pour vous connecter discretement en ssh (qu’évidement vous changerez, au moins sur la box, par mesure de sécurité).
Pour cela, utilisez Google qui vous dira comment facilement router les ports de votre box vers les ports TCP du Raspberry Pi.
Comment se debrouiller avec son IP dynamique
Je fais partie de cette frange de la population dont la box change régulièrement d’IP pour une raison qui m’échappe encore. Enfin, ce que je ne comprends pas, c’est pourquoi certains changent, et pas d’autre. Bref, peu importe, j’ai trouvé un truc. Vous pouvez tenter de vous debrouillez en vous inscrivant sur un site genre no-ip ou bien dyndns, ce que je n’avais pas envi de faire parce que 1) la dernière fois que j’ai essayé de faire un truc comme ça, j’ai pas réussi 2) j’ai mon propre site et j’avais envie de pouvoir m’en servir. La classe ultime aurait été de pouvoir créer un sous domaine qui m’amène directement sur le R-Pi. Mais cela n’est visiblement pas possible avec mon hébergeur. Pour remédier à ça, j’ai donc créé un script (merci au gens qui m’ont aidés à le faire!) qui se lance tout les 5min a l’aide des cron table de linux, qui va regarder mon adresse IP publique, et la compare avec la précédante (stockée dans un fichier texte).
Si l’adresse est identique, on ne fait rien, et si elle est différente, j’upload sur mon site un page web contenant une bête redirection vers la nouvelle adresse IP.
Pour récuper l’IP, je choppe la page de garde de icanhazip.com.
#!/bin/sh
FILE='redir.html'
rm $FILE
wget -O ip.txt http://icanhazip.com
cmp -s ip.txt ip_old.txt
if [ $? -eq 0 ]; then
echo "Same IP has previous, no need to change"
else
echo "IP different, will upload IP redirection"
echo "<html>" >> $FILE
echo "<head>" >> $FILE
echo -n "<title>Ma redirection</title>" >> $FILE
echo "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />" >> $FILE
echo -n "<meta http-equiv=\"refresh\" content=\"2; URL=http://" >> $FILE
sed -n '1p' ip.txt >> $FILE
echo "\">" >> $FILE
echo "</head>" >> $FILE
echo "<body>" >> $FILE
echo "</body>" >> $FILE
echo "</html>" >> $FILE
./envoi_fichier_ftp
fi
mv ip.txt ip_old.txt
exit 0
Ce script en appelle un deuxième pour l’upload du fichier, le script envoi_fichier_ftp (Je reconnais m’être honteusement très inspiré de l’internet pour faire ce script):
#!/bin/sh
HOST='ftp.monsite.fr'
USER='moi'
PASSWD='***'
FILE='index.html'
ftp -n $HOST << END_SCRIPT
quote USER $USER
quote PASS $PASSWD
put $FILE fb/$FILE
quit
END_SCRIPT
exit 0
Je précise qu’il n’y a aucune nécessité d’avoir un site internet à soit pour faire marcher ce truc, vous pouvez très bien l’utiliser avec un monsite.free.fr.
Les plus attentifs (s’il y en encore, cet article est le plus long que j’ai fait, je crois. Je vais surement mettre des photos de dames pour donner du courage aux plus téméraires lecteurs) auront remarque que la redirection m’amené sur la racine de l’adresse ip externe… où il n’y a rien. En effet les script CGI sont http://server_ip_extern/cgi-bin/wget4web/***.cgi, et le serveur Transmission sur un port différent. Voilà donc l’occasion rêvée de faire une page de garde en PHP !
Si faire une une page avec les liens vers les CGI est plutôt simple, changer le port alors que, je vous le rappelle, l’on ne connait pas l’IP sur laquelle on se trouve est un poil plus compliqué. Enfin, une fois qu’on a la bonne variable PHP (merci au gens qui m’ont aidés à le faire, encore une fois), c’est plus simple. Voilà le petit bout de code qui m’a permis de faire un lien sur l’adresse IP en changeant de port :
<?php $ip = $_SERVER['SERVER_NAME']; ?>
<p><a href="http://<?php echo $ip;?>:1234">truc avec des torrents légaux</a>
Cela aura le bon goût de s’appliquer quelque soit votre IP d’accès, externe, interne via Wifi, interne via Ethernet
Le reste du fichier est du html tout ce qu’il y a de plus con, des liens, un titre pour faire joli, une CSS pour faire encore plus joli (ok… ça m’a servi pour éviter une répétition de l’image de fond). Vous pouvez même faire des trucs trop top avec des cadres, des frames, des gifs animés de david bastien, des photos de votre chien, mais rappelez vous une chose, tout cela tourne sur un tout petit serveur avec le petit upload de votre ADSL (les fibrés, vos gueules !), ne lui en demander pas trop !
Bon, ceci clos ce gros paté pour faire de presque A à Z un serveur de téléchargement. J’espère n’avoir rien oublié pour qu’au moins, de base, ça marche. Pour finir, je tiens aussi à préciser que ces travaux sont l’oeuvre d’un passioné un peu touche à tout, et pas vraiment un professionnel du domaine. Certains points sont donc clairement améliorable, et c’est avec une certaine humilité concernant l’ensemble de la réalisation que j’en parle. Je suis conscient qu’il existe peut être des failles ou des imperfections inadmissibles, et si vous aviez quelques conseils à prodiguer, allez y de bon coeur !
Sources
http://elinux.org/RPi_Adding_USB_Drives
http://elinux.org/R-Pi_NAS
http://sorrodje.alter-it.org/index.php?article29/seedbox-sur-micro-vks-avec-transmission »
http://www.penguintutor.com/linux/light-webserver
http://bredsaal.dk/using-shell-scripts-for-cgi-in-lighttpd
http://exir.ru/wget4web/
Très bon blog ! Sacré tuto, qui ne m’intéresse pas particulièrement mais à l’air très bien fait 🙂 .Par contre je suis super intéressé par tes billets sur les OS temps réel et les micros processeurs !
Les micros, je risque d’en parler encore vu que c’est mon taf 🙂 et que j’aime ça !
Très bon tuto 🙂 . En revanche il n’existe pas un composant transmission-web ou quelques choses du genre pour ne pas installer le serveur web ?
Merci ! Pour ta question, Transmission inclut son propre serveur web. J’ai peut être pas été clair sur ce point, mais s’il n’y que cette partie qui t’intéresses, tu peux zapper la partie sur lighttpd. Pour simplifier le truc, tu peux lui dire dans le fichier de config settings.json d’utiliser le port 80 directement.
Merci pour votre tuto !
J’ai cependant un problème avec samba. Pour transférer de mon serveur samba ( sur le raspberry vers un autre linux j’ai un débit très faible ( de l’ordre de 1 méga).
J’ai essayer plusieurs lignes a rajouter dans le conf de samba. Mais a part gagner quelques octets rien de flagrant.
Avez vous le même problème ?
Dois je me tourner vers une solution NFS
Merci encore pour le tuto clair et complet !
Humm, j’ai pas vraiment de problème avec la confi telle qu’afficher. Je viens de faire le test, je plafonne à 5,5Mo/s, ce qui me semble correct vu la gueule de l’installation.
Votre débit est il de PC vers Pi ou Pi vers PC ? Sur un disque externe ?
Peut être pourriez vous tenter de faire un serveur ftp sur le Pi pour voir si vous observez la même limitation de débit.
D’un disque dur externe connecté via un hub usb au raspberry pi, vers un pc portable
En ftp même débit
Bonsoir,
Je contribue à la traduction du MagPi grâce à votre Wiki.
Il croule sous le spam. La page d’accueil a été défacée plusieurs fois aujourd’hui (17/12/2012) et des pages sont régulièrement écrasées.
Serait-il possible de :
– limiter les modifications aux seuls utilisateurs enregistrés
– faire le ménage dans les comptes fictifs
– bloquer les IP 46.21.144.x, 91.232.96.x et nettoyer le charabia qu’elles ont envoyé
Cordialement,
Xavier Delatour
x.delatour@laposte.net
Ouaip, j’ai mis le message privé sur le Wiki qui me le demandait, mais j’ai pas eu le temps. J’ai tenté de le faire via mon smartphone, mais j’ai galéré. Il semble qu’on ne puisse que bloquer une IP et pas une plage. Mais j’ai pas encore fait le tour de la question, je m’en occupe ce soir.
Très bon tuto 🙂
C’est peut être bête mais c’est quoi les login/passwd par défaut avec samba quand on suit ta configuration ? 🙂
Apparemment ce n’est pas les mêmes que lors de la connexion au RasPi via SSH.
Merci !
Avec la config que je propose, il n’y a pas de mot de passe. Si Windows en demande un, c’est qu’il y a dû avoir une tuile dans la config !
bonjour,
très bon tuto, il serait intéressant de le coupler avec un tuto sur les VPN type vpntunnel ou autres, et le download au travers de ceux-ci afin d’être « adopifree » 😉
Merci ! Ce n’est pas vraiment dans mes priorités de faire un truc sur le VPN (je ne partage sur ma seedbox uniquement des choses libres et distribuables légalement !), mais ça peut être intéressant, à l’occasion je regarderais.
Salut,
Merci pour toutes ces informations 😉 !
Seulement, j’ai un petit problème au niveau de transmission-daemon… Il m’est absolument impossible d’accéder à l’interface web… Visiblement, mon adresse n’est pas autorisée dans la whiteliste (j’ai pourtant bien renseigné *.*.*.* là où c’était demandé)…
D’autres ont eu ce problème ? Si oui, quelqu’un a une solution ?
Merci d’avance 🙂
Bonjour,
je viens de faire l’acquisition d’un Raspberry Pi et j’aimerais aussi en faire un serveur.
N’étant pas près de la box, j’aimerais savoir si le wifi passait bien et la distance entre le R-Pi et la box.
Merci d’avance
Le wifi c’est toujours un peu la roulette. Je ne capte pas de manière optimal chez moi, mais dans l’ensemble ça fonctionne bien. Ça traverse un étage avec une dalle de béton, mais ça fonctionne pas trop mal.
C’est quoi la configuration chez toi ?
Je suis en appartement et je partage une box avec un ami, donc elle est « assez » loin, mais j’arrive a capter le wifi avec mon smartphone(HTC Wildfire S)
Bonjour, voilà un très bon tuto et très long. Merci pour ces info et de m’aider si vous pouvez car quand j’essaye de me connecter à mon rpi à la fin de la configuration de wget4web j’ai une erreur 500 « internal server error » j’ai bien vérifié et je n’ai rien changer par rapport à vos paramètres.
Bonjour,
Grand merci, et grand respect pour le travail effectuer.
J’ai suivi le tuto, tout s’est bien passé ( mise à part quelque petite différence de nom de paquet chez moi) Sinon tout va à merveille.
Il existe quelque petit bug sur les pages cgi. j’essayerai de faire quelque chose et le partager par la suite avec vous.
Sinon pour l’adresse ip qui change j’avais deja un dyndns, c’est gratuit, configurable dans la box, mais aussi à partir du RB-PI avec un petit daemon.
Bonjours, es t-il possible de faire aussi un serveur pour utorrent ?
Salut, le principe du truc c’est que c’est le logiciel Transmission qui remplace utorrent. Il est possible de piloter utorrent via une interface web, mais c’est sur windows uniquement.
bonjour deja bravo pour le site mais j’ai un probleme avec transmission je lai installer et voila se qui est écrit dedans :
{
« alt-speed-down »: 50,
« alt-speed-enabled »: false,
« alt-speed-time-begin »: 540,
« alt-speed-time-day »: 127,
« alt-speed-time-enabled »: false,
« alt-speed-time-end »: 1020,
« alt-speed-up »: 50,
« bind-address-ipv4 »: « 0.0.0.0 »,
« bind-address-ipv6 »: « :: »,
« blocklist-enabled »: false,
« blocklist-url »: « http://www.example.com/blocklist »,
« cache-size-mb »: 4,
« dht-enabled »: true,
« download-dir »: « /media/disque_ext/ »,
« download-limit »: 100,
« download-limit-enabled »: 0,
« download-queue-enabled »: true,
« download-queue-size »: 5,
« encryption »: 1,
« idle-seeding-limit »: 30,
« idle-seeding-limit-enabled »: false,
« incomplete-dir »: « /root/Downloads »,
« incomplete-dir-enabled »: false,
« lpd-enabled »: false,
« max-peers-global »: 200,
« message-level »: 2,
« peer-congestion-algorithm »: « »,
« peer-limit-global »: 240,
« peer-limit-per-torrent »: 60,
« peer-port »: 51413,
« peer-port-random-high »: 65535,
« peer-port-random-low »: 49152,
« peer-port-random-on-start »: false,
« peer-socket-tos »: « default »,
« pex-enabled »: true,
« port-forwarding-enabled »: false,
« preallocation »: 1,
« prefetch-enabled »: 1,
« queue-stalled-enabled »: true,
« queue-stalled-minutes »: 30,
« ratio-limit »: 2,
« ratio-limit-enabled »: false,
« rename-partial-files »: true,
« rpc-authentication-required »: true,
« rpc-bind-address »: « 0.0.0.0 »,
« rpc-enabled »: true,
« rpc-password »: « ***** »,
« rpc-port »: 1234,
« rpc-url »: « /transmission/ »,
« rpc-username »: « pi »,
« rpc-whitelist »: « 127.0.0.1 »,
« rpc-whitelist-enabled »: false,
« scrape-paused-torrents-enabled »: true,
« script-torrent-done-enabled »: false,
« script-torrent-done-filename »: « »,
« seed-queue-enabled »: false,
« seed-queue-size »: 10,
« speed-limit-down »: 100,
« speed-limit-down-enabled »: false,
« speed-limit-up »: 100,
« speed-limit-up-enabled »: false,
« start-added-torrents »: true,
« trash-original-torrent-files »: false,
« umask »: 18,
« upload-limit »: 100,
« upload-limit-enabled »: 0,
« upload-slots-per-torrent »: 14,
« utp-enabled »: true
}
et quand je fais la commande pour le redemarrer il me mette une erreur aidez moi svp
Salut, quelle est l’erreur qu’il te met ?
Super tuto !
J’ai une petite question par rapport à lighttpd. En acces local je tombe sur un 404 not found, j’ai beau chercher le problème je ne vois pas dutout ou je me suis planté, qui a une idée?
Génial le wget4web, aurais-tu une alternative ?