devfake / flox Goto Github PK
View Code? Open in Web Editor NEWSelf Hosted Movie, Series and Anime Watch List
Home Page: https://flox-demo.pyxl.dev/
License: MIT License
Self Hosted Movie, Series and Anime Watch List
Home Page: https://flox-demo.pyxl.dev/
License: MIT License
Hello, i'm trying to create a Dockerize this application, but I'm not getting it to work.
I found an already existing Dockerfile on Dockerhub which i modified to install php 7.4 instead of 7.0
Here is my Dockerfile:
FROM php:7.4-alpine
RUN apk add --update php7 php7-sqlite3 php7-json php7-phar php7-mbstring php7-openssl php7-dom php7-tokenizer php7-xml php7-pdo php7-pdo_sqlite curl git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
RUN git clone https://github.com/devfake/flox
WORKDIR flox/backend
RUN composer install
CMD tail -f /dev/null
Here is the docker-compose file:
version: '3'
services:
db:
image: mysql:8.0.17
environment:
MYSQL_ROOT_PASSWORD: mypass
MYSQL_DATABASE: flox_db
ports:
- "3308:3306"
networks:
- private
volumes:
- data:/var/lib/mysql
deploy:
placement:
constraints:
- node.role == manager
app:
image: calgara12/flox
networks:
- private
- public
ports:
- "6030:8888"
deploy:
placement:
constraints:
- node.role == manager
labels:
- traefik.frontend.rule=Host:flox.mydomain.com
- traefik.enable=true
- traefik.port=8888
- traefik.tags=public
- traefik.docker.network=public
- traefik.redirectorservice.frontend.entryPoints=http
- traefik.redirectorservice.frontend.redirect.entryPoint=https
- traefik.webservice.frontend.entryPoints=https
volumes:
data:
networks:
public:
external: true
private:
Once my containers are up and running I connect to my app container and type in the commands listed in your ReadMe.
/flox/backend # php artisan flox:init
Enter your Database Name:
> flox_db
Enter your Database Username:
> myusername
Enter your Database Password:
> mypass
Enter your Database Hostname [localhost]:
> 10.0.10.43
Enter your Database Port [3306]:
> 3306
/flox/backend #
But when i then do the db command i get an error:
/flox/backend # php artisan flox:db
TRYING TO MIGRATE DATABASE
Can not connect to the database. Error: could not find driver (SQL: select * from information_schema.tables where table_schema = flox_db and table_name = migrations and table_type = 'BASE TABLE')
Make sure your database credentials in .env are correct
Any help would be greatly appreciated :)
Hey, first of all, thank you so much for making this awesome application.
I wanted to install this in docker, and luckily i found a fork, that already implemented this. So i spun up the container, i just added my traefik labels to make it accessible publicly.
When i tried to reach it locally through 192.168.1.178:6030 it worked, but, when i tried to access it through my domain https://flox.mydomain.com i got an empty page, and when i looked at the console with F12 it gave me these errors:
https://i.stack.imgur.com/pYk2t.png
Then i went ahead and changed the APP_URL from http://localhost to https://flox.mydomain.com in the .env file which gave me the same result.
Then after doing some research i tried to force https by editing /backend/app/Providers/AppServiceProvider.php
I added use Illuminate\Support\Facades\URL;
at the beginning of the file and URL::forceScheme('https');
inside the boot function.
This helped resolve all the above mentioned Errors and the Application finally loaded and i thought this would be the end of it. But that's not how the cookie crumbled.
I added a few movies to my watchlist, and then later when i looked at the list, not all movies loaded but there is a "Load more" button at the end of the website, and when i click that button, the old familliar "mixed content" error came back.
https://i.stack.imgur.com/KbVZZ.png
https://i.stack.imgur.com/2Wswd.png
I have no Idea why this is not served over https. Any help would be greatly appreciated! Thanks
After cloning this repo and making sure all packages are up-to-date, I run composer install
in the flox/backend/
directory. The install fails with the following error.
It seems like there are missing dependencies that should probably be added to the install instructions. I'm trying to spin this up on a new container, so I'm starting from scratch, dependency-wise.
flox-host:/opt/flox/backend# composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for nikic/php-parser v2.1.1 -> satisfiable by nikic/php-parser[v2.1.1].
- nikic/php-parser v2.1.1 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
Problem 2
- Installation request for phpunit/php-token-stream 1.4.8 -> satisfiable by phpunit/php-token-stream[1.4.8].
- phpunit/php-token-stream 1.4.8 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
Problem 3
- Installation request for phpunit/phpunit 5.6.1 -> satisfiable by phpunit/phpunit[5.6.1].
- phpunit/phpunit 5.6.1 requires ext-dom * -> the requested PHP extension dom is missing from your system.
Problem 4
- nikic/php-parser v2.1.1 requires ext-tokenizer * -> the requested PHP extension tokenizer is missing from your system.
- psy/psysh v0.7.2 requires nikic/php-parser ^1.2.1|~2.0 -> satisfiable by nikic/php-parser[v2.1.1].
- Installation request for psy/psysh v0.7.2 -> satisfiable by psy/psysh[v0.7.2].
To enable extensions, verify that they are enabled in your .ini files:
- /etc/php7/php.ini
- /etc/php7/conf.d/00_iconv.ini
- /etc/php7/conf.d/00_json.ini
- /etc/php7/conf.d/00_mbstring.ini
- /etc/php7/conf.d/00_openssl.ini
- /etc/php7/conf.d/01_phar.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Hello! First of all, I love your project. As a huge movie-holic it's my dream to build a recommendations engine some day using data from IMDb, TMDb, Trakt, Letterboxd, etc.
But for the issue. My https is not green and I see the images from tmdb are unsecure. Can you update flox to be 100% under http, including assets from outside.
I find this project very interesting and want to deploy it on a home Ubuntu machine but I have very little knowledge about php, composer and nginx. I was able to follow alone up until database migrations. I think I messed up on the CLIENT_URI part as I can't access the site at the CLIENT_URI. Is it possible to make a installation guide for Ubuntu? I am using Ubuntu 16.04. Thanks in advance !
There appears to be no anime based titles in this anymore, suggestions on how to fix it?
Can we make server hosted ?
Hi,
try adding "Asterix der Gallier" - it will fail with: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1968-12-16 20:52:25' for column 'released_timestamp' at row 1
The problem is:
MariaDB stores values that use the TIMESTAMP data type as the number of seconds since '1970-01-01 00:00:00' (UTC). This means that the TIMESTAMP data type can hold values between '1970-01-01 00:00:01' (UTC) and '2038-01-19 03:14:07' (UTC).
see: https://mariadb.com/kb/en/timestamp/
To fix it, you can change from timestamp
to datetime
- find a migration a attached.
2020_01_09_210708_change_released_timestamp_to_datetime.txt
i install but i cont find any logins
It seems most modifications/additions in the app can only be made when the admin user is logged in. Is there an option to remove that requirement?
I don't really need users to be logged in to do anything, don't think most users would expose this to the internet and for home-internal use it probably doesn't really need user auth/password?
It's not like someone accidentally stumbling onto the app could cause any serious trouble - and if yes, you shouldn't really let him into your home network anyway. ;)
It'd be nice if we could add short notes to items while on the detail media screen.
The wife asked for this, just so that she can add short remarks to an item.
Guess a simple text field would do, 3-4 lines, just to add some quick additional data like for items that she liked and I didn't or so.
I finally got Flox up and running just fine, but when I search for anything, click on Trending, etc I get a 500 error returned from TMDB. I checked their status page and they don't show anything going on that would affect this. I'm using the version 3 API key. Any ideas?
Thanks!
I am looking for someone who could build a simple Kodi API for Flox.
There is already one for Plex (#127). However, I don't think there is any simple webhook functionality built in for Kodi?
Maybe this addon would help here: https://kodi.wiki/view/Add-on:Kodi_Callbacks.
The required data for Flox are very simple. The class must inherit from the abstract api class and implement the necessary methods. Example from Plex: https://github.com/devfake/flox/blob/master/backend/app/Services/Api/Plex.php.
any reason you are not using php-tmdb/laravel and algolia/algoliasearch-laravel
also it would be great if you can implement tmdb authentication
Hello,
I have setup flox and its running on a subdomain flox.xxx.de/ but its not loading anything.
The API key have created, Im using v3.
But its not working.
Do you can help me?
Thanks
I am looking for someone who could build a simple Jellyfin API for Flox.
There is already one for Plex (#127). However, I don't think there is any simple webhook functionality built in for Jellyfin?
The required data for Flox are very simple. The class must inherit from the abstract api class and implement the necessary methods. Example from Plex: https://github.com/devfake/flox/blob/master/backend/app/Services/Api/Plex.php.
Or is it necessary to request the API of Jellyfin itself? For example via a cronjob.
hello, is there any plan to integrate videojs or other video player?
here is a vue version of videojs [https://www.npmjs.com/package/vue-video-player]
Hi, I just tried to get Flox working on a VPS. It seems that it worked, since I am now presented with the flox main page, however it loads forever because it can't make some API calls for some reason.
relevant logs:
vendor.js:13 GET http://localhost/flox/public/api/settings 404 (Not Found)
(anonymous) @ vendor.js:13
e.exports @ vendor.js:13
e.exports @ vendor.js:13
vendor.js:13 Uncaught (in promise) Error: Request failed with status code 404
at e.exports (http://localhost/flox/public/assets/vendor.js:13:21191)
at e.exports (http://localhost/flox/public/assets/vendor.js:13:26983)
at XMLHttpRequest.p.(anonymous function) (http://localhost/flox/public/assets/vendor.js:13:19950)
e.exports @ vendor.js:13
e.exports @ vendor.js:13
p.(anonymous function) @ vendor.js:13
vendor.js:13 GET http://localhost/flox/public/api/items/home/rating 404 (Not Found)
any idea? the call itself is strange, since the public folder is not restful.
I am running on nginx with php7 and mariadb, all stable.
After cloning the master branch, installing dependencies, and running composer install
in flox/backend/
the following error is thrown on Alpine 3.10:
flox-host:/opt/flox/backend# composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
> Illuminate\Foundation\ComposerScripts::postInstall
> php artisan optimize
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Class 'PDO' not found in /opt/flox/backend/config/database.php:16
Stack trace:
#0 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(60): require()
#1 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php(38): Illuminate\Foundation\Bootstrap\LoadConfiguration->loadConfigurationFiles(Object(Illuminate\Foundation\Application), Object(Illuminate\Config\Repository))
#2 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(203): Illuminate\Foundation\Bootstrap\LoadConfiguration->bootstrap(Object(Illuminate\Foundation\Application))
#3 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(268): Illuminate\Foundation\Application->bootstrapWith(Array)
#4 /opt/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(114): Illuminate\Foundation\Console\Kernel->bootstrap()
in /opt/flox/backend/config/database.php on line 16
Script php artisan optimize handling the post-install-cmd event returned with error code 255
Hi,
is support for multiple users on one installation something you would consider? I would like to host a Flox instance for my friends and family, each which his own watchlist and rankings.
I want to keep track of foreign movies and TV shows that I watch which TMDb does not have info about. Is there away to manually add information , poster.
Hi,
very nice project.
Are there any plans to be able to use this with docker (-compose)?
Most people probably don't have a running Redis at hand and installing one just for the Laravel queue of Flox seems a bit oversized.
I believe we can set the default queue driver to database in backend/.env?
The DB table for the queue is already created during the installation, so there should not be any additional steps necessary. At least it seems to work fine here.
As the title says, when I call php artisan flox:db
twice, it will ask for a admin username and password even though an account already exists. It throws an error as shown below. I haven't used this software for long, but when Flox gets updated I need to call this command again to update the database, correct?
I ask this because I'm creating a docker image and I call php artisan flox:db admin password
so the database can be initialized (and updated, if needed), and to create a default login.
> php artisan flox:db admin password
TRYING TO MIGRATE DATABASE
Nothing to migrate.
MIGRATION COMPLETED
In Connection.php line 669:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admi
n' for key 'users_username_unique' (SQL: insert into `users` (`username`, `
password`, `updated_at`, `created_at`) values (admin, $2y$10$lSOtTRAlNmEvZ2
cbFYXmwOemYbTNi2anhbBzXIabZVkGFmC3C6LuC, 2020-01-23 04:31:11, 2020-01-23 04
:31:11))
In PDOStatement.php line 123:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admi
n' for key 'users_username_unique'
In PDOStatement.php line 121:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'admi
n' for key 'users_username_unique
The lines 34 and 35 in docker-compose.yml
are too specific to the host, Windows in particular.
Line 34 in 5a5ba23
I can, even after solid searching most pixels of the interface, not find a delete button to remove added media from Flox. Anyone have a screenshot of where to find it, if it's there? :)
Hello, it's me again! ;)
Just to be sure it will work for future backups I tried to export->import a backup on a quickly created new instance with roundabout 30 entries. It fails with the following error:
[2020-02-04 21:58:35] local.ERROR: file_get_contents(): Filename cannot be empty {"userId":1,"exception":"[object] (ErrorException(code: 0): file_get_contents(): Filename cannot be empty at /var/www/flox/backend/app/Http/Controllers/ExportImportController.php:74) [stacktrace] #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_get_conten...', '/var/www/flox/b...', 74, Array) #1 /var/www/flox/backend/app/Http/Controllers/ExportImportController.php(74): file_get_contents('') #2 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(48): App\\Http\\Controllers\\ExportImportController->import() #3 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ExportImportController), 'import') #4 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\\Routing\\Route->runController() #5 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\\Routing\\Route->run() #6 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request)) #7 /var/www/flox/backend/app/Http/Middleware/HttpBasicAuth.php(20): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #8 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): App\\Http\\Middleware\\HttpBasicAuth->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #9 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #10 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #11 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(59): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #12 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Routing\\Middleware\\ThrottleRequests->handle(Object(Illuminate\\Http\\Request), Object(Closure), 60, '1') #13 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #14 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #15 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #16 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #17 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request)) #18 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route)) #19 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request)) #20 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request)) #21 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request)) #22 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(62): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #23 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure)) #24 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request)) #25 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\\Pipeline\\Pipeline->then(Object(Closure)) #26 /var/www/flox/backend/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request)) #27 /var/www/flox/public/index.php(53): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request)) #28 {main} "}
I tried to find an misconfiguration (recursive write, upload_max_filesize etc.) on my side but as far as I can see there isn't one. Do you have an idea?
It seems if I search for series with different titles (title and original_title) it yields different results kind of, I added "Classroom of the elite" to my list but after some time (today) I didn't remember if I already added it so I searched for the jap title "Youkoso jitsuryoku...". It both yielded from the laravel logs apparently the same result with the same id but on the site it didn't show as already added, so when I clicked I got that endless spinning wheel (box filling up and rotating), as adding it again caused a duplicate entry violation in SQL but no error callback ends the spinning.
But the real issue here is that it didn't realise that both queries are the same series. The logs are below:
Next Illuminate\Database\QueryException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '72517' for key 'items_tmdb_id_unique' (SQL: insert into `items` (`tmdb_id`, `title`, `media_type`, `original_title`, `poster`, `rating`, `released`, `genre`, `created_at`) values (72517, Classroom of the Elite, tv, ようこそ実力至上主義の教室へ, /ok9vS2v7r4in14R9AUOtBXTwdYy.jpg, 1, 1499888046, Animation, Comedy, Drama, 1506540849)) in /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php:764
Stack trace:
#0 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(720): Illuminate\Database\Connection->runQueryCallback('insert into `it...', Array, Object(Closure))
#1 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(481): Illuminate\Database\Connection->run('insert into `it...', Array, Object(Closure))
#2 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Connection.php(435): Illuminate\Database\Connection->statement('insert into `it...', Array)
#3 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Query/Processors/Processor.php(32): Illuminate\Database\Connection->insert('insert into `it...', Array)
#4 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(2142): Illuminate\Database\Query\Processors\Processor->processInsertGetId(Object(Illuminate\Database\Query\Builder), 'insert into `it...', Array, 'id')
#5 [internal function]: Illuminate\Database\Query\Builder->insertGetId(Array, 'id')
#6 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(1441): call_user_func_array(Array, Array)
#7 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10783): Illuminate\Database\Eloquent\Builder->__call('insertGetId', Array)
#8 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10772): Illuminate\Database\Eloquent\Model->insertAndSetId(Object(Illuminate\Database\Eloquent\Builder), Array)
#9 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10726): Illuminate\Database\Eloquent\Model->performInsert(Object(Illuminate\Database\Eloquent\Builder))
#10 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(10384): Illuminate\Database\Eloquent\Model->save()
#11 /var/www/flox.example.com/backend/app/Http/Controllers/ItemController.php(161): Illuminate\Database\Eloquent\Model::create(Array)
#12 /var/www/flox.example.com/backend/app/Http/Controllers/ItemController.php(114): App\Http\Controllers\ItemController->createItem(Array, Object(App\Services\TMDB))
#13 [internal function]: App\Http\Controllers\ItemController->add(Object(App\Services\TMDB))
#14 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9403): call_user_func_array(Array, Array)
#15 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8459): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\ItemController), 'add')
#16 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8440): Illuminate\Routing\Route->runController()
#17 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8149): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#18 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9967): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#20 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#21 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#22 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#23 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(3151): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#26 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#27 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(13459): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#29 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(11899): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#32 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(13205): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#35 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#36 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#37 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(13142): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#38 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9844): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#41 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8150): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#42 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8141): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#43 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(8132): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#44 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(2472): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#45 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#46 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(3213): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#47 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9859): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#48 /var/www/flox.example.com/backend/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(33): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#49 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(9844): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#50 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(2416): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#51 /var/www/flox.example.com/backend/bootstrap/cache/compiled.php(2400): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#52 /var/www/flox.example.com/public/index.php(53): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#53 {main}
And here is a screenshot of the not added and the added one
for example, if i got: ~/Movies/Example.Movie.2016.bla.bla.bla.mkv in a folder, along with a ton of others, is there a way for Flox to watch this folder and build my movie db from the names of the folders and files inside of it ?
This feature would make this super useful to me. Anyway, good work keep it up!
Hello Devfake!
I have tried multiple systems and I cannot seem to get this to work. I know this is bad practice, but I added the root user of MySQL to try and get this project up, but I get the below error. Without the root account, I have been seeing Error Code 1045 even though I am able to log into the MySQL server with the same credentials.
I tried looking through the other issues, both opened and closed but have not found a similar issue. I have tried both Ubuntu 19.10 and Debian 10, both exhibiting the same issues, so it must be something that I am doing or not doing.
Do you have any thoughts?
Thanks!
[previous exception] [object] (PDOException(code: 1698): SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' at /var/www/html/flox/backend/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27)
[stacktrace]
If a TV show and a movie have the same id on TMDB and you add one of them to as watched, you are unable to add the other item with the same id.
Tested with the following items:
Sabrina the Teenage Witch [TV Show]: https://www.themoviedb.org/tv/605-sabrina-the-teenage-witch
The Matrix Revolutions [Movie]: https://www.themoviedb.org/movie/605-the-matrix-revolutions
The items show up right in the search, but if you interact with them, they are transforming to the element already in the database.
API key has been provided in .env
Not too familiar with laravel, so tell me which logs to provide
If openssl is installed with the version 1.1.1.e-1, Symfony fails with the following error:
SSL routines:ssl3_read_n:unexpected eof while reading at /usr/share/nginx/flox/backend/app/Services/Storage.php:39 (openssl/openssl#10882)
This breaks some of the functionality of flox, e.g. the image retrieval...
It seems my installation works half. I can add new series even though I have to reload to make sure they show up and every second time I try to change my ratings I get an error "Error in saveNewRating()".
AND: I cannot load the episode information on the series. It loads and then it stops.
here is my installation: https://flox.satanik.at
Hi there, awesome project!
I just played a bit around with it and found that when using smaller screens, the buttons for the suggestions and for the view progress will simply disappear so that you can't track your progress from a mobile phone for example. Maybe the buttons also just move to somewhere else, but I simply can't find them. Would appreciate an answer and if applicable a fix for this 😊. Thank you!
Not familiar with artisan/laraval, but I assume it should be easy to change the init script to add a question for "DB_HOST" for those of us with MYSQL running on a separate host? I added the "DB_HOST=192.168.1.1" line to my .env file manually but might be something you could add to the install process.
I try to deploy flox on my Raspberry Pi with sqlite.
However, the database doesn't get filled, the db file stays empty even though the "php artisan flox:db" command outputs "MIGRATION COMPLETED".
I followed the instructions on https://laravel.com/docs/6.x/database and those on this site.
The webserver is Apache2 on a debian based linux (OSMC).
This is my .env:
TMDB_API_KEY=apikey
TRANSLATION=DE
CLIENT_URI=/flox/public
LOADING_ITEMS=30
# Default 10 minutes (600 seconds)
PHP_TIME_LIMIT=600
# Set your correct timezone
TIMEZONE=UTC
# Date pattern for reminder mails
DATE_FORMAT_PATTERN=d.m.Y
DAILY_REMINDER_TIME=10:00
WEEKLY_REMINDER_TIME=20:00
DB_CONNECTION=sqlite
DB_HOST=
DB_PORT=
DB_DATABASE=/var/www/html/flox/backend/database/database.sqlite
DB_USERNAME=
DB_PASSWORD=
APP_URL=http://osmc
APP_ENV=local
APP_KEY=appkey
APP_DEBUG=true
APP_LOG=daily
QUEUE_DRIVER=database
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Thank you for any input in advance!
I had trouble getting Flox to run using a reverse proxy, especially over https. I'm not a php developer but I did some researching and found a solution that worked for me. The documentation says it introduces a security risk so I feel there should be a better solution. Has anyone else run into this issue?
Here's an article on the Laravel website that explains the issue. On that article they mention an external php package (fideloper/proxy) that allows for easy configuration of trusted proxies. I haven't tried setting that up because I'm not familiar enough with php.
The solution I had success with is mentioned on this page. I added the following code to public/index.php and it loaded successfully. I tried replacing 'REMOTE_ADDR' with '127.0.0.1' but that didn't work.
Request::setTrustedProxies(
['REMOTE_ADDR'],
Request::HEADER_X_FORWARDED_PROTO
);
It does not rescrape show details on a scheduled basis or an option to manually rescrape so once added, the seaons/episodes will be outdated.
Can you please add a manually rescrape or daily auto rescrape feature?
Thanks
Hello,
I'm relatively new to this whole Linux world... I managed to install everything correctly (I assume) on my DietPi (Obviously running on my RPi3) created database on MySQL (MariaDB) and I managed to make the software connect to it, created the API and everything but I really can't figure out how to access the web page?
I have the CLIENT_URI set as /flox so I'm assuming I'll have to do localhost/flox to access the web page but that seems like it doesn't work... on the github page an "8888" port is mentioned, unfortunately I have another service running on that port and I can't seem to figure out how to change that port from the default one (if it's actually needed)
Am I missing something?
I noticed with the latest version that apparently we need to reset the migration, rather than the table being expanded with the new fields.
Could you do this for the next release(s) so I (and others) don't have to reset my entire database?
I also noticed that the application doesn't work correctly since there is no created_at field in the episodes table, which you use with the query to get recent items.
I manually fixed these in my database but a more elegant solution should be made!
Great work on this so far!
Hi, first up i just wanted to let you know that this project looks really promising.
I really like the idea is there any chance that i version 2 you would add some function that you could add custom columns?
I'm searching for a nice way to keep an overview of my collection but at the same time keep it self hosted so that i do not have to rely on other services and could still add info manually like in my Spreadsheet right now.
So basically would you consider it possible to:
Add custom columns to Shows/Movies
Download the Covers when exporting (if TMDB ever shuts down its API )
With best regards.
Most shared hosting services don't support Composer so would you be willing to release a package that could be used on a shared hosting service?
Thanks a ton for the awesome work. 👍
I am unsure of the whole architecture of the app. But was just wondering if the app could have support for timestamps (time and date of the view/rating). Not sure if it's a general requirement but I like to see when and how many times I have viewed a particular episode or a movie just for stat nerds :). I currently use trakt exclusively for this and was looking to replace that with a self hosted service.
A simple Plex API has now been added.
This enables the creation of new items in Flox when playing a video in Plex. Mark a episode as seen if a episode is finished or rate a movie/tv show.
A simple API for this has been added to Flox. The implementation for Plex is available here: https://github.com/devfake/flox/blob/master/backend/app/Services/Api/Plex.php. It can be used for other programs as well.
Is that enough? Or do we also need a sync from Flox to Plex? Is there an API for that?
Could someone use real media to test the Plex implementation in Flox?
I just connected my Plex via API and when I started a client, it nicely added the show I was just watching to Flox, so nice one there!
However, for some reason it added the same show twice. Now I have two pictures of Young Sheldon on my screen, waiting to be rated.
One would be enough... how do I get rid of the other one (without tinkering in the DB?) and why did I end up with two of them in the first place?
Ideally there should be a duplication check - maybe it happened because it came through the Plex API and we're missing a check there?
TMDB offers multiple "release date" types, like cinema, physical, TV etc.
Currently I believe only the cinema release date is shown on the calendar.
Can we add other types as well? Maybe even able to select which ones to show in the calendar?
It's available through their API, so data should be easy to retrieve.
https://developers.themoviedb.org/3/movies/get-movie-release-dates
Hello,
Does anyone have this project working on a Linux system? I have tried Debian (v9 & 10) and Ubuntu (18.04 & 19.10), both as containers and VMs and have been unable to load any movies on the site. I can see the site but they 'eye' icon just blinks. I am using Apache2, MySQL, and PHP.
What flavor of Linux are you using to get this project running?
Thanks,
Mitch
Please provide sample web server configuration or hints how to set it up.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.