feat: add invite code system and multi-image Drone pipeline
Some checks failed
continuous-integration/drone/push Build is failing

- Add InviteCode model with code, maxUses, expiry, usage tracking
- Registration now requires a valid invite code
- New users get USER role instead of ADMIN
- Admin-only /invites page to create, manage, and share invite codes
- Invite links auto-fill code via ?code= URL param
- Drone pipeline now builds app, worker, and bot images separately
- Add NEXT_PUBLIC_APP_URL build arg to fix URL redirects
This commit is contained in:
admin
2026-03-21 15:33:12 +01:00
parent 30fb96b3f9
commit 031a4687fb
12 changed files with 403 additions and 18 deletions

View File

@@ -15,13 +15,14 @@ import {
Building2,
MapPin,
Settings,
UserPlus,
Flame,
} from "lucide-react";
import { cn } from "@/lib/utils";
import { APP_NAME, NAV_ITEMS } from "@/lib/constants";
import { SheetHeader, SheetTitle } from "@/components/ui/sheet";
const icons = { LayoutDashboard, Cylinder, Droplets, Paintbrush, Gem, FileBox, Send, ClipboardList, Building2, MapPin, Settings };
const icons = { LayoutDashboard, Cylinder, Droplets, Paintbrush, Gem, FileBox, Send, ClipboardList, Building2, MapPin, Settings, UserPlus };
export function MobileSidebar() {
const pathname = usePathname();

View File

@@ -16,6 +16,7 @@ import {
Building2,
MapPin,
Settings,
UserPlus,
Flame,
PanelLeftClose,
PanelLeft,
@@ -37,6 +38,7 @@ const icons = {
Building2,
MapPin,
Settings,
UserPlus,
} as const;
export function Sidebar() {