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
|
||||
import { defineConfig } from 'astro/config';
|
||||
import { defineConfig } from "astro/config";
|
||||
|
||||
import node from "@astrojs/node";
|
||||
|
||||
// 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",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"astro": "^5.17.1",
|
||||
"lenis": "^1.3.17",
|
||||
"nodemailer": "^8.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/nodemailer": "^7.0.11"
|
||||
}
|
||||
"name": "naliia-website",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/node": "^10.0.4",
|
||||
"astro": "^6.1.3",
|
||||
"lenis": "^1.3.17",
|
||||
"nodemailer": "^8.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/nodemailer": "^7.0.11"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,11 @@ const { pageTitle } = Astro.props;
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<title>{pageTitle ? `Naliia | ${pageTitle}` : "Naliia"}</title>
|
||||
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://unpkg.com/lenis@1.3.17/dist/lenis.css"
|
||||
/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -86,6 +91,22 @@ const { pageTitle } = Astro.props;
|
||||
<footer class="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>
|
||||
</html>
|
||||
|
||||
@@ -100,47 +121,7 @@ const { pageTitle } = Astro.props;
|
||||
}
|
||||
</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>
|
||||
/* 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 */
|
||||
html {
|
||||
margin: 0;
|
||||
@@ -161,10 +142,6 @@ const { pageTitle } = Astro.props;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow-x: clip;
|
||||
|
||||
/* background-image: url("/src/assets/imgs/n-naliia-rosada-fondo.webp");
|
||||
background-repeat: no-repeat;
|
||||
background-position: top right; */
|
||||
}
|
||||
|
||||
body::before {
|
||||
|
||||
@@ -116,8 +116,6 @@ const videosList = Object.keys(videoFiles).map((key) => {
|
||||
const name = item.getAttribute("data-name");
|
||||
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);
|
||||
|
||||
if (matches) {
|
||||
|
||||
Reference in New Issue
Block a user