Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
705617f
Add GeneratorTab and UI refactor/styles
MickLesk Apr 1, 2026
b66bd46
Add script notes, server presets & APT proxy
MickLesk Apr 1, 2026
24fc356
Add server presets and silent batch updates
MickLesk Apr 1, 2026
f037d19
Use per-router Prisma client with Better SQLite3
MickLesk Apr 1, 2026
c5283c5
Icon-only action buttons; use presets DB
MickLesk Apr 1, 2026
9858778
Add quick filters, Dev/ARM badges, and CSS tweaks
MickLesk Apr 1, 2026
3e590b3
Add appearance settings and persist UI prefs
MickLesk Apr 1, 2026
4b713b6
Normalize quotes and format components
MickLesk Apr 1, 2026
81f416e
Refactor Badge & CategorySidebar types/styles
MickLesk Apr 1, 2026
6427a98
Add modal stacking and portal support
MickLesk Apr 1, 2026
3fdf438
Wrap modals in portal and use zIndex
MickLesk Apr 1, 2026
c4ec0fe
Use categoryIconColorMap for sidebar icons
MickLesk Apr 1, 2026
adb1c05
Standardize modal layout and form styles
MickLesk Apr 1, 2026
de4641c
Escape env var values; update favicons & logo
MickLesk Apr 1, 2026
8e9a7bf
Add favicon set and logo; remove old favicon
MickLesk Apr 1, 2026
df587e1
Portalize script dropdown and add outside click
MickLesk Apr 1, 2026
5364c7d
Update favicon and logo assets
MickLesk Apr 1, 2026
dcb2018
Add appearance modal & improve script detail UI
MickLesk Apr 1, 2026
92e365e
Optimize rendering, lazy-load tabs, add sync modal
MickLesk Apr 1, 2026
1cf5b56
Add Arcane script, status UI, validation & cache
MickLesk Apr 1, 2026
8a76dbe
Add suppressHydrationWarning to <html>
MickLesk Apr 1, 2026
aa96a6f
Refactor GeneratorTab layout and add SSH imports
MickLesk Apr 1, 2026
5fba2f1
Add explicit typing for servers in indicator
MickLesk Apr 1, 2026
04de65e
perf/cleanup: audit fixes - hoist iconMap, pin Next.js, strip console…
MickLesk Apr 1, 2026
01a74d1
Refactor icons, remove debug logs, pin Next
MickLesk Apr 1, 2026
de25910
refactor: migrate server TS files to structured logger, accessibility…
MickLesk Apr 1, 2026
b04b098
perf: fix 14s page load - remove SSH from initial query, defer tab-sp…
MickLesk Apr 1, 2026
65547d2
perf: split SSH queries from tRPC batch, skip save-on-mount
MickLesk Apr 1, 2026
c82cf53
refactor: restore SSH detection for installed scripts, cache badge co…
MickLesk Apr 1, 2026
1cececb
Refactor init checks, footer, and parallel fetch
MickLesk Apr 1, 2026
a853045
Add in-memory PB cache and invalidate on resync
MickLesk Apr 1, 2026
24b1f40
Update react.tsx
MickLesk Apr 1, 2026
5948770
Show script download flow & per-node server status
MickLesk Apr 1, 2026
069e01d
Improve updater script and minor UI tweaks
MickLesk Apr 14, 2026
0d4448b
Bump deps and add VSCode Next.js prompt setting
MickLesk Apr 16, 2026
f90e281
Normalize indentation in core scripts
MickLesk Apr 16, 2026
149f932
Show/hide install command UI and service fixes
MickLesk Apr 16, 2026
c3768e7
Prefer local install scripts; add envVars & token
MickLesk Apr 16, 2026
8ba77f8
Replace *_json with install_methods/notes
MickLesk Apr 16, 2026
c0830a4
Add InstallCommandBlock and integrate installer UI
MickLesk Apr 16, 2026
cb4676c
Fix envStr possibly undefined in InstallCommandBlock
MickLesk Apr 16, 2026
a22b120
Redesign Install section: inline node picker, remove old modals, drop…
MickLesk Apr 16, 2026
4790752
Remove bash command display, pass envVars to SSH, inline Terminal bel…
MickLesk Apr 16, 2026
96f69f4
Fix envVars: always pass mode to skip whiptail dialog; fix terminal c…
MickLesk Apr 16, 2026
598117a
Remove dangerous source envVar, fix View button gating, clean dead on…
MickLesk Apr 16, 2026
b3b1d01
Tidy JSX formatting and remove extra whitespace
MickLesk Apr 16, 2026
83e05b5
refactor: comprehensive code quality improvements
MickLesk Apr 16, 2026
922bfad
fix: resolve LXCSettingsModal rootfs_size TS error blocking build
MickLesk Apr 16, 2026
fc0d10b
feat: bootstrap updater - self-updating update engine
MickLesk Apr 16, 2026
6dcfd74
fix: widen terminal - collapse sidebar to single column when terminal…
MickLesk Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 14 additions & 12 deletions .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@ name: Node.js CI

