commit 9418aae24f8c9afec5691cc7e0c05b3c2e18e6e6 Author: Nico Date: Mon Mar 30 22:12:34 2026 +0200 Initial commit: loop42.de hello world (Vite + nginx Docker) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b947077 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..71fcd2e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM node:20-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build + +FROM nginx:alpine +COPY --from=builder /app/dist /usr/share/nginx/html +COPY nginx.conf /etc/nginx/conf.d/default.conf +EXPOSE 80 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c7f78d7 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,5 @@ +services: + web: + build: . + ports: + - "8080:80" diff --git a/index.html b/index.html new file mode 100644 index 0000000..ce962b1 --- /dev/null +++ b/index.html @@ -0,0 +1,15 @@ + + + + + + loop42 + + + +
+

loop42

+

coming soon

+
+ + diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..6698f80 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,12 @@ +server { + listen 80; + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri $uri/ $uri.html =404; + } + + gzip on; + gzip_types text/css application/javascript image/svg+xml; +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8b8b9f2 --- /dev/null +++ b/package.json @@ -0,0 +1,13 @@ +{ + "name": "loop42-web", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^6.0.0" + } +} diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..9190a02 --- /dev/null +++ b/src/style.css @@ -0,0 +1,29 @@ +*, *::before, *::after { box-sizing: border-box; } + +body { + margin: 0; + background: #0a0a0a; + color: #eee; + font-family: sans-serif; + display: flex; + align-items: center; + justify-content: center; + min-height: 100vh; +} + +main { + text-align: center; +} + +h1 { + font-size: 2rem; + font-weight: 300; + letter-spacing: 0.2em; + margin: 0 0 0.5rem; +} + +p { + opacity: 0.4; + font-size: 0.9rem; + margin: 0; +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..a50275f --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' + +export default defineConfig({ + build: { + outDir: 'dist', + }, +})