appsmith 必须用 docker compose up -d 启动,依赖官方 docker-compose.yml 和 docker 2.0+ 环境;需配置 appsmith_server_url、反向代理及正确证书,否则前端资源加载失败或登录静默失败。

docker compose up -d 是唯一受支持的安装方式,别折腾源码编译或 npm 启动——那些路径根本跑不起来。
确认 Docker 环境是否真就绪
很多人卡在第一步:看似装了 Docker,但 docker compose version 报错或版本过低。Appsmith 要求 docker ≥ 2.0、docker compose(不是旧版 docker-compose)也 ≥ 2.0。
- Ubuntu/Debian 上,
sudo apt install docker.io docker-compose安装的往往是旧版,建议走 Docker 官方 repo 或用curl https://get.docker.com | sudo sh+sudo apt install docker-compose-plugin - 运行
docker info看 Storage Driver 是否为overlay2;磁盘空间至少留 2GB,Appsmith 镜像加数据卷合计占约 1.2GB - 普通用户必须加入
docker组:sudo usermod -aG docker $USER,然后完全退出终端重登,否则docker compose up会权限拒绝
拉配置、启服务,三步不能少
别自己写 docker run 命令,官方 docker-compose.yml 已打包 PostgreSQL、Redis、Nginx,手动拼接大概率导致静态资源 404 或 WebSocket 断连。
- 创建干净目录:
mkdir -p ~/appsmith && cd ~/appsmith - 下载最新稳定版配置:
wget https://raw.githubusercontent.com/appsmithorg/appsmith/release/deploy/docker/docker-compose.yml(注意是release分支,不是main或refs/heads/release这类错误路径) - 启动:
docker compose up -d(不是docker-compose),等 1–2 分钟后执行docker compose ps,看到appsmith-server、postgres、redis全是running才算成功
为什么 localhost:8080 能打开,但局域网其他机器打不开?
因为默认只监听 127.0.0.1:8080,硬改 ports 暴露 8080 是最常见错误——这会绕过 Appsmith 内置 Nginx,导致前端资源加载失败。
- 正确做法:编辑
docker-compose.yml中appsmith-server的environment区块,添加两行:APPSMITH_ENFORCE_SECURE_COOKIES: "true"APPSMITH_SERVER_URL: "https://your-domain.com"(没域名先填http://your-server-ip,HTTPS 待反向代理补上) - 必须配反向代理(Nginx/Caddy),让 TLS 终止在代理层,再把请求转发给容器内
8080;直接暴露容器端口 = 放弃 WebSocket 和静态资源完整性 - 首次访问若提示 “Invalid Host header”,说明
APPSMITH_SERVER_URL值和浏览器地址栏不一致,比如填了https://app.example.com却用http://192.168.1.100访问
本地开发想改前端代码?别直接 npm start
Appsmith 前端依赖后端 API、Redis 会话、PostgreSQL 数据库,跳过 Docker 直接 yarn start 必然报 Connection refused 或登录页空白。
- 改前端必须走完整容器栈:保持
docker compose up -d运行,再进appsmith/client目录,按官方文档启用热更新模式(需提前生成证书、配/etc/hosts) - 证书必须用
mkcert生成,且域名得是dev.appsmith.com,否则现代浏览器会拦截混合内容 - 环境变量文件
.env.local里要设REACT_APP_BACKEND_API_BASE_URL=http://localhost:8080/api/v1,不然前端发请求会指向错地址
APPSMITH_SERVER_URL 与反向代理配置的严格一致性——填错一个字符,整个登录流程就会静默失败,连错误日志都不明显。











