✅ Have you read and understood the above guidelines?
yes
🔎 Did you run the script with verbose mode enabled?
Yes, verbose mode was enabled and the output is included below
📜 What is the name of the script you are using?
ExcaliDash
📂 What was the exact command used to execute the script?
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-apps.sh)"
⚙️ What settings are you using?
🖥️ Which Linux distribution are you using?
Debian 13
🧱 Is this Proxmox host running arm64?
No
📈 Which Proxmox version are you on?
pve-manager/9.2.11/f6997e698c7933ea (running kernel: 7.0.14-12-pve)
📝 Provide a clear and concise description of the issue.
Updating an ExcaliDash LXC installed using the community-script fails during the Prisma build/migration step with:
Error validating datasource db: the URL must start with the protocol file:.
The initial ExcaliDash installation is configured to use PostgreSQL. The problem appears after the updater downloads a clean copy of the latest ExcaliDash release. The current upstream backend/prisma/schema.prisma contains:
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
The ExcaliDash installation script handles both possible Prisma provider formats:
sed -i '/datasource db {/,/}/ s/provider = env("[^"]")/provider = "postgresql"/' prisma/schema.prisma
sed -i '/datasource db {/,/}/ s/provider = "[^"]"/provider = "postgresql"/' prisma/schema.prisma
However, the update script only handles the env(...) format:
sed -i '/datasource db {/,/}/ s/provider = env("[^"]*")/provider = "'"${DATABASE_PROVIDER:-sqlite}"'"/' prisma/schema.prisma
Because the current upstream schema uses:
provider = "sqlite"
rather than:
provider = env("...")
the sed expression does not match anything. The schema therefore remains configured for SQLite while DATABASE_URL still contains the PostgreSQL connection URL.
Prisma then interprets the datasource as SQLite and expects a file: URL, resulting in:
Error validating datasource db: the URL must start with the protocol file:.
I was able to complete the update successfully by manually changing:
provider = "sqlite" to provider = "postgresql"
🔄 Steps to reproduce the issue.
Update Excalidash from 0.5.1 → 0.6.0
❌ Paste the full error output (if available).
find: ‘/opt/excalidash/frontend/node_modules/dlv’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/argparse’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/@HumanFS’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/safe-buffer’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/es-object-atoms’: No such file or directory
find: ‘/opt/excalidash/frontend/public’: No such file or directory
✔️ Deployed: excalidash (0.6.0)
✔️ Configured Database Provider
✔️ Rebuilt Application
✖️ in line 61: exit code 1 (General error / Operation not permitted): while executing command npx prisma migrate deploy
--- Last 20 lines of log ---
[2026-08-26 08:44:16] [OK] Rebuilt Application
[2026-08-26 08:44:16] [INFO] Running Migrations
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database
Error: Prisma schema validation - (get-config wasm)
Error code: P1012
error: Error validating datasource db: the URL must start with the protocol file:.
--> prisma/schema.prisma:9
|
8 | provider = "sqlite"
9 | url = env("DATABASE_URL")
|
Validation Error Count: 1
[Context: getConfig]
Prisma CLI Version : 5.22.0
[2026-08-26 08:44:18] [ERROR] in line 61: exit code 1 (General error / Operation not permitted): while executing command npx prisma migrate deploy
✖️Update failed for container 108 (exit code: 1)
🖼️ Additional context (optional).
No response
✅ Have you read and understood the above guidelines?
yes
🔎 Did you run the script with verbose mode enabled?
Yes, verbose mode was enabled and the output is included below
📜 What is the name of the script you are using?
ExcaliDash
📂 What was the exact command used to execute the script?
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-apps.sh)"
⚙️ What settings are you using?
🖥️ Which Linux distribution are you using?
Debian 13
🧱 Is this Proxmox host running arm64?
No
📈 Which Proxmox version are you on?
pve-manager/9.2.11/f6997e698c7933ea (running kernel: 7.0.14-12-pve)
📝 Provide a clear and concise description of the issue.
Updating an ExcaliDash LXC installed using the community-script fails during the Prisma build/migration step with:
Error validating datasource
db: the URL must start with the protocolfile:.The initial ExcaliDash installation is configured to use PostgreSQL. The problem appears after the updater downloads a clean copy of the latest ExcaliDash release. The current upstream backend/prisma/schema.prisma contains:
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
The ExcaliDash installation script handles both possible Prisma provider formats:
sed -i '/datasource db {/,/}/ s/provider = env("[^"]")/provider = "postgresql"/' prisma/schema.prisma
sed -i '/datasource db {/,/}/ s/provider = "[^"]"/provider = "postgresql"/' prisma/schema.prisma
However, the update script only handles the env(...) format:
sed -i '/datasource db {/,/}/ s/provider = env("[^"]*")/provider = "'"${DATABASE_PROVIDER:-sqlite}"'"/' prisma/schema.prisma
Because the current upstream schema uses:
provider = "sqlite"
rather than:
provider = env("...")
the sed expression does not match anything. The schema therefore remains configured for SQLite while DATABASE_URL still contains the PostgreSQL connection URL.
Prisma then interprets the datasource as SQLite and expects a file: URL, resulting in:
Error validating datasource
db: the URL must start with the protocolfile:.I was able to complete the update successfully by manually changing:
provider = "sqlite" to provider = "postgresql"
🔄 Steps to reproduce the issue.
Update Excalidash from 0.5.1 → 0.6.0
❌ Paste the full error output (if available).
find: ‘/opt/excalidash/frontend/node_modules/dlv’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/argparse’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/@HumanFS’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/safe-buffer’: No such file or directory
find: ‘/opt/excalidash/frontend/node_modules/es-object-atoms’: No such file or directory
find: ‘/opt/excalidash/frontend/public’: No such file or directory
✔️ Deployed: excalidash (0.6.0)
✔️ Configured Database Provider
✔️ Rebuilt Application
✖️ in line 61: exit code 1 (General error / Operation not permitted): while executing command npx prisma migrate deploy
--- Last 20 lines of log ---
[2026-08-26 08:44:16] [OK] Rebuilt Application
[2026-08-26 08:44:16] [INFO] Running Migrations
Environment variables loaded from .env
Prisma schema loaded from prisma/schema.prisma
Datasource "db": SQLite database
Error: Prisma schema validation - (get-config wasm)
Error code: P1012
error: Error validating datasource
db: the URL must start with the protocolfile:.--> prisma/schema.prisma:9
|
8 | provider = "sqlite"
9 | url = env("DATABASE_URL")
|
Validation Error Count: 1
[Context: getConfig]
Prisma CLI Version : 5.22.0
[2026-08-26 08:44:18] [ERROR] in line 61: exit code 1 (General error / Operation not permitted): while executing command npx prisma migrate deploy
✖️Update failed for container 108 (exit code: 1)
🖼️ Additional context (optional).
No response