Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案

article/2025/11/4 5:27:21

什么是Coolify

  • 一款超强大的开源自托管 Heroku / Netlify 替代方案
  • coolLabs是开源、自托管和以隐私为中心的应用程序和服务的统称

为什么使用Coolify

  • 只需单击几下即可托管你的应用、数据库或其他开源服务,等。
  • 它是 Heroku 和 Netlify 的一个替代方案。
  • 通过 Coolify 可以部署很多应用、数据库、服务,例如:Static、NodeJS、Svelte、React、Vue、Next、Nuxt、Astro、PHP、Rust 等,可以使用自动反向代理和免费 SSL 证书轻松部署应用程序!
  • 一键安装 MongoDB、MySQL、PostgreSQL、CouchDB、RedisDB 实例
  • 一键安装 WordPress、Ghost Plausible Analytics、NocoDB、BitWarden/VaultWarden、LanguageTool、N8n、VSCode Server 等服务
  • 一键将服务部署在任何地方,本地 Docker 引擎、远程 Docker 引擎 (WIP) 或 Kubernetes (WIP)。
  • 使用管理系统轻松管理团队。每个团队由一个名称空间分隔,您可以创建任意数量的团队。
  • 一键升级您的一体化IaaS平台!

如何使用Coolify

Coolify由以下几部分组成:

  • User Interface
  • API
  • HTTP/TCP Proxy
  • TCP Proxies for databases.
  • SSL certificates are handled by Let’s Encrypt.

各部分详细介绍

User Interface

你可以使用Ul来配置你的实例和所有资源,查看它们的状态,使用情况等。它是一个基于SvelteKit的静态SPA站点。

API

  • Coolify的后端部分,用于与远程资源、数据库、Docker引擎等进行通信。
  • 它是基于Fastify的后端服务。Fastify is Fast and low overhead web framework, for Node.js

HTTP/TCP Proxy

Coolify动态配置Traefik实例以生成反向代理配置,生成SSL证书并将所有传入流量路由到正确的容器。

TCP Proxies for databases.

使用Coolify部署的数据库可以通过互联网访问。为此,Coolify启动一个单独的Traefik实例,以配置和代理来自internet的TCP连接。

为什么需要一个单独的代理?

  • 您可以启动服务器所能处理的任意数量的数据库,因此,例如将100个端口绑定到单个进程可能是CPU密集型任务,如果您只想使用其中的10个端口,则没有意义。
  • 使用这种方法,您可以一个接一个地动态绑定主机服务器上的端口。

那么10个数据库将创建10个Traefik实例?#

是的。Traefik是在某种程度上,它只使用~10MB的内存

SSL certificates are handled by Let’s Encrypt.

  • 如果您定义了以https开头的URL, Coolify将为您的资源生成SSL证书。
  • Coolify使用Let’s Encrypt助手来请求、生成和存储SSL证书。

www vs non-www

  • 证书仅为已定义的URL生成。如果你指定了一个非www的URL,只有非www的URL才会有证书。你无法到达www网址。
  • 通常,你需要在DNS层将www重定向到非www。
  • 如果您想为两者生成SSL证书,有一个选项称为Generate SSL for www and non-www?用于应用程序和服务。

TCP数据库代理 HTTP/TCP Proxy

TCP数据库代理 HTTP/TCP Proxy

支持架构

支持AMD64和ARM架构。

支持的操作系统

由于安装脚本的缘故,支持基于Debian的服务器(Coolify本身支持所有可以运行Docker引擎的操作系统)。如果你想要其他的,请考虑在Coolify 的 GitHub 上开放一个问题。

配置要求,Coolify所需的最低资源:

  • 2 cpu
  • 2gb内存
  • 30+ GB的存储空间。

起步

在运行安装脚本之前,请确保您的服务器已经安装了以下包:

  • Sudo
  • wget
  • curl

检测以及安装 以上三个命令的方法

