冰河技术
导读
♻学习路线
  • 面试必问系列

    • 面试必问
  • 架构与模式

    • Java极简设计模式
    • 实战高并发设计模式
  • Java核心技术

    • Java8新特性
    • IOC核心技术
    • JVM调优技术
  • 容器化核心技术

    • Dockek核心技术
  • 分布式存储

    • Mycat核心技术
  • 数据库核心技术

    • MySQL基础篇
  • 服务器核心技术

    • Nginx核心技术
  • 渗透核心技术

    • 渗透实战技术
  • 底层技术
  • 源码分析
  • 基础案例
  • 实战案例
  • 面试
  • 系统架构
  • Spring6核心技术
  • 分布式事务

    • 分布式事务系列视频
  • SpringBoot
  • SpringCloudAlibaba
  • 🔥AI大模型项目

    • 一站式AI智能平台
    • AI智能客服系统
    • AI智能问答系统
    • 实战AI大模型
  • 中间件项目

    • 手写高性能Redis组件
    • 手写高性能脱敏组件
    • 手写线程池项目
    • 手写高性能SQL引擎
    • 手写高性能Polaris网关
    • 手写高性能RPC项目
  • 高并发项目

    • 分布式IM即时通讯系统(新)
    • 分布式Seckill秒杀系统
    • 实战高并发设计模式
  • 微服务项目

    • 简易电商脚手架项目
  • 手撕源码

    • 手撕Spring6源码
🌍知识星球
  • 总览

    • 《书籍汇总》
  • 出版图书

    • 《深入理解高并发编程:核心原理与案例实战》
    • 《深入理解高并发编程:JDK核心技术》
    • 《深入高平行開發:深度原理&專案實戰》
    • 《深入理解分布式事务:原理与实战》
    • 《MySQL技术大全:开发、优化与运维实战》
    • 《海量数据处理与大数据技术实战》
  • 电子书籍

    • 《实战高并发设计模式》
    • 《深入理解高并发编程(第2版)》
    • 《深入理解高并发编程(第1版)》
    • 《从零开始手写RPC框架(基础篇)》
    • 《SpringCloud Alibaba实战》
    • 《冰河的渗透实战笔记》
    • 《MySQL核心知识手册》
    • 《Spring IOC核心技术》
  • 关于自己
  • 关于学习
  • 关于职场
B站
Github
导读
♻学习路线
  • 面试必问系列

    • 面试必问
  • 架构与模式

    • Java极简设计模式
    • 实战高并发设计模式
  • Java核心技术

    • Java8新特性
    • IOC核心技术
    • JVM调优技术
  • 容器化核心技术

    • Dockek核心技术
  • 分布式存储

    • Mycat核心技术
  • 数据库核心技术

    • MySQL基础篇
  • 服务器核心技术

    • Nginx核心技术
  • 渗透核心技术

    • 渗透实战技术
  • 底层技术
  • 源码分析
  • 基础案例
  • 实战案例
  • 面试
  • 系统架构
  • Spring6核心技术
  • 分布式事务

    • 分布式事务系列视频
  • SpringBoot
  • SpringCloudAlibaba
  • 🔥AI大模型项目

    • 一站式AI智能平台
    • AI智能客服系统
    • AI智能问答系统
    • 实战AI大模型
  • 中间件项目

    • 手写高性能Redis组件
    • 手写高性能脱敏组件
    • 手写线程池项目
    • 手写高性能SQL引擎
    • 手写高性能Polaris网关
    • 手写高性能RPC项目
  • 高并发项目

    • 分布式IM即时通讯系统(新)
    • 分布式Seckill秒杀系统
    • 实战高并发设计模式
  • 微服务项目

    • 简易电商脚手架项目
  • 手撕源码

    • 手撕Spring6源码
🌍知识星球
  • 总览

    • 《书籍汇总》
  • 出版图书

    • 《深入理解高并发编程:核心原理与案例实战》
    • 《深入理解高并发编程:JDK核心技术》
    • 《深入高平行開發:深度原理&專案實戰》
    • 《深入理解分布式事务:原理与实战》
    • 《MySQL技术大全:开发、优化与运维实战》
    • 《海量数据处理与大数据技术实战》
  • 电子书籍

    • 《实战高并发设计模式》
    • 《深入理解高并发编程(第2版)》
    • 《深入理解高并发编程(第1版)》
    • 《从零开始手写RPC框架(基础篇)》
    • 《SpringCloud Alibaba实战》
    • 《冰河的渗透实战笔记》
    • 《MySQL核心知识手册》
    • 《Spring IOC核心技术》
  • 关于自己
  • 关于学习
  • 关于职场
