mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-11-04 18:32:51 +00:00
Compare commits
21 Commits
2025-01-21
...
2025-01-22
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
704f2f3d9b | ||
|
|
022288ef8e | ||
|
|
3c68db9b3a | ||
|
|
2ba35bbee5 | ||
|
|
3b14ea76ad | ||
|
|
74d745441c | ||
|
|
afc66ebac5 | ||
|
|
18baa31178 | ||
|
|
ede5efb91b | ||
|
|
6b17c1a4a1 | ||
|
|
87256a39ce | ||
|
|
4c9a4e28a7 | ||
|
|
9e9838867a | ||
|
|
41514c1eb8 | ||
|
|
c8fe3c363b | ||
|
|
81c5f51a96 | ||
|
|
c5df1bbcea | ||
|
|
8303f61647 | ||
|
|
eefbbdf4df | ||
|
|
77c15f5a24 | ||
|
|
e2c329b9c7 |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -17,6 +17,22 @@ All LXC instances created using this repository come pre-installed with Midnight
|
|||||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||||
|
|
||||||
|
|
||||||
|
## 2025-01-22
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
### 🚀 Updated Scripts
|
||||||
|
|
||||||
|
- Tweak: LubeLogger Script Upcoming Changes 1.4.3 [@JcMinarro](https://github.com/JcMinarro) ([#1656](https://github.com/community-scripts/ProxmoxVE/pull/1656))
|
||||||
|
- Fix: SQL Server 2022 Install [@MickLesk](https://github.com/MickLesk) ([#1669](https://github.com/community-scripts/ProxmoxVE/pull/1669))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Refactor Sidebar component to display unique scripts count [@BramSuurdje](https://github.com/BramSuurdje) ([#1681](https://github.com/community-scripts/ProxmoxVE/pull/1681))
|
||||||
|
- Refactor various components and configuration for mobile responsiveness. [@BramSuurdje](https://github.com/BramSuurdje) ([#1679](https://github.com/community-scripts/ProxmoxVE/pull/1679))
|
||||||
|
- Add Docker-VM to Containers & Docker Category [@thost96](https://github.com/thost96) ([#1667](https://github.com/community-scripts/ProxmoxVE/pull/1667))
|
||||||
|
- Moving SQL Server 2022 to database category [@CamronBorealis](https://github.com/CamronBorealis) ([#1659](https://github.com/community-scripts/ProxmoxVE/pull/1659))
|
||||||
|
|
||||||
## 2025-01-21
|
## 2025-01-21
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
@@ -42,14 +42,17 @@ function update_script() {
|
|||||||
msg_info "Updating ${APP} to v${RELEASE}"
|
msg_info "Updating ${APP} to v${RELEASE}"
|
||||||
cd /opt
|
cd /opt
|
||||||
wget -q https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
|
wget -q https://github.com/hargata/lubelog/releases/download/v${RELEASE}/LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip
|
||||||
mkdir -p /tmp/lubeloggerData/wwwroot
|
mkdir -p /tmp/lubeloggerData/data
|
||||||
cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json
|
cp /opt/lubelogger/appsettings.json /tmp/lubeloggerData/appsettings.json
|
||||||
cp -r /opt/lubelogger/config /tmp/lubeloggerData/
|
cp -r /opt/lubelogger/data/ /tmp/lubeloggerData/
|
||||||
cp -r /opt/lubelogger/data /tmp/lubeloggerData/
|
|
||||||
[[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/wwwroot/
|
# Lubelogger has moved multiples folders to the 'data' folder, and we need to move them before the update to keep the user data
|
||||||
[[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/wwwroot/
|
# Github Discussion: https://github.com/hargata/lubelog/discussions/787
|
||||||
[[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/wwwroot/
|
[[ -e /opt/lubelogger/config ]] && cp -r /opt/lubelogger/config /tmp/lubeloggerData/data/
|
||||||
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/wwwroot/
|
[[ -e /opt/lubelogger/wwwroot/translations ]] && cp -r /opt/lubelogger/wwwroot/translations /tmp/lubeloggerData/data/
|
||||||
|
[[ -e /opt/lubelogger/wwwroot/documents ]] && cp -r /opt/lubelogger/wwwroot/documents /tmp/lubeloggerData/data/
|
||||||
|
[[ -e /opt/lubelogger/wwwroot/images ]] && cp -r /opt/lubelogger/wwwroot/images /tmp/lubeloggerData/data/
|
||||||
|
[[ -e /opt/lubelogger/wwwroot/temp ]] && cp -r /opt/lubelogger/wwwroot/temp /tmp/lubeloggerData/data/
|
||||||
[[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
|
[[ -e /opt/lubelogger/log ]] && cp -r /opt/lubelogger/log /tmp/lubeloggerData/
|
||||||
rm -rf /opt/lubelogger
|
rm -rf /opt/lubelogger
|
||||||
unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
|
unzip -qq LubeLogger_v${RELEASE_TRIMMED}_linux_x64.zip -d lubelogger
|
||||||
|
|||||||
@@ -34,113 +34,104 @@ export default function Page() {
|
|||||||
}, [theme]);
|
}, [theme]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="w-full mt-16">
|
<div className="w-full mt-16">
|
||||||
<Particles
|
<Particles
|
||||||
className="absolute inset-0 -z-40"
|
className="absolute inset-0 -z-40"
|
||||||
quantity={100}
|
quantity={100}
|
||||||
ease={80}
|
ease={80}
|
||||||
color={color}
|
color={color}
|
||||||
refresh
|
refresh
|
||||||
/>
|
/>
|
||||||
<div className="container mx-auto">
|
<div className="container mx-auto">
|
||||||
<div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40">
|
<div className="flex h-[80vh] flex-col items-center justify-center gap-4 py-20 lg:py-40">
|
||||||
<Dialog>
|
<Dialog>
|
||||||
<DialogTrigger>
|
<DialogTrigger>
|
||||||
<div>
|
<div>
|
||||||
<AnimatedGradientText>
|
<AnimatedGradientText>
|
||||||
<div
|
<div
|
||||||
className={cn(
|
className={cn(
|
||||||
`absolute inset-0 block size-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] [border-radius:inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`,
|
`absolute inset-0 block size-full animate-gradient bg-gradient-to-r from-[#ffaa40]/50 via-[#9c40ff]/50 to-[#ffaa40]/50 bg-[length:var(--bg-size)_100%] [border-radius:inherit] [mask:linear-gradient(#fff_0_0)_content-box,linear-gradient(#fff_0_0)]`,
|
||||||
`p-px ![mask-composite:subtract]`,
|
`p-px ![mask-composite:subtract]`,
|
||||||
)}
|
)}
|
||||||
/>
|
/>
|
||||||
❤️ <Separator className="mx-2 h-4" orientation="vertical" />
|
❤️ <Separator className="mx-2 h-4" orientation="vertical" />
|
||||||
<span
|
<span
|
||||||
className={cn(
|
className={cn(
|
||||||
`animate-gradient bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent`,
|
`animate-gradient bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent`,
|
||||||
`inline`,
|
`inline`,
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
Scripts by Tteck
|
Scripts by tteck
|
||||||
</span>
|
</span>
|
||||||
</AnimatedGradientText>
|
</AnimatedGradientText>
|
||||||
</div>
|
</div>
|
||||||
</DialogTrigger>
|
</DialogTrigger>
|
||||||
<DialogContent>
|
<DialogContent>
|
||||||
<DialogHeader>
|
<DialogHeader>
|
||||||
<DialogTitle>Thank You!</DialogTitle>
|
<DialogTitle>Thank You!</DialogTitle>
|
||||||
<DialogDescription>
|
<DialogDescription>
|
||||||
A big thank you to Tteck and the many contributors who have
|
A big thank you to tteck and the many contributors who have
|
||||||
made this project possible. Your hard work is truly
|
made this project possible. Your hard work is truly
|
||||||
appreciated by the entire Proxmox community!
|
appreciated by the entire Proxmox community!
|
||||||
</DialogDescription>
|
</DialogDescription>
|
||||||
</DialogHeader>
|
</DialogHeader>
|
||||||
<CardFooter className="flex flex-col gap-2">
|
<CardFooter className="flex flex-col gap-2">
|
||||||
<Button className="w-full" variant="outline" asChild>
|
<Button className="w-full" variant="outline" asChild>
|
||||||
<a
|
<a
|
||||||
href="https://github.com/tteck"
|
href="https://github.com/tteck"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="flex items-center justify-center"
|
className="flex items-center justify-center"
|
||||||
>
|
>
|
||||||
<FaGithub className="mr-2 h-4 w-4" /> Tteck's GitHub
|
<FaGithub className="mr-2 h-4 w-4" /> Tteck's GitHub
|
||||||
</a>
|
</a>
|
||||||
</Button>
|
</Button>
|
||||||
<Button className="w-full" asChild>
|
<Button className="w-full" asChild>
|
||||||
<a
|
<a
|
||||||
href={`https://github.com/community-scripts/${basePath}`}
|
href={`https://github.com/community-scripts/${basePath}`}
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
className="flex items-center justify-center"
|
className="flex items-center justify-center"
|
||||||
>
|
>
|
||||||
<ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper
|
<ExternalLink className="mr-2 h-4 w-4" /> Proxmox Helper
|
||||||
Scripts
|
Scripts
|
||||||
</a>
|
</a>
|
||||||
</Button>
|
</Button>
|
||||||
</CardFooter>
|
</CardFooter>
|
||||||
</DialogContent>
|
</DialogContent>
|
||||||
</Dialog>
|
</Dialog>
|
||||||
|
|
||||||
<div className="flex flex-col gap-4">
|
<div className="flex flex-col gap-4">
|
||||||
<h1 className="max-w-2xl text-center text-5xl font-semibold tracking-tighter md:text-7xl">
|
<h1 className="max-w-2xl text-center text-3xl font-semibold tracking-tighter md:text-7xl">
|
||||||
Make managing your Homelab a breeze
|
Make managing your Homelab a breeze
|
||||||
</h1>
|
</h1>
|
||||||
<p className="max-w-2xl text-center text-lg leading-relaxed tracking-tight text-muted-foreground md:text-xl">
|
<div className="max-w-2xl gap-2 flex flex-col text-center sm:text-lg text-sm leading-relaxed tracking-tight text-muted-foreground md:text-xl">
|
||||||
We are a community-driven initiative that simplifies the setup of
|
<p>
|
||||||
Proxmox Virtual Environment (VE).
|
We are a community-driven initiative that simplifies the setup
|
||||||
<br />
|
of Proxmox Virtual Environment (VE).
|
||||||
<br />
|
</p>
|
||||||
Originally created by{" "}
|
<p>
|
||||||
<a href="https://github.com/tteck" target="_blank">
|
With 200+ scripts to help you manage your{" "}
|
||||||
tteck
|
<b>Proxmox VE environment</b>. Whether you're a seasoned
|
||||||
</a>
|
user or a newcomer, we've got you covered.
|
||||||
, these scripts automate and streamline
|
</p>
|
||||||
<br />
|
</div>
|
||||||
the process of creating and configuring Linux containers (LXC) and
|
</div>
|
||||||
virtual machines (VMs) on Proxmox VE.
|
<div className="flex flex-row gap-3">
|
||||||
<br />
|
<Link href="/scripts">
|
||||||
<br />
|
<Button
|
||||||
With 200+ scripts to help you manage your{" "}
|
size="lg"
|
||||||
<b>Proxmox VE environment</b>.<br />
|
variant="expandIcon"
|
||||||
Whether you're a seasoned user or a newcomer, we've got
|
Icon={CustomArrowRightIcon}
|
||||||
you covered.
|
iconPlacement="right"
|
||||||
</p>
|
className="hover:"
|
||||||
</div>
|
>
|
||||||
<div className="flex flex-row gap-3">
|
View Scripts
|
||||||
<Link href="/scripts">
|
</Button>
|
||||||
<Button
|
</Link>
|
||||||
size="lg"
|
</div>
|
||||||
variant="expandIcon"
|
</div>
|
||||||
Icon={CustomArrowRightIcon}
|
</div>
|
||||||
iconPlacement="right"
|
</div>
|
||||||
className="hover:"
|
);
|
||||||
>
|
|
||||||
View Scripts
|
|
||||||
</Button>
|
|
||||||
</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,35 +1,43 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { Category } from "@/lib/types";
|
import type { Category, Script } from "@/lib/types";
|
||||||
import ScriptAccordion from "./ScriptAccordion";
|
import ScriptAccordion from "./ScriptAccordion";
|
||||||
|
|
||||||
const Sidebar = ({
|
const Sidebar = ({
|
||||||
items,
|
items,
|
||||||
selectedScript,
|
selectedScript,
|
||||||
setSelectedScript,
|
setSelectedScript,
|
||||||
}: {
|
}: {
|
||||||
items: Category[];
|
items: Category[];
|
||||||
selectedScript: string | null;
|
selectedScript: string | null;
|
||||||
setSelectedScript: (script: string | null) => void;
|
setSelectedScript: (script: string | null) => void;
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
const uniqueScripts = items.reduce((acc, category) => {
|
||||||
<div className="flex min-w-72 flex-col sm:max-w-72">
|
for (const script of category.scripts) {
|
||||||
<div className="flex items-end justify-between pb-4">
|
if (!acc.some((s) => s.name === script.name)) {
|
||||||
<h1 className="text-xl font-bold">Categories</h1>
|
acc.push(script);
|
||||||
<p className="text-xs italic text-muted-foreground">
|
}
|
||||||
{items.reduce((acc, category) => acc + category.scripts.length, 0)}{" "}
|
}
|
||||||
Total scripts
|
return acc;
|
||||||
</p>
|
}, [] as Script[]);
|
||||||
</div>
|
|
||||||
<div className="rounded-lg">
|
return (
|
||||||
<ScriptAccordion
|
<div className="flex min-w-72 flex-col sm:max-w-72">
|
||||||
items={items}
|
<div className="flex items-end justify-between pb-4">
|
||||||
selectedScript={selectedScript}
|
<h1 className="text-xl font-bold">Categories</h1>
|
||||||
setSelectedScript={setSelectedScript}
|
<p className="text-xs italic text-muted-foreground">
|
||||||
/>
|
{uniqueScripts.length} Total scripts
|
||||||
</div>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
<div className="rounded-lg">
|
||||||
|
<ScriptAccordion
|
||||||
|
items={items}
|
||||||
|
selectedScript={selectedScript}
|
||||||
|
setSelectedScript={setSelectedScript}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Sidebar;
|
export default Sidebar;
|
||||||
@@ -5,7 +5,7 @@ export default function Footer() {
|
|||||||
return (
|
return (
|
||||||
<div className="supports-backdrop-blur:bg-background/90 mt-auto flex border-t border-border bg-background/40 py-6 backdrop-blur-lg">
|
<div className="supports-backdrop-blur:bg-background/90 mt-auto flex border-t border-border bg-background/40 py-6 backdrop-blur-lg">
|
||||||
<div className="flex w-full justify-between">
|
<div className="flex w-full justify-between">
|
||||||
<div className="mx-6 w-full max-w-7xl text-sm text-muted-foreground">
|
<div className="mx-6 w-full max-w-7xl text-xs sm:text-sm text-muted-foreground">
|
||||||
Website built by the community. The source code is avaliable on{" "}
|
Website built by the community. The source code is avaliable on{" "}
|
||||||
<Link
|
<Link
|
||||||
href={`https://github.com/community-scripts/${basePath}`}
|
href={`https://github.com/community-scripts/${basePath}`}
|
||||||
|
|||||||
@@ -9,12 +9,7 @@ import { navbarLinks } from "@/config/siteConfig";
|
|||||||
import CommandMenu from "./CommandMenu";
|
import CommandMenu from "./CommandMenu";
|
||||||
import StarOnGithubButton from "./ui/star-on-github-button";
|
import StarOnGithubButton from "./ui/star-on-github-button";
|
||||||
import { ThemeToggle } from "./ui/theme-toggle";
|
import { ThemeToggle } from "./ui/theme-toggle";
|
||||||
import {
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip";
|
||||||
Tooltip,
|
|
||||||
TooltipContent,
|
|
||||||
TooltipProvider,
|
|
||||||
TooltipTrigger,
|
|
||||||
} from "./ui/tooltip";
|
|
||||||
|
|
||||||
export const dynamic = "force-dynamic";
|
export const dynamic = "force-dynamic";
|
||||||
|
|
||||||
@@ -33,56 +28,59 @@ function Navbar() {
|
|||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
className={`fixed left-0 top-0 z-50 flex w-screen justify-center px-4 xl:px-0 ${
|
className={`fixed left-0 top-0 z-50 flex w-screen justify-center px-4 xl:px-0 ${
|
||||||
isScrolled ? "glass border-b bg-background/50" : ""
|
isScrolled ? "glass border-b bg-background/50" : ""
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<div className="flex h-20 w-full max-w-7xl flex-row-reverse items-center justify-between sm:flex-row">
|
<div className="flex h-20 w-full max-w-7xl items-center justify-between sm:flex-row">
|
||||||
<Link
|
<Link
|
||||||
href={"/"}
|
href={"/"}
|
||||||
className="flex cursor-pointer flex-row-reverse items-center gap-2 font-semibold sm:flex-row"
|
className="flex cursor-pointer w-full justify-center sm:justify-start flex-row-reverse items-center gap-2 font-semibold sm:flex-row"
|
||||||
>
|
>
|
||||||
<Image
|
<Image
|
||||||
height={18}
|
height={18}
|
||||||
unoptimized
|
unoptimized
|
||||||
width={18}
|
width={18}
|
||||||
alt="logo"
|
alt="logo"
|
||||||
src="logo.png"
|
src="/ProxmoxVE/logo.png"
|
||||||
/>
|
className=""
|
||||||
<span className="hidden lg:block">Proxmox VE Helper-Scripts</span>
|
/>
|
||||||
</Link>
|
<span className="hidden md:block">Proxmox VE Helper-Scripts</span>
|
||||||
<div className="flex gap-2">
|
</Link>
|
||||||
<CommandMenu />
|
<div className="flex gap-2">
|
||||||
<StarOnGithubButton />
|
<CommandMenu />
|
||||||
{navbarLinks.map(({ href, event, icon, text }) => (
|
<StarOnGithubButton />
|
||||||
<TooltipProvider key={event}>
|
{navbarLinks.map(({ href, event, icon, text, mobileHidden }) => (
|
||||||
<Tooltip delayDuration={100}>
|
<TooltipProvider key={event}>
|
||||||
<TooltipTrigger>
|
<Tooltip delayDuration={100}>
|
||||||
<Button variant="ghost" size={"icon"} asChild>
|
<TooltipTrigger
|
||||||
<Link
|
className={mobileHidden ? "hidden lg:block" : ""}
|
||||||
target="_blank"
|
>
|
||||||
href={href}
|
<Button variant="ghost" size={"icon"} asChild>
|
||||||
data-umami-event={event}
|
<Link
|
||||||
>
|
target="_blank"
|
||||||
{icon}
|
href={href}
|
||||||
<span className="sr-only">{text}</span>
|
data-umami-event={event}
|
||||||
</Link>
|
>
|
||||||
</Button>
|
{icon}
|
||||||
</TooltipTrigger>
|
<span className="sr-only">{text}</span>
|
||||||
<TooltipContent side="bottom" className="text-xs">
|
</Link>
|
||||||
{text}
|
</Button>
|
||||||
</TooltipContent>
|
</TooltipTrigger>
|
||||||
</Tooltip>
|
<TooltipContent side="bottom" className="text-xs">
|
||||||
</TooltipProvider>
|
{text}
|
||||||
))}
|
</TooltipContent>
|
||||||
<ThemeToggle />
|
</Tooltip>
|
||||||
</div>
|
</TooltipProvider>
|
||||||
</div>
|
))}
|
||||||
</div>
|
<ThemeToggle />
|
||||||
</>
|
</div>
|
||||||
);
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Navbar;
|
export default Navbar;
|
||||||
|
|||||||
@@ -1,45 +1,51 @@
|
|||||||
import { OperatingSystem } from "@/lib/types";
|
import { OperatingSystem } from "@/lib/types";
|
||||||
import { MessagesSquare, Scroll } from "lucide-react";
|
import { MessagesSquare, Scroll } from "lucide-react";
|
||||||
import { FaDiscord, FaGithub } from "react-icons/fa";
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
import { FaDiscord, FaGithub } from "react-icons/fa";
|
||||||
|
|
||||||
export const basePath = process.env.BASE_PATH;
|
export const basePath = process.env.BASE_PATH;
|
||||||
|
|
||||||
const isMobile = typeof window !== "undefined" && window.innerWidth < 640;
|
const isMobile = typeof window !== "undefined" && window.innerWidth < 640;
|
||||||
|
|
||||||
export const navbarLinks = [
|
export const navbarLinks = [
|
||||||
{
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}`,
|
href: `https://github.com/community-scripts/${basePath}`,
|
||||||
event: "Github",
|
event: "Github",
|
||||||
icon: <FaGithub className="h-4 w-4" />,
|
icon: <FaGithub className="h-4 w-4" />,
|
||||||
text: "Github",
|
text: "Github",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: `https://discord.gg/2wvnMDgdnU`,
|
href: `https://discord.gg/2wvnMDgdnU`,
|
||||||
event: "Discord",
|
event: "Discord",
|
||||||
icon: <FaDiscord className="h-4 w-4" />,
|
icon: <FaDiscord className="h-4 w-4" />,
|
||||||
text: "Discord",
|
text: "Discord",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`,
|
href: `https://github.com/community-scripts/${basePath}/blob/main/CHANGELOG.md`,
|
||||||
event: "Change Log",
|
event: "Change Log",
|
||||||
icon: <Scroll className="h-4 w-4" />,
|
icon: <Scroll className="h-4 w-4" />,
|
||||||
text: "Change Log",
|
text: "Change Log",
|
||||||
},
|
mobileHidden: true,
|
||||||
!isMobile
|
},
|
||||||
? {
|
{
|
||||||
href: `https://github.com/community-scripts/${basePath}/discussions`,
|
href: `https://github.com/community-scripts/${basePath}/discussions`,
|
||||||
event: "Discussions",
|
event: "Discussions",
|
||||||
icon: <MessagesSquare className="h-4 w-4" />,
|
icon: <MessagesSquare className="h-4 w-4" />,
|
||||||
text: "Discussions",
|
text: "Discussions",
|
||||||
}
|
mobileHidden: true,
|
||||||
: null,
|
},
|
||||||
].filter(Boolean) as { href: string; event: string; icon: React.ReactNode; text: string }[];
|
].filter(Boolean) as {
|
||||||
|
href: string;
|
||||||
|
event: string;
|
||||||
|
icon: React.ReactNode;
|
||||||
|
text: string;
|
||||||
|
mobileHidden?: boolean;
|
||||||
|
}[];
|
||||||
|
|
||||||
export const mostPopularScripts = [
|
export const mostPopularScripts = [
|
||||||
"Proxmox VE Post Install",
|
"Proxmox VE Post Install",
|
||||||
"Docker",
|
"Docker",
|
||||||
"Home Assistant OS",
|
"Home Assistant OS",
|
||||||
];
|
];
|
||||||
|
|
||||||
export const analytics = {
|
export const analytics = {
|
||||||
|
|||||||
@@ -37,10 +37,10 @@ $STD npm install --global yarn
|
|||||||
msg_ok "Installed Node.js"
|
msg_ok "Installed Node.js"
|
||||||
|
|
||||||
msg_info "Installing Actual Budget"
|
msg_info "Installing Actual Budget"
|
||||||
|
cd /opt
|
||||||
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||||
wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}
|
wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
|
||||||
#$STD curl -L -o actual-server.tar.gz https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
|
tar -xzf v${RELEASE}.tar.gz
|
||||||
$STD tar -xzvf v${RELEASE}.tar.gz
|
|
||||||
mv *ctual-server-* /opt/actualbudget
|
mv *ctual-server-* /opt/actualbudget
|
||||||
mkdir -p /opt/actualbudget/server-files
|
mkdir -p /opt/actualbudget/server-files
|
||||||
mkdir -p /opt/actualbudget-data
|
mkdir -p /opt/actualbudget-data
|
||||||
|
|||||||
@@ -22,27 +22,34 @@ $STD apt install -y \
|
|||||||
coreutils
|
coreutils
|
||||||
msg_ok "Installed Dependencies"
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
msg_info "Installing SQL Server 2022"
|
msg_info "Setup SQL Server 2022"
|
||||||
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
|
$STD curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg
|
||||||
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
|
$STD curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
|
||||||
curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list
|
$STD curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | tee /etc/apt/sources.list.d/mssql-server-2022.list
|
||||||
$STD apt-get clean *
|
$STD apt-get clean *
|
||||||
$STD apt-get update -y
|
$STD apt-get update -y
|
||||||
$STD apt-get install -y mssql-server
|
$STD apt-get install -y mssql-server
|
||||||
/opt/mssql/bin/mssql-conf setup
|
msg_ok "Setup Server 2022"
|
||||||
msg_ok "Installed SQL Server 2022"
|
|
||||||
|
|
||||||
msg_info "Installing SQL Server Tools"
|
msg_info "Installing SQL Server Tools"
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
|
curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc
|
||||||
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
|
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list
|
||||||
$STD apt-get update
|
$STD apt-get update
|
||||||
$STD apt-get install -y \
|
$STD apt-get install -y -qq \
|
||||||
mssql-tools18 \
|
mssql-tools18 \
|
||||||
unixodbc-dev
|
unixodbc-dev
|
||||||
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
|
echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
|
||||||
source ~/.bashrc
|
source ~/.bash_profile
|
||||||
msg_ok "Installed SQL Server Tools"
|
msg_ok "Installed SQL Server Tools"
|
||||||
|
|
||||||
|
read -r -p "Do you want to run the SQL server setup now? (Later is also possible) <y/N>" prompt
|
||||||
|
if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||||
|
/opt/mssql/bin/mssql-conf setup
|
||||||
|
else
|
||||||
|
msg_ok "Skipping SQL Server setup. You can run it later with '/opt/mssql/bin/mssql-conf setup'."
|
||||||
|
fi
|
||||||
|
|
||||||
msg_info "Start Service"
|
msg_info "Start Service"
|
||||||
systemctl enable -q --now mssql-server
|
systemctl enable -q --now mssql-server
|
||||||
msg_ok "Service started"
|
msg_ok "Service started"
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
"name": "VS Code Server",
|
"name": "VS Code Server",
|
||||||
"slug": "code-server",
|
"slug": "code-server",
|
||||||
"categories": [
|
"categories": [
|
||||||
1
|
1,
|
||||||
|
20,
|
||||||
|
11
|
||||||
],
|
],
|
||||||
"date_created": "2024-05-02",
|
"date_created": "2024-05-02",
|
||||||
"type": "misc",
|
"type": "misc",
|
||||||
@@ -36,4 +38,4 @@
|
|||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name": "Docker",
|
"name": "Docker",
|
||||||
"slug": "docker-vm",
|
"slug": "docker-vm",
|
||||||
"categories": [
|
"categories": [
|
||||||
2
|
2, 3
|
||||||
],
|
],
|
||||||
"date_created": "2025-01-20",
|
"date_created": "2025-01-20",
|
||||||
"type": "vm",
|
"type": "vm",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"name":"SQL Server 2022",
|
"name":"SQL Server 2022",
|
||||||
"slug":"sqlserver2022",
|
"slug":"sqlserver2022",
|
||||||
"categories":[
|
"categories":[
|
||||||
5
|
8
|
||||||
],
|
],
|
||||||
"date_created":"2025-01-14",
|
"date_created":"2025-01-14",
|
||||||
"type":"ct",
|
"type":"ct",
|
||||||
@@ -31,6 +31,10 @@
|
|||||||
"password":null
|
"password":null
|
||||||
},
|
},
|
||||||
"notes":[
|
"notes":[
|
||||||
|
{
|
||||||
|
"text":"if you not choose the install setup, execute: `/opt/mssql/bin/mssql-conf setup` in LXC shell.",
|
||||||
|
"type":"info"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"text":"You can setup the admin account 'SA' during installation",
|
"text":"You can setup the admin account 'SA' during installation",
|
||||||
"type":"info"
|
"type":"info"
|
||||||
@@ -40,4 +44,4 @@
|
|||||||
"type":"warning"
|
"type":"warning"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
### Generated on 01-21-2025
|
### Generated on 01-22-2025
|
||||||
##################################################
|
##################################################
|
||||||
|
|
||||||
### 2fauth.sh
|
### 2fauth.sh
|
||||||
|
|||||||
Reference in New Issue
Block a user