No description
- TypeScript 94.6%
- CSS 2.1%
- HTML 1.6%
- Dockerfile 1.2%
- JavaScript 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Design-Optimierung: A11y, AI-Tell-Reduktion, Self-Hosted Fonts, Tailwind-Migration Closes #2 See merge request techsolutions/landingpage!3 |
||
| backend | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| CLAUDE.md | ||
| docker-compose.override.yml | ||
| docker-compose.prod.yml | ||
| docker-compose.testing.yml | ||
| docker-compose.yml | ||
| Dockerfile | ||
| README.md | ||
AK TechSolutions Landing Page
Produktionsreife Landing Page für AK TechSolutions - IT-Beratung für Privatpersonen.
🚀 Quick Start
Voraussetzungen
- Node.js 20+
- npm oder pnpm
- Docker & Docker Compose (optional)
Lokale Entwicklung
# Umgebungsvariablen kopieren
cp .env.example .env
# Backend starten (Terminal 1)
cd backend
npm install
npm run dev
# Frontend starten (Terminal 2)
cd frontend
npm install
npm run dev
Die Anwendung ist dann unter http://localhost:5173 erreichbar.
Mit Docker Compose
docker compose up --build
📁 Projektstruktur
ak-techsolutions/
├── frontend/ # React 18 + TypeScript + Vite + Tailwind v3
│ ├── src/
│ │ ├── components/ # Wiederverwendbare Komponenten
│ │ ├── pages/ # Seiten-Komponenten
│ │ ├── data/ # Statische Daten (Services, FAQs)
│ │ ├── types.ts # TypeScript Typen
│ │ ├── App.tsx # Haupt-App mit Routing
│ │ └── main.tsx # Entry Point
│ ├── public/assets/ # Statische Assets (Bilder)
│ ├── tests/ # Vitest Tests
│ └── package.json
│
├── backend/ # Node.js 20 + Express + TypeScript
│ ├── src/
│ │ ├── index.ts # Express App Setup
│ │ ├── routes/contact.ts # Kontaktformular API
│ │ └── middleware/
│ │ ├── rateLimit.ts # Rate Limiting
│ │ └── validate.ts # Zod Validierung
│ ├── tests/ # Jest Tests
│ └── package.json
│
├── Dockerfile # Multi-Stage Production Build
├── docker-compose.yml # Production Docker Config
├── docker-compose.override.yml # Development Docker Config
├── .gitlab-ci.yml # CI/CD Pipeline
├── .env.example # Umgebungsvariablen Vorlage
├── README.md # Diese Datei
└── CLAUDE.md # Entwickler-Dokumentation
🔧 Umgebungsvariablen
| Variable | Beschreibung | Default |
|---|---|---|
NODE_ENV |
Umgebung (development/production) | development |
PORT |
Backend Port | 3000 |
N8N_WEBHOOK_URL |
N8N Webhook URL für Kontaktformular | - |
FRONTEND_ORIGIN |
Erlaubte Frontend-Origin für CORS | http://localhost:5173 |
🧪 Tests
Frontend Tests
cd frontend
npm run test # Einmalig ausführen
npm run test:watch # Watch Mode
npm run test:coverage # Mit Coverage Report
Backend Tests
cd backend
npm run test # Einmalig ausführen
npm run test:watch # Watch Mode
🐳 Docker
Production Build
docker build -t ak-techsolutions/landingpage:latest .
Production Start
docker compose up -d
Development Start
docker compose -f docker-compose.yml -f docker-compose.override.yml up
🔄 GitLab CI/CD
Die Pipeline besteht aus folgenden Stages:
- lint - ESLint für Frontend und Backend
- test - Vitest (Frontend) und Jest (Backend) mit Coverage
- build - Docker Image bauen
- push - Image ins GitLab Registry pushen
Tags
| Branch | Tag |
|---|---|
develop |
:develop, :{commit-sha} |
main |
:{version}, :latest |
🛡️ Security Features
- Rate Limiting: 5 Anfragen pro 15 Minuten pro IP
- Honeypot: Verstecktes Feld zur Bot-Erkennung
- Zod Validierung: Server-seitige Eingabevalidierung
- Helmet.js: Security HTTP Header
- CORS: Nur erlaubte Origins
- Payload Limit: Maximal 10kb pro Request
📝 Lizenz
© 2026 AK TechSolutions. Alle Rechte vorbehalten.