Commit Graph

4 Commits (b9cd20002e5b55b19743123099cfdc103effbb6a)

Author SHA1 Message Date
Boban Blaskovic 29622eff77 Migrate all primary keys + foreign keys to UUID (HasUuids trait)
Per user request: switch from auto-increment IDs to UUID v4 across all
models.

Models — added HasUuids trait:
- User, Cluster, Server, Site, Backup, TeamMember, Invitation,
  SecurityEvent, Certificate, Activity, Cron.

Migrations — $table->id() → $table->uuid('id')->primary(),
$table->foreignId(...) → $table->foreignUuid(...) across stock laravel
users/sessions/jobs migrations + all 10 domain migrations.

Routes: sites/{site} (and any other implicit route-model binding) keeps
working since Laravel resolves by primary key as a string. Tested:
clicking a site row → URL now /sites/019e800c-520a-7022-badd-2ef9d9ed5c61.

Re-seeded: 6 users, 87 sites, 6 servers, 128 security events, 30
activities, 102 backups, 47 crons, 87 certs, 5 team members, 3 invites.

Full Pest regression: 47/47 green. Browser-verified login + sites
index + site details + WP/PHP/Files tabs with template-exact chrome.
2026-06-01 00:00:44 +02:00
Boban Blaskovic 7276e27408 Domain models: Cluster/Server/Site/Backup/TeamMember/Invitation/SecurityEvent/Certificate/Activity/Cron
Full Eloquent foundation matching template data:
- 10 migrations (clusters, servers, sites, backups, team_members,
  invitations, security_events, certificates, activities, crons).
- 10 models with relationships + casts + accessors.
- 10 factories.
- DatabaseSeeder seeds matching template stats:
  - Marie Weber (m.weber@acme-cluster.de / clupilot) as owner
  - Admin (admin@clupilot.test / clupilot)
  - 1 Acme Cluster, 6 named servers (eu-prod-01/-02, edge-ams,
    us-east-01, staging, ap-bom-01) with CPU/RAM/disk loads from template
  - 87 sites distributed [23,19,14,18,6,7] per server
  - 102 backups, 87 SSL certificates, 47 cronjobs
  - 128 security events (matches template 'Blocked / 24h')
  - 5 team members + 3 pending invitations
  - 30 activity feed entries.
2026-05-31 22:33:09 +02:00
Boban Blaskovic 67598ab649 Portainer-ready compose stack + app changes 2026-05-31 17:04:03 +02:00
Boban Blaskovic 624b21fcb9 Initial CluPilot stack setup
Laravel 12 + Livewire v3 + Tailwind v4 + Reverb WebSocket
behind Nginx Proxy Manager (external SSL termination, HTTP-only internal).
MariaDB 11, Redis 7, Mailpit. Dark auth views.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 23:00:14 +02:00