Compare commits
1 commit
main
...
windows-in
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f33adb3d7 |
4 changed files with 167 additions and 0 deletions
66
WINDOWS.md
Normal file
66
WINDOWS.md
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Strudel (fork hacklab) + KISUM en Windows
|
||||
|
||||
> ⚠ **Estado: a probar.** Estos scripts están escritos y revisados pero
|
||||
> todavía no se han ejecutado en un Windows real. Si algo falla, abre una
|
||||
> incidencia en el Gitea con el error.
|
||||
|
||||
## Requisitos
|
||||
|
||||
Instálalos una vez (desde PowerShell o `winget`):
|
||||
|
||||
```powershell
|
||||
winget install OpenJS.NodeJS.LTS # Node.js (>=20) + npm/corepack
|
||||
winget install Python.Python.3.12 # Python (para KISUM)
|
||||
winget install Gyan.FFmpeg # ffmpeg (para leer vídeo en KISUM)
|
||||
```
|
||||
|
||||
Cierra y reabre la terminal después, para que el `PATH` se actualice.
|
||||
|
||||
## Instalación (un comando)
|
||||
|
||||
Descarga el repo y ejecuta el instalador:
|
||||
|
||||
```powershell
|
||||
git clone https://gitea.laenre.net/hacklab/strudel.git
|
||||
cd strudel
|
||||
powershell -ExecutionPolicy Bypass -File .\install.ps1
|
||||
```
|
||||
|
||||
Instala las dependencias de Node (`pnpm`), construye la web y crea el entorno
|
||||
de KISUM. **No** guarda paquetes en el repo (todo va a carpetas ignoradas).
|
||||
|
||||
## Uso
|
||||
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\strudel-launcher.ps1
|
||||
```
|
||||
|
||||
Abre <http://127.0.0.1:3009> en el navegador y arranca el servidor de KISUM
|
||||
(<http://127.0.0.1:3010>). Para KISUM desde la terminal:
|
||||
|
||||
```powershell
|
||||
cd kisum
|
||||
.\kisum.cmd tu_cancion.mp3
|
||||
.\kisum.cmd clip.mp4 --bars 8 --bass
|
||||
```
|
||||
|
||||
### Acceso directo en el escritorio
|
||||
|
||||
Crea un acceso directo cuyo destino sea:
|
||||
|
||||
```
|
||||
powershell -ExecutionPolicy Bypass -File "C:\ruta\a\strudel\strudel-launcher.ps1"
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
- Si PowerShell bloquea los scripts, ejecútalos con `-ExecutionPolicy Bypass`
|
||||
como en los ejemplos (no cambia la política global del sistema).
|
||||
- El resto (funciones, pestañas KISUM/Visor, temas…) es idéntico a Linux; solo
|
||||
cambian los lanzadores. Ver [`README.md`](./README.md).
|
||||
|
||||
## Fase 2 (futuro): instalador .exe
|
||||
|
||||
Empaquetar todo en un instalador `.exe` con **Inno Setup** o **NSIS** (que
|
||||
instale Node/Python/ffmpeg embebidos y cree los accesos directos) es posible,
|
||||
pero hay que compilarlo y probarlo en Windows. Queda propuesto.
|
||||
55
install.ps1
Normal file
55
install.ps1
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
# Instalador de Strudel (fork hacklab) + KISUM para Windows (PowerShell).
|
||||
# Ejecuta desde una terminal PowerShell en la carpeta del repo:
|
||||
# powershell -ExecutionPolicy Bypass -File .\install.ps1
|
||||
#
|
||||
# NO sube paquetes al repo: usa pnpm (Node) y un venv de Python para KISUM.
|
||||
# ⚠ Escrito y revisado, pero pendiente de probar en un Windows real.
|
||||
$ErrorActionPreference = "Stop"
|
||||
$DIR = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
Set-Location $DIR
|
||||
|
||||
Write-Host "============================================"
|
||||
Write-Host " Instalador Strudel (fork hacklab) + KISUM"
|
||||
Write-Host "============================================"
|
||||
|
||||
# --- Node / pnpm ---
|
||||
if (-not (Get-Command node -ErrorAction SilentlyContinue)) {
|
||||
Write-Error "Falta Node.js (>= 20). Instálalo: winget install OpenJS.NodeJS.LTS (y reabre la terminal)"
|
||||
}
|
||||
if (-not (Get-Command pnpm -ErrorAction SilentlyContinue)) {
|
||||
Write-Host "==> activando pnpm con corepack"
|
||||
corepack enable pnpm
|
||||
}
|
||||
|
||||
Write-Host "==> Strudel: instalando dependencias de Node (pnpm i)..."
|
||||
pnpm i
|
||||
Write-Host "==> Strudel: construyendo la web (pnpm build)..."
|
||||
pnpm build
|
||||
|
||||
# --- KISUM (opcional) ---
|
||||
$kisum = Join-Path $DIR "kisum"
|
||||
if (Test-Path (Join-Path $kisum "requirements.txt")) {
|
||||
Write-Host "==> Configurando KISUM (audio -> codigo Strudel)..."
|
||||
$venv = Join-Path $kisum ".venv"
|
||||
if (Get-Command py -ErrorAction SilentlyContinue) {
|
||||
py -3 -m venv $venv
|
||||
} elseif (Get-Command python -ErrorAction SilentlyContinue) {
|
||||
python -m venv $venv
|
||||
} else {
|
||||
Write-Warning "No encuentro Python. Instálalo: winget install Python.Python.3.12 (KISUM no se instalará; Strudel funciona igual)"
|
||||
$venv = $null
|
||||
}
|
||||
if ($venv) {
|
||||
$pip = Join-Path $venv "Scripts\pip.exe"
|
||||
& $pip install --upgrade pip
|
||||
& $pip install -r (Join-Path $kisum "requirements.txt")
|
||||
if (-not (Get-Command ffmpeg -ErrorAction SilentlyContinue)) {
|
||||
Write-Warning "ffmpeg no está en el PATH. KISUM lo necesita para vídeo. Instálalo: winget install Gyan.FFmpeg (y reabre la terminal)"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "OK. Arranca con: powershell -ExecutionPolicy Bypass -File .\strudel-launcher.ps1"
|
||||
Write-Host " Strudel: http://127.0.0.1:3009"
|
||||
Write-Host " KISUM server: http://127.0.0.1:3010 (arranca solo con el lanzador)"
|
||||
12
kisum/kisum.cmd
Normal file
12
kisum/kisum.cmd
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
@echo off
|
||||
rem Lanzador de KISUM para Windows: usa el venv local de esta carpeta.
|
||||
rem kisum tu_cancion.mp3
|
||||
rem kisum clip.mp4 --bars 8 --bass
|
||||
setlocal
|
||||
set "DIR=%~dp0"
|
||||
if not exist "%DIR%.venv\Scripts\python.exe" (
|
||||
echo KISUM: no encuentro el entorno .venv
|
||||
echo Instalalo con: powershell -ExecutionPolicy Bypass -File ..\install.ps1
|
||||
exit /b 1
|
||||
)
|
||||
"%DIR%.venv\Scripts\python.exe" "%DIR%kisum.py" %*
|
||||
34
strudel-launcher.ps1
Normal file
34
strudel-launcher.ps1
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# Lanzador de Strudel (fork hacklab) + KISUM para Windows (PowerShell).
|
||||
# powershell -ExecutionPolicy Bypass -File .\strudel-launcher.ps1
|
||||
# Sirve la build estática, arranca el servidor de KISUM y abre el navegador.
|
||||
# ⚠ Escrito y revisado, pero pendiente de probar en un Windows real.
|
||||
$DIR = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
$PORT = if ($env:STRUDEL_PORT) { $env:STRUDEL_PORT } else { 3009 }
|
||||
$URL = "http://127.0.0.1:$PORT/"
|
||||
$ASTRO = Join-Path $DIR "website\node_modules\.bin\astro.cmd"
|
||||
|
||||
function Test-Up($u) {
|
||||
try { Invoke-WebRequest -UseBasicParsing -Uri $u -TimeoutSec 2 | Out-Null; return $true } catch { return $false }
|
||||
}
|
||||
|
||||
if (-not (Test-Path $ASTRO)) {
|
||||
Write-Error "Falta la instalación. Ejecuta antes: powershell -ExecutionPolicy Bypass -File .\install.ps1"
|
||||
}
|
||||
|
||||
# --- Servidor web (astro preview) ---
|
||||
if (-not (Test-Up $URL)) {
|
||||
Start-Process -WindowStyle Hidden -WorkingDirectory (Join-Path $DIR "website") `
|
||||
-FilePath $ASTRO -ArgumentList "preview","--port","$PORT","--host","127.0.0.1"
|
||||
for ($i = 0; $i -lt 30; $i++) { if (Test-Up $URL) { break }; Start-Sleep -Seconds 1 }
|
||||
}
|
||||
|
||||
# --- Servidor KISUM (si tiene venv) ---
|
||||
$KPY = Join-Path $DIR "kisum\.venv\Scripts\python.exe"
|
||||
if (Test-Path $KPY) {
|
||||
if (-not (Test-Up "http://127.0.0.1:3010/health")) {
|
||||
Start-Process -WindowStyle Hidden -FilePath $KPY -ArgumentList (Join-Path $DIR "kisum\kisum_server.py")
|
||||
}
|
||||
}
|
||||
|
||||
# --- Abrir navegador ---
|
||||
Start-Process $URL
|
||||
Loading…
Add table
Add a link
Reference in a new issue