mirror of
https://github.com/fosrl/pangolin.git
synced 2026-03-02 13:13:58 +00:00
Compare commits
11 Commits
1.16.2
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a060c8029f | ||
|
|
cdf79edb00 | ||
|
|
44e3eedffa | ||
|
|
bb189874cb | ||
|
|
34dadd0e16 | ||
|
|
87b5cd9988 | ||
|
|
6a537a23e8 | ||
|
|
e63a6e9b77 | ||
|
|
7ce589c4f2 | ||
|
|
f36cf06e26 | ||
|
|
375211f184 |
2
.github/workflows/cicd.yml
vendored
2
.github/workflows/cicd.yml
vendored
@@ -299,7 +299,7 @@ jobs:
|
|||||||
shell: bash
|
shell: bash
|
||||||
|
|
||||||
- name: Upload artifacts from /install/bin
|
- name: Upload artifacts from /install/bin
|
||||||
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
|
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
||||||
with:
|
with:
|
||||||
name: install-bin
|
name: install-bin
|
||||||
path: install/bin/
|
path: install/bin/
|
||||||
|
|||||||
@@ -477,7 +477,10 @@ export async function getTraefikConfig(
|
|||||||
|
|
||||||
// TODO: HOW TO HANDLE ^^^^^^ BETTER
|
// TODO: HOW TO HANDLE ^^^^^^ BETTER
|
||||||
const anySitesOnline = targets.some(
|
const anySitesOnline = targets.some(
|
||||||
(target) => target.site.online
|
(target) =>
|
||||||
|
target.site.online ||
|
||||||
|
target.site.type === "local" ||
|
||||||
|
target.site.type === "wireguard"
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -605,7 +608,10 @@ export async function getTraefikConfig(
|
|||||||
servers: (() => {
|
servers: (() => {
|
||||||
// Check if any sites are online
|
// Check if any sites are online
|
||||||
const anySitesOnline = targets.some(
|
const anySitesOnline = targets.some(
|
||||||
(target) => target.site.online
|
(target) =>
|
||||||
|
target.site.online ||
|
||||||
|
target.site.type === "local" ||
|
||||||
|
target.site.type === "wireguard"
|
||||||
);
|
);
|
||||||
|
|
||||||
return targets
|
return targets
|
||||||
|
|||||||
@@ -665,7 +665,10 @@ export async function getTraefikConfig(
|
|||||||
|
|
||||||
// TODO: HOW TO HANDLE ^^^^^^ BETTER
|
// TODO: HOW TO HANDLE ^^^^^^ BETTER
|
||||||
const anySitesOnline = targets.some(
|
const anySitesOnline = targets.some(
|
||||||
(target) => target.site.online
|
(target) =>
|
||||||
|
target.site.online ||
|
||||||
|
target.site.type === "local" ||
|
||||||
|
target.site.type === "wireguard"
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -793,7 +796,10 @@ export async function getTraefikConfig(
|
|||||||
servers: (() => {
|
servers: (() => {
|
||||||
// Check if any sites are online
|
// Check if any sites are online
|
||||||
const anySitesOnline = targets.some(
|
const anySitesOnline = targets.some(
|
||||||
(target) => target.site.online
|
(target) =>
|
||||||
|
target.site.online ||
|
||||||
|
target.site.type === "local" ||
|
||||||
|
target.site.type === "wireguard"
|
||||||
);
|
);
|
||||||
|
|
||||||
return targets
|
return targets
|
||||||
|
|||||||
@@ -171,8 +171,7 @@ const DockerContainersTable: FC<{
|
|||||||
...Object.values(container.networks)
|
...Object.values(container.networks)
|
||||||
.map((n) => n.ipAddress)
|
.map((n) => n.ipAddress)
|
||||||
.filter(Boolean),
|
.filter(Boolean),
|
||||||
...getExposedPorts(container).map((p) => p.toString()),
|
...getExposedPorts(container).map((p) => p.toString())
|
||||||
...Object.entries(container.labels).flat()
|
|
||||||
];
|
];
|
||||||
|
|
||||||
return searchableFields.some((field) =>
|
return searchableFields.some((field) =>
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ export function NewtSiteInstallCommands({
|
|||||||
`helm install newt fossorial/newt \\
|
`helm install newt fossorial/newt \\
|
||||||
--create-namespace \\
|
--create-namespace \\
|
||||||
--set newtInstances[0].name="main-tunnel" \\
|
--set newtInstances[0].name="main-tunnel" \\
|
||||||
|
--set newtInstances[0].enabled=true \\
|
||||||
--set-string newtInstances[0].auth.keys.endpointKey="${endpoint}" \\
|
--set-string newtInstances[0].auth.keys.endpointKey="${endpoint}" \\
|
||||||
--set-string newtInstances[0].auth.keys.idKey="${id}" \\
|
--set-string newtInstances[0].auth.keys.idKey="${id}" \\
|
||||||
--set-string newtInstances[0].auth.keys.secretKey="${secret}"`
|
--set-string newtInstances[0].auth.keys.secretKey="${secret}"`
|
||||||
@@ -185,59 +186,72 @@ WantedBy=default.target`
|
|||||||
className="mt-4"
|
className="mt-4"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="pt-4">
|
<div className="pt-4">
|
||||||
<p className="font-bold mb-3">
|
<p className="font-bold mb-3">{t("siteConfiguration")}</p>
|
||||||
{t("siteConfiguration")}
|
<div className="flex items-center space-x-2 mb-2">
|
||||||
</p>
|
<CheckboxWithLabel
|
||||||
<div className="flex items-center space-x-2 mb-2">
|
id="acceptClients"
|
||||||
<CheckboxWithLabel
|
aria-describedby="acceptClients-desc"
|
||||||
id="acceptClients"
|
checked={acceptClients}
|
||||||
aria-describedby="acceptClients-desc"
|
onCheckedChange={(checked) => {
|
||||||
checked={acceptClients}
|
const value = checked as boolean;
|
||||||
onCheckedChange={(checked) => {
|
setAcceptClients(value);
|
||||||
const value = checked as boolean;
|
}}
|
||||||
setAcceptClients(value);
|
label={t("siteAcceptClientConnections")}
|
||||||
}}
|
/>
|
||||||
label={t("siteAcceptClientConnections")}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<p
|
|
||||||
id="acceptClients-desc"
|
|
||||||
className="text-sm text-muted-foreground"
|
|
||||||
>
|
|
||||||
{t("siteAcceptClientConnectionsDescription")}
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
<p
|
||||||
|
id="acceptClients-desc"
|
||||||
|
className="text-sm text-muted-foreground"
|
||||||
|
>
|
||||||
|
{t("siteAcceptClientConnectionsDescription")}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div className="pt-4">
|
<div className="pt-4">
|
||||||
<p className="font-bold mb-3">{t("commands")}</p>
|
<p className="font-bold mb-3">{t("commands")}</p>
|
||||||
<div className="mt-2 space-y-3">
|
{platform === "kubernetes" && (
|
||||||
{commands.map((item, index) => {
|
<p className="text-sm text-muted-foreground mb-3">
|
||||||
const commandText =
|
For more and up to date Kubernetes installation
|
||||||
typeof item === "string"
|
information, see{" "}
|
||||||
? item
|
<a
|
||||||
: item.command;
|
href="https://docs.pangolin.net/manage/sites/install-kubernetes"
|
||||||
const title =
|
target="_blank"
|
||||||
typeof item === "string"
|
rel="noreferrer"
|
||||||
? undefined
|
className="underline"
|
||||||
: item.title;
|
>
|
||||||
|
docs.pangolin.net/manage/sites/install-kubernetes
|
||||||
|
</a>
|
||||||
|
.
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
|
<div className="mt-2 space-y-3">
|
||||||
|
{commands.map((item, index) => {
|
||||||
|
const commandText =
|
||||||
|
typeof item === "string" ? item : item.command;
|
||||||
|
const title =
|
||||||
|
typeof item === "string"
|
||||||
|
? undefined
|
||||||
|
: item.title;
|
||||||
|
|
||||||
return (
|
const key = `${title ?? ""}::${commandText}`;
|
||||||
<div key={index}>
|
|
||||||
{title && (
|
return (
|
||||||
<p className="text-sm font-medium mb-1.5">
|
<div key={key}>
|
||||||
{title}
|
{title && (
|
||||||
</p>
|
<p className="text-sm font-medium mb-1.5">
|
||||||
)}
|
{title}
|
||||||
<CopyTextBox
|
</p>
|
||||||
text={commandText}
|
)}
|
||||||
outline={true}
|
<CopyTextBox
|
||||||
/>
|
text={commandText}
|
||||||
</div>
|
outline={true}
|
||||||
);
|
/>
|
||||||
})}
|
</div>
|
||||||
</div>
|
);
|
||||||
|
})}
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</SettingsSectionBody>
|
</SettingsSectionBody>
|
||||||
</SettingsSection>
|
</SettingsSection>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user