一键部署开源 PaaS 服务 Dokploy,代替 Vercel, Netlify 以及 Heroku - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kiduu
V2EX    分享发现

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

  •  
  •   kiduu 2024 年 6 月 22 日 3357 次点击
    这是一个创建于 567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    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 即可

    你可以进入 Deploymentsview 查看项目部署进展

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

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

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

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

    应用部署完成后会显示:

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

    注意事项:

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

    总结

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

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

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

    3 条回复    2024-10-27 12:17:49 +08:00
    luckrnx09
        1
    luckrnx09  
       2024 年 6 月 23 日 via iPhone
    看起来不错,Stared
    ragnaroks
        2
    ragnaroks  
       2024 年 6 月 24 日
    看起来和 easypanel.io 差不多,下次再弄外快的时候试试
    cheneydog
        3
    cheneydog  
       2024 年 10 月 27 日
    感觉和 Coolify 一样的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2524 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:55 PVG 12:55 LAX 20:55 JFK 23:55
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86