Compare commits
6 Commits
SendEmailF
...
1514303798
| Author | SHA1 | Date | |
|---|---|---|---|
| 1514303798 | |||
| 6084d6a092 | |||
| e9d72e4022 | |||
| c22f5d722a | |||
| ff26e3c329 | |||
| 2b694b2198 |
27
Dockerfile
Normal file
27
Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
FROM node:22-alpine AS build
|
||||||
|
|
||||||
|
WORKDIR /web
|
||||||
|
|
||||||
|
COPY package.json ./
|
||||||
|
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM node:22-alpine AS runtime
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copiar archivos generados y dependencias necesarias
|
||||||
|
COPY --from=build /web/dist ./dist
|
||||||
|
COPY --from=build /web/node_modules ./node_modules
|
||||||
|
COPY --from=build /web/package.json ./package.json
|
||||||
|
|
||||||
|
# Configuración de red interna de Docker
|
||||||
|
ENV HOST=0.0.0.0
|
||||||
|
ENV PORT=4321
|
||||||
|
EXPOSE 4321
|
||||||
|
|
||||||
|
CMD ["node", "./dist/server/entry.mjs"]
|
||||||
@@ -1,5 +1,13 @@
|
|||||||
// @ts-check
|
// @ts-check
|
||||||
import { defineConfig } from 'astro/config';
|
import { defineConfig } from "astro/config";
|
||||||
|
|
||||||
|
import node from "@astrojs/node";
|
||||||
|
|
||||||
// https://astro.build/config
|
// https://astro.build/config
|
||||||
export default defineConfig({});
|
export default defineConfig({
|
||||||
|
output: "server",
|
||||||
|
|
||||||
|
adapter: node({
|
||||||
|
mode: "standalone",
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|||||||
7
docker-compose.yaml
Normal file
7
docker-compose.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
services:
|
||||||
|
web:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
ports:
|
||||||
|
- "4321:4321"
|
||||||
15
nginx.conf
Normal file
15
nginx.conf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
}
|
||||||
|
}
|
||||||
10039
package-lock.json
generated
10039
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
35
package.json
35
package.json
@@ -1,19 +1,20 @@
|
|||||||
{
|
{
|
||||||
"name": "naliia-website",
|
"name": "naliia-website",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev",
|
"dev": "astro dev",
|
||||||
"build": "astro build",
|
"build": "astro build",
|
||||||
"preview": "astro preview",
|
"preview": "astro preview",
|
||||||
"astro": "astro"
|
"astro": "astro"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"astro": "^5.17.1",
|
"@astrojs/node": "^10.0.4",
|
||||||
"lenis": "^1.3.17",
|
"astro": "^6.1.3",
|
||||||
"nodemailer": "^8.0.1"
|
"lenis": "^1.3.17",
|
||||||
},
|
"nodemailer": "^8.0.1"
|
||||||
"devDependencies": {
|
},
|
||||||
"@types/nodemailer": "^7.0.11"
|
"devDependencies": {
|
||||||
}
|
"@types/nodemailer": "^7.0.11"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,11 @@ const { pageTitle } = Astro.props;
|
|||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
<meta name="generator" content={Astro.generator} />
|
<meta name="generator" content={Astro.generator} />
|
||||||
<title>{pageTitle ? `Naliia | ${pageTitle}` : "Naliia"}</title>
|
<title>{pageTitle ? `Naliia | ${pageTitle}` : "Naliia"}</title>
|
||||||
|
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://unpkg.com/lenis@1.3.17/dist/lenis.css"
|
||||||
|
/>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
@@ -86,6 +91,22 @@ const { pageTitle } = Astro.props;
|
|||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<Footer />
|
<Footer />
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import Lenis from "lenis";
|
||||||
|
|
||||||
|
const lenis = new Lenis({
|
||||||
|
touchMultiplier: 2,
|
||||||
|
infinite: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
function raf(time: number) {
|
||||||
|
lenis.raf(time);
|
||||||
|
requestAnimationFrame(raf);
|
||||||
|
}
|
||||||
|
|
||||||
|
requestAnimationFrame(raf);
|
||||||
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
@@ -100,47 +121,7 @@ const { pageTitle } = Astro.props;
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
|
||||||
import Lenis from "lenis";
|
|
||||||
|
|
||||||
// Inicialización de Lenis
|
|
||||||
const lenis = new Lenis({
|
|
||||||
duration: 1.2,
|
|
||||||
easing: (t) => Math.min(1, 1.001 - Math.pow(2, -10 * t)),
|
|
||||||
direction: "vertical",
|
|
||||||
gestureDirection: "vertical",
|
|
||||||
smoothHover: true,
|
|
||||||
// En móviles a veces es mejor dejarlo en false para no interferir con el scroll nativo
|
|
||||||
smoothTouch: false,
|
|
||||||
});
|
|
||||||
|
|
||||||
// Función de actualización (Raf)
|
|
||||||
function raf(time: number) {
|
|
||||||
lenis.raf(time);
|
|
||||||
requestAnimationFrame(raf);
|
|
||||||
}
|
|
||||||
|
|
||||||
requestAnimationFrame(raf);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
/* Estilos base para Lenis */
|
|
||||||
html.lenis {
|
|
||||||
height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lenis.lenis-smooth {
|
|
||||||
scroll-behavior: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lenis.lenis-smooth [data-lenis-prevent] {
|
|
||||||
overscroll-behavior: contain;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lenis.lenis-stopped {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Estilos globales */
|
/* Estilos globales */
|
||||||
html {
|
html {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -161,10 +142,6 @@ const { pageTitle } = Astro.props;
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
overflow-x: clip;
|
overflow-x: clip;
|
||||||
|
|
||||||
/* background-image: url("/src/assets/imgs/n-naliia-rosada-fondo.webp");
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-position: top right; */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body::before {
|
body::before {
|
||||||
|
|||||||
@@ -116,8 +116,6 @@ const videosList = Object.keys(videoFiles).map((key) => {
|
|||||||
const name = item.getAttribute("data-name");
|
const name = item.getAttribute("data-name");
|
||||||
const matches = name && name.includes(query);
|
const matches = name && name.includes(query);
|
||||||
|
|
||||||
// Usamos toggle: si matches es true, hidden es false (se muestra)
|
|
||||||
// Si matches es false, hidden es true (se oculta)
|
|
||||||
item.classList.toggle("hidden", !matches);
|
item.classList.toggle("hidden", !matches);
|
||||||
|
|
||||||
if (matches) {
|
if (matches) {
|
||||||
|
|||||||
Reference in New Issue
Block a user