chore: release v1.0.0 including built MSI package
checklocks / checklocks (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
Dockerfile build / deploy (push) Has been cancelled
natlab-integrationtest / natlab-integrationtest (push) Has been cancelled
CI / gomod-cache (push) Has been cancelled
CI / fuzz (push) Has been cancelled
tailscale.com/cmd/vet / vet (push) Has been cancelled
update-flakehub / flakehub-publish (push) Has been cancelled
CI / race-root-integration (1/4) (push) Has been cancelled
CI / race-root-integration (2/4) (push) Has been cancelled
CI / race-root-integration (3/4) (push) Has been cancelled
CI / race-root-integration (4/4) (push) Has been cancelled
CI / test (-race, amd64, 1/3) (push) Has been cancelled
CI / test (-race, amd64, 2/3) (push) Has been cancelled
CI / test (-race, amd64, 3/3) (push) Has been cancelled
CI / test (386) (push) Has been cancelled
CI / test (amd64) (push) Has been cancelled
CI / Windows (benchmarks) (push) Has been cancelled
CI / Windows (1/2) (push) Has been cancelled
CI / Windows (2/2) (push) Has been cancelled
CI / macos (push) Has been cancelled
CI / privileged (push) Has been cancelled
CI / vm (push) Has been cancelled
CI / cross (386, linux) (push) Has been cancelled
CI / cross (amd64, darwin) (push) Has been cancelled
CI / cross (amd64, freebsd) (push) Has been cancelled
CI / cross (amd64, openbsd) (push) Has been cancelled
CI / cross (amd64, windows) (push) Has been cancelled
CI / cross (arm, 5, linux) (push) Has been cancelled
CI / cross (arm, 7, linux) (push) Has been cancelled
CI / cross (arm64, darwin) (push) Has been cancelled
CI / cross (arm64, linux) (push) Has been cancelled
CI / cross (arm64, windows) (push) Has been cancelled
CI / cross (loong64, linux) (push) Has been cancelled
CI / ios (push) Has been cancelled
CI / crossmin (amd64, illumos) (push) Has been cancelled
CI / crossmin (amd64, plan9) (push) Has been cancelled
CI / crossmin (amd64, solaris) (push) Has been cancelled
CI / crossmin (ppc64, aix) (push) Has been cancelled
CI / android (push) Has been cancelled
CI / wasm (push) Has been cancelled
CI / tailscale_go (push) Has been cancelled
CI / depaware (push) Has been cancelled
CI / go_generate (push) Has been cancelled
CI / make_tidy (push) Has been cancelled
CI / licenses (push) Has been cancelled
CI / staticcheck (macOS) (push) Has been cancelled
CI / staticcheck (Linux) (push) Has been cancelled
CI / staticcheck (Windows) (push) Has been cancelled
CI / staticcheck (Portable (1/4)) (push) Has been cancelled
CI / staticcheck (Portable (2/4)) (push) Has been cancelled
CI / staticcheck (Portable (3/4)) (push) Has been cancelled
CI / staticcheck (Portable (4/4)) (push) Has been cancelled
CI / notify_slack (push) Has been cancelled
CI / merge_blocker (push) Has been cancelled
CI / check_mergeability_strict (push) Has been cancelled
CI / check_mergeability (push) Has been cancelled

This commit is contained in:
huanld
2026-04-22 03:39:08 -07:00
parent 2fb067ecbf
commit 0990478d9c
11 changed files with 250 additions and 114 deletions
+34 -44
View File
@@ -1,5 +1,4 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"
xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Package Name="Tailscale Custom"
Manufacturer="SoftsBusiness"
Version="1.0.0.0"
@@ -9,11 +8,16 @@
<!-- Nhúng luôn dữ liệu vào MSI thay vì tách riêng ra file cab1.cab -->
<MediaTemplate EmbedCab="yes" />
<!-- Icon hiển thị trong Control Panel (Add/Remove Programs) -->
<Icon Id="TrayIcon.exe" SourceFile="dist\tailscale-tray.exe" />
<Property Id="ARPPRODUCTICON" Value="TrayIcon.exe" />
<MajorUpgrade DowngradeErrorMessage="A newer version is already installed." />
<Feature Id="MainFeature" Title="Tailscale Custom feature">
<ComponentGroupRef Id="MainComponents" />
<ComponentGroupRef Id="TrayStartupComponents" />
<ComponentGroupRef Id="StartMenuComponents" />
</Feature>
<!-- Chạy Tray App ngay sau khi Cài đặt xong thay vì phải Restart/Login -->
@@ -32,6 +36,10 @@
<Directory Id="INSTALLFOLDER" Name="Tailscale-Custom" />
</StandardDirectory>
<StandardDirectory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="Tailscale Custom" />
</StandardDirectory>
<ComponentGroup Id="MainComponents" Directory="INSTALLFOLDER">
<!-- Cài đặt và Đăng ký Windows Service -->
@@ -39,11 +47,11 @@
<File Id="tailscaled.exe" Source="dist\tailscaled.exe" KeyPath="yes" />
<!--
Start="auto" + Account="LocalSystem" cấu hình tiêu chuẩn cho VPN
client (Tailscale official cũng dùng vậy): cần SYSTEM để quản lý TUN
adapter và routing table, cần auto-start để VPN hoạt động sau reboot.
Hardening: dùng util:PermissionEx để chỉ Administrators + SYSTEM mới
được start/stop/reconfigure service. User thường chỉ có QueryStatus.
Start="auto" + Account="LocalSystem": cấu hình tiêu chuẩn cho VPN client.
Cần SYSTEM để quản lý TUN adapter và routing table.
Auto-start để VPN hoạt động sau reboot.
Service ACL mặc định của Windows đã đủ an toàn:
SYSTEM + Administrators = Full Control, Users = QueryStatus only.
-->
<ServiceInstall Id="TailscaleService"
Type="ownProcess"
@@ -53,43 +61,7 @@
Start="auto"
Account="LocalSystem"
ErrorControl="normal"
Vital="yes">
<!-- SYSTEM: full control. Administrators: full control.
Authenticated Users: chỉ QueryStatus + QueryConfig + Interrogate.
Users thường KHÔNG thể start/stop/pause/reconfigure/delete. -->
<util:PermissionEx User="SYSTEM"
ServiceQueryStatus="yes"
ServiceQueryConfig="yes"
ServiceEnumerateDependents="yes"
ServiceInterrogate="yes"
ServiceStart="yes"
ServiceStop="yes"
ServicePauseContinue="yes"
ServiceUserDefinedControl="yes"
ServiceChangeConfig="yes"
Delete="yes"
ReadPermission="yes"
ChangePermission="yes"
TakeOwnership="yes" />
<util:PermissionEx User="Administrators"
ServiceQueryStatus="yes"
ServiceQueryConfig="yes"
ServiceEnumerateDependents="yes"
ServiceInterrogate="yes"
ServiceStart="yes"
ServiceStop="yes"
ServicePauseContinue="yes"
ServiceUserDefinedControl="yes"
ServiceChangeConfig="yes"
Delete="yes"
ReadPermission="yes"
ChangePermission="yes" />
<util:PermissionEx User="Authenticated Users"
ServiceQueryStatus="yes"
ServiceQueryConfig="yes"
ServiceInterrogate="yes"
ReadPermission="yes" />
</ServiceInstall>
Vital="yes" />
<!-- Tự động Start service khi cài xong, tự Stop khi gỡ -->
<ServiceControl Id="StartTailscaleService"
@@ -109,6 +81,24 @@
<Component Id="TailscaleTrayExe" Guid="{121EFAD3-3893-4B9B-89EB-B6D74BA24E2A}">
<File Id="tailscale_tray.exe" Source="dist\tailscale-tray.exe" KeyPath="yes" />
</Component>
<!-- Copy file wintun.dll (Driver mạng ảo BAT BUOC PHAI CO) -->
<Component Id="WintunDll" Guid="{D73EAC5D-4E38-4F1E-9C8D-9B8A912CDE94}">
<File Id="wintun.dll" Source="dist\wintun.dll" KeyPath="yes" />
</Component>
</ComponentGroup>
<!-- Start Menu Shortcut -->
<ComponentGroup Id="StartMenuComponents" Directory="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="{948B77D2-50EA-4B39-86B5-DAB112111E73}">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="Tailscale Custom"
Description="Tailscale Custom VPN Client"
Target="[INSTALLFOLDER]tailscale-tray.exe"
WorkingDirectory="INSTALLFOLDER" />
<RemoveFolder Id="CleanUpShortCut" Directory="ApplicationProgramsFolder" On="uninstall" />
<RegistryValue Root="HKCU" Key="Software\SoftsBusiness\TailscaleCustom" Name="installed" Type="integer" Value="1" KeyPath="yes" />
</Component>
</ComponentGroup>
<!-- Tự động set Tray Program khởi động cùng Windows thông qua Registry HKLM -->