# Taks 1.0.0 — instalación limpia

Preparado el 5 de septiembre de 2026. Todavía no desplegado al servidor.

## Archivos

- `taks-1.0.0.zip`: código y dependencias PHP de producción. No contiene datos, .env local, copias de seguridad, logs ni sesiones.
- `acceso-privado.sql`: único usuario actual, con contraseña en hash. Conserva el correo y contraseña existentes. Mantener privado y nunca subirlo a public/.
- `.env.example` dentro del ZIP: plantilla sin secretos.

## Instalación en el servidor

1. Requiere PHP 8.2 o superior compatible con composer.lock, MySQL/MariaDB y HTTPS. No necesita Node ni compilación de frontend. Crear una base vacía y un usuario de base exclusivo. Respaldar cualquier instalación existente antes de modificarla.
2. Extraer el ZIP fuera del directorio público. La raíz web del dominio debe apuntar a `taks/public`, nunca a `taks`.
3. En `taks`, copiar `.env.example` a `.env`. Completar credenciales MySQL, APP_URL y SESSION_DOMAIN con el dominio real. La plantilla usa `task.tecwi.co`. Mantener APP_ENV=production, APP_DEBUG=false y SESSION_SECURE_COOKIE=true.
4. Para adjuntos: completar las cuatro variables R2 y activar R2_ENABLED=true. Bucket privado. Las credenciales locales no están incluidas.
5. Ejecutar con el PHP del servidor:

```sh
composer check-platform-reqs --no-dev
php artisan key:generate --force
php artisan migrate --force
```

Composer comprueba las extensiones necesarias; incluir PDO MySQL, mbstring, fileinfo, OpenSSL, XML, curl y las demás que indique. Las dependencias ya están incluidas en vendor/.

6. Importar acceso-privado.sql a la base recién migrada mediante phpMyAdmin o:

```sh
mysql -u USUARIO -p BASE < /ruta/privada/acceso-privado.sql
```

No importarlo si users ya contiene datos. Eliminar la copia del SQL del servidor tras verificar el acceso.

7. Dar escritura al usuario de PHP únicamente en storage/ y bootstrap/cache/ mediante propietario/grupo adecuados. No usar permisos 777.
8. Ejecutar:

```sh
php artisan config:cache
php artisan route:cache
php artisan view:cache
```

9. Entrar por HTTPS con tu correo y contraseña actuales. Verificar cero tableros y tareas; comprobar crear tablero/lista/tarjeta, guardado, navegación móvil, logout y acceso bloqueado sin sesión. Si usas R2, probar un adjunto. La configuración inicial web está desactivada en producción.

Alternativa al SQL: `php artisan enfoque:user correo@ejemplo.com` crea un acceso nuevo solo si no existe usuario. No ejecutar ambas opciones.

## Actualizar una instalación existente

Conservar .env, APP_KEY, base de datos y objetos R2. No regenerar la clave ni reimportar el SQL del acceso. Respaldar antes de actualizar; ejecutar migraciones y reconstruir cachés. No usar migrate:fresh sobre datos. Si se necesita revertir, restaurar aplicación y copia de base compatibles.

## Revisión y límites

29 pruebas automáticas, 276 comprobaciones satisfactorias. Sintaxis PHP/JavaScript válida. Composer audit de producción sin avisos al preparar esta versión. Se revisaron acceso, tarjetas, listas, fechas, búsqueda, comentarios, Markdown seguro, adjuntos y menús móviles. No supone garantía de ausencia absoluta de errores: falta comprobar el entorno del servidor real.

Uso personal, sin otros usuarios ni mapa. Recordatorios al abrir la aplicación; no hay Telegram ni envío en segundo plano. Adjuntos requieren configurar R2. Algunas fuentes se cargan desde Google Fonts con fallback local.

## Copia local anterior a la limpieza

Guardada fuera del paquete en `02-TAKS/storage/backups/pre-release-20260905-141127/`. La base local conserva el usuario y cero tableros, listas o tarjetas. Se vaciaron las sesiones: inicia sesión de nuevo.
