Skip to content

johnsi15/personal-site-astro

Repository files navigation

personal site johnserrano.co

¿How does that work?

Require Node.js 18.x

  • npm install to install the dependencies
  • npm run dev to run development mode app
  • npm run build to build production

Dockerfile

FROM node:lts AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:alpine AS runtime
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 8080

nginx.conf

worker_processes  1;

events {
  worker_connections  1024;
}

http {
  server {
    listen 8080;
    server_name   _;

    root   /usr/share/nginx/html;
    index  index.html index.htm;
    include /etc/nginx/mime.types;

    gzip on;
    gzip_min_length 1000;
    gzip_proxied expired no-cache no-store private auth;
    gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    error_page 404 /404.html;
    location = /404.html {
            root /usr/share/nginx/html;
            internal;
    }

    location / {
            try_files $uri $uri/index.html =404;
    }
  }
}
docker build -t <tu-nombre-de-imagen-de-astro> .
docker run -p <puerto-local>:<puerto-de-contenedor> <tu-nombre-de-imagen-de-astro>

You should be able to access your site http://localhost:<puerto-local>.

Features:

  • ✅ Minimal styling (make it your own!)
  • ✅ 100/100 Lighthouse performance
  • ✅ SEO-friendly with canonical URLs and OpenGraph data
  • ✅ Sitemap support
  • ✅ RSS Feed support
  • ✅ Markdown & MDX support

About

personal site blog builded with astro and React.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published