Skip to content

Installer and updater need proper implementation (current setup relies on manual PATH configuration) #1

@Dev-Devon

Description

@Dev-Devon

The project currently does not have a proper installer or reliable update mechanism. The existing setup works, but it relies on temporary workarounds that are not ideal for users.

Installer / Setup issue

Right now there is no installer. Users must manually extract the project and configure the environment.

To make the tools work, the /bin directory must be added to the system PATH so executables such as ffmpeg and yt-dlp can be accessed.

I created a small automation script (path.bat) that adds the /bin directory to the PATH automatically. However, this is only a temporary workaround and not a proper installation method.

Current situation:

  • No installer
  • No automated setup process
  • PATH must be configured manually or through path.bat
  • This is not ideal for users who are not familiar with system configuration

A proper installation method would ideally:

  • Detect the environment
  • Add /bin to PATH safely
  • Verify required binaries
  • Set up the application in a predictable way

Updater issue

An updater system was implemented to check GitHub releases and download updates automatically.

The intended workflow is:

  1. The application checks the latest release from GitHub.
  2. The current version is compared with the latest release version.
  3. If a newer version exists:
    • Download the latest release archive
    • Extract it
    • Replace application files
  4. Preserve important local directories when possible.

However, the current implementation fails in some PHP environments because it relies on:

file_get_contents("https://api.github.com/...")

If PHP does not have HTTPS wrappers or OpenSSL enabled (which happens in some Windows setups), the updater fails with:

"Unable to find the wrapper 'https'"

Because of this:

  • The updater cannot contact GitHub
  • Version checks fail
  • Automatic updates break

What is needed

A more reliable update implementation that works across typical PHP environments.

Possible improvements:

  • Use cURL instead of file_get_contents
  • Add environment checks before attempting updates
  • Improve error handling for missing dependencies

Goal

The goal is to make installation and updating easier and more reliable for users without requiring manual configuration or troubleshooting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions