Vorlage für Web Applikation - Cloud Mirror
Go to file
Michael Franz 88030ce384 Initial template 2025-12-04 13:30:07 +01:00
backend Initial template 2025-12-04 13:30:07 +01:00
docker Version 0.1 2025-11-26 17:29:09 +01:00
docs Version 0.1 2025-11-26 17:29:09 +01:00
frontend Initial template 2025-12-04 13:30:07 +01:00
.env.example Version 0.1 2025-11-26 17:29:09 +01:00
.gitignore Version 0.1 2025-11-26 17:29:09 +01:00
Makefile Version 0.1 2025-11-26 17:29:09 +01:00
README.md Version 0.1 2025-11-26 17:29:09 +01:00
docker-compose.mariadb.yml Version 0.1 2025-11-26 17:29:09 +01:00
docker-compose.yml Version 0.1 2025-11-26 17:29:09 +01:00

README.md

AdminTemplate

Eine wiederverwendbare Anwendungsschablone mit Go-Backend, Vue 3 Frontend und Docker-Support.

Features

  • Backend: Go REST API mit Gin Framework
  • Datenbank: SQLite (default) oder MariaDB
  • Frontend: Vue 3 Admin Dashboard mit Routing und State Management
  • Authentifizierung: JWT-basierte Benutzerauthentifizierung
  • Autorisierung: Rollenbasierte Zugriffskontrolle (Admin/User)
  • Docker: Multi-Plattform Container-Support (Linux/Windows)
  • Embedded-Ready: SQLite für Linux Embedded Systeme

Projektstruktur

AdminTemplate/
├── backend/               # Go Backend
│   ├── cmd/server/       # Hauptanwendung
│   ├── internal/         # Interne Packages
│   │   ├── auth/        # Authentifizierung
│   │   ├── database/    # Datenbanklogik
│   │   ├── handlers/    # HTTP Handler
│   │   ├── middleware/  # Middleware
│   │   └── models/      # Datenmodelle
│   └── pkg/config/      # Konfiguration
├── frontend/             # Vue 3 Frontend
│   ├── src/
│   │   ├── components/  # Vue Komponenten
│   │   ├── views/       # Seiten
│   │   ├── router/      # Routing
│   │   ├── stores/      # Pinia Stores
│   │   ├── services/    # API Services
│   │   └── styles/      # CSS
├── docker/              # Docker Konfiguration
└── docker-compose.yml   # Docker Compose Setup

Schnellstart

Mit Docker (Empfohlen)

  1. Repository klonen oder als Schablone nutzen

  2. Umgebungsvariablen konfigurieren

cp .env.example .env
# .env bearbeiten und JWT_SECRET ändern
  1. Mit SQLite starten (Default)
docker-compose up -d
  1. Mit MariaDB starten (Optional)
docker-compose -f docker-compose.yml -f docker-compose.mariadb.yml up -d
  1. Anwendung öffnen

Lokale Entwicklung

Backend

cd backend

# Abhängigkeiten installieren
go mod download

# Umgebungsvariablen konfigurieren
cp .env.example .env

# Server starten
go run cmd/server/main.go

Frontend

cd frontend

# Abhängigkeiten installieren
npm install

# Entwicklungsserver starten
npm run dev

Standard-Benutzer

Das System erstellt automatisch zwei Benutzer:

Benutzername Passwort Rolle
admin admin123 admin
mf mf123 user

WICHTIG: Ändern Sie diese Passwörter in der Produktion!

API Endpoints

Öffentlich

  • POST /api/auth/login - Benutzeranmeldung

Authentifiziert

  • GET /api/auth/me - Aktueller Benutzer

Admin Only

  • GET /api/users - Alle Benutzer auflisten
  • GET /api/users/:id - Benutzer abrufen
  • POST /api/users - Benutzer erstellen
  • PUT /api/users/:id - Benutzer aktualisieren
  • DELETE /api/users/:id - Benutzer löschen

Konfiguration

Backend (.env)

# Server
SERVER_PORT=8080
SERVER_HOST=0.0.0.0
ENV=development

# Datenbank
DB_TYPE=sqlite                    # oder mysql
SQLITE_PATH=./data/admintemplate.db

# MySQL/MariaDB (wenn DB_TYPE=mysql)
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=admintemplate

# Authentifizierung
JWT_SECRET=your-secret-key
TOKEN_DURATION=24

Docker Deployment

Für Linux

docker-compose up -d

Für Windows

docker-compose up -d

Multi-Plattform Build

# Für AMD64 und ARM64
docker buildx build --platform linux/amd64,linux/arm64 -f docker/Dockerfile.backend -t admintemplate-backend .
docker buildx build --platform linux/amd64,linux/arm64 -f docker/Dockerfile.frontend -t admintemplate-frontend .

Als Schablone verwenden

  1. Kopieren Sie das gesamte AdminTemplate Verzeichnis
  2. Umbenennen Sie das Projekt
# Go Module umbenennen
cd backend
# In go.mod: module admintemplate -> module IhrProjektname
go mod edit -module IhrProjektname

# Imports in allen .go Dateien aktualisieren
find . -type f -name "*.go" -exec sed -i 's/admintemplate/IhrProjektname/g' {} +
  1. Passen Sie die Konfiguration an
  2. Erweitern Sie die Anwendung mit Ihrer Geschäftslogik

Entwicklung

Neue API Endpoints hinzufügen

  1. Definieren Sie das Model in backend/internal/models/
  2. Erstellen Sie Handler in backend/internal/handlers/
  3. Registrieren Sie Routen in backend/cmd/server/main.go

Neue Frontend-Seiten hinzufügen

  1. Erstellen Sie View in frontend/src/views/
  2. Fügen Sie Route in frontend/src/router/index.js hinzu
  3. Erstellen Sie Services in frontend/src/services/ für API-Calls

Sicherheit

  • JWT-Token für Authentifizierung
  • Passwort-Hashing mit bcrypt
  • CORS-Support
  • Rollenbasierte Autorisierung
  • SQL-Injection-Schutz durch Prepared Statements

Produktions-Checkliste:

  • JWT_SECRET in .env ändern
  • Standard-Passwörter ändern
  • HTTPS aktivieren (Reverse Proxy)
  • Datenbank-Backups einrichten
  • Logging konfigurieren

Technologie-Stack

Backend:

  • Go 1.21+
  • Gin Web Framework
  • JWT Authentication
  • SQLite/MariaDB

Frontend:

  • Vue 3
  • Vue Router
  • Pinia (State Management)
  • Axios
  • Vite

Deployment:

  • Docker
  • Docker Compose
  • Nginx (Frontend Proxy)

Lizenz

MIT License - Frei verwendbar für Ihre Projekte

Support

Bei Fragen oder Problemen öffnen Sie ein Issue oder passen Sie die Schablone an Ihre Bedürfnisse an.