检测是否一经安装了SUDO,如果没有安装,下载软件包进行安装
rpm -q sudo确定wget是否存在
rpm -qa | grep "wget"
安装 wget
yum -y install wget
验证是否已经安装curl
curl



安装命令

有安装提示

wget -q https://get.coollabs.io/coolify/install.sh \
-O install.sh; sudo bash ./install.sh

最简单的方式就是直接执行下面的命令即可一键安装

wget -q https://get.coollabs.io/coolify/install.sh \
-O install.sh; sudo bash ./install.sh -f

Opt-out from telemetry (count installed instances on the landing page)

wget -q https://get.coollabs.io/coolify/install.sh \
-O install.sh; sudo bash ./install.sh -n

如果想手动安装

  • 需要在.env文件中设置所需的环境变量(见下文)
  • 需要在服务器上安装Docker引擎v20.10+。
  • 配置完成后可以使用 Docker 进行一键启动
COOLIFY_APP_ID=   # 一个随机的 UUID,用于区分已安装的实例。
COOLIFY_SECRET_KEY=  # 用于加密各种私人数据,长度必须为 32 个字符。
COOLIFY_DATABASE_URL=file:../db/prod.db  # SQLite 数据库 URL,必须在 ../db 下。
COOLIFY_SENTRY_DSN=https://9e7a74326f29422584d2d0bebdc8b7d3@o1082494.ingest.sentry.io/6091062  # Sentry 错误报告的 DSN 地址,不是强制性的。
COOLIFY_IS_ON=docker  # Coolify 部署的位置,目前,仅支持 docker。
COOLIFY_WHITE_LABELED=false  # 会删除 Coolify 实例的“商标”。
COOLIFY_WHITE_LABELED_ICON=  # 登录/注册页面上要替换的图标。
COOLIFY_AUTO_UPDATE=false  # 它会在后台自动更新你的 Coolify 实例。
docker run -tid --env-file .env -v /var/run/docker.sock:/var/run/docker.sock -v coolify-db-sqlite coollabsio/coolify:latest /bin/sh -c "env | grep COOLIFY > .env && docker compose up -d --force-recreate"

一键安装体验

遇到问题,wget 下载文件出错,没有反应,下载下来的文件是空的,但是下载其他是正常

测试命令正常
wget -c https://download.redis.io/releases/redis-6.0.8.tar.gz
使用这个命令以后下载没有反应
wget -q https://get.coollabs.io/coolify/install.sh -O install.sh; sudo bash ./install.sh -f
生成了文件install.sh,但是vi 它,是空的

问题解决-建立链接时需要在命令行中添加–no-check-certificate

wget -q https://get.coollabs.io/coolify/install.sh --no-check-certificate -O install.sh; sudo bash ./install.sh -f

成功下载,开始安装

又卡住了,拉镜像好慢好慢,卡了十分钟了

尝试更换docker 源

Docker Hub 提供众多镜像,你可以从中自由下载数十万计的免费应用镜像, 这些镜像作为 docker 生态圈的基石,是我们使用和学习 docker 不可或缺的资源。为了解决国内用户使用 Docker Hub 时遇到的稳定性及速度问题,我们需要搞一个加速器,下面介绍我用的三种镜像地址:

打开daemon.json配置文件
vi /etc/docker/daemon.json
添加如下配置"registry-mirrors": ["https://registry.docker-cn.com"]
重启docker
service docker restart  

继续执行指令

sudo bash ./install.sh -f

修改了配置文件

{"registry-mirrors": ["https://registry.docker-cn.com"]
}


方案一:阿里云:搜索容器服务-镜像加速器

卡太久了,我决定手动拉

配置镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

先粘贴这一段
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://3iew7cd2.mirror.aliyuncs.com"]
}
EOF
再执行下面的
sudo systemctl daemon-reload
sudo systemctl restart docker

方案二:DaoCloud 道客加速器

