Linux无图形界面部署Fitten Code环境指南
systemctl get-default ,输出必须为 multi-user.target。若返回 graphical.target,说明系统可能残留桌面环境配置,建议先执行 sudo systemctl set-default multi-user.target 并重启,否则后续服务可能因依赖冲突而异常。接着使用 lsb_release -is 和 lsb_release -rs 确认发行版及版本号—— **【Ubuntu必须用apt,RHEL系必须用dnf,混用会导致元包解析失败】** ,这是实际踩过的坑。同时检查防火墙状态:Ubuntu上 sudo ufw status,RHEL系上 sudo firewall-cmd --state。若防火墙处于active状态,记录当前开放的端口范围,避免Fitten Code端口被屏蔽。
接下来,下载并解压Fitten Code Server的二进制包。切换至临时目录 cd /tmp,执行下载命令:
curl -L https://github.com/fittencode/fc-server/releases/download/v1.8.2/fc-server-linux-amd64.tar.gz -o fc.tar.gz
v1.8.2是目前最新的稳定版本。若链接因仓库调整失效,请手动从GitHub releases页面获取最新的amd64或arm64包地址。下载完成后,创建安装目录并解压:
sudo mkdir -p /opt/fc-server && sudo tar -zxvf fc.tar.gz -C /opt/fc-server --strip-components=1
此操作将可执行文件直接释放在 /opt/fc-server 根目录下,无多余子文件夹,结构清晰。最后赋予执行权限:sudo chmod +x /opt/fc-server/fc-server。
配置运行参数和用户权限,这一步直接关系进程安全。新建专用运行用户,禁止root直接启动:
sudo useradd -r -s /bin/false fitten
该用户无登录shell,无家目录,仅用于隔离进程权限。然后将二进制文件属主改为该用户:
sudo chown fitten:fitten /opt/fc-server/fc-server
同时创建配置目录并授权:
sudo mkdir -p /var/lib/fc-server && sudo chown fitten:fitten /var/lib/fc-server
Fitten Code默认将工作区、插件、日志写入此路径。需要特别注意:**【若跳过此步骤,首次启动时会因权限拒绝创建目录而静默失败】**,排查起来相当耗时。此时可切换到fitten用户测试启动:
sudo -u fitten /opt/fc-server/fc-server --host 0.0.0.0 --port 3000 --data-dir /var/lib/fc-server
若输出 Server listening on http://0.0.0.0:3000,说明基础运行链路已打通,可以继续后续配置。
注册为systemd服务并设置开机自启,确保服务稳定运行且随系统启动。创建服务定义文件:
sudo nano /etc/systemd/system/fc-server.service
填入以下内容:
[Unit]Description=Fitten Code Server
After=network.target
[Service]
Type=simple
User=fitten
Group=fitten
WorkingDirectory=/var/lib/fc-server
ExecStart=/opt/fc-server/fc-server --host 0.0.0.0 --port 3000 --data-dir /var/lib/fc-server
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target 保存退出后,重载systemd配置:
sudo systemctl daemon-reload
接着启用并启动服务:
sudo systemctl enable --now fc-server.service
最后确认服务状态:
sudo systemctl status fc-server.service
若看到 Active: active (running) 且无Failed行,表明服务已正常运行。
最后一步是开放端口并验证远程访问。Ubuntu用户执行:
sudo ufw allow 3000
RHEL系用户执行:
sudo firewall-cmd --permanent --add-port=3000/tcp && sudo firewall-cmd --reload
使用 ss -tuln | grep ':3000' 确认端口监听,应看到类似 tcp LISTEN 0 128 *:3000 *:* 的输出。此时从本地浏览器访问 http://[服务器IP]:3000,页面加载出Fitten Code编辑器界面即告完成。若无法访问,请优先检查云服务器安全组是否放行3000端口——这是最常见的遗漏点,且报错信息往往不直观,排查时务必优先确认。