B站
Github
  • 开篇:专栏介绍

    • 开篇:实战AI大模型专栏正式开撸
  • 第01部分:DeepSeek API实战

    • 第01节:实战Java和Python调用DeepSeek API
    • 第02节:DeepSeek API流式调用实战
    • 第03节:基于SpringAI实现智能问答系统
  • 第02部分:部署AI大模型

    • 第01节:DeepSeek本地部署+知识库+联网搜索
    • 第02节:DeepSeek R1蒸馏模型组本地部署与调用
    • 第03节:DeepSeek R1蒸馏模型组Ollama调用
    • 第04节:基于Windows系统部署DeepSeek多模态生成模型
    • 第05节:基于Ubuntu系统部署DeepSeek多模态生成模型
    • 第06节:基于Ollama+OpenWebUI和DeepSeek-R1本地部署AI对话系统
    • 第07节:Sealos Cloud+K8S一键脚本部署
    • 第08节:私有化部署Sealos Cloud+Devbox+Minio
  • 第03部分:生成AI应用

    • 第01节:构建生成式AI应用-安装Ollama+Dify
    • 第02节:构建生成式AI应用-接入DeepSeek大模型
    • 第03节:通过Ollama+Dify+DeepSeek+searxng创建Agent应用
    • 第04节:通过Ollama+Dify+Qwen3创建Agent应用
    • 第05节:通过Dify实现构建AI图片生成应用
    • 第06节:基于Dify+llama3+Stable Diffusion搭建AI图片生成应用
    • 第07节:基于Dify+deepseekR1搭建文章理解助手
    • 第08节:基于Dify+deepseekR1搭建智能客服机器人
    • 第09节:基于MCP插件加入高德地图MCP Server
    • 第10节:搭建云IDE平台并安装Dify
    • 第11节:基于ACE-Step搭建生成式AI音乐应用
  • 第04部分:AI数字人应用

    • 第01节:实践QEMU-KVM 虚拟化
    • 第02节:基于Dify chatflow工作流生成专业级提示词
    • 第03节:基于Awesome-Digital-Human-Live打造AI数字人
    • 第04节:基于多个大模型改写数字人应用(代码版)
    • 第05节:基于开源数字人硅基heygem生成AI数字人
  • 第05部分:增强与优化

    • 第01节:增强优化ComfyUI并安装插件
    • 第02节:从源码到Docker部署Qwen3-VL接口
    • 第03节:分离部署Duix.Avatar服务端和客户端
  • 专栏总结

    • 总结:实战AI大模型整体专栏总结

《实战AI大模型》生成AI应用-第10节:搭建云IDE平台并安装Dify

作者:冰河
星球:http://m6z.cn/6aeFbs
博客:https://binghe.site
文章汇总:https://binghe.site/md/all/all.html
源码获取地址:https://t.zsxq.com/0dhvFs5oR

大家好,我是冰河~~

在当前技术发展的大趋势下,开发环境正加速向云端迁移。云IDE(集成开发环境)平台不仅让开发团队能够在统一的环境中进行实时协作,还能有效减少因环境差异导致的问题,显著提升开发效率。通过浏览器即可访问的特性,使得云IDE能够在各类现代设备上无缝运行。

今天,我们一起深入探索如何在Ubuntu系统上搭建Code-Server云IDE平台,并集成Dify应用。Code-Server实质上是在远程服务器上运行的Microsoft Visual Studio Code,开发者可以直接通过浏览器使用完整的VS Code功能,包括Git集成、代码调试、智能提示等丰富的编辑器特性。

一、搭建Docker基础环境

云IDE的稳定运行离不开容器化技术的支持,我们首先需要配置完善的Docker环境。

1.1 Docker安装与配置

执行以下命令完成Docker的安装和基础配置:

源码详见:deepseek-case-10/install_docker.sh。

