Skip to content

Replacing third party binary

If you're using a build of Ongakuvault that is several months old or that exclude some binary, you might consider manually updating the third-party binary. As long as the yt-dlp binary arguments haven't changed significantly, Ongakuvault should be compatible with more recent versions.

Installation

Ongakuvault include the following third-patry binary:

NOTE

The build workflow for the yt-dlp version of FFmpeg and FFprobe does not include pre-built binaries for linux arm32 (also referred to as ARM). However, you can either build it yourself or use pre-built binaries from other sources, such as the official FFmpeg website. Please note that some fixes and workarounds specific to the yt-dlp version of FFmpeg may not be included in these alternative builds.

TIP

You can find the PowerShell script used during the build workflow to download the external binaries here. You can run it locally on your machine by using the argument -LocalBuild.

Replacing a binary

General

If you downloaded Ongakuvault from GitHub releases or built it yourself, you need to place all third-party binaries in the same directory as the executable. (Where Ongakuvault.exe / Ongakuvault.dll is)

For docker images

Third party binaryPath in docker container
yt-dlp/app/yt-dlp
FFmpeg/app/ffmpeg
FFprobe/app/ffprobe
  1. Run chmod a+rx file_name on every new binary
  2. On your docker configuration, add a read-only binding to the new binary
Docker run example
bash
docker run -d \
  --name ongakuvault \
  --restart unless-stopped \
  --log-driver local \
  --log-opt max-file=10 \
  --log-opt max-size=5m \
  --cap-drop all \
  --security-opt=no-new-privileges \
  -v /my-audio-collection-directory-on-host:/home/app/archived-audios:rw \
  -v /path/to/host/ffmpeg:/app/ffmpeg:ro \ # Overwrite container /app/ffmpeg for host /path/to/host/ffmpeg in read-only (:ro) mode
  -e ASPNETCORE_HTTP_PORTS=8080 \
  -e ASPNETCORE_HTTPS_PORT=8443 \
  -e Ongaku__ENFORCE_HTTPS=false \
  ghcr.io/kitsumed/ongakuvault:1.0.0
Docker-compose example
yaml
version: '2.4'

services:
  ongakuvault:
    container_name: OngakuVault
    image: ghcr.io/kitsumed/ongakuvault:1.0.0 # Replace tag with the version you want / latest version
    restart: unless-stopped
    logging:
      driver: local
      options:
        max-file: '10'
        max-size: '5m'
    cap_drop:
      - ALL
    security_opt:
      - "no-new-privileges=true"
    ports:
      - "8080:8080"  # Expose port host:container on interface 0.0.0.0 (all host interfaces)
      - "8443:8443"  # Expose port host:container on interface 0.0.0.0 (all host interfaces)
    volumes:
      - type: bind  # Redirect app output to a folder on your host system
        source: /my-audio-collection-directory-on-host
        target: /home/app/archived-audios/ # This is the default final output folder of Ongakuvault when running in a container
        read_only: false
    volumes:
      - type: bind  # Overwrite container /app/ffmpeg for host /path/to/host/ffmpeg in read-only mode
        source: /path/to/host/ffmpeg
        target: /app/ffmpeg 
        read_only: true
    environment:
      - ASPNETCORE_HTTP_PORTS=8080
      - ASPNETCORE_HTTPS_PORT=8443
      - Ongaku__ENFORCE_HTTPS=false