|
|
||
|---|---|---|
| backend | ||
| docker | ||
| docs | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| Makefile | ||
| README.md | ||
| docker-compose.mariadb.yml | ||
| docker-compose.yml | ||
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)
-
Repository klonen oder als Schablone nutzen
-
Umgebungsvariablen konfigurieren
cp .env.example .env
# .env bearbeiten und JWT_SECRET ändern
- Mit SQLite starten (Default)
docker-compose up -d
- Mit MariaDB starten (Optional)
docker-compose -f docker-compose.yml -f docker-compose.mariadb.yml up -d
- Anwendung öffnen
- Frontend: http://localhost
- Backend API: http://localhost:8080/api
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 auflistenGET /api/users/:id- Benutzer abrufenPOST /api/users- Benutzer erstellenPUT /api/users/:id- Benutzer aktualisierenDELETE /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
- Kopieren Sie das gesamte AdminTemplate Verzeichnis
- 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' {} +
- Passen Sie die Konfiguration an
- Erweitern Sie die Anwendung mit Ihrer Geschäftslogik
Entwicklung
Neue API Endpoints hinzufügen
- Definieren Sie das Model in
backend/internal/models/ - Erstellen Sie Handler in
backend/internal/handlers/ - Registrieren Sie Routen in
backend/cmd/server/main.go
Neue Frontend-Seiten hinzufügen
- Erstellen Sie View in
frontend/src/views/ - Fügen Sie Route in
frontend/src/router/index.jshinzu - 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.