配置 Docker 镜像站,该脚本可以将 --registry-mirror 加入到你的 Docker 配置文件 /etc/docker/daemon.json 中。适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1,其他版本可能有细微不同。更多详情请访问文档。

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

方案三:腾讯加速器

https://mirror.ccs.tencentyun.com

docker 下载测速

测试命令:

time docker pull httpd


今天就写到这里啦~

  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~


http://chatgpt.dhexx.cn/article/5EG87u7Q.shtml

相关文章

.NET Framework 框架

20世纪90年代以来出现的3种典型的组件技术&#xff1a; 1&#xff09;OMC&#xff08;对象组件模型&#xff09;的CORBA 2&#xff09;Microsoft的COM/DCOM 3&#xff09;Sun公司的JavaBeans 在2002年&#xff0c;微软发布了.NET框架的第一个版本&#xff0c;声称其解决了旧问…

vercel和netlify部署代码并解决接口代理转发的问题(和Nginx功能一样)

前言 部署过程就不说了,部署完成后是这样子的 然后访问链接,无法访问 解决 依次点击 Settings–>Domains&#xff0c;在输入框中输入你的域名并点击 Add 按钮。 以此域名为例子demo.gshopfront.dreamlove.top为例,点击添加 我们前往域名管理系统,记录下绿色的值以腾讯云的…

部署Netlify站点博客

Netlify站点部署静态博客 今天尝试把站点部署在Netlify上&#xff0c;因为部署在GitHub Pages上&#xff0c;国内访问速度太慢了&#xff0c;所以就尝试一下别的站点&#xff0c;部署成功之后发现速度还是不太行&#xff0c;后边继续找找原因 Netlify 部署的地址在这里 下图…

使用Hexo+github+netlify快速搭建个人博客网站

1 写在开头 倒腾了好几天&#xff0c;算是做出了一个有点样子的个人博客网站。便学各位大佬也写一个搭建教程&#xff0c;总结一下个人踩坑经验&#xff0c;也希望能对他人略有作用。 博客演示&#xff08;欢迎来留言交流&#xff09; 为什么选择Hexo&#xff1f;答&#xff1…

使用 netlify 部署你的前端应用

我前几天写了一篇文章&#xff0c; 如果你想搭建一个博客 &#xff0c;其中提到了使用 netlify 做博客托管服务。 netlify 可以为你的静态资源做托管&#xff0c;就是说它可以托管你的前端应用&#xff0c;就像 github page 那样。不过&#xff0c;它不又只像 github page 那么…

netlify国内快吗

Netlify国内快吗? Netlify vs 21云盒子 Netlify 是一家提供 JamStack(静态网站)托管的平台&#xff0c;支持自动从Github等仓库拉取代码, 按自定义构建方式进行构建&#xff0c;最后把生成的静态网站进行发布; 在这基础上同时也支持自定义域名&#xff0c;自动申请SSL证书等…

Netlify前端自动化部署工具

一、使用github或者gitlab登陆netlify 首先&#xff0c;打开netlify网站(https://app.netlify.com/) 然后使用github或者gitlab账号登录。 二、根据github/gitlab仓库创建网站 点击New site from Git按钮&#xff1a; 根据你的仓库所在平台选择&#xff0c;以下三选一&#x…

使用netlify实现自动化部署前端项目(无服务器版本)

介绍 本文以 github仓库进行介绍关联netlify的无服务前端自动化部署。用途&#xff1a;个人网站设计、小游戏等当然这只是让你入门~具体细节等待你自己去探索 实现 打开官方网站 如果没有注册过的账户&#xff0c;你需要使用 github 去进行登录。注册完成后会自动给你提示填…

Netlify静态资源托管之部署自动化

关注「WeiyiGeek」公众号 将我设为「特别关注」&#xff0c;每天带你玩转网络安全运维、应用开发、物联网IOT学习&#xff01; 0x00 基础介绍 0x01 Netlify 使用 0x00 基础介绍 Q: Netlify 是什么? Netlify 是一个提供静态资源网络托管的综合平台&#xff0c;一个直观的基于…

