diff --git a/bonus/srcs/docker-compose.yml b/bonus/srcs/docker-compose.yml index 6762cae..e58fe12 100644 --- a/bonus/srcs/docker-compose.yml +++ b/bonus/srcs/docker-compose.yml @@ -63,6 +63,16 @@ services: - wordpress restart: always + static_site: + build: ./requirements/static_site + image: static_site:inception + container_name: static_site + networks: + - inception + ports: + - "8080:80" + restart: always + networks: inception: driver: bridge diff --git a/bonus/srcs/requirements/static_site/Dockerfile b/bonus/srcs/requirements/static_site/Dockerfile new file mode 100644 index 0000000..4cb86ab --- /dev/null +++ b/bonus/srcs/requirements/static_site/Dockerfile @@ -0,0 +1,15 @@ +FROM debian:bookworm-slim + +RUN apt-get update && apt-get install -y --no-install-recommends \ + nginx \ + && rm -rf /var/lib/apt/lists/* + +COPY conf/nginx.conf /etc/nginx/sites-available/default +COPY html/ /var/www/static/ + +RUN rm -f /etc/nginx/sites-enabled/default \ + && ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/bonus/srcs/requirements/static_site/conf/nginx.conf b/bonus/srcs/requirements/static_site/conf/nginx.conf new file mode 100644 index 0000000..819f32a --- /dev/null +++ b/bonus/srcs/requirements/static_site/conf/nginx.conf @@ -0,0 +1,11 @@ +server { + listen 80; + server_name static.oriabenk.42.fr; + + root /var/www/static; + index index.html; + + location / { + try_files $uri $uri/ =404; + } +} diff --git a/bonus/srcs/requirements/static_site/html/index.html b/bonus/srcs/requirements/static_site/html/index.html new file mode 100644 index 0000000..ffa78b9 --- /dev/null +++ b/bonus/srcs/requirements/static_site/html/index.html @@ -0,0 +1,59 @@ + + + + + +oriabenk — 42 Student + + + +
+ +
+
O
+

oriabenk

+

Student at 42 School — Systems & Infrastructure

+
+ +
+

About

+

+ I'm a 42 School student working through the common core, focused on + systems programming, networking, and infrastructure. This page is served + as a standalone static site — part of the Inception + project's bonus scope, running in its own Docker container. +

+
+ +
+

Skills

+ +
+ +
+

Inception — Project Highlights

+ +
+ + + +
+ + + diff --git a/bonus/srcs/requirements/static_site/html/script.js b/bonus/srcs/requirements/static_site/html/script.js new file mode 100644 index 0000000..36c0c4e --- /dev/null +++ b/bonus/srcs/requirements/static_site/html/script.js @@ -0,0 +1,2 @@ +document.getElementById("year").textContent = + "© " + new Date().getFullYear() + " oriabenk — served from a static container"; diff --git a/bonus/srcs/requirements/static_site/html/style.css b/bonus/srcs/requirements/static_site/html/style.css new file mode 100644 index 0000000..abc453c --- /dev/null +++ b/bonus/srcs/requirements/static_site/html/style.css @@ -0,0 +1,118 @@ +:root { + --bg: #0f1115; + --card: #171a21; + --border: #262b36; + --text: #e6e8ec; + --muted: #9aa3b2; + --accent: #5eb1ff; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + background: var(--bg); + color: var(--text); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; + line-height: 1.5; +} + +.page { + max-width: 640px; + margin: 0 auto; + padding: 48px 24px 80px; +} + +.hero { + text-align: center; + margin-bottom: 32px; +} + +.avatar { + width: 72px; + height: 72px; + margin: 0 auto 16px; + border-radius: 50%; + background: linear-gradient(135deg, var(--accent), #8a6bff); + display: flex; + align-items: center; + justify-content: center; + font-size: 28px; + font-weight: 700; + color: #0f1115; +} + +.hero h1 { + margin: 0; + font-size: 28px; +} + +.tagline { + color: var(--muted); + margin-top: 4px; +} + +.card { + background: var(--card); + border: 1px solid var(--border); + border-radius: 12px; + padding: 24px; + margin-bottom: 20px; +} + +.card h2 { + margin-top: 0; + font-size: 16px; + text-transform: uppercase; + letter-spacing: 0.06em; + color: var(--accent); +} + +.skills { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.skills li { + background: var(--bg); + border: 1px solid var(--border); + border-radius: 999px; + padding: 6px 14px; + font-size: 14px; +} + +.projects { + list-style: none; + padding: 0; + margin: 0; + display: grid; + gap: 10px; +} + +.projects li { + display: flex; + align-items: center; + gap: 10px; + font-size: 14px; +} + +.dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: var(--accent); + flex-shrink: 0; +} + +footer { + text-align: center; + color: var(--muted); + font-size: 13px; + margin-top: 32px; +}