sudo apt update && sudo apt install -y docker.io
sudo systemctl enable --now docker
将当前用户加入 Docker 组
sudo usermod -aG docker $USER
newgrp docker  
sudo chmod +x /usr/bin/docker

1.2 配置国内镜像加速

考虑到国内网络环境,我们需要配置Docker镜像加速器来提升拉取镜像的速度:

源码详见:deepseek-case-10/daemon.sh

sudo tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/" 
],
 "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
    ],
"debug": true,
"experimental": false
}
EOF
sudo systemctl restart docker

1.3 Docker Compose安装

Docker Compose是管理多容器应用的重要工具:

源码详见:deepseek-case-10/install_docker_compose.sh

# 下载静态编译的 docker-compose(x86_64 示例)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

二、部署Code-Server云IDE

Code-Server作为云IDE的核心,我们需要仔细配置以确保其稳定性和可用性。

2.1 创建运行目录和配置文件

合理的目录结构有助于后续维护:

#创建目录
sudo mkdir -p code-server
cd code-server/
sudo mkdir -p coder
sudo chown -R 1000:1000 ./coder
sudo chmod -R 777 ./coder

2.2 配置Docker Compose文件

创建docker-compose.yml文件,这是容器化部署的关键:

源码详见:deepseek-case-10/code-server-docker-compose.yml

services:
  code-server:
    image: codercom/code-server:latest
    container_name: code-server
    restart: unless-stopped
    environment:
      - [email protected]  #设置密码
      - TZ=Asia/Shanghai        # 设置时区
    volumes:
      - /home/x58/code-server/coder:/home/coder           # 配置文件存储,改为自己文件
      - /var/run/docker.sock:/var/run/docker.sock  # 允许容器内使用Docker(可选)
      - /usr/bin/docker:/usr/bin/docker          # 挂载宿主机docker客户端
      - /usr/bin/docker-compose:/usr/local/bin/docker-compose  # 挂载docker-compose
    networks:
      - code-network
    user: 1000:1000  # 以非root用户运行(需确保UID存在)
    ports:
      - "18080:8080"  # 仅允许本地访问
 
networks:
  code-network:
    driver: bridge

关键配置说明:

  • 挂载Docker套接字:使容器内可使用宿主机Docker
  • 用户权限设置:增强安全性,避免root权限运行
  • 网络隔离:创建独立网络环境

2.3 启动Code-Server服务

源码详见:deepseek-case-10/code_server_startup.sh

docker-compose up -d
docker-compose down && docker-compose up -d

三、配置Nginx反向代理与HTTPS

直接通过IP和端口访问不够安全,我们需要配置Nginx提供HTTPS访问。

3.1 安装Nginx

sudo apt install nginx

3.2 生成自签名SSL证书

对于内网环境,自签名证书足够使用且配置简单:

源码详见:deepseek-case-10/create_ssl.sh

# 创建SSL证书目录
sudo mkdir -p /etc/nginx/ssl

# 生成私钥和证书(替换192.168.1.111为你的服务器IP)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
    -keyout /etc/nginx/ssl/self.key \
    -out /etc/nginx/ssl/self.crt \
    -subj "/C=CN/ST=Beijing/L=Beijing/O=LAN/CN=192.168.1.111"

随后,生成完整的证书配置文件

源码详见:deepseek-case-10/openssl.config

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
 
[req_distinguished_name]
C = CN
ST = Beijing
L = Beijing
O = LAN
CN =  192.168.1.111  # 你自己的服务器IP
 
[v3_req]
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
basicConstraints = CA:FALSE
 
[alt_names]
IP.1 =  192.168.1.111  # 你自己的服务器IP

3.3 配置Nginx反向代理

创建配置文件/etc/nginx/sites-available/code-server.conf:

查看完整文章

加入冰河技术知识星球,解锁完整技术文章、小册、视频与完整代码

在 GitHub 上编辑此页
上次更新: 2026/4/29 16:18
Contributors: binghe001
Prev
第09节:基于MCP插件加入高德地图MCP Server
Next
第11节:基于ACE-Step搭建生成式AI音乐应用
阅读全文
×

扫码或搜索:冰河技术
发送:290992
即可立即永久解锁本站全部文章

星球会员
跳转链接