Skip to content

Conversation

@bmw
Copy link
Member

@bmw bmw commented Oct 31, 2025

this PR is pretty massive, but i think does close to the bare minimum to set up a working, proof of concept rayhunter GUI installer with CI. i tried to keep the commit history clean with useful commit messages so i suspect reviewing it commit by commit is the easiest way to go. with that said, if whoever reviews this would like me to break this up or structure it in a different way, please don't hesitate to ask

i'd personally like to get this merged into main or if necessary a separate branch on this repo to allow us to iterate on this in smaller chunks and allow others to work on it, but i'm open to other ideas

the big things that still need to be done here before this is ready for real users imo are:

  • design & build a real GUI frontend instead of continuing to use CLI commands
  • decide how we want to workaround the lack signature on macos. do we just want to link people to something like https://support.apple.com/en-is/guide/mac-help/mh40616/mac? could we find a cute/clever way to help people download the .app from the command line which bypasses macos's signing nonsense?
  • test and debug this on linux and decide how we want to ship it there. do we really need/want a GUI installer for linux? if so, are we ok with the massive appimage, can we make it smaller, or can we write instructions on how to install system dependencies and ship a simple, stripped-down binary?
  • test and debug this on windows and decide how we want to ship it there. keeping mind that you have to go through an installation process to use a tauri based app on windows do we want to ship a MSI and/or NSIS based installer?

if you want to play with prebuilt assets based on bmw@b482c72 (technically bmw@41ad17c which makes tiny, throwaway CI changes to the previous commit), you can find the files at https://github.com/bmw/rayhunter/releases/tag/v1761870661. if you do this, please keep in mind:

  • i've only really tested this on macos so far
  • you need to do something to bypass the lack of signing on macos such as downloading the file with curl
  • CLI arguments entered in the GUI installer are passed directly to the CLI installer without a shell meaning you'd want to use strings like ... --admin-password $m@rt$p0tc0nf!g and not ... --admin-password '$m@rt$p0tc0nf!g' as the latter would include the single quotes in the password argument

bmw added 16 commits October 30, 2025 09:49
command was: sh <(curl https://create.tauri.app/sh)

the chosen options were:

Project name · installer-gui
Identifier · com.rayhunter-installer.app
Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
Choose your package manager · npm
Choose your UI template · Svelte - (https://svelte.dev/)
Choose your UI flavor · TypeScript
we need to track package-lock.json to keep the tauri JS packages in sync
with tauri's rust packages in cargo.lock
Copy link
Collaborator

@untitaker untitaker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I played with it and it seems fine, but i think this is going to be a maintenance liability. Building takes a very long time and the amount of storage needed is very large. There are a lot of dependencies. Most Android applications that I have seen build faster.

Currently the GUI wraps the CLI, and while there are talks to integrate the two further, I actually think I prefer it if they stay separate, like now.

I'm approving it because it's separate and because having a GUI is important for UX. I'd suggest to add a few pre-fillable "suggested" commands to the UI.

Aside, building it as an android app seems to work (tauri android init && tauri android build), but the resulting APK seems to be corrupted:

$ adb install /home/markus/projects/rayhunter/installer-gui/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk
Performing Streamed Install
adb: failed to install /home/markus/projects/rayhunter/installer-gui/src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed to collect certificates from /data/app/vmdl378380804.tmp/base.apk: Attempt to get length of null array]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants