V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kiduu
V2EX  ›  分享发现

一键部署开源 PaaS 服务 Dokploy,代替 Vercel, Netlify 以及 Heroku

  •  
  •   kiduu · 5 天前 · 637 次点击

    前言

    Vercel, Netlify 以及 Heroku 都是知名的 PaaS ( Platform as a Service|平台即服务)服务商,利用这些平台我们可以方便快捷的进行项目部署。尤其是各家生态完善,是很多独立开发者的首选之地。

    但是随之而来的就是另外的隐患了:因为各种问题导致项目使用额度超标导致的天价账单

    PaaS 作为服务商基本上都是属于没有访问限制的说法,用户激增、代码错误、恶意 CC 攻击都有可能在极短的时间内产生巨额的账单。比如

    该用户首次部署服务,却因为一个小小的程序错误导致 6 个小时内产生三千刀的账单。如果不是发现的及时,可能还会造成更大的损失。虽然经过来回的协商,最终 Vercel 还是免除了这个账单,但是这名用户已经决定放弃继续使用 Vercel 了,因为如果再来一次这种事件,很难说是否还会被免单。

    一般常见的云厂商的实例只要做好服务器的安全防范措施,最大的危险也只是停机、流量超额罢了,流量方面可以通过限制访问速率等措施避免,或者监控服务器流量异常,都是很容易实现的。但是使用 VPS/云服务器之类的相对于 PaaS 平台来说 CI/CD 之类的相对麻烦很多。 所以在 VPS/云服务器上部署一个开源的 PaaS 服务相较而言就能较好的结合这两者之间的优点了。

    Dokploy 简介

    引用自官网: Dokploy 是一个免费的可自托管平台即服务( PaaS ),简化了应用程序和数据库的部署和管理。 特点 Dokploy 包括多种功能,让您的生活更轻松。

    应用程序:部署任何类型的应用程序( Node.js 、PHP 、Python 、Go 、Ruby 等)。 数据库:创建并管理支持 MySQL 、PostgreSQL 、MongoDB 、MariaDB 和 Redis 的数据库。 备份:自动将数据库备份到外部存储目标。 Docker Compose:原生支持 Docker Compose 来管理复杂应用程序。 多节点:使用 docker swarm 将应用程序扩展到多个节点以管理集群。 模板:一键部署开源模板( Plausible ,Pocketbase ,Calcom 等)。 Traefik 集成:自动与 Traefik 集成进行路由和负载均衡。 实时监控:监视每个资源的 CPU 、内存、存储和网络使用情况。 Docker 管理: 轻松部署和管理 Docker 容器. CLI (即将推出⌛) : 使用命令行管理您的应用程序和数据库. 自托管: 在您的 VPS 上自托管 Dokploy 。

    Github: Dokploy

    官网:dokploy.com/

    目前该项目还在快速迭代之中,基本上每周都会有一两个小版本更新

    部署

    要求:

    服务器硬件:2C2GB 起步 硬盘 30GB 以上

    支持系统:

    • Ubuntu 24.04 LTS
    • Ubuntu 23.10
    • Ubuntu 22.04 LTS
    • Ubuntu 20.04 LTS
    • Ubuntu 18.04 LTS
    • Debian 12
    • Debian 11
    • Fedora 40
    • Centos 9
    • Centos 8

    安装会安装 docker ,如果服务器内原先没有 docker ,则会自动启动安装。由于国内 docker 服务的公开镜像都没有了,所以如果要在国内服务器上安装可以先自己安装 docker ,然后再运行安装脚本。海外服务器正常步骤即可。

    演示服务器为腾讯云的轻量服务器 2C4G80GB ,

    如果是国内服务器请选择系统镜像时选择使用容器镜像--然后选择 Debian 或者 Ubuntu 系统

    这样 docker 就会默认配置使用腾讯云的内网镜像

    非常方便,海外服务器随便。

    运行脚本

    curl -sSL https://dokploy.com/install.sh | sh
    

    由于是内网镜像所以拉取速度很快,一分钟左右就会出现完成提示,趁着 15 秒系统启动时间,我们先去打开服务器的 3000 端口以便后续访问。

    配置防火墙规则

    平台设置

    这个没啥好说的,直接设置就行。首次完成后就默认是管理员了。

    进入管理面板后是这样的:

    这是系统监控:

    这是 Traefik:

    这是 docker 管理;

    图中的 docker 是我之前玩幻兽帕鲁安装的服务器镜像。

    设置页面

    设置页面其他的可以自己探索,这里简单推荐一下优先考虑设置的。 Server Domain 内的域名,证书申请邮箱,证书提供商这三个建议都填上。

    Profile 内的账户也可以考虑开启 2fa

    避免账户被盗

    最后一个集群,需要的可以自己尝试一下,也很简单,只需要加一个自己的 registry 即可。

    个人建议直接开一个自托管的。

    项目创建及部署

    这个也很简单。

    创建项目——创建服务即可

    数据库支持 5 种:PostgreSQL 、MongoDB 、MariaDB 、MySQL 、Redis

    Compose 支持 docker Compose 和 Stack

    官方提供的模板目前只有三个:

    Pocketbase 是 Firebase 的自托管替代方案,允许您构建和托管自己的后端服务。 Plausible 是一个开源的、自托管的网络分析平台,可以让您跟踪网站流量和用户行为。 Calcom 是 Calendly 的开源替代品,允许创建日程安排和预订服务。

    创建自己的第一个应用

    示例: https://github.com/Dokploy/next-todo-app

    由于这是一个公开的 git 项目所以我们只需要在 Provider 选择 Git 即可,自己的私有项目可以设置好个人设置内的 Github 相关项创建 APP——授权 APP

    设置完成后点击 deploy 即可

    你可以进入 Deployments——view 查看项目部署进展

    项目右上角显示黄色的点表示运行中,可以用来判断是否完成

    项目部署完成后可以点击 logs 查看 log 输出, 想要更改项目的资源占用可以点击 Advanced——Resources 设置|

    域名设置也是按照要求设置即可

    不过由于没有对接 DNF 解析商,所以我们需要自己添加解析,证书是自动申请的。

    应用部署完成后会显示:

    之后直接访问前面解析的地址即可。

    注意事项:

    国内的服务器要注意一下应用是不是会大量拉取海外的资源。推荐是在项目中先设置好 npm ,pnpm ,yarn 之类的镜像源。这样部署会快很多。不然可能受网速影响,首次部署要耗费大量时间。

    总结

    如果是成熟的项目,且不对外开放或者使用人数很少的项目还是可以放在 Vercel 的,免费的层级已经能够覆盖大部分小项目了。

    能够承担起 vercel 之类的月费以及超额费用的也可以继续使用,毕竟生态完善,开发起来配套设施齐全。

    价格敏感型用户或者害怕天价账单或者本身就有 VPS 的可以考虑部署一个 Dokploy 尝试尝试的。部署难度低,适配性较好。

    2 条回复    2024-06-24 01:36:55 +08:00
    luckrnx09
        1
    luckrnx09  
       5 天前 via iPhone
    看起来不错,Stared
    ragnaroks
        2
    ragnaroks  
       4 天前
    看起来和 easypanel.io 差不多,下次再弄外快的时候试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3893 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:13 · PVG 18:13 · LAX 03:13 · JFK 06:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.