@php use App\Enums\ProxyTypes; @endphp Onboarding | Coolify
@if ($currentState === 'welcome')

Welcome to Coolify

Connect your first server and start deploying in minutes.

@foreach ([ ['icon' => 'servers', 'title' => 'Server connection', 'description' => 'Connect through SSH to host your resources.'], ['icon' => 'settings', 'title' => 'Docker environment', 'description' => 'Validate and configure the deployment runtime.'], ['icon' => 'projects', 'title' => 'Project structure', 'description' => 'Create a project and its first environment.'], ] as $onboardingItem)
{{ $onboardingItem['title'] }} {{ $onboardingItem['description'] }}
@endforeach
Continue
@elseif ($currentState === 'explanation') Coolify automates deployment and infrastructure management on your own servers. Deploy applications from Git, manage databases, and monitor everything without vendor lock-in.

Coolify handles server configuration, Docker management, and deployments automatically.

All data and configurations live on your infrastructure. Works offline except for external integrations.

Get real-time notifications via Discord, Telegram, Email, and other platforms.

Continue
@elseif ($currentState === 'select-server-type') Select where to deploy your applications and databases. You can add more servers later.
@can('viewAny', App\Models\CloudProviderToken::class) @if ($currentState === 'select-server-type')

Hetzner Cloud

Deploy servers directly from your Hetzner Cloud account.

Vultr Cloud

Deploy servers directly from your Vultr account.

@endif @endcan
@if (!$serverReachable)

Server is not reachable

Please check the connection details below and correct them if they are incorrect.

Non-root user is experimental: docs

If the connection details are correct, please ensure:

  • The correct public key is in your ~/.ssh/authorized_keys file for the specified user
  • Or skip the boarding process and manually add a new private key to Coolify and the server

For more help, check this documentation.

Check again
@endif

host your applications, databases, and services (collectively called resources). All CPU-intensive operations run on the target server.

The machine running Coolify. Not recommended for production workloads due to resource contention.

Any SSH-accessible server: cloud providers (AWS, Hetzner, DigitalOcean), bare metal, or self-hosted infrastructure.

@elseif ($currentState === 'private-key') Configure SSH key-based authentication for secure server access. @if ($privateKeys && $privateKeys->count() > 0) @php $privateKeyOptions = $privateKeys ->map(fn ($privateKey) => [ 'value' => $privateKey->id, 'label' => $privateKey->name, ]) ->values() ->all(); @endphp
Use selected key
Or
@endif

Uses public-key cryptography for secure, password-less server access.

Add the public key to your server's ~/.ssh/authorized_keys file.

Coolify generates ED25519 keys by default for optimal security and performance.

@elseif ($currentState === 'create-private-key') Configure your SSH key for server authentication.
@if ($privateKeyType === 'create') @else @endif @if ($privateKeyType === 'create')

Action Required

Copy the public key above and add it to your server's ~/.ssh/authorized_keys file.

@endif Save SSH Key

Private keys are encrypted at rest in Coolify's database.

Deploy the public key to ~/.ssh/authorized_keys on your target server for the specified user.

Supports RSA, ED25519, ECDSA, and DSA key types in OpenSSH format.

@elseif ($currentState === 'create-server') Provide connection details for your remote server.

Non-root user support is experimental. Learn more

Validate Connection

Server must be accessible via SSH on the specified port (default 22).

Use IP addresses for direct connections or ensure DNS resolution is configured.

Root or sudo-enabled users recommended for full Docker management capabilities.

@elseif ($currentState === 'validate-server') Coolify will automatically install Docker {{ $minDockerVersion }}+ if not present.

Validation checkpoints

@foreach ([ ['icon' => 'keys', 'title' => 'Test SSH connection', 'description' => 'Verify key-based authentication'], ['icon' => 'servers', 'title' => 'Check OS compatibility', 'description' => 'Verify supported Linux distribution'], ['icon' => 'layers', 'title' => 'Install Docker Engine', 'description' => 'Auto-install if version '.$minDockerVersion.'+ not found'], ['icon' => 'globe', 'title' => 'Configure network', 'description' => 'Set up Docker networks and proxy'], ] as $validationCheckpoint) @endforeach
@if ($prerequisiteInstallAttempts > 0)

Installing prerequisites

@endif Server validation Start validation

Coolify installs Docker Engine, Docker Compose, and configures system requirements automatically.

Minimum Docker Engine {{ $minDockerVersion }}.x required. Manual installation guide

Sets up Docker networks, proxy configuration, and resource monitoring.

@elseif ($currentState === 'create-project') @if ($projects && $projects->count() > 0) You have existing projects. Select one or create a new project to organize your resources. @else Create your first project to organize applications, databases, and services. @endif
Create "My First Project" @if ($projects && $projects->count() > 0) @php $projectOptions = $projects ->map(fn ($project) => [ 'value' => $project->id, 'label' => $project->name, ]) ->values() ->all(); @endphp
Or use existing
Use selected project
@endif

Group related resources (apps, databases, services) into logical projects.

Each project includes a production environment by default. Add staging, development, or custom environments as needed.

Projects inherit team permissions and can be managed collaboratively.

@elseif ($currentState === 'create-resource')

Setup complete

Your server is connected and ready. Start deploying your first resource.

What's configured

Deploy your first resource
@endif
@if ($currentState !== 'welcome' && $currentState !== 'create-resource')
@endif