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

Welcome to Coolify

Connect your first server and start deploying in minutes

What You'll Set Up

Server Connection
Connect via SSH to deploy your resources
Docker Environment
Automated installation and configuration
Project Structure
Organize your applications and resources
Let's go!
@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')
Recommended

Hetzner Cloud

Deploy servers directly from your Hetzner Cloud 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)
@foreach ($privateKeys as $privateKey) @endforeach Use Selected Key
OR
@endif

Use Existing Key

I have my own SSH key

Generate New Key

Create ED25519 key pair

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 Steps

Test SSH Connection
Verify key-based authentication
Check OS Compatibility
Verify supported Linux distribution
Install Docker Engine
Auto-install if version {{ $minDockerVersion }}+ not found
Configure Network
Set up Docker networks and proxy
@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)
Or use existing
@foreach ($projects as $project) @endforeach 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

Server: {{ $createdServer->name }}
{{ $createdServer->ip }}
Project: {{ $createdProject->name }}
Production environment ready
Docker Engine
Installed and running
Deploy Your First Resource
@endif
@if ($currentState !== 'welcome' && $currentState !== 'create-resource')
@endif