garethgeorge / backrest

Backrest is a web UI and orchestrator for restic backup.
GNU General Public License v3.0
1.27k stars 37 forks source link

Help wanted: backrest Windows installer #163

Open garethgeorge opened 6 months ago

garethgeorge commented 6 months ago

Is your feature request related to a problem? Please describe. Backrest.exe is available on github releases but does not currently include an install script like Linux/MacOS

Describe the solution you'd like Ideally Backrest should come with a .msi installer or similar for windows users that launches it on startup. Windows development is a weak spot for me so this is something I'm aiming to look into in the long run, but I'm also very interested to see if anyone in the Backrest community is aware of good approaches here to generate an installer.

Running backrest on windows requires autostart with admin privileges for most installations.

Nebulosa-Cat commented 6 months ago

for simple way, if just use windows job scheduler? it can setting program auto start at computer start, and it can execute it with specific user and hieght permissions and it can setting by user doesn't need make a installer

johnmaguire commented 6 months ago

I've created a Windows installer with WiX v3 at work before. It is apparently now deprecated, and WiX v4 is preferred. I'll have to see if I can find some good docs on WiX v4, but I can probably take a stab at this.

garethgeorge commented 6 months ago

This would be really valuable @johnmaguire , windows is definitely where my knowledge thins. I think a windows installer would do a lot to ease adoption.

michael9dk commented 6 months ago

I've created a Windows installer with WiX v3 at work before. It is apparently now deprecated, and WiX v4 is preferred. I'll have to see if I can find some good docs on WiX v4, but I can probably take a stab at this.

May I suggest InnoSetup. I haven't had issues with updating to newer versions.

johnmaguire commented 6 months ago

Hey @michael9dk - WiX is what I'm familiar with, but if you want to take a crack at an InnoSetup PR, I don't see any reason to be religious about the choice of installer tech here.

I started a branch last week that I haven't tried building at all, over here: https://github.com/johnmaguire/backrest/commit/d8416084c2401ffe9679ae8ad7c1b1800c12cd9a

It uses WiX v3 syntax, but I don't think it'll be hard to convert to WiX v4 once it's working: https://wixtoolset.org/docs/development/wips/migrate-v3-source-code-to-v4/

auanasgheps commented 1 month ago

Hi, I'm writing here because I do not want to open a new issue. Currently the Windows Installer has an invalid version, 0.0.0.0.

Are you aware? This isn't ideal as it's not easy to identify the current installed version and does not allow to publish the application to winget.

garethgeorge commented 1 month ago

Hey -- thanks for the ping. Probably worth a new issue to track it. I'm aware of the problem but a bit of thinking is needed to fix it w.r.t. the build and release pipeline.

I think

github.event.release.tag_name

can be used to get the current release name and something like sed could be used to substitute it into the https://github.com/garethgeorge/backrest/blob/main/build/windows/install.nsi script prior to building the installers.