No description
  • PHP 98.3%
  • Shell 0.7%
  • Blade 0.5%
  • Dockerfile 0.3%
  • JavaScript 0.1%
Find a file
Markus Thiel d791a7f509
All checks were successful
Tests / phpunit (push) Successful in 1m20s
Build & Push Docker Image / build (push) Successful in 22s
Fix(CI): tests/Unit-Verzeichnis via ExampleTest erhalten (Git verfolgt keine leeren Ordner) -> 'Test directory not found' in frischem Clone/CI behoben
2026-06-23 07:19:57 +00:00
.forgejo/workflows Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
app Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
bin Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
bootstrap Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
config Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
database Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
docker Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
lang/vendor/backup Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
public Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
resources Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
routes Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
storage Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
tests Fix(CI): tests/Unit-Verzeichnis via ExampleTest erhalten (Git verfolgt keine leeren Ordner) -> 'Test directory not found' in frischem Clone/CI behoben 2026-06-23 07:19:57 +00:00
.editorconfig Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
.env.example Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
.gitattributes Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
.gitignore Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
.npmrc Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
artisan Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
CHANGELOG.md Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
composer.json Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
composer.lock Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
docker-compose.build.yml Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
docker-compose.quickstart.yml Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
docker-compose.yml Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
Dockerfile Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
package.json Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
phpunit.xml Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
README.md Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00
vite.config.js Initial: natec-skeleton v0.1.0 - leeres Laravel13/Filament5-Fundament (Admin-Panel, Konfig-Cluster, Branding/Settings, Logs, RBAC, CI, Docker) + init-app.sh, abgeleitet aus bereinigtem Persona 2026-06-23 07:10:37 +00:00

natec-skeleton

Lauffaehiges, leeres App-Fundament fuer neue natec-Anwendungen (Laravel 13 / Filament v5). Es bootet, Login und Konfiguration funktionieren, CI ist gruen und das Docker-Image baut — aber es enthaelt keine Fachdomaene. Neue Apps werden daraus geklont und mit einem Skript initialisiert, statt eine bestehende App zu kopieren (das vermeidet Altlasten).

Was enthalten ist

  • Verwaltungs-Panel (/admin, Filament v5) mit generischer Navigation.
  • Konfiguration-Cluster: Branding, Allgemein, Mail, SMS, Backup, Mail-Protokoll, Audit-Log.
  • Wiederverwendbare Bausteine: App\Support\Branding (Dual-Logo hell/dunkel) und App\Support\Settings (In-App-Einstellungen mit ENV-Fallback, DB-sicher).
  • Modelle: Setting, User (mit canAccessPanel-Geruest), MailLog, SmsLog.
  • Dienste: SmsService (TextBee-Gateway).
  • Befehle: skeleton:version, skeleton:ensure-admin, skeleton:ensure-rbac (minimaler, generischer Rollensatz), skeleton:reset-admin-password.
  • Infrastruktur: Migrationen (Users/Cache/Jobs, Settings, Rollen/Rechte, Mail-/SMS-Logs, Activity-Log), Dockerfile, Compose, Entrypoint (mit ensure-rbac + ensure-admin), .forgejo-CI (Tests + Image-Build/-Push), phpunit.xml mit festem Test-APP_KEY.
  • Infra-Smoke-Tests: Panel-Zugriff, RBAC-Befehl, Panel-Boot.

Neue App anlegen

# 1) Neues, leeres Repo anlegen und dieses Skeleton hineinklonen/-spiegeln.
# 2) Platzhalter umbenennen (SKELETON/Skeleton/skeleton -> Appname):
bin/init-app.sh meineapp

# 3) Abhaengigkeiten + lokale Umgebung:
composer install
cp .env.example .env && php artisan key:generate
php artisan migrate --seed && php artisan meineapp:ensure-admin

# 4) Pruefen und Skript entfernen:
vendor/bin/phpunit
git rm bin/init-app.sh

Danach die eigene Fachdomaene bauen (Modelle, Migrationen, Filament-Resources, Navigationsgruppen im AdminPanelProvider, fachliche Rechte/Rollen in EnsureRbac).

Stack

Laravel 13, Filament v5, PostgreSQL 16, FrankenPHP — identische Release-/CI-/Deploy- Konventionen wie die uebrigen natec-Apps (image-only via Portainer, Tag ueber *_TAG).

Konfiguration

Schalter und Stammwerte (Branding, Mail, SMS, Backup) liegen in der In-App-Konfiguration; ENV ist nur Fallback. Beim Anlegen eigener Schalter dieses Prinzip beibehalten.

Deployment

Wie gewohnt: docker-compose.yml zieht das vom CI gebaute Image. Pflicht-Stack-Variable DB_PASSWORD; APP_KEY darf leer bleiben (Entrypoint erzeugt und persistiert ihn). Beim ersten Repo einmalig das CI-Secret REGISTRY_TOKEN setzen, sonst laeuft der Image-Build nicht.