Giter Club home page Giter Club logo

coolify's Introduction

About the Project

Coolify is an open-source & self-hostable alternative to Heroku / Netlify / Vercel / etc.

It helps you to manage your servers, applications, databases on your own hardware, all you need is SSH connection. You can manage VPS, Bare Metal, Raspberry PI's anything.

Imagine if you could have the ease of a cloud but with your own servers. That is Coolify.

No vendor lock-in, which means that all the configuration for your applications/databases/etc are saved to your server. So if you decide to stop using Coolify (oh nooo), you could still manage your running resources. You just lose the automations and all the magic. ๐Ÿช„๏ธ

For more information, take a look at our landing page here.

Installation

curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

You can find the installation script source here.

Support

Contact us here.

Donations

To stay completely free, open-source, no feature behind paywall and evolve the project, we need your help. If you like Coolify, please consider donating to help us fund the future development of the project.

https://coolify.io/sponsorships

Thank you so much!

Special thanks to our biggest sponsor, CCCareers!

cccareers logo

Github Sponsors ($40+)

BC Direct typebot American Cloud CryptoJobsList UXWizz Younes Barrad Automaze Corentin Clichy Niklas Lausch Pixel Infinito Tyler Whitesides NiftyCo Imre Ujlaki Ilias Ism Paweล‚ Pierล›cionek Michael Mazurczak

Organizations

Individuals

Cloud

If you do not want to self-host Coolify, there is a paid cloud version available: https://app.coolify.io

For more information & pricing, take a look at our landing page here.

Why should I use the Cloud version?

The recommended way to use Coolify is to have one server for Coolify and one (or more) for the resources you are deploying. A server is around 4-5$/month.

By subscribing to the cloud version, you get the Coolify server for the same price, but with:

  • High-availability
  • Free email notifications
  • Better support
  • Less maintenance for you

Recognitions

Featured on Hacker News

Coolify - An open-source & self-hostable Heroku, Netlify alternative | Product Hunt

coollabsio%2Fcoolify | Trendshift

Repo Activity

Alt

Star History

Star History Chart

coolify's People

Contributors

andrasbacsai avatar ceebdev avatar charcoalstyles avatar dominicbachmann avatar esdete2 avatar estubmo avatar gabrielengel avatar hades200082 avatar hamanuha avatar iamevanyt avatar ijpatricio avatar ikezedev avatar itishermann avatar lichtscheu avatar llxd avatar mobilpadde avatar mrsquaare avatar rados51 avatar raybb avatar restray avatar saravieira avatar sawa-ko avatar scmmishra avatar scshiv29-dev avatar stooit avatar tetrisiq avatar theh2so4 avatar vasani-arpit avatar w3cj avatar zek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

coolify's Issues

Might need to upgrade `node:lts`

Hi,

Coolify is pretty cool, thanks for writing it.

I'm on Ubuntu 21.04

I had this unsupported python error when installing it initially:

Error Log
Sending build context to Docker daemon  2.045MB

Step 1/15 : FROM node:lts
 ---> db40ea2d00ea
Step 2/15 : LABEL coolify-preserve=true
 ---> Using cache
 ---> 8fc9ac2f2a9c
Step 3/15 : WORKDIR /usr/src/app
 ---> Using cache
 ---> 3e844c17b3cb
Step 4/15 : RUN curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-20.10.6.tgz | tar -xzvf - docker/docker -C . --strip-components 1
 ---> Using cache
 ---> 593f1b7b89be
Step 5/15 : RUN mv /usr/src/app/docker /usr/bin/docker
 ---> Using cache
 ---> bbca9be7e07e
Step 6/15 : RUN curl -L https://github.com/a8m/envsubst/releases/download/v1.2.0/envsubst-`uname -s`-`uname -m` -o /usr/bin/envsubst
 ---> Using cache
 ---> 47c7a6510d59
Step 7/15 : RUN curl -L https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 -o /usr/bin/jq
 ---> Using cache
 ---> b47bcfb64e14
Step 8/15 : RUN chmod +x /usr/bin/envsubst /usr/bin/jq /usr/bin/docker
 ---> Using cache
 ---> d9336c52b64f
