Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案
什么是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
今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢
欢迎路过的小哥哥小姐姐们提出更好的意见哇~~
Coolify系列01- 从0到1超详细手把手教你上手Heroku 和 Netlify 的开源替代方案的更多相关文章
- Linux从入门到放弃、零基础入门Linux(第三篇):在虚拟机vmware中安装linux(二)超详细手把手教你安装centos6分步图解
一.继续在vmware中安装centos6.9 本次安装是进行最小化安装,即没有图形化界面的安装,如果是新手,建议安装带图形化界面的centos, 具体参考Linux从入门到放弃.零基础入门Linux ...
- Linux从入门到放弃、零基础入门Linux(第二篇):在虚拟机vmware中安装linux(一)超详细手把手教你安装centos分步图解
一.Vmware vmware介绍:VMware,Inc. (Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器.桌面虚拟化的解决方案.其虚拟化平台的产品包括播放器:它能 ...
- webpack从0到1超详细超基础学习教程
概念 自己是一个一听到webpack就头大,看着一堆不知道那是什么玩意的东西总觉得自己做好前端就行了,但是在使用vue-cli的时候总觉得要改其中的一些东西进行项目初始化的时候能够更好使用!所以想要根 ...
- SAP接口编程 之 JCo3.0系列(01):JCoDestination
SAP接口编程 之 JCo3.0系列(01):JCoDestination 字数2101 阅读103 评论0 喜欢0 JCo3.0是Java语言与ABAP语言双向通讯的中间件.与之前1.0/2.0相比 ...
- java io系列01之 "目录"
java io 系列目录如下: 01. java io系列01之 "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...
- Java 集合系列 01 总体框架
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- Java 之 I/O 系列 01 ——基础
Java 之 I/O 系列 目录 Java 之 I/O 系列 01 ——基础 Java 之 I/O 系列 02 ——序列化(一) Java 之 I/O 系列 02 ——序列化(二) 整理<疯狂j ...
- 【公众号系列】超详细SAP HANA JOB全解析
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[公众号系列]超详细SAP HANA JOB全解 ...
- centos7安装zabbix3.0超详细步骤解析
centos7安装zabbix3.0超详细步骤解析 很详细,感谢作者 以下是我操作的history 622 java -version 623 javac -version 624 grep SELI ...
- JavaScript进阶系列01,函数的声明,函数参数,函数闭包
本篇主要体验JavaScript函数的声明.函数参数以及函数闭包. □ 函数的声明 ※ 声明全局函数 通常这样声明函数: function doSth() { alert("可以在任何时候调 ...
随机推荐
- 1.Django-Rest-Framework入门规范
一.WEB应用模式 1.前后端不分离 前后端混合开发(前后端不分离),返回的是html的内容,需要渲染页面,写模版 2.前后端分离 专注于后端接口,返回json.xml格式的数据 二.AP ...
- uni-app 配置MuMu手机模拟器 (2022-2-24)
(1)到官网"https://mumu.163.com/"下载,我选中的中间的那个 (2)下载完成后,默认安装即可,直接等待安装完成 (3)在uni-app里设置端口,在uni-a ...
- JMETER与BeanShell
变量 Beanshell应用自定义变量有两种方法: #第一种方法,使用${key}格式,但是需要注意这是用应用的变量是没有定义数据类型的 #log.info(String Key)只能打印字符串,所以 ...
- Golang Gorm time 时间字段格式化模型类 重写
问题: 在使用GORM中 如果我们使用到了CreateAt 和UpdateAt 就会发现 这个时间的类型是time.Time 而其数据是 "2022-10-13T10:14:02.97352 ...
- 华为开发者大会HDC2022:HMS Core 持续创新,与开发者共创美好数智生活
11月4日,华为开发者大会HDC2022在东莞松山湖拉开帷幕.HMS Core在本次大会上带来了包括音频编辑服务的高拟真歌声合成技术.视频编辑服务的智能提取精彩瞬间功能.3D Engine超大规模数字 ...
- 2022春每日一题:Day 23
题目:Piotr's Ants 蚂蚁转头走,其实可以看做他们交换灵魂后接着往前走,同样发现,既然他们的速度相同,那么在数轴上相对位置不会改变(碰面会改变方向),那就好办了. 先把初始状态排序,id都记 ...
- Windows Server 2019 安装 Oracle 19C RAC(VMWare虚拟机环境)
软件 Windows Server 2019 Standard Oracle 19C Oracle Grid 19 VMware Workstation 16 规划 共享存储,使用Windows Se ...
- Crypto - Caesar I
原题链接:http://www.wechall.net/challenge/training/crypto/caesar/index.php 告诉我们这是个古凯撒密码,让我们解...我们百度下古凯撒密 ...
- 基于.NetCore开发博客项目 StarBlog - (20) 图片显示优化
前言 我的服务器带宽比较高,博客部署在上面访问的时候几乎没感觉有加载延迟,就没做图片这块的优化,不过最近有小伙伴说博客的图片加载比较慢,那就来把图片优化完善一下吧~ 目前有两个地方需要完善 图片瀑布流 ...
- 解决fpdf不能写入中文问题
安装依赖 pip3 install FPDF -i https://mirrors.aliyun.com/pypi/simple fpdf 原生是php调用的,不过他也提供了python的调用方式 示 ...