Client Deployment
We recommend deploying the Client via Docker. However, installing directly on the target machine allows you to run commands as root via a remote terminal, which can simplify upgrades and management.
Note ⚠️: The startup commands for client
and server
may change as the project evolves. Although we strive for backward compatibility, always use the commands generated by the Master’s Web UI.
Preparation
Open the Master’s Web UI and log in. If you don’t have an account, register—the first user becomes the administrator.
In the sidebar, navigate to Client, click New, enter a unique Client ID, and click Save.
After refreshing, your new Client appears in the list.
Before deploying the Client, ensure the corresponding Server’s configuration is correct; otherwise, the Client cannot connect.
Deploying on Linux
Direct Execution
Create a dedicated directory on your system.
In the Master’s Web UI, click the ID (show install command) field for your Client. Copy the Linux install command, for example:
bashcurl -fSL https://raw.githubusercontent.com/VaalaCat/frp-panel/main/install.sh \ | bash -s -- client -s abc -i user.c.client1 \ --api-url http://frpp.example.com:9000 \ --rpc-url grpc://frpp-rpc.example.com:9001
If you’re in mainland China, you may want to use a GitHub proxy. For example, with
ghfast
:bashcurl -fSL https://ghfast.top/https://raw.githubusercontent.com/VaalaCat/frp-panel/main/install.sh \ | bash -s -- --github-proxy https://ghfast.top/ client -s abc -i user.c.client1 \ --api-url http://frpp.example.com:9000 \ --rpc-url grpc://frpp-rpc.example.com:9001
If you use a reverse-proxy with TLS (443 → Master 9000/API), adjust the command:
bashcurl -fSL https://ghfast.top/https://raw.githubusercontent.com/VaalaCat/frp-panel/main/install.sh \ | bash -s -- --github-proxy https://ghfast.top/ client -s abc -i user.c.client1 \ --api-url https://frpp.example.com:443 \ --rpc-url wss://frpp.example.com:443
Docker Compose Deployment
In the Master’s Web UI, click Key (show startup command) for your Client. Copy the command:
bash./frp-panel client -s abc -i user.c.client1 \ --api-url http://frpp.example.com:9000 \ --rpc-url grpc://frpp-rpc.example.com:9001
If using TLS proxy, modify:
bash./frp-panel client -s abc -i user.c.client1 \ --api-url https://frpp.example.com:443 \ --rpc-url wss://frpp.example.com:443
Create
docker-compose.yaml
:yamlversion: '3' services: frp-panel-client: image: vaalacat/frp-panel container_name: frp-panel-client network_mode: host restart: unless-stopped command: client -s abc -i user.c.client1 \ --api-url https://frpp.example.com:443 \ --rpc-url wss://frpp.example.com:443
Install as a systemd Service
The frp-panel
binary can manage a systemd service named frpp
. Use frp-panel --help
to view available commands. Examples:
Install Client (or Server) with specific parameters:
bashsudo ./frp-panel install client -s abc -i user.c.client1 \ --api-url https://frpp.example.com:443 \ --rpc-url wss://frpp.example.com:443
Uninstall the
frpp
service:bashsudo ./frp-panel uninstall
Start the
frpp
service:bashsudo ./frp-panel start
Stop the
frpp
service:bashsudo ./frp-panel stop
Restart the
frpp
service:bashsudo ./frp-panel restart
Deploying on Windows
Direct Execution
In PowerShell, in the directory containing the executable, run the startup command copied from the Web UI:
.\frp-panel.exe client -s abc -i user.c.client1 \
--api-url https://frpp.example.com:443 \
--rpc-url wss://frpp.example.com:443
Install as a Windows Service
Use the same commands as on Linux without sudo
and adjust the executable path:
C:\frpp\frp-panel.exe install client -s abc -i user.c.client1 \
--api-url https://frpp.example.com:443 \
--rpc-url wss://frpp.example.com:443
# Then manage the service:
C:\frpp\frp-panel.exe start
C:\frpp\frp-panel.exe stop
C:\frpp\frp-panel.exe uninstall