kaangiray26 / forte

Self-hosted, music streaming platform
https://forte.buzl.uk/
GNU General Public License v3.0
342 stars 12 forks source link

Can't get forte running (pt. 2) #88

Closed JaxzKyd closed 1 year ago

JaxzKyd commented 1 year ago

So I noticed that 1.7 just released, meaning I could finally use my entire music library with Forte, which I was excited to test out! Unfortunately, trying to start forte leads to the app container closing with these logs.

kaangiray26 commented 1 year ago

Hi, forte uses music-metadata library for checking out if the file is an audio file. Do you have any files that are not supported by music-metadata?

You can check the supported files here

I'll try to make a workaround for unsupported files :+1:

JaxzKyd commented 1 year ago

Hi, forte uses music-metadata library for checking out if the file is an audio file. Do you have any files that are not supported by music-metadata?

I don't believe I do. My library mainly comprises FLACs with the occasional MP3s and OGG files. All of which seems to be listed. I'll try a smaller portion of my library that I know only consists of FLACs and I'll get back to you.

kaangiray26 commented 1 year ago

I've pushed some changes to revert to manual tagging if parseFile function fails. Can you check if it solves the issue for you?

You can use the following docker-compose.yml file to build from the master branch quickly, but you have to clone the repository and change your directory to the server directory:

version: '3'
services:
    app:
        build:
            context: .
            dockerfile: Dockerfile.node
        ports:
            - "80:80"
            - "443:443"
            - "3000:3000"
        depends_on:
            postgres:
                condition: service_healthy
        environment:
            mode: local
            forte_email: <email>
            forte_server: <server>
            POSTGRES_HOST: postgres  # Postgres Host/IP
            POSTGRES_PORT: 5432      # Postgres Database Port
            POSTGRES_DB: forte       # Set Postgres Database Name
            POSTGRES_USER: forte     # Set Postgres Username
            POSTGRES_PASSWORD: forte # Set Postgres Password
        volumes:
            - <library>:/library
    postgres:
        build:
            context: .
            dockerfile: Dockerfile.postgres
        restart: always
        environment:
            POSTGRES_DB: forte       # Set Postgres Database Name
            POSTGRES_USER: forte     # Set Postgres Username
            POSTGRES_PASSWORD: forte # Set Postgres Password
        volumes:
            - db-data:/var/lib/postgresql/data
        healthcheck:
            test: [ "CMD-SHELL", "pg_isready -U forte" ]
            interval: 10s
            timeout: 5s
            retries: 5
volumes:
    db-data:
JaxzKyd commented 1 year ago

Trying to build gave me this error

 => => sha256:51dd437f31812df71108b81385e2945071ec813d5815fa3403855669c8f3432b 1.16kB / 1.16kB                     0.0s
 => => sha256:212550fe9cc1c53938c795f335d57c53f30a401cd89fc3e3cae4716e5b785692 6.43kB / 6.43kB                     0.0s
 => CACHED [server-app  2/10] ADD dist ./dist                                                                      0.0s
 => CACHED [server-app  3/10] ADD js ./js                                                                          0.0s
 => ERROR [server-app  4/10] ADD .greenlockrc ./                                                                   0.0s
------
 > [server-app  4/10] ADD .greenlockrc ./:
------
failed to solve: failed to compute cache key: "/.greenlockrc" not found: not found
JaxzKyd commented 1 year ago
server-app-1       | => Added album: aurora
server-app-1       | => Error parsing metadata for: /library/Bea Miller/elated!/Thumbs.db
server-app-1       | file:///js/db.js:727
server-app-1       |         metadata.common.title = path.basename(track).split("-")[1].trim().split(".").slice(0, -1).join(".");
server-app-1       |                                                                   ^
server-app-1       |
server-app-1       | TypeError: Cannot read properties of undefined (reading 'trim')
server-app-1       |     at get_metadata (file:///js/db.js:727:67)
server-app-1       |     at async handle_track (file:///js/db.js:680:20)
server-app-1       |
server-app-1       | Node.js v19.7.0
server-app-1 exited with code 1

image

kaangiray26 commented 1 year ago

Guess I should make a list of available music formats to check against.

kaangiray26 commented 1 year ago

Alright, this should finally fix those problems.

JaxzKyd commented 1 year ago

It did fix that issue, and ran fine when I mounted a smaller copy of my library. However, this is really a "cut off one head, two more grow in its place" type of scenario, because when I tried to mount my full library and run forte the app gave me this error log before shutting down

kaangiray26 commented 1 year ago

The last issue is about Deezer API's quota limit. I've added a small workaround for that. If you encounter any other problems please let me know :slightly_smiling_face:

JaxzKyd commented 1 year ago

That did solve that issue and I got forte started again! Follow-up question, I do have a few more problems, would you like me to make a new issue or continue in this one?

kaangiray26 commented 1 year ago

Maybe you can create more specific issues for the other problems so that they will be easier to search and find for future reference.

JaxzKyd commented 1 year ago

The last issue is about Deezer API's quota limit. I've added a small workaround for that. If you encounter any other problems please let me know 🙂

Wait I do have a question, looking at the logs do you use the Deezer API to lookup album covers?

kaangiray26 commented 1 year ago

Yes I use Deezer API but only for updating album and artist covers if there are no cover files put by the user in the library.