Hello,
Suite à la mise à jour récente de Cakebox-light, la configuration a bien changé et je vois pas mal de gens demander de l'aide, du coup je vous propose ce petit tuto rapide qui est une synthèse du tuto déjà présent ici pour l'ancienne version et du wiki officiel adapté pour la configuration par défaut "mondédié".
Attention: Pour le moment, la fonctionnalité multi-users intégrée à la nouvelle version n'est pas totalement fonctionnelle, nous nous appuierons donc ici sur une gestion par htaccess, comme pour l'ancienne version.
Attention²: Tuto réalisé pour php-fpm version 5, si vous utilisez php7 et php-fpm en version 7, pensez à adapter votre directive fastcgi_pass dans cakebox.conf.
Pré-requis
Vous devez avoir :
- PHP 5.4 minimum ("php -v" pour vérifier)
- Composer
- Node.js & npm
- Bower
S'il vous manque des choses, tout est expliqué ici :
https://github.com/Cakebox/cakebox/wiki/Installation-des-prerequis
et ici (tuto de MagicAlex pour l'ancienne version) :
https://mondedie.fr/d/5314
PS: s'il vous manque les dépôts dotdeb, remplacez :
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy all
par :
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
Installation
Ensuite on récupère et install cakebox-light (si vous n'avez pas les autorisations nécessaires, faites des sudo ou passez "root", à condition de savoir ce que cela signifie bien sûr

) :
cd /var/www/
git clone https://github.com/Cakebox/Cakebox-light.git cakebox
cd cakebox/
git checkout -b $(git describe --tags $(git rev-list --tags --max-count=1))
composer install
On édite bower.json et on remplace :
"sha256": "https://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/sha256.js",
par :
"sha256": "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/crypto-js/2.5.3-sha256.js",
Puis on finit l'install:
bower install
(Si vous êtes en root : bower install --allow-root)
Ensuite, on config l'accès à l'appli.
Créez autant de fichiers config que vous voulez créer d'instances utilisateurs:
cd config
cp default.php.dist <nom_de_votre_user>.php
et on modifie le nouveau fichier php (à reproduire pour chaque user):
$app["cakebox.root"] = "/home/<user>/torrents";
$app["cakebox.access"] = "/access/<user>/";
$app["cakebox.host"] = "<http(s)://votre_domaine.tld>";
On fini par configurer nginx.
On colle le bloc suivant dans "/etc/nginx/sites-enabled/cakebox.conf" :
server {
listen 81;
server_name _;
# only the proxy
allow 127.0.0.1;
deny all;
root /var/www/cakebox/public/;
access_log /var/log/nginx/cakebox-access.log;
error_log /var/log/nginx/cakebox-error.log;
#site root is redirected to the app boot script
location = / {
try_files @site @site;
}
#all other locations try other files first and go to our front controller if none of them exists
location / {
try_files $uri $uri/ @site;
}
#return 404 for all php files as we do have a front controller
location ~ \.php$ {
return 404;
}
#main configuration
location @site {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
## use debug instead of production to get more log
fastcgi_param APPLICATION_ENV production;
## fastcgi_param HTTPS on;
}
}
Version URI
Pour accéder à cakebox par une url de la forme
http(s)://votredomaine.com/cakebox, éditez votre fichier /etc/nginx/sites-enabled/rutorrent.conf, et ajoutez le bloc suivant à la fin du bloc server :
location /cakebox/ {
rewrite ^/cakebox(/.*)$ $1 break;
proxy_pass http://127.0.0.1:81;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
location /access/<user> { # meme_chemin_que_$app["cakebox.access"]
alias /<chemin>; # meme_chemin_que_$app["cakebox.root"]
allow all;
satisfy any;
add_header Content-Disposition "attachment";
}
Version Sous-domaine
Pour accéder à cakebox par une url de la forme
http(s)://cakebox.votredomaine.com, éditez votre fichier /etc/nginx/sites-enabled/cakebox.conf, et créer un nouveau bloc server en dessous de celui créé plus tôt :
server {
listen 80;
server_name sub.domain.tld;
rewrite ^ https://$server_name$request_uri? permanent; # on redirige http en https
}
server {
listen 443 ssl http2; # on supprime "http2" si celui ci n'est pas configuré sur le server
server_name sub.domain.tkd; # on modifie par l'url qu'on veut de type : cakebox.domaine.fr
root /var/www/cakebox/public/;
access_log /var/log/nginx/cakebox-access.log;
error_log /var/log/nginx/cakebox-error.log;
auth_basic "Entrez vos identifiants serveur";
auth_basic_user_file "/etc/nginx/passwd/rutorrent_passwd"; # on vérifie que le chemin est correct
ssl on;
ssl_certificate /etc/ssl/nginx/cert.crt-unified; # on modifie avec ses propres certificats
ssl_certificate_key /etc/ssl/nginx/server.key; # on modifie avec la clef correspondante
location /cakebox/ {
rewrite ^/cakebox(/.*)$ $1 break;
proxy_pass http://127.0.0.1:81;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
location /access/<user> { # meme_chemin_que_$app["cakebox.access"]
alias /<chemin>; # meme_chemin_que_$app["cakebox.root"]
allow all;
satisfy any;
add_header Content-Disposition "attachment";
}
}
Fin de conf
Pensez à déclarer autant de bloc location /access/<user> que de fichiers <user>.php créés.
Et on redémarre nginx et php-fpm :
service nginx restart && service php7.0-fpm restart
ou
systemctl restart nginx && systemctl restart php7.0-fpm
Pensez à vous log si besoin en arrivant sur cakebox avec vos login/mdp htaccess.
Mise à jour
Pour mettre à jour :
git fetch --tags
git checkout -b $(git describe --tags $(git rev-list --tags --max-count=1))
composer self-update
composer update
bower update --allow-root
Ajouts / Sources : @MaigcAlex @nadrelaxe @cakebox-light-wiki