Cluster with file storage Deployment β
FINGERPRINT_URL is required
ProxyHerd refuses to start without FINGERPRINT_URL, the address of your fingerprint service. Add -e FINGERPRINT_URL=https://fingerprint.example.com/api/json to the commands below, or the equivalent in Compose or Helm (fingerprintUrl). On a machine without a public address, FINGERPRINT_URL_DISCOVERY replaces it; see laptop or behind NAT.
This deployment consists of 3 instances:
- 1 Commander instance with file storage;
- 1 Master instance;
- 1 Refresh instance.
For additional details, refer to the Architecture section.
WARNING
Use a separate instance for running ProxyHerd at scale. Donβt run VPNs or complicated network setups on the same machine, as this can cause connection problems, especially when scaling up.
Docker Compose β
Edit docker-compose.yml with the following content:
services:
commander:
image: ghcr.io/proxyherd/proxyherd
command: "node proxyherd.js start -f -c --storage file"
ports:
- 8890:8890
environment:
- NODE_ENV=production
- AUTH_LOCAL_USERNAME=admin
- AUTH_LOCAL_PASSWORD=password
- BACKEND_JWT_SECRET=secret1
- FRONTEND_JWT_SECRET=secret2
- STORAGE_FILE_FILENAME=/etc/proxyherd/config.json
volumes:
- ./proxyherd:/etc/proxyherd
master:
image: ghcr.io/proxyherd/proxyherd
command: "node proxyherd.js start -m"
ports:
- 8888:8888
environment:
- NODE_ENV=production
- COMMANDER_URL=http://commander:8890/api
- BACKEND_JWT_SECRET=secret1
links:
- commander
refresh:
image: ghcr.io/proxyherd/proxyherd
command: "node proxyherd.js start -r"
environment:
- NODE_ENV=production
- COMMANDER_URL=http://commander:8890/api
- BACKEND_JWT_SECRET=secret1
links:
- commanderRun the following command:
docker compose up -dKubernetes with Helm β
Create an umbrella chart with Helm with the following files structure:
myproxyherd/
|- Chart.yaml
|- values.yamlEdit Chart.yaml with the following content:
apiVersion: v2
name: proxyherd-simple-cluster
description: ProxyHerd Simple Cluster
type: application
version: 1.0.0
appVersion: latest
dependencies:
- name: proxyherd-simple-cluster
version: 1.1.0
repository: oci://ghcr.io/proxyherd/chartsEdit values.yaml with the following content:
proxyherd-simple-cluster:
auth:
local:
username: "admin"
password: "password"
backendJwtSecret: "secret1"
frontendJwtSecret: "secret2"
fingerprintUrl: "https://fingerprint.example.com/api/json"Build dependencies:
helm dependency build ./myproxyherdInstall the chart:
helm install proxyherd ./myproxyherd