mirror of
https://github.com/fosrl/pangolin.git
synced 2026-03-02 00:36:38 +00:00
Add accept clients to install
This commit is contained in:
@@ -1344,5 +1344,10 @@
|
|||||||
"remoteSubnetsDescription": "Add CIDR ranges that can be accessed from this site remotely using clients. Use format like 10.0.0.0/24. This ONLY applies to VPN client connectivity.",
|
"remoteSubnetsDescription": "Add CIDR ranges that can be accessed from this site remotely using clients. Use format like 10.0.0.0/24. This ONLY applies to VPN client connectivity.",
|
||||||
"resourceEnableProxy": "Enable Public Proxy",
|
"resourceEnableProxy": "Enable Public Proxy",
|
||||||
"resourceEnableProxyDescription": "Enable public proxying to this resource. This allows access to the resource from outside the network through the cloud on an open port. Requires Traefik config.",
|
"resourceEnableProxyDescription": "Enable public proxying to this resource. This allows access to the resource from outside the network through the cloud on an open port. Requires Traefik config.",
|
||||||
"externalProxyEnabled": "External Proxy Enabled"
|
"externalProxyEnabled": "External Proxy Enabled",
|
||||||
|
"siteConfiguration": "Configuration",
|
||||||
|
"siteAcceptClientConnections": "Accept client connections",
|
||||||
|
"siteAcceptClientConnectionsDescription": "Allow other devices to connect through this Newt instance as a gateway using clients.",
|
||||||
|
"siteAddress": "Site Address",
|
||||||
|
"siteAddressDescription": "Specify the IP address of the host for clients to connect to."
|
||||||
}
|
}
|
||||||
@@ -206,7 +206,9 @@ PersistentKeepalive = 5`;
|
|||||||
acceptClients: boolean = false
|
acceptClients: boolean = false
|
||||||
) => {
|
) => {
|
||||||
const acceptClientsFlag = acceptClients ? " --accept-clients" : "";
|
const acceptClientsFlag = acceptClients ? " --accept-clients" : "";
|
||||||
const acceptClientsEnv = acceptClients ? "\n - ACCEPT_CLIENTS=true" : "";
|
const acceptClientsEnv = acceptClients
|
||||||
|
? "\n - ACCEPT_CLIENTS=true"
|
||||||
|
: "";
|
||||||
|
|
||||||
const commands = {
|
const commands = {
|
||||||
mac: {
|
mac: {
|
||||||
@@ -388,7 +390,7 @@ WantedBy=default.target`
|
|||||||
case "freebsd":
|
case "freebsd":
|
||||||
return <FaFreebsd className="h-4 w-4 mr-2" />;
|
return <FaFreebsd className="h-4 w-4 mr-2" />;
|
||||||
case "nixos":
|
case "nixos":
|
||||||
return <SiNixos className="h-4 w-4 mr-2" />;
|
return <SiNixos className="h-4 w-4 mr-2" />;
|
||||||
default:
|
default:
|
||||||
return <Terminal className="h-4 w-4 mr-2" />;
|
return <Terminal className="h-4 w-4 mr-2" />;
|
||||||
}
|
}
|
||||||
@@ -566,6 +568,11 @@ WantedBy=default.target`
|
|||||||
load();
|
load();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
// Sync form acceptClients value with local state
|
||||||
|
useEffect(() => {
|
||||||
|
form.setValue("acceptClients", acceptClients);
|
||||||
|
}, [acceptClients, form]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="flex justify-between">
|
<div className="flex justify-between">
|
||||||
@@ -626,7 +633,7 @@ WantedBy=default.target`
|
|||||||
render={({ field }) => (
|
render={({ field }) => (
|
||||||
<FormItem>
|
<FormItem>
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
Site Address
|
{t("siteAddress")}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
<FormControl>
|
<FormControl>
|
||||||
<Input
|
<Input
|
||||||
@@ -652,59 +659,12 @@ WantedBy=default.target`
|
|||||||
</FormControl>
|
</FormControl>
|
||||||
<FormMessage />
|
<FormMessage />
|
||||||
<FormDescription>
|
<FormDescription>
|
||||||
Specify the
|
{t("siteAddressDescription")}
|
||||||
IP address
|
|
||||||
of the host
|
|
||||||
for clients
|
|
||||||
to connect
|
|
||||||
to.
|
|
||||||
</FormDescription>
|
</FormDescription>
|
||||||
</FormItem>
|
</FormItem>
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
{form.watch("method") ===
|
|
||||||
"newt" && (
|
|
||||||
<FormField
|
|
||||||
control={form.control}
|
|
||||||
name="acceptClients"
|
|
||||||
render={({ field }) => (
|
|
||||||
<FormItem>
|
|
||||||
<div className="flex items-center space-x-2">
|
|
||||||
<Checkbox
|
|
||||||
id="acceptClients"
|
|
||||||
checked={field.value}
|
|
||||||
onCheckedChange={(checked) => {
|
|
||||||
const value = checked as boolean;
|
|
||||||
field.onChange(value);
|
|
||||||
setAcceptClients(value);
|
|
||||||
// Re-hydrate commands with new acceptClients value
|
|
||||||
if (newtId && newtSecret) {
|
|
||||||
hydrateCommands(
|
|
||||||
newtId,
|
|
||||||
newtSecret,
|
|
||||||
env.app.dashboardUrl,
|
|
||||||
newtVersion,
|
|
||||||
value
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
<label
|
|
||||||
htmlFor="acceptClients"
|
|
||||||
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
||||||
>
|
|
||||||
Accept client connections
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<FormDescription>
|
|
||||||
Allow other devices to connect through this newt instance as a gateway.
|
|
||||||
</FormDescription>
|
|
||||||
<FormMessage />
|
|
||||||
</FormItem>
|
|
||||||
)}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</form>
|
</form>
|
||||||
</Form>
|
</Form>
|
||||||
</SettingsSectionForm>
|
</SettingsSectionForm>
|
||||||
@@ -903,6 +863,56 @@ WantedBy=default.target`
|
|||||||
)
|
)
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div className="pt-4">
|
||||||
|
<p className="font-bold mb-3">
|
||||||
|
{t("siteConfiguration")}
|
||||||
|
</p>
|
||||||
|
<div className="flex items-center space-x-2 mb-4">
|
||||||
|
<Checkbox
|
||||||
|
id="acceptClients"
|
||||||
|
checked={acceptClients}
|
||||||
|
onCheckedChange={(
|
||||||
|
checked
|
||||||
|
) => {
|
||||||
|
const value =
|
||||||
|
checked as boolean;
|
||||||
|
setAcceptClients(
|
||||||
|
value
|
||||||
|
);
|
||||||
|
form.setValue(
|
||||||
|
"acceptClients",
|
||||||
|
value
|
||||||
|
);
|
||||||
|
// Re-hydrate commands with new acceptClients value
|
||||||
|
if (
|
||||||
|
newtId &&
|
||||||
|
newtSecret &&
|
||||||
|
newtVersion
|
||||||
|
) {
|
||||||
|
hydrateCommands(
|
||||||
|
newtId,
|
||||||
|
newtSecret,
|
||||||
|
env.app
|
||||||
|
.dashboardUrl,
|
||||||
|
newtVersion,
|
||||||
|
value
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
<label
|
||||||
|
htmlFor="acceptClients"
|
||||||
|
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
||||||
|
>
|
||||||
|
{t("siteAcceptClientConnections")}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<p className="text-sm text-muted-foreground mb-4">
|
||||||
|
{t("siteAcceptClientConnectionsDescription")}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="pt-4">
|
<div className="pt-4">
|
||||||
<p className="font-bold mb-3">
|
<p className="font-bold mb-3">
|
||||||
{t("commands")}
|
{t("commands")}
|
||||||
|
|||||||
Reference in New Issue
Block a user