Vindexa se compila con el toolchain nativo de cada plataforma. Un bundle macOS no certifica Linux y no se debe presentar como compatible con Bazzite sin construirlo y ejecutarlo allí.
Important
La configuración de release no contiene identidad Developer ID, notarización,
endpoint/clave pública de updater ni pipeline de publicación. El script debug aplica una
firma ad hoc mediante tauri.debug.conf.json; produce artefactos locales verificables,
no una release pública autenticada.
- Instalar desde una release
- Preparar el repositorio
- Ejecutar en desarrollo
- Compilar para macOS
- Compilar y probar en Bazzite
- Actualizar sin perder datos
- Desinstalar
- Diagnosticar una instalación
Si sólo quieres usar Vindexa, no hace falta compilar nada: descarga el instalador de tu sistema desde la última versión.
| Sistema | Archivo | Qué hacer |
|---|---|---|
| macOS | Vindexa_x.y.z_universal.dmg |
Abre el DMG y arrastra Vindexa a Aplicaciones |
| Windows | Vindexa_x.y.z_x64-setup.exe |
Ejecútalo. El .msi está para despliegues desatendidos |
| Linux | Vindexa_x.y.z_amd64.AppImage |
chmod +x y ejecútalo, sin instalar nada |
| Linux (Debian y derivadas) | Vindexa_x.y.z_amd64.deb |
sudo apt install ./Vindexa_*.deb |
El binario de macOS es universal: funciona en Apple Silicon y en Intel sin elegir versión.
No hay certificado de Developer ID de Apple ni de Authenticode de Microsoft, así que el sistema avisará la primera vez. El aviso es correcto: significa que el sistema no puede verificar quién publicó el archivo, no que el archivo esté dañado.
macOS. Al abrirlo dirá que no se puede comprobar que esté libre de software malicioso. Ve a Ajustes del Sistema → Privacidad y seguridad, busca el aviso sobre Vindexa y pulsa Abrir de todos modos. Sólo hay que hacerlo una vez.
Windows. SmartScreen dirá que ha protegido tu PC. Pulsa Más información y luego Ejecutar de todas formas.
Linux. No hay aviso: el AppImage sólo necesita permiso de ejecución.
Si prefieres no confiar en un binario sin firmar, compila desde el código fuente siguiendo el resto de este documento. Es la única forma de verificar por ti mismo qué estás ejecutando.
Vindexa crea su base de datos y no muestra ningún juego. No hay catálogo de demostración ni carátulas falsas: un estado vacío significa que todavía no has importado nada. Desde Ajustes → Steam puedes leer tu instalación local —sin cuenta ni clave— o vincular la cuenta para traer tiempos de juego y logros. En STEAM_SETUP.md están las tres vías explicadas.
Requisitos comunes:
- Node.js y Corepack;
pnpmresuelto mediante Corepack;- Rust estable con Cargo;
- Git;
- dependencias nativas de Tauri 2.
Desde la raíz:
corepack enable
pnpm install --frozen-lockfile --ignore-scripts
pnpm check
pnpm test:rustpnpm-lock.yaml y Cargo.lock fijan las versiones reproducibles. No mezcles npm o Yarn ni
regeneres los locks durante una instalación normal.
--ignore-scripts evita ejecutar scripts de instalación de paquetes. Si en el futuro una
dependencia necesita uno, revísalo explícitamente antes de quitar esta protección.
pnpm tauri devEste comando inicia Vite en http://localhost:1420, compila Rust y abre la ventana Tauri.
Es la única ruta de desarrollo que permite probar SQLite, Keychain, diálogos, callback
OpenID, manifiestos y URLs steam://.
bootstrap no abre Keychain. En desarrollo, solo una acción explícita que use la clave
puede mostrar el aviso de macOS; al recompilar, cambia la firma ad hoc del binario y Keychain puede
volver a solicitar autorización aunque se hubiera permitido una build anterior.
Para comprobar únicamente componentes web:
pnpm devEl frontend aislado no dispone del bridge IPC. Un error de invoke en esa ruta no demuestra
un fallo del bundle de escritorio.
- macOS 11 o posterior para ejecutar el bundle, según
tauri.conf.json; - Xcode Command Line Tools;
- Rust estable y el target de la arquitectura local;
- Node.js/Corepack/pnpm.
Ejecuta primero todos los gates y después limita el bundle a los formatos macOS:
pnpm check
pnpm test:rust
pnpm tauri build --bundles app,dmgLos resultados se generan bajo:
src-tauri/target/release/bundle/macos/Vindexa.app
src-tauri/target/release/bundle/dmg/
El DMG usa assets/brand/vindexa-installer-background.png, el icono generado de Vindexa y
una ventana de 660 × 400 px. La aplicación utiliza el identificador
io.vindexa.desktop y el bundle declara categoría Entertainment.
open src-tauri/target/release/bundle/macos/Vindexa.appComprueba los puntos de TESTING.md, cierra la aplicación y solo entonces
arrastra el bundle a /Applications mediante Finder. Sustituir una versión existente es
una acción externa: conserva antes un backup desde Ajustes → Datos y copias.
Una distribución pública fuera de la Mac App Store necesita firma Developer ID y
notarización. No están configuradas en el repositorio. La pseudoidentidad - del overlay
debug sella el bundle local, pero no autentica al desarrollador ni sustituye la notarización.
No publiques el DMG local como si estuviera notarizado y no añadas credenciales de firma a
archivos versionados.
Bazzite es un sistema Linux inmutable basado en Fedora. La ruta de menor impacto para una evaluación local es construir en un entorno Fedora compatible y ejecutar un AppImage; no requiere instalar un RPM en el sistema base.
El entorno Linux de compilación debe incluir Node/Corepack, Rust y las dependencias Tauri para Fedora/OSTree: WebKitGTK 4.1, OpenSSL, indicadores GTK, librsvg, libxdo y herramientas C. Consulta siempre la sección Fedora/OSTree de los prerrequisitos oficiales para los nombres de paquete vigentes de la imagen Bazzite instalada.
Tauri recomienda construir Linux sobre la base más antigua que se vaya a soportar para no elevar accidentalmente la versión mínima de glibc. La guía de AppImage explica esta limitación.
Dentro del builder Linux y desde el checkout:
corepack enable
pnpm install --frozen-lockfile --ignore-scripts
pnpm check
pnpm test:rust
pnpm tauri build --bundles appimage,rpmEn Linux, Tauri deja normalmente los artefactos bajo:
src-tauri/target/release/bundle/appimage/
src-tauri/target/release/bundle/rpm/
El propio pnpm tauri build --help del host Linux es la fuente de verdad para los bundles
admitidos por esa instalación.
Desde el directorio de salida:
chmod a+x ./*.AppImage
./*.AppImageNo instales el RPM con rpm-ostree como parte de una prueba automática: crea un nuevo
deployment del sistema y puede exigir reinicio. Si se decide validar ese formato, debe ser
una acción explícitamente autorizada, con rollback de Bazzite conocido.
La certificación necesita evidencia en una sesión gráfica Bazzite real:
- el AppImage inicia bajo Wayland y muestra el icono correcto;
- se crea SQLite en el directorio de datos del usuario;
- el almacén de secretos del escritorio acepta, recupera y elimina una clave de prueba;
- Steam OpenID vuelve al listener loopback;
- los manifiestos de la instalación Steam de Bazzite se detectan;
steam://install,steam://runysteam://uninstallllegan al cliente Steam sin borrado directo por Vindexa;- la ventana aislada de tienda abre el host oficial sin exponer IPC, instala el filtro nativo WebKitGTK antes de navegar y falla cerrada si no puede hacerlo;
- una edición personal sigue presente después de cerrar y abrir;
- exportar y restaurar una copia funciona;
- no faltan WebKitGTK, GTK, SSL u otras bibliotecas dinámicas.
Este gate no puede ejecutarse desde el Mac de desarrollo. Hasta completarlo, el soporte de Bazzite permanece no verificado.
La verificación del secreto debe distinguir dos casos: reiniciar/consultar bootstrap no
debe abrir el servicio de secretos; Comprobar clave guardada y una sincronización sí
deben acceder a él de forma explícita.
El identificador io.vindexa.desktop debe mantenerse estable entre versiones. Tauri guarda
la base fuera del bundle, por lo que sustituir Vindexa.app o el AppImage no debe borrar
SQLite.
Antes de actualizar:
- abre Ajustes → Datos y copias;
- confirma que Integridad muestra
oky WAL está activo; - exporta un backup a una ruta distinta de la base activa;
- cierra Vindexa;
- sustituye solo el binario/bundle;
- abre la nueva versión y comprueba versión de esquema, biblioteca y una nota conocida.
Ajustes → Acerca de → Buscar actualizaciones no sustituye este procedimiento. En el
build actual devuelve notConfigured: informa la versión instalada, pero no consulta un
servidor, descarga, verifica o ejecuta binarios. Un updater futuro necesitará HTTPS,
manifiesto firmado y clave pública configurados antes de habilitarse.
Las migraciones son acumulativas e idempotentes. No copies manualmente una base mientras la aplicación está abierta; el archivo WAL puede contener cambios pendientes.
Calcula el checksum antes de mover o distribuir un bundle:
# macOS
shasum -a 256 src-tauri/target/release/bundle/dmg/*.dmg
# Linux
sha256sum src-tauri/target/release/bundle/appimage/*.AppImage
sha256sum src-tauri/target/release/bundle/rpm/*.rpmConserva el digest junto al número exacto de versión que descargaste y no lo reutilices después de recompilar.
- Cierra Vindexa.
- Mueve
Vindexa.appa la Papelera con Finder. - Decide por separado si quieres conservar la base para una reinstalación.
- Cierra Vindexa.
- Mueve el archivo AppImage a la Papelera.
- Conserva o elimina por separado el directorio de datos mostrado en Diagnóstico.
Eliminar el bundle no borra automáticamente SQLite, backups, caché ni la entrada del almacén seguro. Consulta PRIVACY.md para una eliminación completa y segura.
- Confirma que el bundle se generó en el host actual y que macOS cumple el mínimo 11.0.
- Una build local no notarizada puede requerir aprobación manual de Gatekeeper; no desactives globalmente sus protecciones.
- Ejecuta
pnpm tauri devdesde el checkout para separar un fallo de código de uno de empaquetado.
- Ejecuta el archivo desde terminal y conserva el mensaje de biblioteca ausente.
- Confirma que el artefacto se construyó para la arquitectura y glibc de destino.
- Comprueba WebKitGTK 4.1 y el servicio de secretos de la sesión gráfica.
- No asumas que un AppImage generado en otra distribución certifica Bazzite.
- Comprueba en Ajustes la ruta efectiva y el identificador del bundle.
- No restaures a ciegas: valida primero el backup desde la UI.
- Si cambió el usuario del sistema o el formato de empaquetado, el directorio Tauri puede ser distinto.