feat: agregar identidad visual e iconos del proyecto (SVG, ICO, PNG) y desplegar en producción
This commit is contained in:
@@ -34,6 +34,11 @@ app_compartir/
|
|||||||
│ └── storage/
|
│ └── storage/
|
||||||
│ └── storage.go # Slugs aleatorios, sniffing MIME y guardado en disco
|
│ └── storage.go # Slugs aleatorios, sniffing MIME y guardado en disco
|
||||||
├── web/
|
├── web/
|
||||||
|
│ ├── static/ # Iconos, favicons y recursos estáticos de la marca
|
||||||
|
│ │ ├── favicon.ico # Icono multirresolución para navegadores
|
||||||
|
│ │ ├── favicon.svg # Icono vectorial escalable y moderno
|
||||||
|
│ │ ├── icon-192.png # Icono PWA / accesos directos móviles
|
||||||
|
│ │ └── icon-512.png # Icono alta resolución / splash screen
|
||||||
│ └── templates/
|
│ └── templates/
|
||||||
│ ├── base.html # Layout común con Tailwind CSS y FontAwesome
|
│ ├── base.html # Layout común con Tailwind CSS y FontAwesome
|
||||||
│ ├── expired.html # Mensaje informativo de archivo guest caducado (24h)
|
│ ├── expired.html # Mensaje informativo de archivo guest caducado (24h)
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
| 2026-10-19 | Despliegue en producción en CT 132 con supervisión SIAX Monitor | Se desplegó en `server-webapps`. Registrado en SIAX Monitor (:8080) como `siax-app-DROP_SIGMAC_APP.service`, habilitando reinicio atómico vía API sin sudo. |
|
| 2026-10-19 | Despliegue en producción en CT 132 con supervisión SIAX Monitor | Se desplegó en `server-webapps`. Registrado en SIAX Monitor (:8080) como `siax-app-DROP_SIGMAC_APP.service`, habilitando reinicio atómico vía API sin sudo. |
|
||||||
| 2026-10-20 | Reasignación de puerto a 2008 para liberar 2006 a audio_control | Se acordó con pablinux liberar el puerto 2006 para `audio_control` (correlativo a SoundWave en 2005) y trasladar `drop.sigmac.app` al puerto 2008 en CT 132 y MCP Infraestructura (ID 34). |
|
| 2026-10-20 | Reasignación de puerto a 2008 para liberar 2006 a audio_control | Se acordó con pablinux liberar el puerto 2006 para `audio_control` (correlativo a SoundWave en 2005) y trasladar `drop.sigmac.app` al puerto 2008 en CT 132 y MCP Infraestructura (ID 34). |
|
||||||
| 2026-10-20 | Activación de dominio público https://drop.sigmac.app | Pablinux configuró el proxy reverso Apache en CT 150 con SSL Let's Encrypt. Se optimizó `getBaseURL()` para forzar HTTPS en los enlaces y códigos QR generados cuando el Host es `drop.sigmac.app`. |
|
| 2026-10-20 | Activación de dominio público https://drop.sigmac.app | Pablinux configuró el proxy reverso Apache en CT 150 con SSL Let's Encrypt. Se optimizó `getBaseURL()` para forzar HTTPS en los enlaces y códigos QR generados cuando el Host es `drop.sigmac.app`. |
|
||||||
|
| 2026-10-20 | Identidad visual e iconos multi-formato (SVG, ICO, PNG) | Se diseñó un icono SVG escalable con flecha bidireccional y pulsos de transferencia en colores esmeralda/cian sobre contenedor squircle grafito oscuro. Se generaron versiones PNG (64, 192, 512 px) e ICO multi-resolución, enlazados en el navbar y servidos nativamente en `/favicon.ico` y `/favicon.svg`. |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -51,6 +52,7 @@ Versión funcional completa y validada:
|
|||||||
- [x] Soporte para proxy reverso dinámico Apache (`X-Forwarded-Proto`, `Host`) en puerto 2008
|
- [x] Soporte para proxy reverso dinámico Apache (`X-Forwarded-Proto`, `Host`) en puerto 2008
|
||||||
- [x] Registrar proyecto en MCP de Infraestructura (ID 34) y crear `id_agente.md` oficial
|
- [x] Registrar proyecto en MCP de Infraestructura (ID 34) y crear `id_agente.md` oficial
|
||||||
- [x] Desplegar en producción en `server-webapps` (CT 132, :2008) y registrar en SIAX Monitor (:8080)
|
- [x] Desplegar en producción en `server-webapps` (CT 132, :2008) y registrar en SIAX Monitor (:8080)
|
||||||
|
- [x] Crear icono SVG/PNG/ICO e integrarlo en la cabecera, navbar y servidor HTTP en producción
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -23,6 +23,7 @@
|
|||||||
- [x] **Centro de Comunicaciones sigma-robot:** Autorizado formalmente por Pablinux como **Agente ID 86** (`Agente drop.sigmac.app`). Token definitivo resguardado en `.env` (modo 600).
|
- [x] **Centro de Comunicaciones sigma-robot:** Autorizado formalmente por Pablinux como **Agente ID 86** (`Agente drop.sigmac.app`). Token definitivo resguardado en `.env` (modo 600).
|
||||||
- [x] **Despliegue a Producción (CT 132 server-webapps):** Desplegado y ejecutándose activamente como `siax-app-DROP_SIGMAC_APP.service` supervisado por SIAX Monitor (`:8080`), escuchando en puerto interno `2008` (dejando el 2006 reservado para `audio_control`). Subida atómica y reinicio automático operativo.
|
- [x] **Despliegue a Producción (CT 132 server-webapps):** Desplegado y ejecutándose activamente como `siax-app-DROP_SIGMAC_APP.service` supervisado por SIAX Monitor (`:8080`), escuchando en puerto interno `2008` (dejando el 2006 reservado para `audio_control`). Subida atómica y reinicio automático operativo.
|
||||||
- [x] **Proxy Reverso Apache (SSL port 443 en CT 150):** Configurado por Pablinux y verificado operando al 100% en `https://drop.sigmac.app` (redirección 301 de HTTP a HTTPS, terminación SSL y proxy a `:2008`). Detección inteligente de HTTPS en enlaces generados y códigos QR.
|
- [x] **Proxy Reverso Apache (SSL port 443 en CT 150):** Configurado por Pablinux y verificado operando al 100% en `https://drop.sigmac.app` (redirección 301 de HTTP a HTTPS, terminación SSL y proxy a `:2008`). Detección inteligente de HTTPS en enlaces generados y códigos QR.
|
||||||
|
- [x] **Identidad Visual e Iconos del Proyecto:** Creación de conjunto completo de iconos SVG vectoriales y ráster (SVG, ICO multi-resolución, PNG 64/192/512 px) con temática visual de transferencia (verde esmeralda / cian sobre grafito). Integrados en `web/templates/base.html` (meta tags, favicon, icono de marca en navbar) y expuestos vía `/favicon.ico`, `/favicon.svg` y `/static/*`. Desplegado en producción.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -53,7 +53,7 @@ compilar() {
|
|||||||
preparar_remoto() {
|
preparar_remoto() {
|
||||||
echo ""
|
echo ""
|
||||||
echo "📂 Preparando estructura de directorios en $SERVIDOR:$REMOTE_DIR..."
|
echo "📂 Preparando estructura de directorios en $SERVIDOR:$REMOTE_DIR..."
|
||||||
remote "mkdir -p '$REMOTE_DIR/web/templates' '$REMOTE_DIR/data/uploads'"
|
remote "mkdir -p '$REMOTE_DIR/web/templates' '$REMOTE_DIR/web/static' '$REMOTE_DIR/data/uploads'"
|
||||||
echo "✅ Directorios listos"
|
echo "✅ Directorios listos"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,6 +68,7 @@ subir() {
|
|||||||
remote "mv -f '$REMOTE_DIR/app_compartir.tmp' '$REMOTE_DIR/app_compartir' && chmod 0755 '$REMOTE_DIR/app_compartir'"
|
remote "mv -f '$REMOTE_DIR/app_compartir.tmp' '$REMOTE_DIR/app_compartir' && chmod 0755 '$REMOTE_DIR/app_compartir'"
|
||||||
copy "$SCRIPT_DIR/init.sh" "$SCRIPT_DIR/.env.example" "$SCRIPT_DIR/siax-app-DROP_SIGMAC_APP.service" "$SERVIDOR:$REMOTE_DIR/"
|
copy "$SCRIPT_DIR/init.sh" "$SCRIPT_DIR/.env.example" "$SCRIPT_DIR/siax-app-DROP_SIGMAC_APP.service" "$SERVIDOR:$REMOTE_DIR/"
|
||||||
copy "$SCRIPT_DIR/web/templates/"*.html "$SERVIDOR:$REMOTE_DIR/web/templates/"
|
copy "$SCRIPT_DIR/web/templates/"*.html "$SERVIDOR:$REMOTE_DIR/web/templates/"
|
||||||
|
copy "$SCRIPT_DIR/web/static/"* "$SERVIDOR:$REMOTE_DIR/web/static/"
|
||||||
remote "chmod 0755 '$REMOTE_DIR/init.sh'"
|
remote "chmod 0755 '$REMOTE_DIR/init.sh'"
|
||||||
echo "✅ Archivos sincronizados en $REMOTE_DIR"
|
echo "✅ Archivos sincronizados en $REMOTE_DIR"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,17 @@ func main() {
|
|||||||
|
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
|
|
||||||
|
// Archivos estáticos e iconos
|
||||||
|
fs := http.FileServer(http.Dir("web/static"))
|
||||||
|
mux.Handle("GET /static/", http.StripPrefix("/static/", fs))
|
||||||
|
mux.HandleFunc("GET /favicon.ico", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
http.ServeFile(w, r, "web/static/favicon.ico")
|
||||||
|
})
|
||||||
|
mux.HandleFunc("GET /favicon.svg", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
w.Header().Set("Content-Type", "image/svg+xml")
|
||||||
|
http.ServeFile(w, r, "web/static/favicon.svg")
|
||||||
|
})
|
||||||
|
|
||||||
// Rutas Web
|
// Rutas Web
|
||||||
mux.HandleFunc("GET /", h.Index)
|
mux.HandleFunc("GET /", h.Index)
|
||||||
mux.HandleFunc("GET /v/{id}", h.View)
|
mux.HandleFunc("GET /v/{id}", h.View)
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,75 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
|
||||||
|
<defs>
|
||||||
|
<!-- Background Gradient -->
|
||||||
|
<linearGradient id="bgGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" stop-color="#020617"/>
|
||||||
|
<stop offset="50%" stop-color="#0f172a"/>
|
||||||
|
<stop offset="100%" stop-color="#030712"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Border Glow Gradient -->
|
||||||
|
<linearGradient id="borderGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" stop-color="#10b981"/>
|
||||||
|
<stop offset="50%" stop-color="#06b6d4"/>
|
||||||
|
<stop offset="100%" stop-color="#3b82f6"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Main Drop Gradient -->
|
||||||
|
<linearGradient id="dropGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" stop-color="#4ade80"/>
|
||||||
|
<stop offset="40%" stop-color="#22c55e"/>
|
||||||
|
<stop offset="80%" stop-color="#06b6d4"/>
|
||||||
|
<stop offset="100%" stop-color="#0284c7"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Inner Core Gradient -->
|
||||||
|
<linearGradient id="coreGrad" x1="0%" y1="100%" x2="0%" y2="0%">
|
||||||
|
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.95"/>
|
||||||
|
<stop offset="100%" stop-color="#ecfdf5" stop-opacity="0.75"/>
|
||||||
|
</linearGradient>
|
||||||
|
|
||||||
|
<!-- Glow Filter -->
|
||||||
|
<filter id="neonGlow" x="-20%" y="-20%" width="140%" height="140%">
|
||||||
|
<feGaussianBlur stdDeviation="14" result="blur"/>
|
||||||
|
<feMerge>
|
||||||
|
<feMergeNode in="blur"/>
|
||||||
|
<feMergeNode in="SourceGraphic"/>
|
||||||
|
</feMerge>
|
||||||
|
</filter>
|
||||||
|
|
||||||
|
<filter id="softShadow" x="-10%" y="-10%" width="120%" height="120%">
|
||||||
|
<feDropShadow dx="0" dy="8" stdDeviation="12" flood-color="#000000" flood-opacity="0.6"/>
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<!-- Base Icon Container (Squircle) -->
|
||||||
|
<rect x="16" y="16" width="480" height="480" rx="112" fill="url(#bgGrad)" stroke="url(#borderGrad)" stroke-width="10" filter="url(#softShadow)"/>
|
||||||
|
|
||||||
|
<!-- Radial Glow Behind the Symbol -->
|
||||||
|
<circle cx="256" cy="256" r="140" fill="#22c55e" opacity="0.12" filter="url(#neonGlow)"/>
|
||||||
|
|
||||||
|
<!-- Wireless Transfer Signal Arches (Top Right) -->
|
||||||
|
<path d="M 320 120 A 70 70 0 0 1 380 180" fill="none" stroke="#38bdf8" stroke-width="12" stroke-linecap="round" opacity="0.75"/>
|
||||||
|
<path d="M 345 95 A 105 105 0 0 1 425 175" fill="none" stroke="#22c55e" stroke-width="12" stroke-linecap="round" opacity="0.45"/>
|
||||||
|
|
||||||
|
<!-- Main Teardrop / Fast Drop Silhouette -->
|
||||||
|
<!-- Smooth teardrop geometry combining drop + speed -->
|
||||||
|
<path d="M 256 90
|
||||||
|
C 256 90, 375 220, 375 320
|
||||||
|
A 119 119 0 0 1 137 320
|
||||||
|
C 137 220, 256 90, 256 90 Z"
|
||||||
|
fill="url(#dropGrad)"
|
||||||
|
filter="url(#neonGlow)"/>
|
||||||
|
|
||||||
|
<!-- Negative Space Inner Arrows (Bidirectional Fast Transfer) -->
|
||||||
|
<g fill="url(#coreGrad)">
|
||||||
|
<!-- Upward Transfer Arrow Head -->
|
||||||
|
<path d="M 256 160 L 298 215 L 274 215 L 274 275 L 238 275 L 238 215 L 214 215 Z"/>
|
||||||
|
|
||||||
|
<!-- Downward Transfer Chevron / Base Anchor -->
|
||||||
|
<path d="M 220 305 L 256 348 L 292 305 L 280 295 L 256 324 L 232 295 Z" opacity="0.9"/>
|
||||||
|
|
||||||
|
<!-- Energy Transfer Dot -->
|
||||||
|
<circle cx="256" cy="385" r="9" fill="#ffffff" opacity="0.95"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 3.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
@@ -4,6 +4,11 @@
|
|||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>{{block "title" .}}drop.sigmac.app — Pasa archivos y texto al instante{{end}}</title>
|
<title>{{block "title" .}}drop.sigmac.app — Pasa archivos y texto al instante{{end}}</title>
|
||||||
|
<!-- Favicon & Touch Icons -->
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||||
|
<link rel="alternate icon" type="image/x-icon" href="/favicon.ico">
|
||||||
|
<link rel="apple-touch-icon" href="/static/icon-192.png">
|
||||||
|
|
||||||
<!-- Tailwind CSS CDN -->
|
<!-- Tailwind CSS CDN -->
|
||||||
<script src="https://cdn.tailwindcss.com"></script>
|
<script src="https://cdn.tailwindcss.com"></script>
|
||||||
<script>
|
<script>
|
||||||
@@ -44,9 +49,7 @@
|
|||||||
<header class="border-b border-slate-800 bg-slate-900/80 backdrop-blur sticky top-0 z-50">
|
<header class="border-b border-slate-800 bg-slate-900/80 backdrop-blur sticky top-0 z-50">
|
||||||
<div class="max-w-6xl mx-auto px-4 h-16 flex items-center justify-between">
|
<div class="max-w-6xl mx-auto px-4 h-16 flex items-center justify-between">
|
||||||
<a href="/" class="flex items-center gap-2.5 font-bold text-lg tracking-tight hover:opacity-90 transition">
|
<a href="/" class="flex items-center gap-2.5 font-bold text-lg tracking-tight hover:opacity-90 transition">
|
||||||
<span class="w-9 h-9 rounded-xl bg-gradient-to-tr from-brand-600 to-emerald-400 flex items-center justify-center text-slate-950 font-black shadow-lg shadow-brand-500/20">
|
<img src="/favicon.svg" alt="Logo" class="w-9 h-9 rounded-xl shadow-lg shadow-brand-500/20 object-contain">
|
||||||
<i class="fa-solid fa-cloud-arrow-up text-base"></i>
|
|
||||||
</span>
|
|
||||||
<span class="text-white">drop<span class="text-brand-500">.sigmac.app</span></span>
|
<span class="text-white">drop<span class="text-brand-500">.sigmac.app</span></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user