Konfigurationsdateien Beispiele: Docker, CI, tsconfig
Hier stehen kurze Konfigurationsdateien, wie sie in Webprojekten vorkommen: Container und CI, Node-Projektdateien, INI und Properties, Zeitpläne, Server- und Editor-Einstellungen sowie OpenAPI-Beschreibungen. Jedes Snippet ist ein Ausgangspunkt zum Anpassen. Versionsangaben gelten zum Erstellungszeitpunkt und sollten vor der Nutzung geprüft werden.
35 Varianten auf einer Seite, jede mit eigenem Kopier- oder Download-Knopf.
INI: Abschnitte, Schlüssel und Kommentare
; Kommentar mit Semikolon # Kommentar mit Raute [allgemein] …
INI: Werte mit Leerzeichen, Anführungszeichen und Gleichheitszeichen
[pfade] arbeitsordner = C:\Daten\Beispiel Ordner name = "mit Anführungszeichen" …
INI hat keinen Standard: Anführungszeichen, Kommentare nach dem Wert und Zeilen ohne = behandelt jeder Parser anders.
INI: Werte mit Liste und Mehrfachschlüssel
[server] port = 8080 port = 8081 …
Doppelter Schlüssel: Python configparser meldet standardmäßig einen Fehler, andere Parser nehmen den letzten Wert.
Java Properties: Schlüssel mit Punkten
# Kommentar ! Kommentar mit Ausrufezeichen app.name=Beispielanwendung …
Java Properties: Doppelpunkt, Escapes, Fortsetzungszeilen
schluessel:wert mit Doppelpunkt mit\ leerzeichen=Schlüssel mit Leerzeichen umlaut=\u00e4\u00f6\u00fc …
Klassische .properties-Dateien sind ISO-8859-1, deshalb \uXXXX für Umlaute.
Cron: Crontab mit Umgebung und Protokoll
SHELL=/bin/bash PATH=/usr/local/bin:/usr/bin:/bin MAILTO="" …
Cron startet mit sehr kleinem PATH; deshalb SHELL und PATH setzen und volle Pfade verwenden.
Cron: Zeitplan in GitHub Actions
on: schedule: - cron: '30 4 * * 1-5' # Mo bis Fr um 04:30 UTC …GitHub rechnet in UTC. Geplante Läufe können sich bei hoher Last verzögern.
Cron: Kubernetes CronJob
apiVersion: batch/v1 kind: CronJob metadata: …
Image-Name ist erfunden. Der Zeitplan gilt in der Zeitzone des Clusters, außer spec.timeZone ist gesetzt.
systemd: Timer-Unit mit täglichem Lauf
[Unit] Description=Beispiel-Backup täglich …
Persistent=true holt verpasste Läufe nach dem Start nach. Dazu gehört eine gleichnamige .service-Datei.
systemd: Service-Unit für eine Node-Anwendung
[Unit] Description=Beispielanwendung After=network.target …
Dockerfile: Node.js mit mehrstufigem Build
FROM node:22-alpine AS build WORKDIR /app COPY package*.json ./ …
Pfade (dist/server.js) an das eigene Projekt anpassen.
Dockerfile: Python-Anwendung
FROM python:3.12-slim WORKDIR /app ENV PYTHONUNBUFFERED=1 …
Dockerfile: statische Seite mit nginx
FROM nginx:1.27-alpine COPY dist/ /usr/share/nginx/html/ COPY nginx.conf /etc/nginx/conf.d/default.conf …
.dockerignore: typische Ausschlüsse
node_modules .git .gitignore …
docker-compose.yml: Anwendung mit PostgreSQL
services: app: build: . …Passwörter sind Platzhalter nur für lokale Entwicklung.
docker-compose.yml: Redis und Mailpit für die Entwicklung
services: redis: image: redis:7-alpine …GitHub Actions: Node.js-CI mit Test und Build
name: CI on: …
Aktionsversionen (v4) gelten zum Erstellungszeitpunkt; auf aktuelle Hauptversionen prüfen.
GitHub Actions: Secret als Umgebungsvariable nutzen
jobs: deploy: runs-on: ubuntu-latest …Das Secret DEPLOY_TOKEN legt man in den Repository-Einstellungen an, nie in der Datei.
.htaccess: Weiterleitung und Fehlerseite
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] …package.json: kleines Projekt mit Skripten
{ "name": "beispiel-projekt", "version": "1.0.0", …package.json: Next.js-Anwendung
{ "name": "beispiel-shop", "version": "0.1.0", …Versionsbereiche zum Erstellungszeitpunkt plausibel gewählt; vor Nutzung auf aktuelle Versionen prüfen.
tsconfig.json: Node.js-Projekt (streng)
{ "compilerOptions": { "target": "ES2022", …tsconfig.json: React-Anwendung mit Vite
{ "compilerOptions": { "target": "ES2022", …Makefile: übliche Ziele für ein Projekt
.PHONY: install test build clean install: …
Rezeptzeilen müssen mit einem Tabulator beginnen, nicht mit Leerzeichen.
.gitignore: Node.js und Editoren
node_modules/ dist/ build/ …
.gitignore: Python
__pycache__/ *.py[cod] .venv/ …
.gitattributes: Zeilenenden vereinheitlichen
* text=auto eol=lf *.bat text eol=crlf *.png binary …
.editorconfig: gemeinsame Editor-Einstellungen
root = true [*] …
.prettierrc: Prettier-Einstellungen
{ "semi": false, "singleQuote": true, …eslint.config.js: Grundkonfiguration (Flat Config)
import js from '@eslint/js' export default [ …
logrotate: wöchentliche Rotation
/var/log/beispiel/*.log { weekly rotate 8 …robots.txt: Bereiche sperren und Sitemap angeben
User-agent: * Disallow: /admin/ Disallow: /intern/ …
robots.txt ist eine Bitte an Crawler, kein Zugriffsschutz.
OpenAPI 3.0: minimale Beschreibung mit einer Route
openapi: 3.0.3 info: title: Beispiel-API …
OpenAPI 3.0: POST mit Request-Body und Fehlerantwort
paths: /kunden: post: …Ausschnitt: gehört unter die Wurzel einer vollständigen OpenAPI-Datei, KundeNeu muss unter components.schemas stehen.
OpenAPI 3.0: Bearer-Authentifizierung
components: securitySchemes: bearerAuth: …
Weitere Themen in Datenformate & Snippets
- JSON Beispiele: gültig und ungültig zum Testen
- XML Beispiele: Namespaces, CDATA und Fehlerfälle
- YAML Beispiele: Listen, Anker und typische Fallen
- Markdown Beispiele: Tabelle, Listen, Codeblock
- HTML Beispiele: Formulare, Tabellen und Meta-Tags
- GraphQL Beispiele: Schema, Query, Mutation, Antwort
- Code-Snippets: Kundenmodell in vielen Sprachen
- curl Beispiele: GET, POST, Header, Upload, Auth