diff --git a/app/diario-bordo.html b/app/diario-bordo.html
index 791d547..06e8854 100644
--- a/app/diario-bordo.html
+++ b/app/diario-bordo.html
@@ -8,6 +8,9 @@
+
+
+
Diário de Bordo
diff --git a/server/public/icon.svg b/server/public/icon.svg
new file mode 100644
index 0000000..214a8bf
--- /dev/null
+++ b/server/public/icon.svg
@@ -0,0 +1,10 @@
+
diff --git a/server/public/index.html b/server/public/index.html
index 791d547..06e8854 100644
--- a/server/public/index.html
+++ b/server/public/index.html
@@ -8,6 +8,9 @@
+
+
+
Diário de Bordo
diff --git a/server/src/index.js b/server/src/index.js
index 511bd1e..5dceaca 100644
--- a/server/src/index.js
+++ b/server/src/index.js
@@ -55,6 +55,26 @@ function requireAuth(req, res, next) {
// ==== Public endpoints ====
app.get('/api/health', (req, res) => res.json({ ok: true, ts: Date.now() }));
+// PWA manifest (necessário pra "Add to Home Screen" + APK via PWABuilder)
+app.get('/manifest.json', (req, res) => {
+ res.json({
+ name: 'Shivao · Diário de Bordo',
+ short_name: 'Shivao',
+ description: 'Diário de bordo do veleiro Shivao — viagens, manutenções, GPS, fundeio com alarme remoto',
+ start_url: '/',
+ display: 'standalone',
+ orientation: 'any',
+ background_color: '#0e2a3d',
+ theme_color: '#0e2a3d',
+ lang: 'pt-BR',
+ icons: [
+ { src: '/icon.svg', sizes: 'any', type: 'image/svg+xml', purpose: 'any' },
+ { src: '/icon.svg', sizes: 'any', type: 'image/svg+xml', purpose: 'maskable' }
+ ],
+ categories: ['navigation', 'travel', 'productivity']
+ });
+});
+
// ==== Static frontend ====
const publicDir = path.join(__dirname, '..', 'public');
app.use(express.static(publicDir));