diff --git a/app/Console/Commands/WaitlistInvite.php b/app/Console/Commands/WaitlistInvite.php
deleted file mode 100644
index 2e330068c..000000000
--- a/app/Console/Commands/WaitlistInvite.php
+++ /dev/null
@@ -1,114 +0,0 @@
-option('people');
- for ($i = 0; $i < $people; $i++) {
- $this->main();
- }
- }
-
- private function main()
- {
- if ($this->argument('email')) {
- if ($this->option('only-email')) {
- $this->next_patient = User::whereEmail($this->argument('email'))->first();
- $this->password = Str::password();
- $this->next_patient->update([
- 'password' => Hash::make($this->password),
- 'force_password_reset' => true,
- ]);
- } else {
- $this->next_patient = Waitlist::where('email', $this->argument('email'))->first();
- }
- if (! $this->next_patient) {
- $this->error("{$this->argument('email')} not found in the waitlist.");
-
- return;
- }
- } else {
- $this->next_patient = Waitlist::orderBy('created_at', 'asc')->where('verified', true)->first();
- }
- if ($this->next_patient) {
- if ($this->option('only-email')) {
- $this->send_email();
-
- return;
- }
- $this->register_user();
- $this->remove_from_waitlist();
- $this->send_email();
- } else {
- $this->info('No verified user found in the waitlist. 👀');
- }
- }
-
- private function register_user()
- {
- $already_registered = User::whereEmail($this->next_patient->email)->first();
- if (! $already_registered) {
- $this->password = Str::password();
- User::create([
- 'name' => str($this->next_patient->email)->before('@'),
- 'email' => $this->next_patient->email,
- 'password' => Hash::make($this->password),
- 'force_password_reset' => true,
- ]);
- $this->info("User registered ({$this->next_patient->email}) successfully. 🎉");
- } else {
- throw new \Exception('User already registered');
- }
- }
-
- private function remove_from_waitlist()
- {
- $this->next_patient->delete();
- $this->info('User removed from waitlist successfully.');
- }
-
- private function send_email()
- {
- $token = Crypt::encryptString("{$this->next_patient->email}@@@$this->password");
- $loginLink = route('auth.link', ['token' => $token]);
- $mail = new MailMessage;
- $mail->view('emails.waitlist-invitation', [
- 'loginLink' => $loginLink,
- ]);
- $mail->subject('Congratulations! You are invited to join Coolify Cloud.');
- send_user_an_email($mail, $this->next_patient->email);
- $this->info('Email sent successfully. 📧');
- }
-}
diff --git a/app/Http/Controllers/Webhook/Waitlist.php b/app/Http/Controllers/Webhook/Waitlist.php
deleted file mode 100644
index dec8ca72d..000000000
--- a/app/Http/Controllers/Webhook/Waitlist.php
+++ /dev/null
@@ -1,63 +0,0 @@
-get('email');
- $confirmation_code = request()->get('confirmation_code');
- try {
- $found = ModelsWaitlist::where('uuid', $confirmation_code)->where('email', $email)->first();
- if ($found) {
- if (! $found->verified) {
- if ($found->created_at > now()->subMinutes(config('constants.waitlist.expiration'))) {
- $found->verified = true;
- $found->save();
- send_internal_notification('Waitlist confirmed: '.$email);
-
- return 'Thank you for confirming your email address. We will notify you when you are next in line.';
- } else {
- $found->delete();
- send_internal_notification('Waitlist expired: '.$email);
-
- return 'Your confirmation code has expired. Please sign up again.';
- }
- }
- }
-
- return redirect()->route('dashboard');
- } catch (Exception $e) {
- send_internal_notification('Waitlist confirmation failed: '.$e->getMessage());
-
- return redirect()->route('dashboard');
- }
- }
-
- public function cancel(Request $request)
- {
- $email = request()->get('email');
- $confirmation_code = request()->get('confirmation_code');
- try {
- $found = ModelsWaitlist::where('uuid', $confirmation_code)->where('email', $email)->first();
- if ($found && ! $found->verified) {
- $found->delete();
- send_internal_notification('Waitlist cancelled: '.$email);
-
- return 'Your email address has been removed from the waitlist.';
- }
-
- return redirect()->route('dashboard');
- } catch (Exception $e) {
- send_internal_notification('Waitlist cancellation failed: '.$e->getMessage());
-
- return redirect()->route('dashboard');
- }
- }
-}
diff --git a/app/Jobs/SendConfirmationForWaitlistJob.php b/app/Jobs/SendConfirmationForWaitlistJob.php
deleted file mode 100755
index 7af8205fc..000000000
--- a/app/Jobs/SendConfirmationForWaitlistJob.php
+++ /dev/null
@@ -1,37 +0,0 @@
-email.'&confirmation_code='.$this->uuid;
- $cancel_url = base_url().'/webhooks/waitlist/cancel?email='.$this->email.'&confirmation_code='.$this->uuid;
- $mail->view('emails.waitlist-confirmation',
- [
- 'confirmation_url' => $confirmation_url,
- 'cancel_url' => $cancel_url,
- ]);
- $mail->subject('You are on the waitlist!');
- send_user_an_email($mail, $this->email);
- } catch (\Throwable $e) {
- send_internal_notification("SendConfirmationForWaitlistJob failed for {$this->email} with error: ".$e->getMessage());
- throw $e;
- }
- }
-}
diff --git a/app/Livewire/Waitlist/Index.php b/app/Livewire/Waitlist/Index.php
deleted file mode 100644
index 0524b495c..000000000
--- a/app/Livewire/Waitlist/Index.php
+++ /dev/null
@@ -1,70 +0,0 @@
- 'required|email',
- ];
-
- public function render()
- {
- return view('livewire.waitlist.index')->layout('layouts.simple');
- }
-
- public function mount()
- {
- if (config('constants.waitlist.enabled') == false) {
- return redirect()->route('register');
- }
- $this->waitingInLine = Waitlist::whereVerified(true)->count();
- $this->users = User::count();
- if (isDev()) {
- $this->email = 'waitlist@example.com';
- }
- }
-
- public function submit()
- {
- $this->validate();
- try {
- $already_registered = User::whereEmail($this->email)->first();
- if ($already_registered) {
- throw new \Exception('You are already on the waitlist or registered.
Please check your email to verify your email address or contact support.');
- }
- $found = Waitlist::where('email', $this->email)->first();
- if ($found) {
- if (! $found->verified) {
- $this->dispatch('error', 'You are already on the waitlist.
Please check your email to verify your email address.');
-
- return;
- }
- $this->dispatch('error', 'You are already on the waitlist.
You will be notified when your turn comes.
Thank you.');
-
- return;
- }
- $waitlist = Waitlist::create([
- 'email' => Str::lower($this->email),
- 'type' => 'registration',
- ]);
-
- $this->dispatch('success', 'Check your email to verify your email address.');
- dispatch(new SendConfirmationForWaitlistJob($this->email, $waitlist->uuid));
- } catch (\Throwable $e) {
- return handleError($e, $this);
- }
- }
-}
diff --git a/app/Models/Waitlist.php b/app/Models/Waitlist.php
deleted file mode 100644
index 28e5f01fd..000000000
--- a/app/Models/Waitlist.php
+++ /dev/null
@@ -1,12 +0,0 @@
- [
- 'enabled' => env('WAITLIST', false),
- 'expiration' => 10,
- ],
-
'sentry' => [
'sentry_dsn' => env('SENTRY_DSN'),
],
diff --git a/database/migrations/2024_12_09_105711_drop_waitlists_table.php b/database/migrations/2024_12_09_105711_drop_waitlists_table.php
new file mode 100644
index 000000000..0e319369d
--- /dev/null
+++ b/database/migrations/2024_12_09_105711_drop_waitlists_table.php
@@ -0,0 +1,31 @@
+id();
+ $table->string('uuid');
+ $table->string('type');
+ $table->string('email')->unique();
+ $table->boolean('verified')->default(false);
+ $table->timestamps();
+ });
+ }
+};
diff --git a/resources/views/emails/waitlist-confirmation.blade.php b/resources/views/emails/waitlist-confirmation.blade.php
deleted file mode 100644
index afd22916a..000000000
--- a/resources/views/emails/waitlist-confirmation.blade.php
+++ /dev/null
@@ -1,7 +0,0 @@
-