Loading repository data…
Loading repository data…
brayandiazc / repository
Sitio web estático de demostración para aprender a alojar una landing page en Amazon S3 (HTML, CSS y JavaScript).
Sitio web estático de demostración para aprender a alojar una landing page en Amazon S3.
Este proyecto es un ejemplo de sitio web estático preparado para ser alojado en Amazon S3. Incluye archivos HTML, CSS, JavaScript e imágenes, y está pensado para demostrar el proceso completo de despliegue y configuración de un sitio web estático en AWS S3, permitiendo el acceso público y siguiendo buenas prácticas de organización de archivos.
Es un proyecto educativo/demo: la guía de la sección Deployment explica paso a paso cómo crear el bucket, configurar el alojamiento web estático y aplicar la política de acceso público necesaria para publicar el sitio.
👀 Nota: alojar una web estática exponiendo el bucket como público no es la práctica recomendada para producción (lo ideal es servir vía CloudFront con OAC), pero para esta práctica de aprendizaje es suficiente.
graph LR
A[Usuario] -->|HTTP| B[Endpoint del sitio web S3]
B -->|Sirve| C[index.html]
C -->|Referencia| D[css/style.css]
C -->|Referencia| E[js/script.js]
C -->|Referencia| F[images/*]
B -.->|Política pública<br/>s3:GetObject| G[(Bucket S3)]
docs/.Para trabajar con el sitio localmente solo necesitas:
python3 -m http.server).Para desplegarlo en la nube:
git clone https://github.com/brayandiazc/mi-sitio-s3.git
cd mi-sitio-s3
Abre index.html directamente en tu navegador, o sírvelo con un servidor estático local:
# Opción con Python
python3 -m http.server 8000
# El sitio quedará disponible en http://localhost:8000
El sitio es completamente estático: no requiere instalación de dependencias ni paso de compilación. Edita los archivos HTML, CSS o JS y recarga el navegador para ver los cambios.
mi-sitio-s3/
├── index.html # Página principal de la landing
├── css/
│ └── style.css # Estilos del sitio
├── js/
│ └── script.js # Interactividad (galería / carrusel)
├── images/ # Logos e imágenes
├── docs/ # Documentación del proyecto
└── .github/ # Plantillas de issues/PR y configuración
El sitio es un cliente estático servido directamente por el alojamiento web de Amazon S3, sin backend, base de datos ni API propia. Detalle completo en docs/architecture/architecture.md.
Inventario completo en docs/architecture/stack.md.
| Ambiente | URL | Rama | Deploy |
|---|---|---|---|
| Producción | Endpoint del sitio web del bucket S3 | main | Manual |
A continuación, los pasos detallados para crear tu bucket de S3 y configurarlo para servir el sitio web. Ver también docs/conventions/deploy.md.
En la página de S3, haz clic en el botón "Crear bucket".
Configuración del Bucket:
misitioejemplo.com, tu bucket debería llamarse misitioejemplo.com. Para esta prueba, puedes usar algo como mi-sitio-s3-prueba-tu-nombre.
Haz clic en "Crear bucket" en la parte inferior de la página.
mi-sitio-s3 ( index.html, la carpeta css, la carpeta js, y la carpeta images con su contenido) en el área de carga, o usa los botones "Añadir archivos" y "Añadir carpeta".
css/, js/, images/) se mantenga al subir. S3 lo manejará automáticamente si arrastras la carpeta mi-sitio-s3 completa o sus subcarpetas.💡 Alternativa por CLI:
aws s3 sync . s3://TU_BUCKET --exclude ".git/*" --exclude "docs/*"
index.html. Este es el archivo que S3 servirá cuando alguien acceda a la raíz de tu sitio.error.html si tuvieras una página de error personalizada. Por ahora, puedes dejarlo vacío o poner index.html también.Aunque deshabilitaste el bloqueo de acceso público, aún necesitas una política de bucket para permitir que los objetos (tus archivos) sean leídos por el público.
Dentro de tu bucket, haz clic en la pestaña "Permisos".
Desplázate hacia abajo hasta la sección "Política de bucket".
Haz clic en "Editar".
Pega la siguiente política en el editor de políticas. Reemplaza YOUR_BUCKET_NAME con el nombre exacto de tu bucket de S3.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::YOUR_BUCKET_NAME/*"]
}
]
}
Esta política permite que cualquier persona ("Principal": "*") pueda realizar la acción s3:GetObject (leer objetos) en todos los objetos dentro de tu bucket ("Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*").
Haz clic en "Guardar cambios".
¡Si todo salió bien, deberías ver tu landing page de AWS S3 funcionando en tu navegador!
Lee la Guía de Contribución para conocer el flujo de trabajo (Git Flow), los estándares de código y el formato de commits (Conventional Commits).
Visión y próximos pasos en docs/product/roadmap.md.
Toda la documentación vive en docs/:
| Documento | Responde a |
|---|---|
docs/architecture/architecture.md | ¿Cómo está construido? |
docs/architecture/stack.md | ¿Con qué tecnologías? |
docs/architecture/design.md | ¿Cómo se diseña y por qué? |
docs/conventions/deploy.md | ¿Cómo se despliega en S3? |
docs/product/business-model.md | ¿Por qué existe? |
docs/product/roadmap.md | ¿Hacia dónde va? |
docs/decisions/ | ¿Por qué tomamos cada decisión? |
docs/conventions/ | ¿Cómo trabajamos en este repo? |
Usamos Git para el control de versiones y seguimos Semantic Versioning. Consulta las etiquetas para ver las versiones disponibles y el CHANGELOG.