首页 > 数据库 >使用 Coolify 极简运维你的项目和数据库

使用 Coolify 极简运维你的项目和数据库

时间:2024-05-24 21:29:13浏览次数:27  
标签:容器 简运维 部署 数据库 端口 nginx 域名 coolify Coolify

使用 Coolify 极简运维你的项目和数据库

引言

本文将介绍一个名为 Coolify 的开源软件,基于 Docker 提供了托管网站、数据库等服务的功能,功能丰富强大,操作简单。官方自称是Heroku / Netlify / Vercel 的开源替代。

我在试用了以后立即决定抛弃之前 nginx proxy manager + docker-compose 的运维方案,全面拥抱 Coolify,因为它真是太好用了。

安装

官网提供了一个简单的安装命令,将自动安装 docker 和 Coolify 的几个必备容器。包括下图中的容器。其中 Traefik 是整个系统的 http 和 https 网关,coolify-server 是软件主体,redis、postgres、soketi 是 coolify 的依赖项。

image-20240524194809715

安装完成后会提示你去访问服务器的 8000 端口,这是 coolify 的 http 端口,我们可以暂时使用它来进行一些基本配置。之后我们会使用 https 去访问它。

配置网关

我们先把 coolify 作为我们的第一个服务,给它配置 https。

coolify 自带的 Traefik 接管了服务器的 80 和 443 端口,这意味着我们不需要接触 docker 网络、ssl 证书等技术细节。

你需要一个自己的域名,假设是example.com,你需要在你的域名提供商那里把example.com*.example.com解析到这台安装了 coolify 的服务器上。我们之后将会通过子域名来区分部署在这台服务器上的 http 服务。通过example.com:端口的方式访问部署在这台服务器上的非 http 服务。

然后在下图中的位置输入你想访问 coolify 的域名,点击 Save 保存。

image-20240524192342080

过上半分钟,你就可以使用这个域名安全优雅地访问 coolify 了。

因为 coolify 替你做了 Traefik 配置,并使用 Let‘s Encrypt 替你申请了免费的 ssl 证书。

image-20240524194734181

之后在为 coolify 部署的其他 http 服务配置网关时也是类似的过程,你只需要告诉 coolify 你想使用什么域名访问这个服务,coolify 会替你完成剩下的工作。

部署一个 Nginx

你需要新建一个Project,然后其中一个环境中(默认是 production)添加一个 resource,你可以看到 resource 的种类有很多,你可以为一个 git 仓库配置 cicd,也可以使用现成的 docker 镜像,也可以在下方选择常见的开源软件,例如 MinIO、Redis、MySQL。

image-20240524200759521

我们这里选择使用现成的 docker 镜像。之后两个选项可以都暂时选择 localhost,接下来告诉 coolify 你想要使用nginx:latest的镜像。

在具体配置页面,你需要指定这个容器提供服务的端口以及你想分配给它的域名。(Domains 有特殊的语法,冒号后面是这个域名指向的容器端口。)然后点击 deploy 就可以开始部署了。

image-20240524193725476

coolify 会创建一个 nginx 容器,并告知 Traefik 你配置的路由规则。

image-20240524194412900

等待部署完成后,你就可以使用https://nginx.example.com访问nginx 服务了。

你可以通过上面的 Logs 查看容器的日志。

你可以通过按钮来启动、重启、停止、重新部署这个容器。

使用左侧的栏目,你可以进行一些针对这个 nginx 容器的配置,比如数据卷、环境变量、健康检查等。

就像使用 docker 一样!只不过是通过 UI 操作。

部署一个 MySQL

coolify 内置了一些知名开源软件的部署模板,你可以很简单地部署。例如 MySQL。

image-20240524195257880

image-20240524195445329

使用模板的好处就是你可以在页面上直观地修改软件的一些配置,例如数据库的账号密码。

而且 coolify 会贴心地帮你声明这个容器会用到的数据卷,避免在容器的创建和销毁之间丢失数据。

当你启动容器后,点击"make it public available"可以开放 3306 端口,coolify 会新建一个专门用来代理非 http 流量的 nginx容器来将本机的 3306 端口的流量转发至 mysql 容器。(注意区分,这个 nginx 和刚才我们亲手部署的 nginx 不是同一个!)

image-20240524200018058

然后你就可以通过example.com:3306访问你刚刚部署的 mysql 了。

基于 Git 仓库的 cicd

coolify 不止能部署这些公开的软件,你还可以部署你私有 git 仓库中的服务,并实现“推送即更新”的 cicd。

image-20240524200825312

选择部署一个基于 git 的 resource,你需要授权coolify访问你的 github 账号。

