Reorganised: pure infrastructure configs - Docker compose, nginx, deploy scripts

This commit is contained in:
mo
2026-05-10 02:24:36 +02:00
commit 77d0366f80
7 changed files with 370 additions and 0 deletions
+72
View File
@@ -0,0 +1,72 @@
# deploy_to_nas.ps1 — Kopieer project naar Synology NAS en start Docker
# Gebruik: powershell -ExecutionPolicy Bypass -File deploy_to_nas.ps1
param(
[string]$NasHost = "192.168.1.211",
[string]$NasUser = "mo",
[string]$NasPath = "/volume1/docker/ha-voice-control"
)
$ErrorActionPreference = "Stop"
$localDir = Split-Path -Parent $MyInvocation.MyCommand.Path
Write-Host "=== Deploy HA Voice Control naar Synology NAS ===" -ForegroundColor Cyan
Write-Host ""
# Bestanden die mee moeten naar de NAS
$files = @(
"Dockerfile",
"docker-compose.yml",
".dockerignore",
"config.py",
"requirements.txt",
"requirements-neo4j.txt"
)
$dirs = @(
"src",
"static"
)
# 1. Maak target directory op NAS
Write-Host "[1/4] Directory aanmaken op NAS..." -ForegroundColor Yellow
ssh "${NasUser}@${NasHost}" "mkdir -p ${NasPath}"
# 2. Kopieer losse bestanden
Write-Host "[2/4] Bestanden kopieren..." -ForegroundColor Yellow
foreach ($file in $files) {
$src = Join-Path $localDir $file
if (Test-Path $src) {
scp $src "${NasUser}@${NasHost}:${NasPath}/"
Write-Host " OK: $file" -ForegroundColor Green
} else {
Write-Host " SKIP: $file (niet gevonden)" -ForegroundColor Gray
}
}
# 3. Kopieer mappen
Write-Host "[3/4] Mappen kopieren..." -ForegroundColor Yellow
foreach ($dir in $dirs) {
$src = Join-Path $localDir $dir
if (Test-Path $src) {
scp -r $src "${NasUser}@${NasHost}:${NasPath}/"
Write-Host " OK: $dir/" -ForegroundColor Green
} else {
Write-Host " SKIP: $dir/ (niet gevonden)" -ForegroundColor Gray
}
}
# 4. Bouwen en starten
Write-Host "[4/4] Docker bouwen en starten..." -ForegroundColor Yellow
Write-Host ""
Write-Host "Nu op de NAS (ssh):"
Write-Host " cd ${NasPath}"
Write-Host " docker-compose up -d --build"
Write-Host ""
Write-Host "Dashboard wordt bereikbaar op: http://192.168.1.211:8765/dashboard" -ForegroundColor Cyan
Write-Host ""
$sshCmd = Read-Host "Wil je direct verbinden met SSH? (y/n)"
if ($sshCmd -eq "y") {
ssh -t "${NasUser}@${NasHost}" "cd ${NasPath} && docker-compose up -d --build && echo '' && echo 'Dashboard: http://192.168.1.211:8765/dashboard' && docker-compose logs --tail=10"
}
+165
View File
@@ -0,0 +1,165 @@
# PowerShell script — DBeaver Connecties Automatisch Toevoegen
# ============================================================
# Dit script detecteert DBeaver en voegt PostgreSQL + Neo4j connecties toe.
#
# Gebruik:
# powershell -ExecutionPolicy Bypass -File setup_dbeaver.ps1
$ErrorActionPreference = "Stop"
Write-Host "=== DBeaver Connectie Setup ===" -ForegroundColor Cyan
Write-Host ""
# 1. Zoek DBeaver installatie
$dbeaverPaths = @(
"$env:APPDATA\DBeaverData",
"$env:LOCALAPPDATA\DBeaver",
"$env:USERPROFILE\AppData\Roaming\DBeaverData",
"$env:USERPROFILE\.dbeaver"
)
$found = $false
foreach ($path in $dbeaverPaths) {
if (Test-Path $path) {
Write-Host "DBeaver data gevonden op: $path" -ForegroundColor Green
$found = $true
# Zoek alle workspace directories
$workspaces = Get-ChildItem -Path $path -Directory -Filter "workspace*" -ErrorAction SilentlyContinue
foreach ($ws in $workspaces) {
$dbeaverDir = Join-Path $ws.FullName "General\.dbeaver"
if (-not (Test-Path $dbeaverDir)) {
New-Item -ItemType Directory -Path $dbeaverDir -Force | Out-Null
}
$configFile = Join-Path $dbeaverDir "data-sources.json"
Write-Host " Workspace: $($ws.Name) -> $configFile" -ForegroundColor Gray
# Lees bestaande config (of maak nieuwe)
$config = $null
if (Test-Path $configFile) {
try {
$config = Get-Content $configFile -Raw | ConvertFrom-Json
Write-Host " Bestaande config gevonden: $(($config.connections.PSObject.Properties | Measure-Object).Count) connecties" -ForegroundColor Gray
} catch {
Write-Host " Waarschuwing: Kon bestaande config niet lezen, maak nieuwe" -ForegroundColor Yellow
}
}
if (-not $config -or -not $config.connections) {
$config = [PSCustomObject]@{
folders = @{}
connections = @{}
}
}
# Voeg PostgreSQL connectie toe (als die nog niet bestaat)
$pgConnId = "postgresql-homelab-dashboard"
if (-not $config.connections.$pgConnId) {
$config.connections | Add-Member -MemberType NoteProperty -Name $pgConnId -Value ([PSCustomObject]@{
provider = "postgresql"
driver = "postgresql-jdbc"
name = "Homelab PostgreSQL (Dashboard)"
host = "192.168.1.211"
port = "5433"
database = "homelab"
user = "mo"
password = "WaQTUw2t"
savePassword = $true
configurationType = "MANUAL"
showSystemObjects = $false
properties = @{
connectTimeout = "20"
loginTimeout = "20"
}
})
Write-Host " + PostgreSQL connectie toegevoegd" -ForegroundColor Green
} else {
Write-Host " PostgreSQL connectie bestaat al" -ForegroundColor Gray
}
# Voeg Neo4j connectie toe
$neoConnId = "neo4j-homelab-network"
if (-not $config.connections.$neoConnId) {
$config.connections | Add-Member -MemberType NoteProperty -Name $neoConnId -Value ([PSCustomObject]@{
provider = "neo4j"
driver = "neo4j-jdbc"
name = "Homelab Neo4j (Netwerk)"
host = "192.168.1.211"
port = "49153"
url = "neo4j://192.168.1.211:49153"
user = "neo4j"
password = "WaQTUw2t"
savePassword = $true
configurationType = "MANUAL"
})
Write-Host " + Neo4j connectie toegevoegd" -ForegroundColor Green
} else {
Write-Host " Neo4j connectie bestaat al" -ForegroundColor Gray
}
# Schrijf config terug
$config | ConvertTo-Json -Depth 5 | Set-Content $configFile -Encoding UTF8
Write-Host " Config opgeslagen!" -ForegroundColor Green
}
break
}
}
if (-not $found) {
Write-Host "DBeaver NIET gevonden op dit systeem!" -ForegroundColor Yellow
Write-Host ""
Write-Host "Handmatig DBeaver connecties toevoegen:" -ForegroundColor White
Write-Host ""
Write-Host "1. Open DBeaver"
Write-Host "2. Database → New Database Connection"
Write-Host ""
Write-Host "PostgreSQL:"
Write-Host " Host: 192.168.1.211 Port: 5433"
Write-Host " Database: homelab User: mo"
Write-Host ""
Write-Host "Neo4j:"
Write-Host " URI: neo4j://192.168.1.211:49153"
Write-Host " User: neo4j"
Write-Host ""
# Maak een import-bestand voor later gebruik
$importConfig = @"
{
"folders": {},
"connections": {
"postgresql-homelab": {
"provider": "postgresql",
"driver": "postgresql-jdbc",
"name": "Homelab PostgreSQL",
"host": "192.168.1.211",
"port": "5433",
"database": "homelab",
"user": "mo",
"savePassword": true,
"configurationType": "MANUAL"
},
"neo4j-homelab": {
"provider": "neo4j",
"driver": "neo4j-jdbc",
"name": "Homelab Neo4j",
"url": "neo4j://192.168.1.211:49153",
"user": "neo4j",
"savePassword": true,
"configurationType": "MANUAL"
}
}
}
"@
$importFile = Join-Path $PSScriptRoot "dbeaver-connections-import.json"
$importConfig | Set-Content $importFile -Encoding UTF8
Write-Host "Import-bestand gemaakt: $importFile" -ForegroundColor Green
Write-Host ""
Write-Host "In DBeaver: File → Import → DBeaver → Connections"
Write-Host "Selecteer: $importFile"
}
Write-Host ""
Write-Host "Let op: herstart DBeaver om de connecties te zien!" -ForegroundColor Cyan