面向个人与小微团队的轻量合同管理:把常用合同沉淀为「模板 + 字段」,生成合同时填表即得,一键打印或另存为 PDF
v0.2.0
富文本正文编辑,正文中插入自定义字段占位符(甲方名称、金额、日期……),整体保存为模板,可复制复用
单行/多行文本、数字、日期、下拉选择;支持必填、半行宽、占位提示,字段可增删改与排序
选模板 → 填表单 → 占位符自动代入,实时预览;留空字段渲染为下划线空位,打印后可手工补填
合同保存模板正文与字段定义的完整快照,模板后续修改或删除不影响已生成的合同
草稿 → 生效 → 归档;签订日期与备注,支持关键字、状态、模板多维度筛选
独立 A4 版式打印视图,一键调起浏览器打印或「另存为 PDF」;手机端小屏自动收缩留白
富文本保存前经白名单清洗,防止恶意内容;业务数据按用户隔离,多用户互不可见
支持飞牛 fnOS NAS 账号一键登录,自动绑定或注册应用账号,手机与电脑共用同一份数据
青瓷/翡翠品牌配色,深浅色主题切换;手机端填写页单栏切换,触控目标加大
合同管家基于 smallgo 应用框架实例化(框架家族第 5 个实例),登录认证、用户权限、系统配置、备份、审计日志、匿名统计、赞赏支持等公共能力全部继承框架,业务模块位于 server/contract/。
techfunway-contract 安装包(.fpk,支持 x86 / arm64,下载地址).fpk 文件docker run -d \ --name techfunway-contract \ -p 8911:8911 \ -v contract-data:/app/data \ -e TZ=Asia/Shanghai \ --restart unless-stopped \ techfunways/contract:v0.2.0
services:
contract:
image: techfunways/contract:v0.2.0
container_name: techfunway-contract
restart: unless-stopped
ports:
- "8911:8911"
volumes:
- contract-data:/app/data
environment:
- TZ=Asia/Shanghai
volumes:
contract-data:数据库、上传文件与运行日志都存放在数据卷 contract-data(容器内 /app/data),重建或升级容器不会丢失合同数据。想跟随新版本自动更新可用 techfunways/contract:latest(配合 Watchtower,发行目录里的 docker-compose.latest.yml)。
解压对应平台的发布压缩包后,按下面的命令启动:
# Linux / macOS ./contract -data-dir ./data -port 8911
启动后浏览器访问 http://localhost:8911,首个注册用户自动成为管理员。合同数据存储于 data/db/contract.db(SQLite,WAL 模式)。
-port 参数或 PORT 环境变量均可修改)
techfunway-contract
contract-data → 容器内 /app/data(数据库、上传文件、日志)
techfunways/contract(多平台,端口 8911)
techfunway-contract(桌面显示名「合同管家」)
TechFunWay/contract(Go + Gin + GORM + SQLite / Vue 3 + TypeScript)
data/db/contract.db(SQLite WAL),管理员可下载数据库快照备份
smallgo,后端模块名为 smallgo/server
ERR_CONNECTION_CLOSED).db 备份文件即可恢复,换机迁移与误删找回不必手动拷库x86)飞牛 NAS 安装时可在向导中设置端口(默认 8911)。Docker 方式通过 -p 参数映射端口。二进制方式通过 -port 参数指定端口。
不会。合同创建时会整体拷贝模板正文与字段定义作为快照,之后模板怎么修改、甚至删除,都不影响已生成的合同;打印页也只读这份快照。
打开合同的打印视图(A4 版式),使用浏览器打印功能,目标打印机选择「另存为 PDF」即可;手机浏览器同样支持。
所有数据都保存在本地 SQLite 数据库(data/db/contract.db),不上传云端;数据按用户隔离,多用户互不可见。备份数据目录即可,管理员也可以在应用内下载数据库快照。应用内置的匿名使用统计只上报版本与部署形态等设备信息,可在系统配置中关闭。