on:
push:
branches: [ "main" ]
branches: ["main"]
pull_request:
branches: [ "main" ]
branches: ["main"]

permissions:
contents: read

jobs:
build:

runs-on: ubuntu-latest

strategy:
Expand All @@ -20,12 +22,12 @@ jobs:
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: "npm"
- run: npm ci
- run: npm run build --if-present
- run: npm test
6 changes: 5 additions & 1 deletion .github/workflows/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@ on:
push:
branches:
- main
workflow_dispatch:
workflow_dispatch:

permissions:
contents: write
pull-requests: read

jobs:
update_release_draft:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,4 @@ server.log
# idea files
.idea
/generated/prisma
/examples
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"WillLuke.nextjs.hasPrompted": true
}
1 change: 1 addition & 0 deletions UPDATER_VERSION
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.0.0
49 changes: 25 additions & 24 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@prisma/adapter-better-sqlite3": "^7.6.0",
"@prisma/client": "^7.6.0",
"@prisma/adapter-better-sqlite3": "^7.7.0",
"@prisma/client": "^7.7.0",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-slot": "^1.2.4",
"@t3-oss/env-nextjs": "^0.13.11",
"@tailwindcss/typography": "^0.5.19",
"@tanstack/react-query": "^5.96.0",
"@tanstack/react-query": "^5.99.0",
"@trpc/client": "^11.16.0",
"@trpc/react-query": "^11.16.0",
"@trpc/server": "^11.16.0",
Expand All @@ -40,21 +40,21 @@
"@xterm/addon-fit": "^0.11.0",
"@xterm/addon-web-links": "^0.12.0",
"@xterm/xterm": "^6.0.0",
"axios": "^1.14.0",
"axios": "^1.15.0",
"bcryptjs": "^3.0.3",
"better-sqlite3": "^12.8.0",
"better-sqlite3": "^12.9.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cron-validator": "^1.4.0",
"dotenv": "^17.3.1",
"dotenv": "^17.4.2",
"jsonwebtoken": "^9.0.3",
"lucide-react": "^1.7.0",
"next": ">=16.2.1",
"lucide-react": "^1.8.0",
"next": "16.2.4",
"node-cron": "^4.2.1",
"node-pty": "^1.1.0",
"pocketbase": "^0.26.8",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"react-markdown": "^10.1.0",
"react-syntax-highlighter": "^16.1.1",
"refractor": "^5.0.0",
Expand All @@ -63,7 +63,7 @@
"strip-ansi": "^7.2.0",
"superjson": "^2.2.6",
"tailwind-merge": "^3.5.0",
"vite": "^8.0.3",
"vite": "^8.0.8",
"ws": "^8.20.0",
"zod": "^4.3.6"
},
Expand All @@ -80,22 +80,23 @@
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^6.0.1",
"@vitest/coverage-v8": "^4.1.2",
"@vitest/ui": "^4.1.2",
"baseline-browser-mapping": "^2.10.13",
"eslint": "^10.1.0",
"eslint-config-next": "^16.2.1",
"jsdom": "^29.0.1",
"next": ">=16.2.1",
"postcss": "^8.5.8",
"prettier": "^3.8.1",
"@vitest/coverage-v8": "^4.1.4",
"@vitest/ui": "^4.1.4",
"baseline-browser-mapping": "^2.10.19",
"eslint": "^10.2.0",
"eslint-config-next": "^16.2.4",
"jsdom": "^29.0.2",
"next": "16.2.4",
"postcss": "^8.5.10",
"prettier": "^3.8.3",
"prettier-plugin-tailwindcss": "^0.7.2",
"prisma": "^7.6.0",
"prisma": "^7.7.0",
"tailwindcss": "^4.2.2",
"tsx": "^4.21.0",
"typescript": "^6.0.2",
"typescript-eslint": "^8.58.0",
"vitest": "^4.1.2"
"@typescript-eslint/eslint-plugin": "^8.58.2",
"@typescript-eslint/parser": "^8.58.2",
"vitest": "^4.1.4"
},
"ct3aMetadata": {
"initVersion": "7.39.3"
Expand All @@ -110,4 +111,4 @@
"@hono/node-server": ">=1.19.10",
"lodash": "^4.17.23"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
-- CreateTable
CREATE TABLE "script_notes" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"script_slug" TEXT NOT NULL,
"title" TEXT NOT NULL DEFAULT '',
"content" TEXT NOT NULL,
"is_shared" BOOLEAN NOT NULL DEFAULT false,
"created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" DATETIME NOT NULL
);

