Files
nginx-ui/docs/guide/install-winget.md
2025-07-10 18:33:24 +08:00

312 lines
7.9 KiB
Markdown

# Install with Winget
This installation method is designed for Windows users who have the Windows Package Manager (winget) available.
## Prerequisites
- **Windows**: Windows 10 version 1709 (build 16299) or later
- [Windows Package Manager (winget)](https://learn.microsoft.com/en-us/windows/package-manager/winget/) installed
If you don't have winget installed, you can install it from the [Microsoft Store](https://www.microsoft.com/store/productId/9NBLGGH4NNS1) or download it from the [GitHub releases page](https://github.com/microsoft/winget-cli/releases).
## Installation
### Install Nginx UI
```powershell
winget install 0xJacky.nginx-ui
```
This command will:
- Download and install the latest stable version of Nginx UI to `%LOCALAPPDATA%\Microsoft\WinGet\Packages\0xJacky.nginx-ui__DefaultSource\`
- Set up the necessary dependencies
- Add nginx-ui to your system PATH
**Note**: The installation process does not create any configuration files. You will need to create the configuration manually or let Nginx UI create it on first run.
### Verify Installation
After installation, you can verify that Nginx UI is installed correctly:
```powershell
nginx-ui --version
```
### Installation Directory
WinGet installs Nginx UI to the user's local directory:
- **Installation Path**: `%LOCALAPPDATA%\Microsoft\WinGet\Packages\0xJacky.nginx-ui__DefaultSource\`
- **Executable Path**: `%LOCALAPPDATA%\Microsoft\WinGet\Packages\0xJacky.nginx-ui__DefaultSource\nginx-ui.exe`
You can access this directory using:
```powershell
cd "%LOCALAPPDATA%\Microsoft\WinGet\Packages\0xJacky.nginx-ui__DefaultSource\"
```
## Service Management
On Windows, Nginx UI can be run as a Windows Service or manually started from the command line.
### Install as Windows Service
Since Nginx UI doesn't have built-in Windows service management, you need to manually register it using `sc.exe`:
```powershell
# Create the service (run as Administrator)
# Note: WinGet installs to user's local directory
sc create nginx-ui binPath= "%LOCALAPPDATA%\Microsoft\WinGet\Packages\0xJacky.nginx-ui__DefaultSource\nginx-ui.exe serve" start= auto
# Start the service
sc start nginx-ui
```
### Manual Service Management
You can manage the service using Windows Service Manager or PowerShell:
```powershell
# Start the service
Start-Service nginx-ui
# Stop the service
Stop-Service nginx-ui
# Restart the service
Restart-Service nginx-ui
# Check service status
Get-Service nginx-ui
```
### Set Service to Start Automatically
The service is already configured to start automatically with `start= auto` in the creation command above. To change this later:
```powershell
Set-Service -Name nginx-ui -StartupType Automatic
```
## Running Manually
If you prefer to run Nginx UI manually instead of as a service:
```powershell
# Run in foreground
nginx-ui
# Run with custom config
nginx-ui serve -config C:\path\to\your\app.ini
# Run directly from installation directory
"%LOCALAPPDATA%\Microsoft\WinGet\Packages\0xJacky.nginx-ui__DefaultSource\nginx-ui.exe" serve
# Run in background (using Start-Job)
Start-Job -ScriptBlock { nginx-ui serve }
```
## Configuration
The configuration file needs to be created manually or will be created on first run. It should be located at:
- **Default Path**: `%LOCALAPPDATA%\nginx-ui\app.ini`
- **Alternative Path**: `C:\ProgramData\nginx-ui\app.ini`
Data is typically stored in:
- `%LOCALAPPDATA%\nginx-ui\`
- `C:\ProgramData\nginx-ui\`
### Creating Configuration
You can either:
1. **Let Nginx UI create it automatically** - Run nginx-ui for the first time and it will create a default configuration in the current working directory
2. **Create manually** - Create the directories and configuration file yourself
To create the configuration directory and file manually:
```powershell
# Create the configuration directory
New-Item -ItemType Directory -Force -Path "$env:LOCALAPPDATA\nginx-ui"
# Create a basic configuration file
@"
[app]
PageSize = 10
[server]
Host = 0.0.0.0
Port = 9000
RunMode = release
[cert]
HTTPChallengePort = 9180
[terminal]
StartCmd = cmd
"@ | Out-File -FilePath "$env:LOCALAPPDATA\nginx-ui\app.ini" -Encoding utf8
```
The default configuration includes:
```ini
[app]
PageSize = 10
[server]
Host = 0.0.0.0
Port = 9000
RunMode = release
[cert]
HTTPChallengePort = 9180
[terminal]
StartCmd = cmd
```
## Updating
### Update Nginx UI
```powershell
winget upgrade nginx-ui
```
### Update all packages
```powershell
winget upgrade --all
```
## Uninstallation
### Stop and Uninstall Service
```powershell
# Stop the service first
sc stop nginx-ui
# Delete the service
sc delete nginx-ui
# Uninstall the package
winget uninstall nginx-ui
```
### Remove Configuration and Data
::: warning
This will permanently delete all your configurations, sites, certificates, and data. Make sure to backup any important data before proceeding.
:::
```powershell
# Remove configuration and data directories
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\nginx-ui"
Remove-Item -Recurse -Force "$env:PROGRAMDATA\nginx-ui"
```
## Troubleshooting
### Port Conflicts
If you encounter port conflicts (default port is 9000), you need to modify the configuration file:
1. **Edit the configuration file:**
```powershell
notepad "$env:LOCALAPPDATA\nginx-ui\app.ini"
```
2. **Change the port in the `[server]` section:**
```ini
[server]
Host = 0.0.0.0
Port = 9001
RunMode = release
```
3. **Restart the service:**
```powershell
Restart-Service nginx-ui
```
### Windows Firewall
If you have issues accessing Nginx UI from other devices, you may need to configure Windows Firewall:
```powershell
# Allow Nginx UI through Windows Firewall (TCP and UDP)
New-NetFirewallRule -DisplayName "Nginx UI TCP" -Direction Inbound -Protocol TCP -LocalPort 9000 -Action Allow
New-NetFirewallRule -DisplayName "Nginx UI UDP" -Direction Inbound -Protocol UDP -LocalPort 9000 -Action Allow
```
### Viewing Service Logs
To troubleshoot service issues, you can view logs:
#### Windows Event Viewer
1. Open Event Viewer (`eventvwr.msc`)
2. Navigate to Windows Logs > Application
3. Look for events from "nginx-ui" source
#### Service Logs
If Nginx UI is configured to write logs to files:
```powershell
# View log files (if configured)
Get-Content "$env:LOCALAPPDATA\nginx-ui\logs\nginx-ui.log" -Tail 50
```
### Permission Issues
If you encounter permission issues:
1. **Run as Administrator:** Some operations may require administrator privileges
2. **Check folder permissions:** Ensure Nginx UI has read/write access to its configuration and data directories
3. **Antivirus software:** Some antivirus programs may interfere with Nginx UI operation
### Service Won't Start
If the service fails to start:
1. **Check service status:**
```powershell
Get-Service nginx-ui
```
2. **Verify configuration file exists (create if needed):**
```powershell
Test-Path "$env:LOCALAPPDATA\nginx-ui\app.ini"
# If it returns False, create the configuration directory and file first
```
3. **Try running manually to see error messages:**
```powershell
nginx-ui serve -config "$env:LOCALAPPDATA\nginx-ui\app.ini"
# Or run directly from installation directory:
& "$env:LOCALAPPDATA\Microsoft\WinGet\Packages\0xJacky.nginx-ui__DefaultSource\nginx-ui.exe" serve -config "$env:LOCALAPPDATA\nginx-ui\app.ini"
```
4. **Check for port conflicts:**
```powershell
# Check if port 9000 is already in use
netstat -an | findstr :9000
```
## Getting Help
If you encounter any issues:
1. Check the [official documentation](https://nginxui.com)
2. Search for existing issues on [GitHub](https://github.com/0xJacky/nginx-ui/issues)
3. Create a new issue if your problem isn't already reported
## Next Steps
After installation, you can:
1. Access the web interface at `http://localhost:9000`
2. Complete the initial setup wizard
3. Start configuring your Nginx sites
4. Explore the [configuration guides](./config-server) for advanced setups