SmartCharts部署教程:从Nginx配置到Docker容器化的完整步骤

📅 2026/7/14 17:54:54
SmartCharts部署教程:从Nginx配置到Docker容器化的完整步骤
SmartCharts部署教程从Nginx配置到Docker容器化的完整步骤【免费下载链接】SmartCharts数据可视化,大屏, 支持Echarts,SQL,API,VUE,可用于Jupyter, 比pyecharts容易, 极低门槛,拿来即用,比拖拽方便,项目插件或独立平台皆可, 简单, 敏捷, 高效, 通用化, 高度可定制化,为你完全打通前后端, 图形数据联动, 筛选开发毫无压力, 数据缓存处理机制让报表快人一步项目地址: https://gitcode.com/gh_mirrors/smar/SmartChartsSmartCharts是一款强大的数据可视化平台专为开发者设计支持Echarts图表、大屏展示、数据中台等应用场景。本文将为您提供从Nginx配置到Docker容器化的完整部署指南帮助您快速搭建专业的可视化平台。 部署前准备在开始部署SmartCharts之前需要确保您的服务器环境满足以下要求Python 3.6- SmartCharts基于Django框架开发Nginx- 用于反向代理和静态文件服务uWSGI- Python应用服务器Docker(可选) - 用于容器化部署Git- 用于代码克隆环境检查清单# 检查Python版本 python3 --version # 检查Nginx状态 nginx -v # 检查Docker版本 docker --version 快速安装步骤1. 克隆项目仓库git clone https://gitcode.com/gh_mirrors/smar/SmartCharts.git cd SmartCharts2. 安装Python依赖pip install smartchartSmartCharts的依赖非常简单只需要安装一个包即可所有相关依赖都会自动安装。 Nginx配置详解Nginx是SmartCharts生产环境部署的关键组件负责处理静态文件服务和反向代理。基础Nginx配置SmartCharts提供了完整的Nginx配置文件deploy/nginx.conf# 启动进程通常设置成和CPU的数量相等 worker_processes 4; user smartchart; events { worker_connections 1024; } http { # 静态文件服务配置 location /static/ { alias /data/smartchart/_magiccube/static/; } location /media/ { alias /data/smartchart/_magiccube/media/; } # 反向代理配置 location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; } }SSL证书配置可选如果需要HTTPS访问可以配置SSL证书server { listen 80; listen 443 ssl; server_name yourdomain.com; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private.key; # 其他配置保持不变 } uWSGI配置指南uWSGI是SmartCharts的Python应用服务器配置文件位于deploy/uwsgi.ini主要配置项说明[uwsgi] # 使用Nginx时使用socket只使用uWSGI时使用http socket 127.0.0.1:8001 chdir $(SMC_HOME)/_magiccube virtualenv $(MAGICCUBE_HOME)/venv wsgi-file $(SMC_HOME)/_magiccube/magiccube/wsgi.py processes 2 threads 2 master True pidfile $(SMC_HOME)/_magiccube/uwsgi.pid daemonize $(SMC_HOME)/_magiccube/log/uwsgi.log环境变量设置在启动前需要设置环境变量export SMC_HOME/data/smartchart export MAGICCUBE_HOME/data/smartchart/_magiccube 系统服务配置SmartCharts提供了Systemd服务配置文件deploy/smartchart.service服务配置详解[Unit] DescriptionSmartchart Aftersyslog.target [Service] WorkingDirectory$MAGICCUBE_HOME ExecStartuwsgi --ini $MAGICCUBE_HOME/deploy/uwsgi.ini Usersmartchart Restartalways StandardErrorsyslog [Install] WantedBymulti-user.target安装系统服务# 复制服务文件到系统目录 sudo cp deploy/smartchart.service /etc/systemd/system/ # 重新加载systemd配置 sudo systemctl daemon-reload # 启用服务开机自启 sudo systemctl enable smartchart # 启动服务 sudo systemctl start smartchart # 查看服务状态 sudo systemctl status smartchart Docker容器化部署Dockerfile示例FROM python:3.8-slim # 设置工作目录 WORKDIR /app # 复制依赖文件 COPY requirements.txt . # 安装依赖 RUN pip install --no-cache-dir -r requirements.txt # 复制项目文件 COPY . . # 设置环境变量 ENV SMC_HOME/app ENV MAGICCUBE_HOME/app/_magiccube # 暴露端口 EXPOSE 8000 # 启动命令 CMD [uwsgi, --ini, deploy/uwsgi.ini]Docker Compose配置version: 3.8 services: smartcharts: build: . ports: - 8000:8000 volumes: - ./data:/data - ./static:/app/static - ./media:/app/media environment: - SMC_HOME/app - MAGICCUBE_HOME/app/_magiccube restart: unless-stopped 部署脚本使用SmartCharts提供了完整的部署脚本位于deploy/目录下启动脚本deploy/start.sh#!/bin/bash # 启动SmartCharts服务 uwsgi --ini deploy/uwsgi.ini停止脚本deploy/stop.sh#!/bin/bash # 停止SmartCharts服务 uwsgi --stop deploy/uwsgi.pid重启脚本deploy/restart.sh#!/bin/bash # 重启SmartCharts服务 deploy/stop.sh sleep 2 deploy/start.sh升级脚本deploy/upgrade.sh#!/bin/bash # 升级SmartCharts git pull pip install --upgrade smartchart deploy/restart.sh️ 数据库配置SmartCharts默认使用SQLite数据库也支持其他数据库SQLite配置默认配置文件magiccube/settings.pyDATABASES { default: { ENGINE: django.db.backends.sqlite3, NAME: BASE_DIR / db.sqlite3, } }PostgreSQL配置示例DATABASES { default: { ENGINE: django.db.backends.postgresql, NAME: smartcharts, USER: postgres, PASSWORD: yourpassword, HOST: localhost, PORT: 5432, } } 静态文件配置收集静态文件# 进入项目目录 cd SmartCharts # 收集静态文件 python manage.py collectstatic # 设置权限 chown -R smartchart:smartchart static/ chmod -R 755 static/Nginx静态文件服务优化location /static/ { alias /data/smartchart/_magiccube/static/; expires 30d; add_header Cache-Control public, immutable; } location /media/ { alias /data/smartchart/_magiccube/media/; expires 7d; add_header Cache-Control public; } 部署验证与测试1. 服务状态检查# 检查uWSGI进程 ps aux | grep uwsgi # 检查Nginx状态 systemctl status nginx # 检查端口监听 netstat -tlnp | grep :80002. 访问测试# 测试本地访问 curl http://localhost:8000/ # 测试Nginx代理 curl http://yourdomain.com/3. 日志查看# 查看uWSGI日志 tail -f /data/smartchart/_magiccube/log/uwsgi.log # 查看Nginx访问日志 tail -f /data/smartchart/_magiccube/log/Nginx_access.log # 查看Nginx错误日志 tail -f /data/smartchart/_magiccube/log/Nginx_error.log 常见问题解决1. 权限问题# 创建smartchart用户 sudo useradd -r -s /bin/false smartchart # 设置目录权限 sudo chown -R smartchart:smartchart /data/smartchart/2. 端口冲突# 检查端口占用 netstat -tlnp | grep :8000 # 修改端口配置 # 在uwsgi.ini中修改socket端口 # 在nginx.conf中修改uwsgi_pass端口3. 静态文件404# 检查静态文件目录 ls -la /data/smartchart/_magiccube/static/ # 重新收集静态文件 python manage.py collectstatic --noinput 性能优化建议1. uWSGI性能调优# 根据服务器配置调整 processes 4 # CPU核心数 threads 2 # 每个进程的线程数 max-requests 1000 # 防止内存泄漏2. Nginx优化# 启用Gzip压缩 gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xmlrss text/javascript; # 连接超时设置 keepalive_timeout 65; client_max_body_size 75M;3. 数据库优化# 启用数据库连接池 DATABASES { default: { ENGINE: django.db.backends.postgresql, CONN_MAX_AGE: 600, # 连接池保持时间 } } 部署总结通过本教程您已经掌握了SmartCharts从Nginx配置到Docker容器化的完整部署流程。SmartCharts的部署相对简单主要涉及以下几个关键步骤环境准备- 安装Python、Nginx、uWSGI等基础软件项目配置- 配置数据库、静态文件、服务参数服务部署- 配置uWSGI和Nginx设置系统服务容器化- 使用Docker简化部署流程验证测试- 确保服务正常运行SmartCharts的强大之处在于其简单易用的部署方式让您能够快速搭建专业的数据可视化平台。无论是个人项目还是企业级应用SmartCharts都能提供稳定可靠的服务。记住定期查看日志文件及时更新系统并根据实际需求调整性能参数这样才能确保SmartCharts平台长期稳定运行。祝您部署顺利 【免费下载链接】SmartCharts数据可视化,大屏, 支持Echarts,SQL,API,VUE,可用于Jupyter, 比pyecharts容易, 极低门槛,拿来即用,比拖拽方便,项目插件或独立平台皆可, 简单, 敏捷, 高效, 通用化, 高度可定制化,为你完全打通前后端, 图形数据联动, 筛选开发毫无压力, 数据缓存处理机制让报表快人一步项目地址: https://gitcode.com/gh_mirrors/smar/SmartCharts创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考