-- CreateTable
CREATE TABLE "server_presets" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"server_id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
"cpu" INTEGER,
"ram" INTEGER,
"disk" INTEGER,
"privileged" BOOLEAN NOT NULL DEFAULT false,
"bridge" TEXT,
"vlan" TEXT,
"dns" TEXT,
"ssh" BOOLEAN NOT NULL DEFAULT false,
"nesting" BOOLEAN NOT NULL DEFAULT true,
"fuse" BOOLEAN NOT NULL DEFAULT false,
"apt_proxy_addr" TEXT,
"apt_proxy_on" BOOLEAN NOT NULL DEFAULT false,
"created_at" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" DATETIME NOT NULL
);

-- CreateIndex
CREATE INDEX "script_notes_script_slug_idx" ON "script_notes"("script_slug");

-- CreateIndex
CREATE INDEX "server_presets_server_id_idx" ON "server_presets"("server_id");
36 changes: 36 additions & 0 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -146,3 +146,39 @@ model Repository {
@@map("repositories")
}

model ScriptNote {
id Int @id @default(autoincrement())
script_slug String
title String @default("")
content String
is_shared Boolean @default(false)
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@index([script_slug])
@@map("script_notes")
}

model ServerPreset {
id Int @id @default(autoincrement())
server_id Int
name String
cpu Int?
ram Int?
disk Int?
privileged Boolean @default(false)
bridge String?
vlan String?
dns String?
ssh Boolean @default(false)
nesting Boolean @default(true)
fuse Boolean @default(false)
apt_proxy_addr String?
apt_proxy_on Boolean @default(false)
created_at DateTime @default(now())
updated_at DateTime @updatedAt
@@index([server_id])
@@map("server_presets")
}
Binary file removed public/favicon.png
Binary file not shown.
Binary file added public/favicon/android-chrome-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon/android-chrome-512x512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon/apple-touch-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/favicon/favicon.ico
Binary file not shown.
Binary file added public/favicon/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions public/favicon/site.webmanifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
Binary file added public/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 0 additions & 10 deletions restore.log

This file was deleted.

Loading
Loading