Laf是一个完全开源的云开发平台,主打“写代码即上线”的开发体验。开发者只需要在浏览器里打开Web IDE,写好云函数,点一下发布,函数就立刻可以对外提供服务,完全不需要配置服务器、安装运行环境或者操心发布流程。这种体验对前端开发者和小团队特别友好。虽然Laf官方提供了在线云服务,但对数据安全有要求的企业和团队来说,把Laf部署到自己的服务器上才是更稳妥的选择。本文就来详细聊聊Laf的自托管部署过程,以及部署完成后Web IDE的配置要点。

一、部署前的准备工作
自托管Laf之前,先要确认服务器的基本条件。Laf官方推荐使用Linux服务器,配置至少2核4G内存,磁盘空间建议在40G以上,因为运行过程中会产生容器镜像和日志文件,占用空间增长比较快。操作系统方面,Ubuntu 20.04以上版本或者CentOS 8以上版本都可以,本文以Ubuntu为例进行说明。
软件环境方面,Docker和Docker Compose是必须的。Laf的整个体系都跑在容器里,包括数据库、控制台后端、Web IDE服务等组件。安装Docker可以直接使用官方脚本,执行命令 curl -fsSL https://get.docker.com | bash 即可完成安装。Docker Compose建议使用v2版本,新版本已经作为Docker插件集成,命令格式是 docker compose,注意中间是空格,不是连字符。
另外还需要提前准备好域名和SSL证书。Laf的多租户架构依赖泛域名解析,也就是说每一个应用都会分配一个独立的子域名,例如 app1.xxx.com、app2.xxx.com 这种形式。因此需要在域名服务商那里添加一条泛解析记录,把 *.xxx.com 指向服务器的公网IP。如果暂时没有SSL证书,可以先配置泛域名的DNS验证证书,或者在内网环境直接用HTTP方式访问。
二、使用Docker Compose部署Laf
Laf官方在GitHub上提供了完整的部署仓库,地址是 github.com/labring/laf,进入仓库后可以找到deployment目录,里面包含了自托管所需的docker-compose编排文件。首先把代码克隆到服务器上:
git clone https://github.com/labring/laf.git
克隆完成后进入部署目录,这里以deployment目录下的yaml文件为准。在启动之前,需要修改几个关键的环境变量配置。打开 .env 文件,主要关注以下几项:
- DOMAIN:填写你的泛域名,例如 ippipp.com,Laf会基于这个域名生成各应用的访问地址。
- ADMIN_PASSWORD:管理员的初始密码,建议改成强密码,部署完成后用它登录控制台。
- DB_PASSWORD:MongoDB数据库的密码,Laf底层使用MongoDB存储应用数据、函数元信息等内容。
- JWT_SECRET:控制台的会话令牌密钥,随机生成一串足够长的字符串即可,例如使用 openssl rand -hex 32 生成。
配置修改完成后,执行 docker compose up -d 启动全部服务。首次启动会拉取多个镜像,包括 laf-server、MongoDB、minio、应用运行时等,视网络情况可能需要几分钟到十几分钟。可以通过 docker compose ps 查看各容器的运行状态,全部显示running且健康检查通过后,部署基本就完成了。
有一个容易踩的坑需要提醒:Laf的架构中每个应用本身也是一个容器,默认使用应用运行时镜像。如果服务器在国内,拉取镜像速度慢,可以配置Docker镜像加速器,或者提前手动拉取运行时镜像并重新打标签,避免创建应用时长时间等待。
三、初始化控制台与创建应用
服务启动后,在浏览器访问你配置的域名,就能看到Laf的控制台登录页面。首次登录使用管理员账号,默认用户名是admin,密码就是之前在环境变量里设置的 ADMIN_PASSWORD。登录成功后先不要急着写函数,第一步应该检查系统设置里的域名配置是否正确。
进入控制台的“系统设置”页面,确认默认域名与泛解析域名一致,同时检查短信、邮件等通知渠道(内网环境可以跳过)。接下来到“应用市场”或“运行时”页面,确认应用运行时镜像已经就绪。如果列表为空,需要手动指定运行时镜像地址,例如 lafyun/open-runtime-node-x.x 这类官方镜像,具体版本以官方文档为准。
然后就可以创建第一个应用了。点击“新建应用”,选择运行时类型(Node.js版本)、规格(CPU和内存限制)以及存储大小。创建完成后,系统会给应用分配一个子域名,点击“开发”按钮即可进入该应用的Web IDE界面。到这一步,自托管的Laf平台已经可以正常使用了。
四、Web IDE的配置与使用技巧
Web IDE是Laf最核心的体验,它基于Monaco Editor构建,界面和VS Code非常接近,支持语法高亮、智能补全和快捷键操作。进入Web IDE后,左侧是函数列表和依赖管理,中间是代码编辑区,下方是调试输出面板。默认会有一个hello函数,可以直接点击右上角的“运行”按钮测试。
函数调试方面,Web IDE底部的输出面板会实时显示 console.log 的内容以及函数的执行耗时、请求返回结果。如果函数报错,堆栈信息也会完整展示在这里,排查问题相当方便。需要注意,每次修改代码后必须点击“发布”才会生效,仅仅保存是不会更新线上函数的,这是很多新用户容易忽略的地方。
依赖管理是Web IDE的另一个重点。点击左侧的“依赖”选项卡,可以直接搜索npm包名并安装,安装过程会在后台执行npm install,完成后在package列表中就能看到。建议按需安装,不要一股脑装一堆没用的包,因为依赖越多,应用的冷启动时间越长。同时,国内环境下npm源可能较慢,如果安装超时,可以在依赖管理里切换registry地址为国内的镜像源。
此外,Web IDE还支持环境变量配置、定时触发器、云存储等能力。环境变量在“设置”里添加后,可以通过 process.env 在函数中直接读取;定时触发器则适合跑定时任务,例如每小时同步一次数据。这些功能配合使用,基本上可以覆盖中小型项目的大部分后端需求。
五、日常维护与常见问题
部署完成只是第一步,日常运维同样重要。建议定期执行 docker compose pull 和 docker compose up -d 来更新Laf的各个组件版本,官方迭代速度比较快,新版本往往修复了安全问题和功能缺陷。更新前记得备份数据库,可以用 mongodump 导出MongoDB数据,避免升级失败导致数据丢失。
常见问题方面,最频繁遇到的是应用访问报502或者域名不通。排查思路是:先确认泛域名解析是否生效,用 ping 测试子域名是否指向服务器IP;再检查服务器防火墙和安全组是否放行了80和443端口;最后看应用容器状态是否正常。另一个常见问题是磁盘空间不足,Laf运行久了日志文件会占不少空间,可以配置Docker的日志轮转策略,限制单个容器日志的大小。
总体来说,Laf的自托管部署并不复杂,只要Docker环境就绪、域名配置正确,一两个小时就能跑通整套平台。配合Web IDE的在线开发体验,团队内部可以快速搭建一套私有的云函数服务,既保证了数据安全,又保留了云开发的敏捷性,非常值得一试。
Laf自托管Serverless平台部署云函数Web IDE修改时间:2026-09-04 19:54:39