选择部署分支和构建工具(例如使用 Dockerfile构建)。

你会进入一个和之前类似的具体配置页面,你需要指定域名、容器端口、Dockerfile 在项目目录中的位置、要推送的镜像仓库(可选)。然后启用部署。

coolify 会在第一次部署和对应分支有代码提交时自动触发更新。步骤包括:拉取最新代码、在本机或你指定的构建服务器上构建 docker 镜像、推送至你指定的镜像仓库(如果你指定了镜像仓库的话)、更新容器。

构建会占用服务器的带宽、内存、cpu 资源,不如使用 github action 构建那么经济,但是优势是简单:你不需要写 github workflow,不需要有镜像仓库,不需要考虑如何通知服务器拉取最新的镜像。非常适合更新并不频繁的小项目。

总结

本文介绍了 Coolify 的安装以及如何使用 Coolify 部署项目和数据库,并给出了一个简单的基于 git 的服务 cicd 方案。

标签:容器,简运维,部署,数据库,端口,nginx,域名,coolify,Coolify
From: https://blog.csdn.net/qq_52141337/article/details/139184810

相关文章

  • 50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!
    介绍每日一题系列已经更新了50道题目啦!题目难度为初级到中级,涵盖了Python、SQL数据库、AB测试、业务分析、机器学习五大主题,适合初学者和有一定基础的朋友。原文链接:50道题目!Python、SQL数据库、AB测试、业务分析、机器学习都在这里了!欢迎点击取阅!......
  • VBS(Visual Basic Script)是一种脚本语言,可以使用ADO(ActiveX Data Objects)来连接和操作A
    在PowerShell中,可以使用COM对象创建ADO连接并执行SQL查询来连接和操作Access数据库。以下是一个示例代码:powershellCopyCode#CreateaconnectiontoAccessdatabaseusingADO$conn=New-Object-ComObjectADODB.Connection$conn.Provider="Microsoft.ACE.OLEDB.12.0"......
  • 什么是数据库读写分离
    有一些技术同学可能对于“读写分离”了解不多,认为数据库的负载问题都可以使用“读写分离”来解决。 这其实是一个非常大的误区,我们要用“读写分离”,首先应该明白“读写分离”是用来解决什么样的问题的,而不是仅仅会用这个技术。什么是读写分离?其实就是将数据库分为了主从库......
  • Django数据库查询
    一、DjangoORM(对象关系映射)进行数据库查询操作    示例模型:fromdjango.dbimportmodelsfromdatetimeimportdatetime,timedeltaclassFruitModel(models.Model):create_time=models.DateTimeField(auto_now_add=datetime.now())update_time=......
  • 数据库SQL语言基础编程
    目录一、简单查询查询员工表与部门表的笛卡尔积在上述操作的基础上完成连接的选择操作和投影操作对查询数据进行排序操作查询工资超过2500的员工基本信息查询月总收入超过2500的员工基本信息查询工资超过2500的员工的姓名及其所在部门名称查询所有员工的工资、奖金、总......
  • SQL数据库必会的9个基础语句
    数据库代码通常指的是用于创建、查询、更新和删除数据库及其数据的SQL(结构化查询语言)语句。但是,由于数据库的复杂性和多样性,下面我将给出一些基本的SQL代码示例,这些示例可以在关系型数据库管理系统(如MySQL,PostgreSQL,SQLite,Oracle,SQLServer等)中使用。创建数据库:CR......
  • mysql 中索引类型有哪些,以及对数据库的性能的影响?
    索引类型普通索引:允许被索引的数据列包含重复的值唯一索引:可以保证数据记录的唯一性主键索引:是一种特殊的唯一素引,在一张表中只能定义一个主键索引,主键用于唯一标识一条记录,使用关键字primarykey来创建联合索引:索引可以覆盖多个数据列全文索引:通过建立倒排索引,可以极大......
  • MySQL大师课:36秘技解锁数据库性能与管理新高度?
     ......
  • 社区医院|基于SprinBoot+vue的社区医院管理服务系统(源码+数据库+文档)
    社区医院管理服务系统目录基于SprinBoot+vue的社区医院管理服务系统一、前言二、系统设计三、系统功能设计 1系统功能模块2管理员功能模块3用户功能模块4医生功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博......
  • 家政服务|基于SprinBoot+vue的家政服务管理平台(源码+数据库+文档)
    家政服务管理平台目录基于SprinBoot+vue的家政服务管理平台一、前言二、系统设计三、系统功能设计 1前台模块设计2后台功能模块5.2.1管理员功能模块5.2.2用户功能模块5.2.3服务人员功能模块四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推......