Step 9/15 : RUN curl -f https://get.pnpm.io/v6.js | node - add --global pnpm
 ---> Using cache
 ---> 87369b22f6a3
Step 10/15 : COPY ./*package.json .
 ---> Using cache
 ---> 1dbaad40f058
Step 11/15 : RUN pnpm install
 ---> Running in 02eaeebc4406
Progress: resolved 1, reused 0, downloaded 0, added 0
Progress: resolved 22, reused 0, downloaded 0, added 0
Progress: resolved 47, reused 0, downloaded 27, added 0
Progress: resolved 68, reused 0, downloaded 49, added 0
Progress: resolved 96, reused 0, downloaded 75, added 0
Progress: resolved 141, reused 0, downloaded 115, added 0
Progress: resolved 184, reused 0, downloaded 155, added 0
Progress: resolved 269, reused 0, downloaded 234, added 0
Progress: resolved 354, reused 0, downloaded 309, added 0
Progress: resolved 449, reused 0, downloaded 392, added 0
Packages: +454
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Packages are hard linked from the content-addressable store to the virtual store.
  Content-addressable store is at: /root/.pnpm-store/v3
  Virtual store is at:             node_modules/.pnpm
Progress: resolved 455, reused 0, downloaded 445, added 26
Progress: resolved 455, reused 0, downloaded 450, added 450
Progress: resolved 455, reused 0, downloaded 452, added 452
.../[email protected]/node_modules/bcrypt install$ node-pre-gyp install --fallback-to-build
.../[email protected]/node_modules/esbuild postinstall$ node install.js
.../node_modules/svelte-preprocess postinstall$ echo "[svelte-preprocess] Don't forget to install the preprocessors packages that will be used: node-sass/sass, stylus, less, postcss & postcss-load-config, coffeescript, pug, etc..."
.../node_modules/svelte-preprocess postinstall: [svelte-preprocess] Don't forget to install the preprocessors packages that will be used: node-sass/sass, stylus, less, postcss & postcss-load-config, coffeescript, pug, etc...
.../node_modules/svelte-preprocess postinstall: Done
.../[email protected]/node_modules/bcrypt install: node-pre-gyp info it worked if it ends with ok
.../[email protected]/node_modules/bcrypt install: node-pre-gyp info using [email protected]
.../[email protected]/node_modules/bcrypt install: node-pre-gyp info using [email protected] | linux | x64
Progress: resolved 455, reused 0, downloaded 454, added 454, done
.../[email protected]/node_modules/bcrypt install: node-pre-gyp info check checked for "/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node" (not found)
.../[email protected]/node_modules/bcrypt install: node-pre-gyp http GET https://github.com/kelektiv/node.bcrypt.js/releases/download/v5.0.1/bcrypt_lib-v5.0.1-napi-v3-linux-x64-glibc.tar.gz
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! install response status 403 Forbidden on https://github.com/kelektiv/node.bcrypt.js/releases/download/v5.0.1/bcrypt_lib-v5.0.1-napi-v3-linux-x64-glibc.tar.gz 
.../[email protected]/node_modules/bcrypt install: node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v83 ABI, glibc) (falling back to source compile with node-gyp) 
.../[email protected]/node_modules/bcrypt install: node-pre-gyp WARN Hit error response status 403 Forbidden on https://github.com/kelektiv/node.bcrypt.js/releases/download/v5.0.1/bcrypt_lib-v5.0.1-napi-v3-linux-x64-glibc.tar.gz 
.../[email protected]/node_modules/bcrypt install: gyp info it worked if it ends with ok
.../[email protected]/node_modules/bcrypt install: gyp info using [email protected]
.../[email protected]/node_modules/bcrypt install: gyp info using [email protected] | linux | x64
.../[email protected]/node_modules/bcrypt install: gyp info ok 
.../[email protected]/node_modules/bcrypt install: gyp info it worked if it ends with ok
.../[email protected]/node_modules/bcrypt install: gyp info using [email protected]
.../[email protected]/node_modules/bcrypt install: gyp info using [email protected] | linux | x64
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python 
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python Python is not set from command line or npm configuration
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python Python is not set from environment variable PYTHON
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python checking if "python3" can be used
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - executable path is "/usr/bin/python3"
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - version is "3.5.3"
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - version is 3.5.3 - should be >=3.6.0
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - THIS VERSION OF PYTHON IS NOT SUPPORTED
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python checking if "python" can be used
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - executable path is "/usr/bin/python"
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - version is "2.7.13"
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - version is 2.7.13 - should be >=3.6.0
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - THIS VERSION OF PYTHON IS NOT SUPPORTED
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python 
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python **********************************************************
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python You need to install the latest version of Python.
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python you can try one of the following options:
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - Use the switch --python="/path/to/pythonexecutable"
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python   (accepted by both node-gyp and npm)
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - Set the environment variable PYTHON
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python - Set the npm configuration variable python:
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python   npm config set python "/path/to/pythonexecutable"
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python For more information consult the documentation at:
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python **********************************************************
.../[email protected]/node_modules/bcrypt install: gyp ERR! find Python 
.../[email protected]/node_modules/bcrypt install: gyp ERR! configure error 
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack Error: Could not find any Python installation to use
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at PythonFinder.fail (/usr/local/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/lib/find-python.js:330:47)
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at PythonFinder.runChecks (/usr/local/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/lib/find-python.js:159:21)
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at PythonFinder.<anonymous> (/usr/local/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/lib/find-python.js:266:16)
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at PythonFinder.execFileCallback (/usr/local/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/lib/find-python.js:297:7)
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at ChildProcess.exithandler (child_process.js:381:7)
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at maybeClose (internal/child_process.js:1055:16)
.../[email protected]/node_modules/bcrypt install: gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
.../[email protected]/node_modules/bcrypt install: gyp ERR! System Linux 5.11.0-25-generic
.../[email protected]/node_modules/bcrypt install: gyp ERR! command "/usr/local/bin/node" "/usr/local/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=3" "--node_napi_label=napi-v3"
.../[email protected]/node_modules/bcrypt install: gyp ERR! cwd /usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt
.../[email protected]/node_modules/bcrypt install: gyp ERR! node -v v14.17.6
.../[email protected]/node_modules/bcrypt install: gyp ERR! node-gyp -v v8.2.0
.../[email protected]/node_modules/bcrypt install: gyp ERR! not ok 
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! build error 
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3 --napi_version=8 --node_abi_napi=napi --napi_build_version=3 --node_napi_label=napi-v3' (1)
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/usr/src/app/node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1055:16)
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! System Linux 5.11.0-25-generic
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! command "/usr/local/bin/node" "/usr/src/app/node_modules/.pnpm/@[email protected]/node_modules/@mapbox/node-pre-gyp/bin/node-pre-gyp" "install" "--fallback-to-build"
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! cwd /usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! node -v v14.17.6
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! node-pre-gyp -v v1.0.5
.../[email protected]/node_modules/bcrypt install: node-pre-gyp ERR! not ok 
.../[email protected]/node_modules/bcrypt install: Failed to execute '/usr/local/bin/node /usr/local/pnpm-global/5/node_modules/.pnpm/[email protected]/node_modules/pnpm/dist/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/bcrypt/lib/binding/napi-v3 --napi_version=8 --node_abi_napi=napi --napi_build_version=3 --node_napi_label=napi-v3' (1)
.../[email protected]/node_modules/bcrypt install: Failed
โ€‰ELIFECYCLEโ€‰ Command failed with exit code 1.

After replacing FROM node:lts with FROM node:latest in install/Dockerfile-new, I was able to continue the installation in coollabs-installers/index.php normally. I know this ubuntu version isn't tested, but I'm guessing the installer will work fine with a slight bump to the node image version.

Output of name -a
Linux localhost 5.11.0-25-generic #27-Ubuntu SMP Fri Jul 9 23:06:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

API

Use case
There are a myriad of use cases for an API, one that is most common is adding functionality and deeply integrating Coolify with other platforms, for instance my company wishes to deeply integrate Coolify into our existing dashboard and for this we will need an API. Beyond this, it could be used for billing calculators, viewing usage for apps etc. from third party tools. (with more functionality being added as Coolify adds more features). This API should also come with clear cut documentation, that can be easily understood by developers.

The API (server) could be made in any language fit, but my personal recommendation would be to build with TS (Fastify) or Rust (Rocket).

This obviously adds a whole new scope to the project, but this is very necessary to move forward and to make Coolify into an enterprise grade project.

Footnotes
My company, is happy to invest man hours and make donations to help where possible; as am I happy to PR for this specific issue.

Video Demo in Safari

Just wanted to give you a heads up, the video has some weird playback in Safari. It's the first time I've seen something like that but could be due to the webm format in Safari (Version 14.1.1 (16611.2.7.1.4)).

Anyhow awesome project ๐Ÿ‘

Screen Shot 2021-05-27 at 12 31 08 PM

Install script not working

Installation breaks after asking for Let's encrypt email address with message:

Error: Cannot query your public address against whoami.akamai.net. Please report the problem on Github!
    at getAddresses (/snapshot/coolify/index.js)
    at expressInstallation (/snapshot/coolify/index.js)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async coolifyMe (/snapshot/coolify/index.js)

Using ubuntu 20.04 fresh install

Background / Cron jobs

Description

It would be nice if it was possible to create cron jobs on the fly, these could be run one time or every X period (similar to a cron job); this allows for many new types of services to be created; i.e. a catalogue update or marketing mail every day, week or month. the possibilities are endless and I believe it falls in the scope of Coolify to allow for such trivial functionality without having to do extra work.

[Feature request] Ability to access with just IP

Sometimes we use things like coolify in local area network rather the public network.

So we don't need a domain name and https.

But now domain name and https is required to install coolify.

Coolify not starting after install

Hi! I'm tried to install coolify, but after installation I getting an error when loading admin page. docker container list returned this:

CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS       NAMES
de4208d382ff   bitnami/mongodb:4.4   "/opt/bitnami/scriptโ€ฆ"   4 minutes ago   Up 4 minutes   27017/tcp   coollabs-mongodb_mongodb.1.oxxaiewkfp00hf2gww2e80t4x

I tried to manually run coolify with docker run -d -p3000:3000 --name coolify coolify, but in logs I have an error:

> [email protected] start /usr/src/app
> NODE_ENV=production node api/server

connection error: MongooseServerSelectionError: getaddrinfo ENOTFOUND coollabs-mongodb
    at NativeConnection.Connection.openUri (/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/mongoose/lib/connection.js:846:32)
    at /usr/src/app/node_modules/.pnpm/[email protected]/node_modules/mongoose/lib/index.js:351:10
    at /usr/src/app/node_modules/.pnpm/[email protected]/node_modules/mongoose/lib/helpers/promiseOrCallback.js:31:5
    at new Promise (<anonymous>)
    at promiseOrCallback (/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/mongoose/lib/helpers/promiseOrCallback.js:30:10)
    at Mongoose._promiseOrCallback (/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/mongoose/lib/index.js:1149:10)
    at Mongoose.connect (/usr/src/app/node_modules/.pnpm/[email protected]/node_modules/mongoose/lib/index.js:350:20)
    at Object.<anonymous> (/usr/src/app/api/server.js:45:12)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 {
  reason: TopologyDescription {
    type: 'Single',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map(1) { 'coollabs-mongodb:27017' => [ServerDescription] },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  }
}

Can you help me, please? Thank you for this product!

Bitbucket integration

Use case
Allows for Bitbucket users (usually large enterprises) to use Coolify to launch their services / apps with ease.

Coolify CLI

Start, stop, get current status and other via Coolify CLI. For example:

$ coolify start
[INFO] Starting Coolify...
[INFO] Coolify successfulity started at admin.example.com!

$ coolify start
[INFO] Starting Coolify...
[ERROR] Coolify already started!

$ coolify stop
[INFO] Stopping Coolify...
[INFO] Shutting down all app containers...
[INFO] Good buy!

$ coolify status
[INFO] Coolify already started at admin.example.com. Now running 2 apps and 1 database.

Multi tenancy

Background
The current platform allows for one single "namespace" / "project"; however this should be extended to allow for multiple projects with their own collection of apps / services (see - #75). Additionally the concept of Organisations could be introduced (teams, if you will) - allowing for multiple users to view and manage these resources, with a roles system.

Use case
There are multiple use cases, but one that stands out the most is allowing for the orchestration of multiple projects from one Coolify instance, such as in an enterprise environment where multiple teams need access to different resources or perhaps a "production/staging" environment separate.

Notes

  • Please consider how this would work with the proposed API feature request (#74) as this would mean additional endpoints would have to be implemented.
  • Please consider how this would work with (#45) as a project could be the equivalent of a "namespace" on kubernetes; a single service mesh tool like Istio could be used for scaling across multiple clusters via Kubernetes, among other overlaps i.e. roles, where necessary - impacting the implementation of this feature.

Help with Python implementation

Hi there,

I would like to help with the progress of this project by starting off with Python support. Hopefully someone can help with the question I have but, I was wondering what is the goto command for running a Python app? For me I usually have the Python app run on app.py but, that's not the case for all projects. I would like to know what the Python equivalent for a Python app would be and if there are any additional steps. For example, in https://github.com/coollabsio/coolify/blob/main/api/packs/nodejs/index.js#L24 the run command is "yarn start"

Seem to get stuck in a loop with the A record?

First time I did this I got the domain name wrong so I hit n here, then ctrl-c to exit. Then tried again, set the right DNS, and I'm stuck in this loop:

? I will delete/install/update a lot of stuffs on your operating system automagically! By continuing you accept this!

There are 2 ways to install me:
- express (recommended) - lots of stuffs generated automatically behind the scenes, like secure passwords, etc.
- custom

Would you like the express installation (recommended)? Yes
? Enter a <domain> for Coolify - example 'coollabs.io' or 'coolify.coollabs.io' without http/https: coolify.gmad.dev
? Please make sure the DNS name you set before, is pointing to the server's public IP Address.

Add an A record pointing to your server's public IP.
Your public IP: 35.246.45.246

Are you ready to continue? Yes
undefined
? Please make sure the DNS name you set before, is pointing to the server's public IP Address.

Add an A record pointing to your server's public IP.
Your public IP: 35.246.45.246

Are you ready to continue? Yes
undefined
? Please make sure the DNS name you set before, is pointing to the server's public IP Address.

Add an A record pointing to your server's public IP.
Your public IP: 35.246.45.246

Are you ready to continue? Yes
undefined
? Please make sure the DNS name you set before, is pointing to the server's public IP Address.

Add an A record pointing to your server's public IP.
Your public IP: 35.246.45.246

Is it actually checking some DNS record in the background? The config seems right...

glen@ubuntu-focal-1:~$ dig a coolify.gmad.dev

; <<>> DiG 9.16.1-Ubuntu <<>> a coolify.gmad.dev
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39842
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;coolify.gmad.dev.		IN	A

;; ANSWER SECTION:
coolify.gmad.dev.	99	IN	A	35.246.45.246

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Mar 29 11:13:50 UTC 2021
;; MSG SIZE  rcvd: 61

Enabling traefik dashboard

I thought I'd leave this here in case anybody else needed it, since there's no documentation. Feel free to close

To enable traefik dashboard you must first modify /root/coollabs/coolify/install/coolify-template.yml

Edit the traefik service to include this in the ports section

      - target: 8080
        published: 8080
        protocol: tcp
        mode: host

and change the values from false to true

      - --api.insecure=true
      - --api.dashboard=true

Then make sure you're in the /root/coollabs/coolify directory and run:

docker stack rm coollabs-coolify &&
    set -a &&
    source .env &&
    set +a &&
    envsubst < install/coolify-template.yml | docker stack deploy -c - coollabs-coolify

GitHub's authorization doesn't work on mobile

So, I'm trying to authorize in Coolify with my GitHub account in Chrome, but GitHub just redirects to sign in page, and it doesn't work.

Screen_Recording_20210419-160558_Chrome_1.mp4

Version 2

As I (and others) realized, Coolify could be more than just a project for hobbyists/developers. So I decided to create version 2 of all the things I learned so far.

What does it mean?

It means that I will extend it with enterprise-ready features, just as #75, #76, #77, etc.

What needs to be done?

A lot. The most important thing is that I separate the API from the frontend. SvelteKit Endpoints are super awesome, but for advanced use cases, it's not so extendable.

I will track the progress here.

What will be included in version 2?

โš The list below is updated regularly. Follow it to get notifications.

Techstack

The v2 will use AdonisJS as a full-stack application with JQuery (on simple pages where it needs some JS) and Vue (on complex pages) with Edge template rendering engine.

Why AdonisJS?
AdonisJS has everything in its core that is required for Coolify.

Why JQuery / Vue / React?
I love SvelteKit, but it does not fit what Coolify would like to be in the future. Javascript is only included in those pages that need some interaction; otherwise, the whole page will be plain HTML/CSS rendered on the server.

I โ™ฅ Svelte & SvelteKit, so I stick to it in v2.

I still could have pages without JS and where needed I could use Svelte! It makes development and everything way faster for me.

Kubernetes integration

Would be great if coolify could be installed into a Kubernetes cluster so that application and databases could autoscale.
Is this currently supported?

[RFC] Switching to TypeORM from Mongoose

Currently, Coolify relies on Mongoose (and MongoDB) to store relevant data to the application; while this functions as intended with MongoDB being very popular choice among enterprises - it however is by no means the defacto choice, usually many enterprises rely on SAP Hana, MySQL, Oracle, Postgres etc. the current choice of mongodb makes sense when one understands the scope of the project, but as Coolify matures, a more flexible ORM tool is required, one that interacts with many databases, such as TypeORM, which supports all listed databases (and alot more). This allows for true flexibility with a myriad of choices for databases.

While many may think that this is rare, one such instance is my own company - we use ArangoDB and Postgres exclusively as that is what we have our DBAs experienced with, it would make it a hassle for us to opt to use MongoDB (in production), likely increasing our costs and complexity of our team and stack. When considering enterprises, this does pose a huge problem for companies that would like to choose Coolify but bottlenecked by the choice of stack.

I believe this a right time to discuss this and perhaps even action this due to the work being rapidly progressed on ( #74 ) that allows for alot more flexibility out of the box, with minimal work.

Miss some screens

Hello! The project is interesting, but miss some screenshots of the webpage. Could be nice to add on README and on the website. ๐Ÿ˜„

github auth fails with error (intermediate value).body.filter is not a function

All install steps proceed successfully. Then site is visible.
After clicking the "login with github" button, the github auth dialog pops up, after entering user/pass I get the error:

{"error":"(intermediate value).body.filter is not a function"}

As far as I can tell I setup the github app correctly (with secrets and keys etc.)
From then on the "login with github" button immediately goes to that error and the coolify app never proceeds.

Support aarch64 in installer

Running the automatic installer on my aarch64 SBC results in Exec format error, seemingly due to the binary downloaded by the install script being compiled for x86_64.

Installation Failed

This are the errors i receive the system i use is centos 8 VPS
nothing found in stack: coollabs-mongodb
Nothing found in stack: coollabs-coolify
Best Regards

Support for RockyLinux

Background

Rocky Linux is a complete OSS and enterprise ready operating system; functioning as a down stream build to CentOS. It has gained alot of popularity over the last few months.

Description

While it is not essential; it would be nice to see Coolify support Rocky, and not necessarily replace Ubuntu - when it comes to Linux Distros alot of users have preferences and when it comes to enterprises, they have strict policies - it would be nice to see Coolify allowing for a larger variety of support allowing for more users and organisations to make use of the project.

Installer doesn't work

Hello there,

I'm very interested in this application, and I can't find any alternatives. So I would really like to make this work.
When I execute the command listed in the readme.md iit works until it is creating the docker containers. I already have docker installed and I'm running ubuntu on the server. This is the log:

sudo /bin/bash -c "$(curl -fsSL https://get.coollabs.io/coolify/install.sh)"
####################################
If you interested in what this script does, go to https://github.com/coollabsio/get.coollabs.io
####################################


# Executing docker install script, commit: 0e685c6ac0bddd7b2ba7bcaaeb519746ad249a29
Warning: the "docker" command appears to already exist on this system.

If you already have Docker installed, this script can cause trouble, which is
why we're displaying this warning and provide the opportunity to cancel the
installation.

If you installed the current Docker package using this script and are using it
again to update Docker, you can safely ignore this message.

You may press Ctrl+C now to abort this script.
+ sleep 20
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null'
+ sh -c 'curl -fsSL "https://download.docker.com/linux/ubuntu/gpg" | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg'
File '/usr/share/keyrings/docker-archive-keyring.gpg' exists. Overwrite? (y/N) y
+ sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu groovy stable" > /etc/apt/sources.list.d/docker.list'
+ sh -c 'apt-get update -qq >/dev/null'
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends  docker-ce-cli docker-scan-plugin docker-ce >/dev/null'
+ version_gte 20.10
+ '[' -z '' ']'
+ return 0
+ sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce-rootless-extras >/dev/null'
+ sh -c 'docker version'
Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:54:09 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:16 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.9
  GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
 runc:
  Version:          1.0.1
  GitCommit:        v1.0.1-0-g4144b63
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================

latest: Pulling from coollabsio/coollabs-installer
Digest: sha256:d028d465beddf14e30b96597d1c7ee5421c938f95d16a91e4f89475e6526a7c4
Status: Image is up to date for coollabsio/coollabs-installer:latest
####################################
Installer started on http://<IP>:8080
####################################

[Wed Aug 18 15:56:41 2021] PHP 8.0.7 Development Server (http://0.0.0.0:8080) started
[Wed Aug 18 15:56:55 2021] 172.17.0.1:37904 Accepted
[Wed Aug 18 15:56:57 2021] PHP Warning:  Undefined array key "QUERY_STRING" in /usr/src/app/coollabs/index.php on line 3
[Wed Aug 18 15:56:57 2021] 172.17.0.1:37904 [200]: GET /
[Wed Aug 18 15:56:57 2021] 172.17.0.1:37904 Closing
[Wed Aug 18 15:57:09 2021] 172.17.0.1:37910 Accepted
nothing found in stack: coollabs-mongodb
Error: No such volume: coollabs-mongodb-data
Nothing found in stack: coollabs-coolify
[Wed Aug 18 15:57:31 2021] 172.17.0.1:37910 [200]: GET /?onlyCoolify&domain=<DOMAIN>&email=<EMAIL>
[Wed Aug 18 15:57:31 2021] 172.17.0.1:37910 Closing

and then it just hangs. No crashes, nothing. Is there maybe another way to install Coolify?

Does not work with monorepo workflow

Hi, first of all thanks for the great work behind coolify !

I am trying to deploy 2 react frontends and a node backend, which are all in the same repository (with a file structure like this: services/front1 services/front2 services/backend). I want to deploy all those services whenever I merge a PR to the main branch.

The thing is I cannot create multiple applications with the same branch and the same repository on the coolify dashboard (latest version) and when I try to create multiple applications with the same repository but not the same branch I get a 404 error on the newly created application.

Am I doing something wrong here ? Is coolify supporting - or planning to support - monorepo workflow like this ?

Golang

Is it possible to use with golang app or docker??

Not able to deploy

Hi all,
I am facing a problem deploying coolify on ec2.

image

help would be appreciated :)

Make Editable Secrets Key (ENV)

Sometimes there are a large number of keys. In this case, its meaning is not very clear.
You have to delete and create a new one.

It would be more convenient to show the key value or make it possible to edit it

For example as here

https://carabi-docs.storage.yandexcloud.net/Snimok_ekrana_2021_06_07_v_10_29_58_3589f0980d.png

or here

https://carabi-docs.storage.yandexcloud.net/Snimok_ekrana_2021_06_07_v_10_29_29_eeeb271b30.png

[FEATURE] Minio as service

It would be great if it was possible to enable MinIO as a replacement for AWS storage

MinIO is a High Performance Object Storage released under Apache License v2.0. It is API compatible with Amazon S3 cloud storage service.

GitHub app name should be dashified

I just went through the complete installation process it all worked great. ๐Ÿ‘๐Ÿฝ

I only encountered one tiny error, when naming my GitHub app I gave it a name with a space (f.e. app name). GitHub dashifies the app name, that's why the link to Configure on GitHub on the New Application page results in a 404.

Can be easily solved by simply dashifying the app name.

Here's a simple example inside the Configuration.sveltecomponent.
Fork example

"github.com/apps/app name/installations/new" -> "github.com/apps/app-name/installations/new"

Greetings from Germany ๐Ÿ‘‹
Lennart

Add Rust or Dockerfile support

Hi @andrasbacsai, first let me say thanks for the awesome work!! ๐Ÿ™Œ ๐Ÿ™Œ

I wonder if I can help you to add rust support or if make sense add support for Dockerfiles allowing the users to manage the desire container instead of use a buildpacks. If make sense for this project I can try to add support for those and send you a pr.

Again, thanks for the awesome work!!

Redis

Add Redis support into "Databases" tab, please

Finished wizard, but nothing running?

Everything seemed to work, but nothing running locally at the end?

## Checking and installing Docker Engine
Installing Docker...

## Checking and installing Docker Engine
Initiating Docker Swarm...
Installing Mongodb...

## Github related questions

...

? Github Private key (you need to generate it by clicking on 'Generate private key' button): Received


Everything is ready! Now let me install Coolify itself. It will take some minutes... Grab a tea or coffee!

The initial Let's Encrypt certificate requests could be slow, so be patient if you deploy a new application.


We are done - what a ride! Visit https://coolify.gmad.dev to access your cool application! :)
glen@ubuntu-focal-1:~$ curl http://coolify.gmad.dev/
curl: (7) Failed to connect to coolify.gmad.dev port 80: Connection refused
glen@ubuntu-focal-1:~$ sudo ps aux | grep docker
glen        2139  0.0  0.0   8160   736 pts/1    S+   11:28   0:00 grep --color=auto docker
glen@ubuntu-focal-1:~$ ps aux | grep docker
glen        2142  0.0  0.0   8160   736 pts/1    R+   11:28   0:00 grep --color=auto docker
glen@ubuntu-focal-1:~$ sudo systemctl status docker
Unit docker.service could not be found.
glen@ubuntu-focal-1:~$ docker ls

Command 'docker' not found, but can be installed with:

apt install docker.io
Please ask your administrator.

glen@ubuntu-focal-1:~$ curl localhost
curl: (7) Failed to connect to localhost port 80: Connection refused

glen@ubuntu-focal-1:~$ sudo netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      444/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      699/sshd: /usr/sbin
tcp6       0      0 :::22                   :::*                    LISTEN      699/sshd: /usr/sbin
udp        0      0 127.0.0.53:53           0.0.0.0:*                           444/systemd-resolve
udp        0      0 10.154.0.2:68           0.0.0.0:*                           421/systemd-network
udp        0      0 127.0.0.1:323           0.0.0.0:*                           493/chronyd
udp6       0      0 ::1:323                 :::*                                493/chronyd

Any pointers?

Deploy from Docker Registries

This issue is targeted for v2 (#83)

Background
Deployments from Docker registries would be a nice implementation to have, this will allow for Enterprises with Docker based image registries to have a collection of "apps" ready to launch in a few clicks from. Additionally, popular registries such as DockerHub can be used as a default to launch a myriad of applications from.

Support SSL/HTTPS

Hello!

Add please support of SSL/HTTPS certs. With auto re-new and get for demand (for example, when user create new deployment with domain, which don't get cert before)

Thx for product

404 page not found

Problem solved ๐Ÿ‘

It isn't possible to use the 1 gb CPU VPS from digital ocean. 2 gb are mandatory.

After you updated your cpu, restart the installation wizard.

Thanks to such a great tool @andrasbacsai

cloudflare support

Hi, I tried to install coolify on a server proxied through cloudflare, but A record check prevents me from doing it. Will there be a fix for this in the future?

P.S. Good luck with development.

Wordpress Support

Hey thanks for this awesome project. What I always needed without knowing..

I would like to deploy my business app (next.js) side-by-side with my landing-page (wordpress). I think it would give this project a real boost if you add support for wordpress-installations, too :) I think it only needs to be the initial setup (Core + DB) and maybe some basic configurations but nothing more in-depth.

Regards from Germany!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.