智能3D打印耗材管理系统 Smart 3D Filament Management System.
1.4K
🌐 Bilingual · 🐳 Docker · 🪟 Windows Portable · 📊 Cost Calculator
A full-featured consumable asset management tool for 3D printing enthusiasts, small studios, and print farms. Track filaments from purchase to depletion, manage printers and slots, and calculate project costs with a built-in commercial pricing engine.
一款面向 3D 打印爱好者、小型工作室和打印农场的全功能耗材资产管理工具。耗材全生命周期追踪、设备与槽位管理、内置商业成本计算器。
GitHub: pixelpulse0x1/3DFilamentManagement
Memory: 30.21MB
Suggested Price = (Total Cost + Labor) / (1 − Profit% − Platform% − Tax%), zero-denominator protection, history center (50 records)![]()
docker pull pixelpulse01/3dfilamentmanagement:latest
docker run -d \
--name 3dfilament \
-p 9055:3155 \
-v /opt/docker-stacks/3dfilamentmanagement:/data \
-e SECRET_KEY=your-random-secret-key \
-e TZ=Asia/Shanghai \
pixelpulse01/3dfilamentmanagement:latest
Then visit http://:9055
Create a docker-compose.yml:
services:
3dfilamentmanagement:
image: pixelpulse01/3dfilamentmanagement:latest
container_name: 3dfilamentmanagement
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- SECRET_KEY=change-me-to-random-string
- DATA_DIR=/data
ports:
- "9055:3155"
volumes:
- /opt/docker-stacks/3dfilamentmanagement:/data
Then:
docker compose up -d
| Parameter | Default | Description |
|---|---|---|
-p 9055:3155 | 9055:3155 | Host port : Container port (container always listens on 3155) |
-v ...:/data | — | Persistent data volume (database + uploads) |
SECRET_KEY | change-me-to-random-string | Flask secret key — change this in production |
TZ | Asia/Shanghai | Timezone (affects datetime('now','localtime') in SQLite) |
DATA_DIR | /data | Data directory inside container (usually leave as default) |
All data is stored in /data inside the container:
/data/
├── database/
│ └── filament_inventory.db # SQLite database (auto-migrated on startup)
└── uploads/
├── backgrounds/ # Background images
└── filaments/ # Filament photos
Mount a host directory to /data to persist your database and uploads across container rebuilds.
git clone https://github.com/pixelpulse0x1/3DFilamentManagement.git
cd 3DFilamentManagement/workspace
# Build & run
docker compose build --no-cache
docker compose up -d
A zero-dependency Windows portable version is also available. Download 3D_Inventory_Management_v0.6.2.3.zip from the GitHub Releases, extract anywhere, and double-click 运行系统.bat — no Python installation required.
| Layer | Technology |
|---|---|
| Backend | Python 3.10 + Flask (Blueprint architecture) |
| Database | SQLite3 (versioned migration engine, V1→V11) |
| Frontend | Vanilla JS + Jinja2 + Chart.js |
| UI | Glassmorphism dark theme |
| Testing | 24-case E2E integration test suite |
| Version | Date | Highlights |
|---|---|---|
| v0.6.2.3 | May 2026 | i18n audit fix, device data linkage fix, device edit feature, donation modal, chart visual optimization |
| v0.6.2.2 | May 2026 | DEBUG_MODE log suppression, one-click build script, background seeding fix |
| v0.6.2.0 | May 2026 | Windows portable edition, multi-environment adaptive paths |
| v0.6.1.2 | May 2026 | i18n audit, status enum disaster prevention |
| v0.6.1.0 | May 2026 | i18n multilingual framework |
| v0.5.2.2 | Apr 2026 | 502 fixes, zero-denominator protection |
| v0.5.1.0 | Apr 2026 | Cost calculator with Chart.js dashboard |
MIT License. See LICENSE.
建议报价 = (总成本 + 辛苦费) / (1 − 利润率% − 平台抽成% − 税率%)、分母为零防崩溃、50 条历史记录![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
docker pull pixelpulse01/3dfilamentmanagement:latest
docker run -d \
--name 3dfilament \
-p 9055:3155 \
-v /opt/docker-stacks/3dfilamentmanagement:/data \
-e SECRET_KEY=your-random-secret-key \
-e TZ=Asia/Shanghai \
pixelpulse01/3dfilamentmanagement:latest
访问 http://<你的服务器IP>:9055
创建 docker-compose.yml:
services:
3dfilamentmanagement:
image: pixelpulse01/3dfilamentmanagement:latest
container_name: 3dfilamentmanagement
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- SECRET_KEY=change-me-to-random-string
- DATA_DIR=/data
ports:
- "9055:3155"
volumes:
- /opt/docker-stacks/3dfilamentmanagement:/data
然后执行:
docker compose up -d
| 参数 | 默认值 | 说明 |
|---|---|---|
-p 9055:3155 | 9055:3155 | 宿主机端口:容器端口(容器内固定监听 3155) |
-v ...:/data | — | 数据持久化卷(数据库 + 上传文件) |
SECRET_KEY | change-me-to-random-string | Flask 密钥 — 生产环境请务必修改 |
TZ | Asia/Shanghai | 时区(影响 SQLite datetime('now','localtime')) |
DATA_DIR | /data | 容器内数据目录(通常无需修改) |
所有数据存储在容器内 /data 目录:
/data/
├── database/
│ └── filament_inventory.db # SQLite 数据库(启动时自动迁移)
└── uploads/
├── backgrounds/ # 背景图
└── filaments/ # 耗材实物图
将宿主机目录挂载到 /data 即可在容器重建后保留数据库和上传文件。
git clone https://github.com/pixelpulse0x1/3DFilamentManagement.git
cd 3DFilamentManagement/workspace
# 构建并启动
docker compose build --no-cache
docker compose up -d
同时提供零依赖的 Windows 绿色便携版。从 GitHub Releases 下载 3D_Inventory_Management_v0.6.2.3.zip,解压到任意目录,双击 运行系统.bat 即可启动——无需安装 Python 或任何运行环境。
| 层级 | 技术 |
|---|---|
| 后端 | Python 3.10 + Flask (Blueprint 模块化架构) |
| 数据库 | SQLite3 (版本化迁移引擎, V1→V11) |
| 前端 | Vanilla JS + Jinja2 模板 + Chart.js |
| UI | 玻璃拟态 (Glassmorphism) 深色主题 |
| 测试 | 24 项 E2E 集成测试 |
| 版本 | 日期 | 主要变更 |
|---|---|---|
| v0.6.2.3 | 2026-05 | 国际化翻译修复、设备数据联动修复、设备编辑功能、赞赏模态框、图表视觉优化 |
| v0.6.2.2 | 2026-05 | DEBUG_MODE 日志静音、一键编译脚本、背景图种子化修复 |
| v0.6.2.0 | 2026-05 | Windows 绿色便携版、多环境自适应路径底座 |
| v0.6.1.2 | 2026-05 | i18n 完备性审计、状态枚举通信防灾 |
| v0.6.1.0 | 2026-05 | i18n 多语言框架上线 |
| v0.5.2.2 | 2026-04 | 全线 502 修复、分母为零防崩溃 |
| v0.5.1.0 | 2026-04 | 成本计算器全量上线 + Chart.js 看板 |
MIT License. 详见 LICENSE。
❤️ 所有打赏将用于服务器/域名开销,或只是让我在深夜写代码时多杯热茶。
All donations go toward server/domain costs, or just a cup of tea for late-night coding.
|
微信赞赏 · 金额随心 WeChat · Amount at Will |
支付宝红包 · 扫码支持 Alipay · Scan to Support |
⚠️ 此赞助完全自愿,不构成任何服务合同,Issue 仍按正常优先级处理。
⚠️ This sponsorship is completely voluntary and does not constitute any service contract. Issues will still be processed with standard priority.
Built with ❤️ by pixelpulse0x1
Content type
Image
Digest
sha256:d58220a09…
Size
26.6 MB
Last updated
about 2 months ago
docker pull pixelpulse01/3dfilamentmanagement