Compare commits

...

21 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
704f2f3d9b Update CHANGELOG.md (#1683) 2025-01-22 21:23:26 +01:00
Bram Suurd
022288ef8e Refactor Sidebar component to display unique scripts count (#1681) 2025-01-22 21:16:21 +01:00
community-scripts-pr-app[bot]
3c68db9b3a Update CHANGELOG.md (#1680) 2025-01-22 20:39:50 +01:00
Bram Suurd
2ba35bbee5 Refactor various components and configuration for mobile responsiveness. (#1679) 2025-01-22 20:36:51 +01:00
github-actions[bot]
3b14ea76ad Update .app-headers file (#1670)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-22 15:59:34 +01:00
CanbiZ
74d745441c Update actualbudget-install.sh 2025-01-22 14:50:59 +01:00
CanbiZ
afc66ebac5 Update actualbudget-install.sh 2025-01-22 14:34:06 +01:00
CanbiZ
18baa31178 Update actualbudget-install.sh 2025-01-22 14:31:55 +01:00
community-scripts-pr-app[bot]
ede5efb91b Update CHANGELOG.md (#1663)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-22 13:51:18 +01:00
CanbiZ
6b17c1a4a1 Update sqlserver2022-install.sh 2025-01-22 12:37:23 +01:00
CanbiZ
87256a39ce Update sqlserver2022-install.sh 2025-01-22 12:19:06 +01:00
Thorsten
4c9a4e28a7 Add Docker-VM to Containers & Docker Categorie (#1667) 2025-01-22 10:56:37 +01:00
CanbiZ
9e9838867a Update sqlserver2022-install.sh 2025-01-22 10:50:51 +01:00
CanbiZ
41514c1eb8 Update sqlserver2022-install.sh 2025-01-22 10:49:29 +01:00
CanbiZ
c8fe3c363b Update sqlserver2022-install.sh 2025-01-22 10:43:34 +01:00
Jc Miñarro
81c5f51a96 Update LubeLogger script (#1656) 2025-01-22 10:39:48 +01:00
CanbiZ
c5df1bbcea Fix: SQL Server 2022 Install (#1669)
* Fix: SQL Server 2022 Install

* Update sqlserver2022.json
2025-01-22 10:25:39 +01:00
CanbiZ
8303f61647 Update sqlserver2022-install.sh 2025-01-22 08:57:51 +01:00
CanbiZ
eefbbdf4df Update actualbudget-install.sh 2025-01-22 08:28:09 +01:00
CanbiZ
77c15f5a24 Update code-server.json 2025-01-22 08:08:29 +01:00
Camron B
e2c329b9c7 Moving SQL Server 2022 to database category (#1659)
Currently displaying in the "Adblock & DNS" category
2025-01-22 06:47:36 +01:00
13 changed files with 282 additions and 247 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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&apos;s GitHub <FaGithub className="mr-2 h-4 w-4" /> Tteck&apos;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&#39;re a seasoned
</a> user or a newcomer, we&#39;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&#39;re a seasoned user or a newcomer, we&#39;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>
);
} }

View File

@@ -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;

View File

@@ -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}`}

View File

@@ -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;

View File

@@ -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 = {

View File

@@ -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

View File

@@ -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"

View File

@@ -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"
} }
] ]
} }

View File

@@ -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",

View File

@@ -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"
} }
] ]
} }

View File

@@ -1,4 +1,4 @@
### Generated on 01-21-2025 ### Generated on 01-22-2025
################################################## ##################################################
### 2fauth.sh ### 2fauth.sh