如何使用netlify部署vue应用程序

什么是Netlify&#xff1f; Netlify是一个现代网站自动化系统&#xff0c;其JAM架构代表了现代网站的发展趋势。所谓JAM&#xff0c;就是指基于客户端JavaScript、可重用API和预构建Markup标记语言的三者结合。 有了Netlify&#xff0c;我们只要在本机Git中写前端代码&#xff…

C语言:strlen() --- 计算字符串长度

C语言 基础开发----目录 一、strlen() 简介 1. 函数原型 unsigned int strlen(char *str);2. 参数 str - - 要计算长度字符串的地址指针 3. 功能 计算给定字符串的字节长度&#xff0c;直到空字符结束&#xff0c;但不包括空字符。 4. 头文件 #include <string.h>…

C语言 计算字符串的长度

方法一&#xff1a; #include<stdio.h> int length(char *s){char *ps;while(*p!\0){ //等同于 *pp;}return p-s; } void main(){char s[32];printf("请输入一个字符串&#xff1a;");scanf("%s",&s);printf("长度为&#xff1a;%d",l…

计算字符串长度的五种方法

方法一&#xff1b; ------------------------------------------------------------ 方法二; ------------------------------------------------------------ 方法三&#xff1b; ------------------------------------------------------------ 方法四利用sizeof()&#x…

计算字符串长度

用三种方法计算字符串的长度&#xff1a; 字符串&#xff1a;“abcd”&#xff0c;在储存的时候&#xff0c;字符串的最后一位会以一个终止符 \0&#xff0c;所以求取的就是终止符前的字符数。 1.计数器方式 通过设置一个计数器&#xff0c;然后用指针字符串从头扫描&#xf…

计算字符串长度的三种方法(库函数 指针 )【详解】

目录 求字符串长度的一般原理方法一&#xff1a;strlen函数函数原型使用方法 方法二:指针整数方法三&#xff1a;指针-指针总结&#xff1a; 求字符串长度的一般原理 求字符串长度简单来说就是计算一个字符串(字符数组)中元素的个数即从数组头部计数&#xff0c;直到遇到字符串…

微信小程序怎么开发(小程序开发文档)

微信小程序是一种全新的连接用户与服务的方式&#xff0c;它可以在微信内被便捷地获取和传播&#xff0c;同时具有出色的使用体验。 2017年1月9日~2018年1月9日&#xff0c;小程序正式上线一周年。上线以来&#xff0c;小程序不断地释放新能力&#xff0c;迭代更新&#xff0c;…

【小程序】一文带你了解微信小程序开发(小程序注册/开发工具的下载)

&#x1f41a;作者简介&#xff1a;苏凉&#xff08;专注于网络爬虫&#xff0c;数据分析&#xff0c;正在学习前端的路上&#xff09; &#x1f433;博客主页&#xff1a;苏凉.py的博客 &#x1f310;系列专栏&#xff1a;小程序开发基础教程 &#x1f451;名言警句&#xff1…

小程序设计文档

状态码介绍 {status: 状态码msg: 消息data: 响应数据 }code解释0success1error10need_login2illegal_argument 介绍 用到的接口 小程序登陆能获取的信息有 wx.request的返回为 data里面包的是后端服务器返回的值 小程序登陆时序图 登陆流程 微信小程序wx.login()拿到…

微信小程序技术文档

1.只显示用户头像和名称&#xff08;简化代码&#xff09; <!-- 如果只是展示用户头像昵称&#xff0c;可以使用 <open-data /> 组件 --> <open-data type"userAvatarUrl"></open-data> <open-data type"userNickName"><…

微信小程序开发者文档 开放文档 地址

最好的微信小程序开发参考书籍——微信小程序开发者文档 开放文档 微信小程序开发者文档地址 &#x1f9e9;微信官方文档&#xff1a;https://developers.weixin.qq.com/doc