|  | @@ -37,6 +37,7 @@ SHOW_ON_ABOUT=1
 | 
	
		
			
			| 37 | 37 |  KOEL_DOMAIN_NAME=
 | 
	
		
			
			| 38 | 38 |  KOEL_CODE=
 | 
	
		
			
			| 39 | 39 |  KOEL_ONION_PORT=8118
 | 
	
		
			
			|  | 40 | +KOEL_PORT=9000
 | 
	
		
			
			| 40 | 41 |  KOEL_REPO="https://github.com/phanan/koel"
 | 
	
		
			
			| 41 | 42 |  KOEL_COMMIT='70464a8977b1058f3bd0a4ec77877fe7894d8d84'
 | 
	
		
			
			| 42 | 43 |  KOEL_ADMIN_PASSWORD=
 | 
	
	
		
			
			|  | @@ -380,27 +381,37 @@ function install_koel_main {
 | 
	
		
			
			| 380 | 381 |          echo '  # Index' >> $koel_nginx_site
 | 
	
		
			
			| 381 | 382 |          echo '  index index.php;' >> $koel_nginx_site
 | 
	
		
			
			| 382 | 383 |          echo '' >> $koel_nginx_site
 | 
	
		
			
			| 383 |  | -        echo '  # PHP' >> $koel_nginx_site
 | 
	
		
			
			| 384 |  | -        echo '  location ~ \.php {' >> $koel_nginx_site
 | 
	
		
			
			| 385 |  | -        echo '    include snippets/fastcgi-php.conf;' >> $koel_nginx_site
 | 
	
		
			
			| 386 |  | -        echo '    fastcgi_pass unix:/var/run/php5-fpm.sock;' >> $koel_nginx_site
 | 
	
		
			
			|  | 384 | +        echo '  # Whitelist only index.php, robots.txt, and those start with public/ or api/' >> $koel_nginx_site
 | 
	
		
			
			|  | 385 | +        echo '  if ($request_uri !~ ^/$|index\.php|robots\.txt|api/|public/) {' >> $koel_nginx_site
 | 
	
		
			
			|  | 386 | +        echo '    return 404;' >> $koel_nginx_site
 | 
	
		
			
			|  | 387 | +        echo '  }' >> $koel_nginx_site
 | 
	
		
			
			|  | 388 | +        echo '' >> $koel_nginx_site
 | 
	
		
			
			|  | 389 | +        echo '  location /media/ {' >> $koel_nginx_site
 | 
	
		
			
			|  | 390 | +        echo '    internal;' >> $koel_nginx_site
 | 
	
		
			
			|  | 391 | +        echo '' >> $koel_nginx_site
 | 
	
		
			
			|  | 392 | +        echo '    # A X-Media-Root should be set to media_path settings from upstream' >> $koel_nginx_site
 | 
	
		
			
			|  | 393 | +        echo '    alias       $upstream_http_x_media_root;' >> $koel_nginx_site
 | 
	
		
			
			|  | 394 | +        echo '' >> $koel_nginx_site
 | 
	
		
			
			| 387 | 395 |          echo '  }' >> $koel_nginx_site
 | 
	
		
			
			| 388 | 396 |          echo '' >> $koel_nginx_site
 | 
	
		
			
			| 389 |  | -        echo '  # Location' >> $koel_nginx_site
 | 
	
		
			
			| 390 | 397 |          echo '  location / {' >> $koel_nginx_site
 | 
	
		
			
			| 391 | 398 |          function_check nginx_limits
 | 
	
		
			
			| 392 | 399 |          nginx_limits $KOEL_DOMAIN_NAME '15m'
 | 
	
		
			
			| 393 |  | -        echo '    try_files $uri $uri/ @koel;' >> $koel_nginx_site
 | 
	
		
			
			|  | 400 | +        echo '    try_files   $uri $uri/ /index.php?$args;' >> $koel_nginx_site
 | 
	
		
			
			| 394 | 401 |          echo '  }' >> $koel_nginx_site
 | 
	
		
			
			| 395 | 402 |          echo '' >> $koel_nginx_site
 | 
	
		
			
			| 396 |  | -        echo '  # Fancy URLs' >> $koel_nginx_site
 | 
	
		
			
			| 397 |  | -        echo '  location @koel {' >> $koel_nginx_site
 | 
	
		
			
			| 398 |  | -        echo '    rewrite ^(.*)$ /index.php?p=$1 last;' >> $koel_nginx_site
 | 
	
		
			
			| 399 |  | -        echo '  }' >> $koel_nginx_site
 | 
	
		
			
			|  | 403 | +        echo '  location ~ \.php$ {' >> $koel_nginx_site
 | 
	
		
			
			|  | 404 | +        echo '    try_files $uri $uri/ /index.php?$args;' >> $koel_nginx_site
 | 
	
		
			
			|  | 405 | +        echo '' >> $koel_nginx_site
 | 
	
		
			
			|  | 406 | +        echo '    fastcgi_param     PATH_INFO $fastcgi_path_info;' >> $koel_nginx_site
 | 
	
		
			
			|  | 407 | +        echo '    fastcgi_param     PATH_TRANSLATED $document_root$fastcgi_path_info;' >> $koel_nginx_site
 | 
	
		
			
			|  | 408 | +        echo '    fastcgi_param     SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> $koel_nginx_site
 | 
	
		
			
			| 400 | 409 |          echo '' >> $koel_nginx_site
 | 
	
		
			
			| 401 |  | -        echo '  # Restrict access that is unnecessary anyway' >> $koel_nginx_site
 | 
	
		
			
			| 402 |  | -        echo '  location ~ /\.(ht|git) {' >> $koel_nginx_site
 | 
	
		
			
			| 403 |  | -        echo '    deny all;' >> $koel_nginx_site
 | 
	
		
			
			|  | 410 | +        echo "    fastcgi_pass              127.0.0.1:$KOEL_PORT;" >> $koel_nginx_site
 | 
	
		
			
			|  | 411 | +        echo '    fastcgi_index             index.php;' >> $koel_nginx_site
 | 
	
		
			
			|  | 412 | +        echo '    fastcgi_split_path_info   ^(.+\.php)(/.+)$;' >> $koel_nginx_site
 | 
	
		
			
			|  | 413 | +        echo '    fastcgi_intercept_errors  on;' >> $koel_nginx_site
 | 
	
		
			
			|  | 414 | +        echo '    include                   fastcgi_params;' >> $koel_nginx_site
 | 
	
		
			
			| 404 | 415 |          echo '  }' >> $koel_nginx_site
 | 
	
		
			
			| 405 | 416 |          echo '' >> $koel_nginx_site
 | 
	
		
			
			| 406 | 417 |          echo '}' >> $koel_nginx_site
 | 
	
	
		
			
			|  | @@ -414,9 +425,6 @@ function install_koel_main {
 | 
	
		
			
			| 414 | 425 |      function_check nginx_compress
 | 
	
		
			
			| 415 | 426 |      nginx_compress $KOEL_DOMAIN_NAME
 | 
	
		
			
			| 416 | 427 |      echo '' >> $koel_nginx_site
 | 
	
		
			
			| 417 |  | -    function_check nginx_disable_sniffing
 | 
	
		
			
			| 418 |  | -    nginx_disable_sniffing $KOEL_DOMAIN_NAME
 | 
	
		
			
			| 419 |  | -    echo '' >> $koel_nginx_site
 | 
	
		
			
			| 420 | 428 |      echo '  # Logs' >> $koel_nginx_site
 | 
	
		
			
			| 421 | 429 |      echo '  access_log /dev/null;' >> $koel_nginx_site
 | 
	
		
			
			| 422 | 430 |      echo '  error_log /dev/null;' >> $koel_nginx_site
 | 
	
	
		
			
			|  | @@ -427,27 +435,37 @@ function install_koel_main {
 | 
	
		
			
			| 427 | 435 |      echo '  # Index' >> $koel_nginx_site
 | 
	
		
			
			| 428 | 436 |      echo '  index index.php;' >> $koel_nginx_site
 | 
	
		
			
			| 429 | 437 |      echo '' >> $koel_nginx_site
 | 
	
		
			
			| 430 |  | -    echo '  # PHP' >> $koel_nginx_site
 | 
	
		
			
			| 431 |  | -    echo '  location ~ \.php {' >> $koel_nginx_site
 | 
	
		
			
			| 432 |  | -    echo '    include snippets/fastcgi-php.conf;' >> $koel_nginx_site
 | 
	
		
			
			| 433 |  | -    echo '    fastcgi_pass unix:/var/run/php5-fpm.sock;' >> $koel_nginx_site
 | 
	
		
			
			|  | 438 | +    echo '  # Whitelist only index.php, robots.txt, and those start with public/ or api/' >> $koel_nginx_site
 | 
	
		
			
			|  | 439 | +    echo '  if ($request_uri !~ ^/$|index\.php|robots\.txt|api/|public/) {' >> $koel_nginx_site
 | 
	
		
			
			|  | 440 | +    echo '    return 404;' >> $koel_nginx_site
 | 
	
		
			
			|  | 441 | +    echo '  }' >> $koel_nginx_site
 | 
	
		
			
			|  | 442 | +    echo '' >> $koel_nginx_site
 | 
	
		
			
			|  | 443 | +    echo '  location /media/ {' >> $koel_nginx_site
 | 
	
		
			
			|  | 444 | +    echo '    internal;' >> $koel_nginx_site
 | 
	
		
			
			|  | 445 | +    echo '' >> $koel_nginx_site
 | 
	
		
			
			|  | 446 | +    echo '    # A X-Media-Root should be set to media_path settings from upstream' >> $koel_nginx_site
 | 
	
		
			
			|  | 447 | +    echo '    alias       $upstream_http_x_media_root;' >> $koel_nginx_site
 | 
	
		
			
			|  | 448 | +    echo '' >> $koel_nginx_site
 | 
	
		
			
			| 434 | 449 |      echo '  }' >> $koel_nginx_site
 | 
	
		
			
			| 435 | 450 |      echo '' >> $koel_nginx_site
 | 
	
		
			
			| 436 |  | -    echo '  # Location' >> $koel_nginx_site
 | 
	
		
			
			| 437 | 451 |      echo '  location / {' >> $koel_nginx_site
 | 
	
		
			
			| 438 | 452 |      function_check nginx_limits
 | 
	
		
			
			| 439 | 453 |      nginx_limits $KOEL_DOMAIN_NAME '15m'
 | 
	
		
			
			| 440 |  | -    echo '    try_files $uri $uri/ @koel;' >> $koel_nginx_site
 | 
	
		
			
			|  | 454 | +    echo '    try_files   $uri $uri/ /index.php?$args;' >> $koel_nginx_site
 | 
	
		
			
			| 441 | 455 |      echo '  }' >> $koel_nginx_site
 | 
	
		
			
			| 442 | 456 |      echo '' >> $koel_nginx_site
 | 
	
		
			
			| 443 |  | -    echo '  # Fancy URLs' >> $koel_nginx_site
 | 
	
		
			
			| 444 |  | -    echo '  location @koel {' >> $koel_nginx_site
 | 
	
		
			
			| 445 |  | -    echo '    rewrite ^(.*)$ /index.php?p=$1 last;' >> $koel_nginx_site
 | 
	
		
			
			| 446 |  | -    echo '  }' >> $koel_nginx_site
 | 
	
		
			
			|  | 457 | +    echo '  location ~ \.php$ {' >> $koel_nginx_site
 | 
	
		
			
			|  | 458 | +    echo '    try_files $uri $uri/ /index.php?$args;' >> $koel_nginx_site
 | 
	
		
			
			|  | 459 | +    echo '' >> $koel_nginx_site
 | 
	
		
			
			|  | 460 | +    echo '    fastcgi_param     PATH_INFO $fastcgi_path_info;' >> $koel_nginx_site
 | 
	
		
			
			|  | 461 | +    echo '    fastcgi_param     PATH_TRANSLATED $document_root$fastcgi_path_info;' >> $koel_nginx_site
 | 
	
		
			
			|  | 462 | +    echo '    fastcgi_param     SCRIPT_FILENAME $document_root$fastcgi_script_name;' >> $koel_nginx_site
 | 
	
		
			
			| 447 | 463 |      echo '' >> $koel_nginx_site
 | 
	
		
			
			| 448 |  | -    echo '  # Restrict access that is unnecessary anyway' >> $koel_nginx_site
 | 
	
		
			
			| 449 |  | -    echo '  location ~ /\.(ht|git) {' >> $koel_nginx_site
 | 
	
		
			
			| 450 |  | -    echo '    deny all;' >> $koel_nginx_site
 | 
	
		
			
			|  | 464 | +    echo "    fastcgi_pass              127.0.0.1:$KOEL_PORT;" >> $koel_nginx_site
 | 
	
		
			
			|  | 465 | +    echo '    fastcgi_index             index.php;' >> $koel_nginx_site
 | 
	
		
			
			|  | 466 | +    echo '    fastcgi_split_path_info   ^(.+\.php)(/.+)$;' >> $koel_nginx_site
 | 
	
		
			
			|  | 467 | +    echo '    fastcgi_intercept_errors  on;' >> $koel_nginx_site
 | 
	
		
			
			|  | 468 | +    echo '    include                   fastcgi_params;' >> $koel_nginx_site
 | 
	
		
			
			| 451 | 469 |      echo '  }' >> $koel_nginx_site
 | 
	
		
			
			| 452 | 470 |      echo '' >> $koel_nginx_site
 | 
	
		
			
			| 453 | 471 |      echo '}' >> $koel_nginx_site
 | 
	
	
		
			
			|  | @@ -520,7 +538,7 @@ function install_koel {
 | 
	
		
			
			| 520 | 538 |      sed -i "s/DB_PASSWORD=secret/DB_PASSWORD=$MARIADB_PASSWORD/g" .env
 | 
	
		
			
			| 521 | 539 |  
 | 
	
		
			
			| 522 | 540 |      php artisan koel:init
 | 
	
		
			
			| 523 |  | -    php artisan serve
 | 
	
		
			
			|  | 541 | +    php artisan serve --port=$KOEL_PORT
 | 
	
		
			
			| 524 | 542 |  
 | 
	
		
			
			| 525 | 543 |      chown -R www-data:www-data /var/www/$KOEL_DOMAIN_NAME/htdocs
 | 
	
		
			
			| 526 | 544 |      systemctl restart nginx
 |