coollabsio / coolify

An open-source & self-hostable Heroku / Netlify / Vercel alternative.
https://coolify.io
Apache License 2.0
32.27k stars 1.68k forks source link

[Bug]: Server with already installed docker engine cannot be added/validated #1578

Open linozen opened 9 months ago

linozen commented 9 months ago

Description

I cannot seem to add a server (based on NixOS) with a running docker engine to Coolify. It's stuck on:

Server OS type is not supported for automated installation. Please install Docker manually before continuing:

However, if I run command -v docker on the NixOS server, everything is working OK. The only difference to a Ubuntu-based server is that the executable is located at: /run/current-system/sw/bin/docker instead of /usr/bin/docker. But adding a symbolic link from /usr/bin/docker to the binary location on Ubuntu does not work either.

Minimal Reproduction (if possible, example repository)

  1. install docker engine on NixOS-based server
  2. Try to add the server in Coolify
  3. Validate that SSH connection succeeds
  4. Run into error mentioned above

Exception or Error

Server OS type is not supported for automated installation. Please install Docker manually before continuing:

Version

v4.0.0-beta.174

andrasbacsai commented 9 months ago

I never used NixOS based server, so it is time to test it.

linozen commented 9 months ago

@andrasbacsai Haha, thanks @andrasbacsai! NixOS is a great system for container hosts as its package manager stores data on a read-only partition. All configuration for a host can be done in configuration files. For quick installation of a NixOS server instance on e.g. Hetzner, I recommend nixos-anywhere. They have an example file which works perfectly for a Hetzner host (it does everything including disk partitioning). If you need any further help debugging, let me know.

theashishmaurya commented 4 months ago

@andrasbacsai Recently tried coolify on cloudlinux which is provided by our VPS provider, but having the same issue. Will this issue be any closer to getting solved?

Xallt commented 3 months ago

Having the same issue

Xallt commented 3 months ago

Managed to pinpoint it to this

https://github.com/coollabsio/coolify/blob/88581c898356e7292f999890a8aa6fff29e650ad/app/Livewire/Server/ValidateAndInstall.php#L83-L87

So it recommends manual installation but does not have a branch of logic for the case where the user did do a manual installation.

I suggest either: 1) Adding the Docker-Engine checks inside of the if (!$this->supported_os_type) and proceed with version checking if that was successful 2) Just prevent this from returning an error - make it so that the message is printed, but it doesn't exit with an error

Xallt commented 3 months ago

A temporary hack-fix was easy:

sudo su
cp /etc/os-release /etc/os-release.backup
vim /etc/os-release
<Change the ID field to `ubuntu` and exit>

Run the validation, it passes, then just restore the os-release

cp /etc/os-release.backup /etc/os-release
rm /etc/os-release.backup
ananth-iyer commented 3 months ago

Same issue in Ubuntu, we have docker installed already and need to skip install docker in "validate and install docker" process

kzakrzewski-photon commented 3 months ago

Same issue on ID=manjaro - method for temporary change ID to ubuntu in /etc/os-release worked. Everything installed as needed.

nmpereira commented 2 months ago

Same temp fix works with ID=pop (popos). Can this be fixed so that we dont need this workaround?

AnonyMars commented 2 weeks ago

Guys, I'm on Ubuntu and I tried all your techniques, changing it to ID=debian or ID=pops. Both weren't working. Does someone has another fix please ?

nmpereira commented 2 weeks ago

Guys, I'm on Ubuntu and I tried all your techniques, changing it to ID=debian or ID=pops. Both weren't working. Does someone has another fix please ?

Have you tried ID=ubuntu as per the original solution by @Xallt ?

AnonyMars commented 2 weeks ago

@nmpereira here is my os-release file on my ubuntu :

PRETTY_NAME="Ubuntu 22.04.4 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.4 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy

So my os ID is already set to ubuntu, any clue please ? :D