Compare commits
107 Commits
v0.4.10.3
...
fix/357_35
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5564ae0393 | ||
|
|
93d7842f6c | ||
|
|
84c02048bc | ||
|
|
66a3bb3203 | ||
|
|
0da802be42 | ||
|
|
5bc3933d11 | ||
|
|
1c6d1ac120 | ||
|
|
ba1e6478d7 | ||
|
|
e3af248456 | ||
|
|
43bafb610f | ||
|
|
8e22568efb | ||
|
|
6bb9ed5182 | ||
|
|
b6c3954f98 | ||
|
|
f73b303172 | ||
|
|
50d066669e | ||
|
|
68541c0046 | ||
|
|
644222e958 | ||
|
|
31a5fd97d4 | ||
|
|
b54fbf15f6 | ||
|
|
a787e60e7c | ||
|
|
1e250306dc | ||
|
|
d64a296ebe | ||
|
|
691b27c924 | ||
|
|
dbc591aa63 | ||
|
|
5ea6828f8c | ||
|
|
3dabacd055 | ||
|
|
e8ee829577 | ||
|
|
aebc8a6171 | ||
|
|
c5db169441 | ||
|
|
bef5bef875 | ||
|
|
3a4f86942f | ||
|
|
94eb772467 | ||
|
|
3a2a1b2cd6 | ||
|
|
69c10b05ac | ||
|
|
7833d5d408 | ||
|
|
e0baa79d6b | ||
|
|
737c9c94f3 | ||
|
|
c57586acae | ||
|
|
74030b5806 | ||
|
|
cc276ddff3 | ||
|
|
375c551a3a | ||
|
|
e3e4556f83 | ||
|
|
7fa132e09c | ||
|
|
1a1dbe6975 | ||
|
|
1a5881c935 | ||
|
|
2d7176914e | ||
|
|
987ac3da1b | ||
|
|
03e31d66a7 | ||
|
|
7547dff67d | ||
|
|
1945b14694 | ||
|
|
ec23600861 | ||
|
|
41a9c0ae11 | ||
|
|
c266c4cb3c | ||
|
|
b5bce88398 | ||
|
|
48cf86a449 | ||
|
|
d40aeb6c82 | ||
|
|
9c759ba99b | ||
|
|
f467b9ad7b | ||
|
|
7fe2a8b453 | ||
|
|
5274737ab8 | ||
|
|
40805f39f7 | ||
|
|
f9af7536d0 | ||
|
|
0d39a9bbd0 | ||
|
|
66f8a84260 | ||
|
|
2a9921a4e1 | ||
|
|
50f657ba00 | ||
|
|
5d5eba72de | ||
|
|
577b96518e | ||
|
|
c6c27271d6 | ||
|
|
72c0246d8c | ||
|
|
06d4786e0a | ||
|
|
bc31896586 | ||
|
|
213a606fc0 | ||
|
|
3579f2258e | ||
|
|
5b861ade05 | ||
|
|
553eae6ce7 | ||
|
|
c2ca88f033 | ||
|
|
67d44a6a5f | ||
|
|
fe6cca5c63 | ||
|
|
3a8088ded6 | ||
|
|
5d48c7b61c | ||
|
|
5be88d361f | ||
|
|
014e5b69e9 | ||
|
|
f37b2cb26f | ||
|
|
81c00f5d40 | ||
|
|
9bae95d0aa | ||
|
|
088d354fd2 | ||
|
|
0d47fa5d2a | ||
|
|
57fd5f802b | ||
|
|
a1825302fa | ||
|
|
570eea41b9 | ||
|
|
33a5b8e4d0 | ||
|
|
63174d2ea1 | ||
|
|
eda41e5101 | ||
|
|
4a50da4968 | ||
|
|
d50ea55e6d | ||
|
|
f558aa4f43 | ||
|
|
4ea49be97d | ||
|
|
e8c27077fd | ||
|
|
e21d1a6eb6 | ||
|
|
9608affcf6 | ||
|
|
ac23d015e0 | ||
|
|
5cb7bc95fa | ||
|
|
955d0e72d7 | ||
|
|
498249a25b | ||
|
|
72ffc5597f | ||
|
|
4a00d43d82 |
2
.github/workflows/node.js.yml
vendored
2
.github/workflows/node.js.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
|||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [22.x]
|
node-version: [24.x]
|
||||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -16,6 +16,9 @@
|
|||||||
db.sqlite
|
db.sqlite
|
||||||
data/settings.db
|
data/settings.db
|
||||||
|
|
||||||
|
# prisma generated client
|
||||||
|
/prisma/generated/
|
||||||
|
|
||||||
# ssh keys (sensitive)
|
# ssh keys (sensitive)
|
||||||
data/ssh-keys/
|
data/ssh-keys/
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,23 @@
|
|||||||
import { FlatCompat } from "@eslint/eslintrc";
|
import eslintPluginNext from "@next/eslint-plugin-next";
|
||||||
import tseslint from "typescript-eslint";
|
import tseslint from "typescript-eslint";
|
||||||
|
import reactPlugin from "eslint-plugin-react";
|
||||||
const compat = new FlatCompat({
|
import reactHooksPlugin from "eslint-plugin-react-hooks";
|
||||||
baseDirectory: import.meta.dirname,
|
|
||||||
});
|
|
||||||
|
|
||||||
export default tseslint.config(
|
export default tseslint.config(
|
||||||
{
|
{
|
||||||
ignores: [".next"],
|
ignores: [".next", "next-env.d.ts", "postcss.config.js", "prettier.config.js"],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
plugins: {
|
||||||
|
"@next/next": eslintPluginNext,
|
||||||
|
"react": reactPlugin,
|
||||||
|
"react-hooks": reactHooksPlugin,
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
...eslintPluginNext.configs.recommended.rules,
|
||||||
|
...eslintPluginNext.configs["core-web-vitals"].rules,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
...compat.extends("next/core-web-vitals"),
|
|
||||||
{
|
{
|
||||||
files: ["**/*.ts", "**/*.tsx"],
|
files: ["**/*.ts", "**/*.tsx"],
|
||||||
extends: [
|
extends: [
|
||||||
|
|||||||
@@ -18,31 +18,25 @@ const config = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
// Allow cross-origin requests from local network ranges
|
// Allow cross-origin requests from local network in dev mode
|
||||||
allowedDevOrigins: [
|
// Note: In Next.js 16, we disable this check entirely for dev
|
||||||
'http://localhost:3000',
|
async headers() {
|
||||||
'http://127.0.0.1:3000',
|
return [
|
||||||
'http://[::1]:3000',
|
{
|
||||||
'http://10.*',
|
source: '/:path*',
|
||||||
'http://172.16.*',
|
headers: [
|
||||||
'http://172.17.*',
|
{ key: 'Access-Control-Allow-Origin', value: '*' },
|
||||||
'http://172.18.*',
|
{ key: 'Access-Control-Allow-Methods', value: 'GET,POST,PUT,DELETE,OPTIONS' },
|
||||||
'http://172.19.*',
|
{ key: 'Access-Control-Allow-Headers', value: 'Content-Type, Authorization' },
|
||||||
'http://172.20.*',
|
],
|
||||||
'http://172.21.*',
|
},
|
||||||
'http://172.22.*',
|
];
|
||||||
'http://172.23.*',
|
},
|
||||||
'http://172.24.*',
|
|
||||||
'http://172.25.*',
|
|
||||||
'http://172.26.*',
|
|
||||||
'http://172.27.*',
|
|
||||||
'http://172.28.*',
|
|
||||||
'http://172.29.*',
|
|
||||||
'http://172.30.*',
|
|
||||||
'http://172.31.*',
|
|
||||||
'http://192.168.*',
|
|
||||||
],
|
|
||||||
|
|
||||||
|
turbopack: {
|
||||||
|
// Disable Turbopack and use Webpack instead for compatibility
|
||||||
|
// This is necessary for server-side code that uses child_process
|
||||||
|
},
|
||||||
webpack: (config, { dev, isServer }) => {
|
webpack: (config, { dev, isServer }) => {
|
||||||
if (dev && !isServer) {
|
if (dev && !isServer) {
|
||||||
config.watchOptions = {
|
config.watchOptions = {
|
||||||
@@ -50,15 +44,18 @@ const config = {
|
|||||||
aggregateTimeout: 300,
|
aggregateTimeout: 300,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
// Handle server-side modules
|
||||||
|
if (isServer) {
|
||||||
|
config.externals = config.externals || [];
|
||||||
|
if (!config.externals.includes('child_process')) {
|
||||||
|
config.externals.push('child_process');
|
||||||
|
}
|
||||||
|
}
|
||||||
return config;
|
return config;
|
||||||
},
|
},
|
||||||
// Ignore ESLint errors during build (they can be fixed separately)
|
// TypeScript errors will fail the build
|
||||||
eslint: {
|
|
||||||
ignoreDuringBuilds: true,
|
|
||||||
},
|
|
||||||
// Ignore TypeScript errors during build (they can be fixed separately)
|
|
||||||
typescript: {
|
typescript: {
|
||||||
ignoreBuildErrors: true,
|
ignoreBuildErrors: false,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
3783
package-lock.json
generated
3783
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
97
package.json
97
package.json
@@ -4,17 +4,20 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "next build",
|
"build": "prisma generate && next build --webpack",
|
||||||
"check": "next lint && tsc --noEmit",
|
"check": "eslint . && tsc --noEmit",
|
||||||
"dev": "next dev",
|
"dev": "next dev --webpack",
|
||||||
"dev:server": "node server.js",
|
"dev:server": "node --import tsx server.js",
|
||||||
"dev:next": "next dev",
|
"dev:next": "next dev --webpack",
|
||||||
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
||||||
"format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
"format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
||||||
"lint": "next lint",
|
"generate": "prisma generate",
|
||||||
"lint:fix": "next lint --fix",
|
"lint": "eslint .",
|
||||||
|
"lint:fix": "eslint --fix .",
|
||||||
|
"migrate": "prisma migrate dev",
|
||||||
"preview": "next build && next start",
|
"preview": "next build && next start",
|
||||||
"start": "node server.js",
|
"postinstall": "prisma generate",
|
||||||
|
"start": "node --import tsx server.js",
|
||||||
"test": "vitest",
|
"test": "vitest",
|
||||||
"test:ui": "vitest --ui",
|
"test:ui": "vitest --ui",
|
||||||
"test:run": "vitest run",
|
"test:run": "vitest run",
|
||||||
@@ -22,76 +25,82 @@
|
|||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@prisma/client": "^6.18.0",
|
"@prisma/adapter-better-sqlite3": "^7.0.1",
|
||||||
|
"@prisma/client": "^7.0.1",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||||
"@radix-ui/react-slot": "^1.2.3",
|
"@radix-ui/react-slot": "^1.2.4",
|
||||||
"@t3-oss/env-nextjs": "^0.13.8",
|
"@t3-oss/env-nextjs": "^0.13.8",
|
||||||
"@tailwindcss/typography": "^0.5.19",
|
"@tailwindcss/typography": "^0.5.19",
|
||||||
"@tanstack/react-query": "^5.90.5",
|
"@tanstack/react-query": "^5.90.11",
|
||||||
"@trpc/client": "^11.6.0",
|
"@trpc/client": "^11.7.2",
|
||||||
"@trpc/react-query": "^11.6.0",
|
"@trpc/react-query": "^11.7.2",
|
||||||
"@trpc/server": "^11.6.0",
|
"@trpc/server": "^11.7.2",
|
||||||
"@types/react-syntax-highlighter": "^15.5.13",
|
"@types/react-syntax-highlighter": "^15.5.13",
|
||||||
"@types/ws": "^8.18.1",
|
"@types/ws": "^8.18.1",
|
||||||
"@xterm/addon-fit": "^0.10.0",
|
"@xterm/addon-fit": "^0.10.0",
|
||||||
"@xterm/addon-web-links": "^0.11.0",
|
"@xterm/addon-web-links": "^0.11.0",
|
||||||
"@xterm/xterm": "^5.5.0",
|
"@xterm/xterm": "^5.5.0",
|
||||||
"axios": "^1.7.9",
|
"axios": "^1.13.2",
|
||||||
"bcryptjs": "^3.0.2",
|
"bcryptjs": "^3.0.3",
|
||||||
|
"better-sqlite3": "^12.4.6",
|
||||||
"class-variance-authority": "^0.7.1",
|
"class-variance-authority": "^0.7.1",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"cron-validator": "^1.2.0",
|
"cron-validator": "^1.4.0",
|
||||||
"dotenv": "^17.2.3",
|
"dotenv": "^17.2.3",
|
||||||
"jsonwebtoken": "^9.0.2",
|
"jsonwebtoken": "^9.0.2",
|
||||||
"lucide-react": "^0.553.0",
|
"lucide-react": "^0.555.0",
|
||||||
"next": "^15.1.6",
|
"next": "^16.0.5",
|
||||||
"node-cron": "^3.0.3",
|
"node-cron": "^4.2.1",
|
||||||
"node-pty": "^1.0.0",
|
"node-pty": "^1.0.0",
|
||||||
"react": "^19.0.0",
|
"react": "^19.2.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.2.0",
|
||||||
"react-markdown": "^10.1.0",
|
"react-markdown": "^10.1.0",
|
||||||
"react-syntax-highlighter": "^15.6.6",
|
"react-syntax-highlighter": "^16.1.0",
|
||||||
"refractor": "^5.0.0",
|
"refractor": "^5.0.0",
|
||||||
"remark-gfm": "^4.0.1",
|
"remark-gfm": "^4.0.1",
|
||||||
"server-only": "^0.0.1",
|
"server-only": "^0.0.1",
|
||||||
"strip-ansi": "^7.1.2",
|
"strip-ansi": "^7.1.2",
|
||||||
"superjson": "^2.2.3",
|
"superjson": "^2.2.6",
|
||||||
"tailwind-merge": "^3.3.1",
|
"tailwind-merge": "^3.4.0",
|
||||||
"ws": "^8.18.3",
|
"ws": "^8.18.3",
|
||||||
"zod": "^4.1.12"
|
"zod": "^4.1.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3.3.1",
|
"@tailwindcss/postcss": "^4.1.17",
|
||||||
"@tailwindcss/postcss": "^4.1.16",
|
|
||||||
"@testing-library/jest-dom": "^6.9.1",
|
"@testing-library/jest-dom": "^6.9.1",
|
||||||
"@testing-library/react": "^16.3.0",
|
"@testing-library/react": "^16.3.0",
|
||||||
"@testing-library/user-event": "^14.6.1",
|
"@testing-library/user-event": "^14.6.1",
|
||||||
"@types/bcryptjs": "^3.0.0",
|
"@types/bcryptjs": "^3.0.0",
|
||||||
"@types/better-sqlite3": "^7.6.8",
|
"@types/better-sqlite3": "^7.6.13",
|
||||||
"@types/jsonwebtoken": "^9.0.10",
|
"@types/jsonwebtoken": "^9.0.10",
|
||||||
"@types/node": "^24.9.1",
|
"@types/node": "^24.10.1",
|
||||||
"@types/node-cron": "^3.0.11",
|
"@types/node-cron": "^3.0.11",
|
||||||
"@types/react": "^19.0.0",
|
"@types/react": "^19.2.7",
|
||||||
"@types/react-dom": "^19.2.2",
|
"@types/react-dom": "^19.2.3",
|
||||||
"@vitejs/plugin-react": "^5.1.0",
|
"@vitejs/plugin-react": "^5.1.1",
|
||||||
"@vitest/coverage-v8": "^3.2.4",
|
"@vitest/coverage-v8": "^4.0.14",
|
||||||
"@vitest/ui": "^3.2.4",
|
"@vitest/ui": "^4.0.14",
|
||||||
"eslint": "^9.38.0",
|
"baseline-browser-mapping": "^2.8.32",
|
||||||
"eslint-config-next": "^15.1.6",
|
"eslint": "^9.39.1",
|
||||||
"jsdom": "^27.1.0",
|
"eslint-config-next": "^16.0.5",
|
||||||
"postcss": "^8.5.3",
|
"jsdom": "^27.2.0",
|
||||||
"prettier": "^3.5.3",
|
"postcss": "^8.5.6",
|
||||||
|
"prettier": "^3.7.1",
|
||||||
"prettier-plugin-tailwindcss": "^0.7.1",
|
"prettier-plugin-tailwindcss": "^0.7.1",
|
||||||
"prisma": "^6.19.0",
|
"prisma": "^7.0.1",
|
||||||
"tailwindcss": "^4.1.17",
|
"tailwindcss": "^4.1.17",
|
||||||
"typescript": "^5.8.2",
|
"tsx": "^4.19.4",
|
||||||
"typescript-eslint": "^8.46.2",
|
"typescript": "^5.9.3",
|
||||||
"vitest": "^3.2.4"
|
"typescript-eslint": "^8.48.0",
|
||||||
|
"vitest": "^4.0.14"
|
||||||
},
|
},
|
||||||
"ct3aMetadata": {
|
"ct3aMetadata": {
|
||||||
"initVersion": "7.39.3"
|
"initVersion": "7.39.3"
|
||||||
},
|
},
|
||||||
"packageManager": "npm@10.9.3",
|
"packageManager": "npm@10.9.3",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=24.0.0"
|
||||||
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"prismjs": "^1.30.0"
|
"prismjs": "^1.30.0"
|
||||||
}
|
}
|
||||||
|
|||||||
20
prisma.config.ts
Normal file
20
prisma.config.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
import 'dotenv/config'
|
||||||
|
import path from 'path'
|
||||||
|
import { defineConfig } from 'prisma/config'
|
||||||
|
|
||||||
|
// Resolve database path
|
||||||
|
const dbPath = process.env.DATABASE_URL ?? `file:${path.join(process.cwd(), 'data', 'pve-scripts.db')}`
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
schema: 'prisma/schema.prisma',
|
||||||
|
datasource: {
|
||||||
|
url: dbPath,
|
||||||
|
},
|
||||||
|
// @ts-expect-error - Prisma 7 config types are incomplete
|
||||||
|
studio: {
|
||||||
|
adapter: async () => {
|
||||||
|
const { PrismaBetterSqlite3 } = await import('@prisma/adapter-better-sqlite3')
|
||||||
|
return new PrismaBetterSqlite3({ url: dbPath })
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE "repositories" (
|
||||||
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
"url" TEXT NOT NULL,
|
||||||
|
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
||||||
|
"is_default" BOOLEAN NOT NULL DEFAULT false,
|
||||||
|
"is_removable" BOOLEAN NOT NULL DEFAULT true,
|
||||||
|
"priority" INTEGER NOT NULL DEFAULT 0,
|
||||||
|
"created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updated_at" DATETIME NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX "repositories_url_key" ON "repositories"("url");
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE IF NOT EXISTS "backups" (
|
||||||
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
"container_id" TEXT NOT NULL,
|
||||||
|
"server_id" INTEGER NOT NULL,
|
||||||
|
"hostname" TEXT NOT NULL,
|
||||||
|
"backup_name" TEXT NOT NULL,
|
||||||
|
"backup_path" TEXT NOT NULL,
|
||||||
|
"size" BIGINT,
|
||||||
|
"created_at" DATETIME,
|
||||||
|
"storage_name" TEXT NOT NULL,
|
||||||
|
"storage_type" TEXT NOT NULL,
|
||||||
|
"discovered_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
CONSTRAINT "backups_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "servers" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateTable
|
||||||
|
CREATE TABLE IF NOT EXISTS "pbs_storage_credentials" (
|
||||||
|
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
|
||||||
|
"server_id" INTEGER NOT NULL,
|
||||||
|
"storage_name" TEXT NOT NULL,
|
||||||
|
"pbs_ip" TEXT NOT NULL,
|
||||||
|
"pbs_datastore" TEXT NOT NULL,
|
||||||
|
"pbs_password" TEXT NOT NULL,
|
||||||
|
"pbs_fingerprint" TEXT NOT NULL,
|
||||||
|
"created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"updated_at" DATETIME NOT NULL,
|
||||||
|
CONSTRAINT "pbs_storage_credentials_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "servers" ("id") ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX IF NOT EXISTS "backups_container_id_idx" ON "backups"("container_id");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX IF NOT EXISTS "backups_server_id_idx" ON "backups"("server_id");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX IF NOT EXISTS "pbs_storage_credentials_server_id_idx" ON "pbs_storage_credentials"("server_id");
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS "pbs_storage_credentials_server_id_storage_name_key" ON "pbs_storage_credentials"("server_id", "storage_name");
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
generator client {
|
generator client {
|
||||||
provider = "prisma-client-js"
|
provider = "prisma-client"
|
||||||
|
output = "./generated/prisma"
|
||||||
}
|
}
|
||||||
|
|
||||||
datasource db {
|
datasource db {
|
||||||
provider = "sqlite"
|
provider = "sqlite"
|
||||||
url = env("DATABASE_URL")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
model InstalledScript {
|
model InstalledScript {
|
||||||
@@ -41,6 +41,8 @@ model Server {
|
|||||||
ssh_key_path String?
|
ssh_key_path String?
|
||||||
key_generated Boolean? @default(false)
|
key_generated Boolean? @default(false)
|
||||||
installed_scripts InstalledScript[]
|
installed_scripts InstalledScript[]
|
||||||
|
backups Backup[]
|
||||||
|
pbs_credentials PBSStorageCredential[]
|
||||||
|
|
||||||
@@map("servers")
|
@@map("servers")
|
||||||
}
|
}
|
||||||
@@ -95,3 +97,52 @@ model LXCConfig {
|
|||||||
|
|
||||||
@@map("lxc_configs")
|
@@map("lxc_configs")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
model Backup {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
container_id String
|
||||||
|
server_id Int
|
||||||
|
hostname String
|
||||||
|
backup_name String
|
||||||
|
backup_path String
|
||||||
|
size BigInt?
|
||||||
|
created_at DateTime?
|
||||||
|
storage_name String
|
||||||
|
storage_type String // 'local', 'storage', or 'pbs'
|
||||||
|
discovered_at DateTime @default(now())
|
||||||
|
server Server @relation(fields: [server_id], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
|
@@index([container_id])
|
||||||
|
@@index([server_id])
|
||||||
|
@@map("backups")
|
||||||
|
}
|
||||||
|
|
||||||
|
model PBSStorageCredential {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
server_id Int
|
||||||
|
storage_name String
|
||||||
|
pbs_ip String
|
||||||
|
pbs_datastore String
|
||||||
|
pbs_password String
|
||||||
|
pbs_fingerprint String
|
||||||
|
created_at DateTime @default(now())
|
||||||
|
updated_at DateTime @updatedAt
|
||||||
|
server Server @relation(fields: [server_id], references: [id], onDelete: Cascade)
|
||||||
|
|
||||||
|
@@unique([server_id, storage_name])
|
||||||
|
@@index([server_id])
|
||||||
|
@@map("pbs_storage_credentials")
|
||||||
|
}
|
||||||
|
|
||||||
|
model Repository {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
url String @unique
|
||||||
|
enabled Boolean @default(true)
|
||||||
|
is_default Boolean @default(false)
|
||||||
|
is_removable Boolean @default(true)
|
||||||
|
priority Int @default(0)
|
||||||
|
created_at DateTime @default(now())
|
||||||
|
updated_at DateTime @updatedAt
|
||||||
|
|
||||||
|
@@map("repositories")
|
||||||
|
}
|
||||||
|
|||||||
10
restore.log
Normal file
10
restore.log
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Starting restore...
|
||||||
|
Reading container configuration...
|
||||||
|
Stopping container...
|
||||||
|
Destroying container...
|
||||||
|
Logging into PBS...
|
||||||
|
Downloading backup from PBS...
|
||||||
|
Packing backup folder...
|
||||||
|
Restoring container...
|
||||||
|
Cleaning up temporary files...
|
||||||
|
Restore completed successfully
|
||||||
@@ -60,7 +60,7 @@ root_check() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
# Supported: Proxmox VE 8.0.x – 8.9.x, 9.0 and 9.1
|
||||||
pve_check() {
|
pve_check() {
|
||||||
local PVE_VER
|
local PVE_VER
|
||||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||||
@@ -76,12 +76,12 @@ pve_check() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
# Check for Proxmox VE 9.x: allow 9.0 and 9.1
|
||||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||||
local MINOR="${BASH_REMATCH[1]}"
|
local MINOR="${BASH_REMATCH[1]}"
|
||||||
if ((MINOR != 0)); then
|
if ((MINOR < 0 || MINOR > 1)); then
|
||||||
msg_error "This version of Proxmox VE is not yet supported."
|
msg_error "This version of Proxmox VE is not supported."
|
||||||
msg_error "Supported: Proxmox VE version 9.0"
|
msg_error "Supported: Proxmox VE version 9.0 – 9.1"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
@@ -89,7 +89,7 @@ pve_check() {
|
|||||||
|
|
||||||
# All other unsupported versions
|
# All other unsupported versions
|
||||||
msg_error "This version of Proxmox VE is not supported."
|
msg_error "This version of Proxmox VE is not supported."
|
||||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0 – 9.1"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1323,9 +1323,9 @@ EOF'
|
|||||||
msg_ok "Customized LXC Container"
|
msg_ok "Customized LXC Container"
|
||||||
|
|
||||||
if [ "$var_os" == "alpine" ]; then
|
if [ "$var_os" == "alpine" ]; then
|
||||||
FUNCTIONS_FILE_PATH="$(cat "$CORE_DIR/core.func" && echo && cat "$CORE_DIR/tools.func" && echo && cat "$CORE_DIR/alpine-install.func")"
|
FUNCTIONS_FILE_PATH="$(cat "$CORE_DIR/core.func" && echo && cat "$CORE_DIR/tools.func" && echo && cat "$CORE_DIR/api.func" && echo && cat "$CORE_DIR/alpine-install.func")"
|
||||||
else
|
else
|
||||||
FUNCTIONS_FILE_PATH="$(cat "$CORE_DIR/core.func" && echo && cat "$CORE_DIR/tools.func" && echo && cat "$CORE_DIR/install.func")"
|
FUNCTIONS_FILE_PATH="$(cat "$CORE_DIR/core.func" && echo && cat "$CORE_DIR/tools.func" && echo && cat "$CORE_DIR/api.func" && echo && cat "$CORE_DIR/install.func")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FUNCTIONS_FILE="/tmp/functions.sh"
|
FUNCTIONS_FILE="/tmp/functions.sh"
|
||||||
|
|||||||
@@ -392,8 +392,6 @@ cleanup_lxc() {
|
|||||||
|
|
||||||
# Python pip
|
# Python pip
|
||||||
if command -v pip &>/dev/null; then $STD pip cache purge || true; fi
|
if command -v pip &>/dev/null; then $STD pip cache purge || true; fi
|
||||||
# Python uv
|
|
||||||
if command -v uv &>/dev/null; then $STD uv cache clear || true; fi
|
|
||||||
# Node.js npm
|
# Node.js npm
|
||||||
if command -v npm &>/dev/null; then $STD npm cache clean --force || true; fi
|
if command -v npm &>/dev/null; then $STD npm cache clean --force || true; fi
|
||||||
# Node.js yarn
|
# Node.js yarn
|
||||||
@@ -410,7 +408,6 @@ cleanup_lxc() {
|
|||||||
if command -v composer &>/dev/null; then $STD composer clear-cache || true; fi
|
if command -v composer &>/dev/null; then $STD composer clear-cache || true; fi
|
||||||
|
|
||||||
if command -v journalctl &>/dev/null; then
|
if command -v journalctl &>/dev/null; then
|
||||||
$STD journalctl --rotate || true
|
|
||||||
$STD journalctl --vacuum-time=10m || true
|
$STD journalctl --vacuum-time=10m || true
|
||||||
fi
|
fi
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "2FAuth",
|
|
||||||
"slug": "2fauth",
|
|
||||||
"categories": [
|
|
||||||
6
|
|
||||||
],
|
|
||||||
"date_created": "2024-12-20",
|
|
||||||
"type": "ct",
|
|
||||||
"updateable": true,
|
|
||||||
"privileged": false,
|
|
||||||
"interface_port": 80,
|
|
||||||
"documentation": "https://docs.2fauth.app/",
|
|
||||||
"website": "https://2fauth.app/",
|
|
||||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/2fauth.webp",
|
|
||||||
"config_path": "cat /opt/2fauth/.env",
|
|
||||||
"description": "2FAuth is a web based self-hosted alternative to One Time Passcode (OTP) generators like Google Authenticator, designed for both mobile and desktop. It aims to ease you perform your 2FA authentication steps whatever the device you handle, with a clean and suitable interface.",
|
|
||||||
"install_methods": [
|
|
||||||
{
|
|
||||||
"type": "default",
|
|
||||||
"script": "ct/2fauth.sh",
|
|
||||||
"resources": {
|
|
||||||
"cpu": 1,
|
|
||||||
"ram": 512,
|
|
||||||
"hdd": 2,
|
|
||||||
"os": "debian",
|
|
||||||
"version": "13"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"default_credentials": {
|
|
||||||
"username": null,
|
|
||||||
"password": null
|
|
||||||
},
|
|
||||||
"notes": [
|
|
||||||
{
|
|
||||||
"text": "Database credentials: `cat ~/2FAuth.creds`",
|
|
||||||
"type": "info"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"text": "The very first account created is automatically set up as an administrator account.",
|
|
||||||
"type": "info"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -48,5 +48,6 @@
|
|||||||
"text": "You can execute the ip tool manually with `iptag-run`",
|
"text": "You can execute the ip tool manually with `iptag-run`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -44,5 +44,6 @@
|
|||||||
"text": "The script only works in Debian/Ubuntu, not in Alpine!",
|
"text": "The script only works in Debian/Ubuntu, not in Alpine!",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -40,5 +40,6 @@
|
|||||||
"text": "Execute within the Proxmox host shell",
|
"text": "Execute within the Proxmox host shell",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -47,5 +47,6 @@
|
|||||||
"text": "AdGuard Home can only be updated via the user interface.",
|
"text": "AdGuard Home can only be updated via the user interface.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -40,5 +40,6 @@
|
|||||||
"text": "Use `cat ~/adventurelog.creds` to see login credentials.",
|
"text": "Use `cat ~/adventurelog.creds` to see login credentials.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Resource and network settings are adjustable post LXC creation.",
|
"text": "Resource and network settings are adjustable post LXC creation.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -42,5 +42,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -47,5 +47,6 @@
|
|||||||
"text": "The default credentials are located in `/opt/tinyauth/credentials.txt`.",
|
"text": "The default credentials are located in `/opt/tinyauth/credentials.txt`.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "To Update Alpine: `apk -U upgrade`",
|
"text": "To Update Alpine: `apk -U upgrade`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Show Login Credentials: `cat CouchDB.creds`",
|
"text": "Show Login Credentials: `cat CouchDB.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": "guacadmin",
|
"username": "guacadmin",
|
||||||
"password": "guacadmin"
|
"password": "guacadmin"
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Configuration file is not created at install time. Example is at: `https://cwiki.apache.org/confluence/display/TIKA/TikaServer+in+Tika+2.x`",
|
"text": "Configuration file is not created at install time. Example is at: `https://cwiki.apache.org/confluence/display/TIKA/TikaServer+in+Tika+2.x`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "User can select which Adoptium JDK should be used for the selected Tomcat version (9, 10.1 or 11). ",
|
"text": "User can select which Adoptium JDK should be used for the selected Tomcat version (9, 10.1 or 11). ",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": "archivebox",
|
"username": "archivebox",
|
||||||
"password": "helper-scripts.com"
|
"password": "helper-scripts.com"
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "doesnt work with lvm and lvmthin disks!",
|
"text": "doesnt work with lvm and lvmthin disks!",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Within the LXC console, run `cat rpc.secret` to display the rpc-secret. Copy this token and paste it into the Aria2 RPC Secret Token box within the AriaNG Settings. Then, click the reload AriaNG button.",
|
"text": "Within the LXC console, run `cat rpc.secret` to display the rpc-secret. Copy this token and paste it into the Aria2 RPC Secret Token box within the AriaNG Settings. Then, click the reload AriaNG button.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "During installation, you will have to input your domain (ex. domain.com). Authelia will use auth.domain.com",
|
"text": "During installation, you will have to input your domain (ex. domain.com). Authelia will use auth.domain.com",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": "admin",
|
"username": "admin",
|
||||||
"password": "admin123"
|
"password": "admin123"
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "for private SSL setup visit: `https://github.com/babybuddy/babybuddy/blob/master/docs/setup/ssl.md`",
|
"text": "for private SSL setup visit: `https://github.com/babybuddy/babybuddy/blob/master/docs/setup/ssl.md`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"type": "info",
|
"type": "info",
|
||||||
"text": "`cat ~/.ssh/id_ed25519.pub` to view ssh public key. This key is used to authenticate with sftp targets. You can add this key on the sftp server."
|
"text": "`cat ~/.ssh/id_ed25519.pub` to view ssh public key. This key is used to authenticate with sftp targets. You can add this key on the sftp server."
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": "Admin",
|
"username": "Admin",
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "After install enable the option \"Use Redis cache\" on the settings page.",
|
"text": "After install enable the option \"Use Redis cache\" on the settings page.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
"ram": 1024,
|
"ram": 1024,
|
||||||
"hdd": 4,
|
"hdd": 4,
|
||||||
"os": "debian",
|
"os": "debian",
|
||||||
"version": "12"
|
"version": "13"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -47,5 +47,6 @@
|
|||||||
"text": "During installation you will be asked to enter your TMDB API key, if you wanna use it. Make sure you have it ready.",
|
"text": "During installation you will be asked to enter your TMDB API key, if you wanna use it. Make sure you have it ready.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Starting Booklore (Web UI) may take up to 2 minutes after a restart or fresh installation.",
|
"text": "Starting Booklore (Web UI) may take up to 2 minutes after a restart or fresh installation.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Bookstack works only with static ip. If you Change the IP of your LXC, you Need to edit the .env File `nano /opt/bookstack/.env`",
|
"text": "Bookstack works only with static ip. If you Change the IP of your LXC, you Need to edit the .env File `nano /opt/bookstack/.env`",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -55,5 +55,6 @@
|
|||||||
"text": "if you need an external module run: `xcaddy build --with github.com/caddy-dns/cloudflare`",
|
"text": "if you need an external module run: `xcaddy build --with github.com/caddy-dns/cloudflare`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -40,5 +40,6 @@
|
|||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
"text": "WARNING: Installation sources scripts outside of Community Scripts repo. Please check the source before installing.",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Login Credentials : `cat ~/checkmk.creds`",
|
"text": "Login Credentials : `cat ~/checkmk.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Execute within the Proxmox shell",
|
"text": "Execute within the Proxmox shell",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Execute within the Proxmox shell",
|
"text": "Execute within the Proxmox shell",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -40,5 +40,6 @@
|
|||||||
"text": "To update the configuration edit `/etc/systemd/system/cloudflare-ddns.service`. After edit please restart with `systemctl restart cloudflare-ddns`",
|
"text": "To update the configuration edit `/etc/systemd/system/cloudflare-ddns.service`. After edit please restart with `systemctl restart cloudflare-ddns`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "With an option to configure cloudflared as a DNS-over-HTTPS (DoH) proxy",
|
"text": "With an option to configure cloudflared as a DNS-over-HTTPS (DoH) proxy",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "After Installation: Register your user -> Login -> Dashboard -> Accept Primary URL.",
|
"text": "After Installation: Register your user -> Login -> Dashboard -> Accept Primary URL.",
|
||||||
"type": "warn"
|
"type": "warn"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -33,8 +33,13 @@
|
|||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "Set a root password if using autologin. This will be the Cockpit password.`sudo passwd root`",
|
"text": "Set a root password if using autologin. This will be the Cockpit password. To set root password run `sudo passwd root`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"text": "If you plan on using 45Drives extension with NFS, you must setup LXC as privileged. Some features of 45Drives don't work on Debian 13, so Debian 12 must be used.",
|
||||||
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -38,5 +38,6 @@
|
|||||||
"text": "Execute within an existing LXC Console",
|
"text": "Execute within an existing LXC Console",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": "admin",
|
"username": "admin",
|
||||||
"password": "admin"
|
"password": "admin"
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "change secrets file /opt/configarr/secrets.yml",
|
"text": "change secrets file /opt/configarr/secrets.yml",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Complete setup via the web interface at http://<container-ip>:3000. Create and secure the admin account immediately.",
|
"text": "Complete setup via the web interface at http://<container-ip>:3000. Create and secure the admin account immediately.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Execute within the Proxmox shell or in LXC",
|
"text": "Execute within the Proxmox shell or in LXC",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -37,5 +37,6 @@
|
|||||||
"type": "info",
|
"type": "info",
|
||||||
"text": "The file `/etc/sysconfig/CosmosCloud` is optional. If you need custom settings, you can create it yourself."
|
"text": "The file `/etc/sysconfig/CosmosCloud` is optional. If you need custom settings, you can create it yourself."
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Show password: `cat ~/crafty-controller.creds`",
|
"text": "Show password: `cat ~/crafty-controller.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -40,5 +40,6 @@
|
|||||||
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-lxcs-cron.sh)\" -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
|
"text": "To exclude LXCs from updating, edit the crontab using `crontab -e` and add CTID as shown in the example below:\n\n\n\n`0 0 * * 0 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-lxcs-cron.sh)\" -s 103 111 >>/var/log/update-lxcs-cron.log 2>/dev/null`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -28,13 +28,14 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"default_credentials": {
|
"default_credentials": {
|
||||||
"username": null,
|
"username": "admin",
|
||||||
"password": null
|
"password": "admin"
|
||||||
},
|
},
|
||||||
"notes": [
|
"notes": [
|
||||||
{
|
{
|
||||||
"text": "Primary and Worker Private Keys Must Match in the config file",
|
"text": "Primary and Worker Private Keys Must Match in the config file",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "After the installation cross-seed will fail to start with an empty configuration. To fix this, edit the config file to properly configure cross-seed, then restart by running `systemctl restart cross-seed`.",
|
"text": "After the installation cross-seed will fail to start with an empty configuration. To fix this, edit the config file to properly configure cross-seed, then restart by running `systemctl restart cross-seed`.",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Execute within an existing LXC Console. Debian only!",
|
"text": "Execute within an existing LXC Console. Debian only!",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "After installation finishes, `systemctl status cryptpad.service` to get token URL which you can use to create admin account",
|
"text": "After installation finishes, `systemctl status cryptpad.service` to get token URL which you can use to create admin account",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -44,5 +44,6 @@
|
|||||||
"text": "If you use Cloud-init, checkout after installation: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
|
"text": "If you use Cloud-init, checkout after installation: ´https://github.com/community-scripts/ProxmoxVE/discussions/272´",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -40,5 +40,6 @@
|
|||||||
"text": "After installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/836´ for useful Debian commands",
|
"text": "After installation, checkout: ´https://github.com/community-scripts/ProxmoxVE/discussions/836´ for useful Debian commands",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": "deluge"
|
"password": "deluge"
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -41,5 +41,6 @@
|
|||||||
"text": "This Script works on amd64 and arm64 Architecture.",
|
"text": "This Script works on amd64 and arm64 Architecture.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -55,5 +55,6 @@
|
|||||||
"text": "Options to Install Portainer and/or Docker Compose V2",
|
"text": "Options to Install Portainer and/or Docker Compose V2",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -40,5 +40,6 @@
|
|||||||
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
|
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
|
||||||
"type": "warning"
|
"type": "warning"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Use `cat ~/docmost.creds` to see database credentials.",
|
"text": "Use `cat ~/docmost.creds` to see database credentials.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": "helper-scripts@local.com",
|
"username": "helper-scripts@local.com",
|
||||||
"password": "helper-scripts"
|
"password": "helper-scripts"
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Database credentials: `cat ~/dolibarr.creds`",
|
"text": "Database credentials: `cat ~/dolibarr.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "FTP server credentials: `cat ~/ftp.creds`",
|
"text": "FTP server credentials: `cat ~/ftp.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Admin password and database encryption key: `cat ~/duplicati.creds`",
|
"text": "Admin password and database encryption key: `cat ~/duplicati.creds`",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -44,5 +44,6 @@
|
|||||||
"type": "info",
|
"type": "info",
|
||||||
"text": "For bridges Installation methods (WhatsApp, Signal, Discord, etc.), see: ´https://docs.mau.fi/bridges/go/setup.html´"
|
"text": "For bridges Installation methods (WhatsApp, Signal, Discord, etc.), see: ´https://docs.mau.fi/bridges/go/setup.html´"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "With Privileged/Unprivileged Hardware Acceleration Support",
|
"text": "With Privileged/Unprivileged Hardware Acceleration Support",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "Setup-Steps: Access Control ➡ Authentication ➡ Create ➡ Next ➡ Next ➡ Create ➡ Users ➡ Add ➡ Username / Password (to authenicate with MQTT) ➡ Save. You're now ready to enjoy a high-performance MQTT Broker.",
|
"text": "Setup-Steps: Access Control ➡ Authentication ➡ Create ➡ Next ➡ Next ➡ Create ➡ Users ➡ Add ➡ Username / Password (to authenicate with MQTT) ➡ Save. You're now ready to enjoy a high-performance MQTT Broker.",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -31,5 +31,6 @@
|
|||||||
"username": null,
|
"username": null,
|
||||||
"password": null
|
"password": null
|
||||||
},
|
},
|
||||||
"notes": []
|
"notes": [],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
@@ -36,5 +36,6 @@
|
|||||||
"text": "To configure evcc, type `cd /etc` followed by `evcc configure` in the evcc LXC shell",
|
"text": "To configure evcc, type `cd /etc` followed by `evcc configure` in the evcc LXC shell",
|
||||||
"type": "info"
|
"type": "info"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"repository_url": "https://github.com/community-scripts/ProxmoxVE"
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user