feat(gui): redesign kanholec GUI with modern interface and WiX v7 installer
golangci-lint / lint (push) Failing after 4s
golangci-lint / lint (push) Failing after 4s
- Complete GUI overhaul with Fyne framework * Modern dark theme with indigo/pink accent colors * 4-step setup wizard (Welcome → Server → Auth → Finish) * Dashboard with proxy list, real-time logs, and config viewer * Windows Service manager (install/start/stop/uninstall) * System tray integration with quick controls - WiX v7 MSI installer * Auto-registers as Windows Service (manual start) * Feature tree UI for optional components * Desktop shortcut and PATH options * Build script: packaging/windows/build-msi.ps1 - Build system updates * Added kanholec-windows-gui target (CGO required) * Added kanholec-windows-msi target * Separate main_gui.go entry point for GUI builds GUI binary: bin/kanholec-windows-amd64.exe (31.4 MB) MSI installer: bin/kanholec-0.69.0-amd64.msi (12.1 MB)
This commit is contained in:
+124
-39
@@ -1,47 +1,132 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Wix xmlns="http://wixtoolset.org/schemas/v3/wxs">
|
||||
<Product
|
||||
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
|
||||
xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
|
||||
|
||||
<Package
|
||||
Name="kanholec"
|
||||
Id="*"
|
||||
Manufacturer="kanhole Contributors"
|
||||
Version="0.69.0"
|
||||
UpgradeCode="A1B2C3D4-E5F6-7890-ABCD-EF1234567890"
|
||||
Language="1033"
|
||||
Codepage="1252"
|
||||
Version="0.62.0"
|
||||
Manufacturer="kanhole Contributors">
|
||||
Scope="perMachine">
|
||||
|
||||
<Package
|
||||
InstallerVersion="200"
|
||||
Compressed="yes"
|
||||
InstallScope="perMachine"
|
||||
Description="kanhole Client"
|
||||
Comments="kanholec is the client component of kanhole - a fast reverse proxy." />
|
||||
<MajorUpgrade DowngradeErrorMessage="A newer version of kanholec is already installed." />
|
||||
|
||||
<Media Id="1" Cabinet="kanholec.cab" EmbedCab="yes" />
|
||||
<MediaTemplate EmbedCab="yes" />
|
||||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFiles64Folder">
|
||||
<Directory Id="INSTALLDIR" Name="kanholec">
|
||||
<Component Id="FrpcBinary" Guid="E1B2C3D4-E5F6-7890-ABCD-EF1234567894">
|
||||
<File Id="FrpcExe" Name="kanholec.exe" DiskId="1" Source="bin/kanholec-windows-amd64.exe" KeyPath="yes" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
<Icon Id="kanholecIcon" SourceFile="kanholec.ico" />
|
||||
<Property Id="ARPPRODUCTICON" Value="kanholecIcon" />
|
||||
<Property Id="ARPHELPLINK" Value="https://github.com/kanhole/kanhole" />
|
||||
<Property Id="ARPURLINFOABOUT" Value="https://github.com/kanhole/kanhole" />
|
||||
|
||||
<Directory Id="ProgramMenuFolder">
|
||||
<Directory Id="ApplicationProgramsFolder" Name="kanholec">
|
||||
<Component Id="StartMenuShortcuts" Guid="A2B2C3D4-E5F6-7890-ABCD-EF1234567892">
|
||||
<Shortcut Id="FrpcShortcut" Name="kanholec" Target="[INSTALLDIR]kanholec.exe" WorkingDirectory="INSTALLDIR" Description="kanhole client" />
|
||||
<Shortcut Id="UninstallShortcut" Name="Uninstall kanholec" Target="[System64Folder]msiexec.exe" Arguments="/x [ProductCode]" />
|
||||
<RemoveFolder Id="RemoveApplicationProgramsFolder" On="uninstall" />
|
||||
<RegistryValue Root="HKCU" Key="Software\kanhole\kanholec" Name="installed" Type="integer" Value="1" />
|
||||
</Component>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
|
||||
<Feature Id="Main" Title="kanholec" Description="kanhole client binary" Level="1">
|
||||
<ComponentRef Id="FrpcBinary" />
|
||||
<ComponentRef Id="StartMenuShortcuts" />
|
||||
<Feature Id="Main" Title="kanholec" Description="kanhole reverse proxy client" Level="1"
|
||||
AllowAdvertise="no">
|
||||
<ComponentGroupRef Id="BinaryFiles" />
|
||||
<ComponentGroupRef Id="ConfigFiles" />
|
||||
<ComponentGroupRef Id="Shortcuts" />
|
||||
<ComponentRef Id="ServiceComponent" />
|
||||
</Feature>
|
||||
</Product>
|
||||
|
||||
<Feature Id="DesktopShortcutFeature" Title="Desktop Shortcut" Description="Create a desktop shortcut"
|
||||
Level="1000" AllowAdvertise="no">
|
||||
<ComponentRef Id="DesktopShortcutComponent" />
|
||||
</Feature>
|
||||
|
||||
<Feature Id="PathFeature" Title="Add to PATH" Description="Add kanholec to system PATH"
|
||||
Level="1" AllowAdvertise="no">
|
||||
<ComponentRef Id="PathComponent" />
|
||||
</Feature>
|
||||
|
||||
<ui:WixUI
|
||||
Id="WixUI_FeatureTree"
|
||||
InstallDirectory="INSTALLFOLDER" />
|
||||
|
||||
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
|
||||
|
||||
<StandardDirectory Id="ProgramFiles6432Folder">
|
||||
<Directory Id="INSTALLFOLDER" Name="kanholec" />
|
||||
</StandardDirectory>
|
||||
|
||||
<StandardDirectory Id="ProgramMenuFolder">
|
||||
<Directory Id="ApplicationProgramsFolder" Name="kanholec" />
|
||||
</StandardDirectory>
|
||||
|
||||
<StandardDirectory Id="CommonAppDataFolder">
|
||||
<Directory Id="ConfigFolder" Name="kanholec" />
|
||||
</StandardDirectory>
|
||||
|
||||
<ComponentGroup Id="BinaryFiles" Directory="INSTALLFOLDER">
|
||||
<Component Id="KanholeCBinary" Guid="E1B2C3D4-E5F6-7890-ABCD-EF1234567894">
|
||||
<File Id="kanholecExe"
|
||||
Name="kanholec.exe"
|
||||
Source="..\..\bin\kanholec-windows-amd64.exe"
|
||||
KeyPath="yes" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
|
||||
<ComponentGroup Id="ConfigFiles" Directory="ConfigFolder">
|
||||
<Component Id="DefaultConfig" Guid="F1B2C3D4-E5F6-7890-ABCD-EF1234567895" NeverOverwrite="yes">
|
||||
<File Id="kanholecToml"
|
||||
Name="kanholec.toml"
|
||||
Source="kanholec.default.toml"
|
||||
KeyPath="yes" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
|
||||
<ComponentGroup Id="Shortcuts" Directory="ApplicationProgramsFolder">
|
||||
<Component Id="StartMenuShortcuts" Guid="A2B2C3D4-E5F6-7890-ABCD-EF1234567892">
|
||||
<Shortcut Id="StartMenuShortcut"
|
||||
Name="kanholec"
|
||||
Target="[INSTALLFOLDER]kanholec.exe"
|
||||
WorkingDirectory="INSTALLFOLDER"
|
||||
Description="kanhole reverse proxy client"
|
||||
Icon="kanholecIcon" />
|
||||
<Shortcut Id="ConfigFolderShortcut"
|
||||
Name="Config Directory"
|
||||
Target="[ConfigFolder]"
|
||||
Description="Open kanholec config directory" />
|
||||
<Shortcut Id="UninstallShortcut"
|
||||
Name="Uninstall kanholec"
|
||||
Target="[System64Folder]msiexec.exe"
|
||||
Arguments="/x [ProductCode]"
|
||||
Description="Uninstall kanholec" />
|
||||
<RemoveFolder Id="RemoveApplicationProgramsFolder" On="uninstall" />
|
||||
<RegistryValue Root="HKCU" Key="Software\kanhole\kanholec" Name="installed" Type="integer" Value="1" KeyPath="yes" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
|
||||
<Component Id="DesktopShortcutComponent" Directory="DesktopFolder" Guid="B2B2C3D4-E5F6-7890-ABCD-EF1234567893">
|
||||
<Shortcut Id="DesktopShortcut"
|
||||
Name="kanholec"
|
||||
Target="[INSTALLFOLDER]kanholec.exe"
|
||||
WorkingDirectory="INSTALLFOLDER"
|
||||
Description="kanhole reverse proxy client"
|
||||
Icon="kanholecIcon" />
|
||||
<RegistryValue Root="HKCU" Key="Software\kanhole\kanholec" Name="desktop_shortcut" Type="integer" Value="1" KeyPath="yes" />
|
||||
</Component>
|
||||
|
||||
<Component Id="PathComponent" Directory="INSTALLFOLDER" Guid="C2B2C3D4-E5F6-7890-ABCD-EF1234567896">
|
||||
<Environment Id="PATH" Name="PATH" Value="[INSTALLFOLDER]" Permanent="no" Part="last" Action="set" System="yes" />
|
||||
<RegistryValue Root="HKCU" Key="Software\kanhole\kanholec" Name="path_added" Type="integer" Value="1" KeyPath="yes" />
|
||||
</Component>
|
||||
|
||||
<Component Id="ServiceComponent" Directory="INSTALLFOLDER" Guid="D2B2C3D4-E5F6-7890-ABCD-EF1234567897">
|
||||
<RegistryValue Root="HKCU" Key="Software\kanhole\kanholec" Name="service_registered" Type="integer" Value="1" KeyPath="yes" />
|
||||
<ServiceInstall
|
||||
Id="kanholecService"
|
||||
Name="kanholec"
|
||||
DisplayName="kanholec - kanhole Client"
|
||||
Description="kanhole reverse proxy client service"
|
||||
Start="demand"
|
||||
Type="ownProcess"
|
||||
ErrorControl="ignore"
|
||||
Arguments='-c "[ConfigFolder]kanholec.toml"'
|
||||
Account="LocalSystem" />
|
||||
<ServiceControl
|
||||
Id="kanholecServiceControl"
|
||||
Name="kanholec"
|
||||
Stop="both"
|
||||
Remove="uninstall"
|
||||
Wait="no" />
|
||||
</Component>
|
||||
|
||||
</Package>
|
||||
</Wix>
|
||||
|
||||
Reference in New Issue
Block a user