InvoicePlane 介绍与选型指南

InvoicePlane 自托管开源发票管理系统介绍与选型指南:定位与社区身份、CodeIgniter 3 + PHP 8.2 架构与 25 个业务模块、功能特性清单、官方安装主线、适用场景与无 REST API 等限制,以及与 Invoice Ninja、Crater、InvoiceShelf、Kill Bill 的量化选型对比。全部事实溯源官网与 GitHub 官方渠道,查询日期 2026-10-24。

InvoicePlane发票管理自托管PHP 应用支付系统2026/10/24

InvoicePlane 介绍与选型指南

目标:面向正在评估"自托管开票/收款系统"的读者,系统介绍 InvoicePlane 的定位、架构、功能、安装主线与同类竞品差异,帮助完成选型决策。本篇为认知与选型篇,全部事实均溯源官方渠道(官网 invoiceplane.com、GitHub InvoicePlane 组织与 v1.7.2 官方源码/文档),溯源渠道与查询日期在"环境信息"中逐项标注;部署与配置的本地实测内容见 《InvoicePlane 1.7.2 Docker Compose 部署指南》、《InvoicePlane 1.7.2 配置参数详解》 与 《InvoicePlane 1.7.2 常用 CLI 命令与任务调度详解》。

一、环境信息

本篇是认知/选型篇,不做本地部署实测,以下为取证渠道清单(全部于 2026-10-24 查询):

渠道用途关键结论
https://invoiceplane.com (官网首页)产品定位、下载版本最新稳定版 v1.7.2;累计下载超 10 万次、覆盖 193 个国家/地区
https://github.com/InvoicePlane (组织页,16 个仓库)社区/生态全景主仓库 3.2k stars、886 forks、61 个开放 issue,最近更新 2026-10-23
https://github.com/InvoicePlane/InvoicePlane/releases.atom (发布流)版本节奏最新稳定版 v1.7.2(此前 1.7.1、1.7.0、1.6.5 等),另有 v1.7.2-rc/beta 预发布序列
官方 v1.7.2 源码树(git tag v1.7.2,提交 aaeea1e,2026-08-27)架构、模块、许可、容器契约CodeIgniter 3 + PHP 8.2 + MariaDB/MySQL,MIT 许可
https://wiki.invoiceplane.com/ (官方文档站)安装与使用文档入口官方 Wiki,覆盖安装、配置、模板开发

💡 说明:任务常见误区是 InvoicePlane 有"基金会仓库"。实测核查 GitHub 上不存在 getinvoiceplane/ipfw 仓库(shields.io 返回 repo not found),项目实际以 GitHub InvoicePlane 组织为核心进行社区治理,组织内含主程序、v2 开发分支、Docker 开发栈(ivpldock)、电子发票模板(e-invoices)、官方主题(Themes)等 16 个仓库。

二、软件概述

InvoicePlane 是一款自托管(self-hosted)的开源发票管理应用,用于管理报价单(Quotes)、发票(Invoices)、客户(Clients)与收款(Payments),覆盖"报价 → 开票 → 收款"的完整业务闭环。它由 PHP + CodeIgniter 3 编写,以 MIT 许可证开源,任何人都可以下载后部署在自己的服务器上,数据完全自主可控。

关键身份信息(溯源官方渠道,查询日期 2026-10-24):

维度内容
软件定位自托管发票/报价/收款管理(小微商业开票系统)
开源许可MIT(源码 LICENSE.txt);"InvoicePlane"名称与 logo 版权归 InvoicePlane.com 限制性保留
当前稳定版v1.7.2(官网下载页当前版本;发布流最新稳定条目一致)
技术栈PHP 8.2+、CodeIgniter 3(HMVC 模块化)、MySQL/MariaDB、mPDF(PDF 生成)、PHPMailer(邮件)、Yarn/Grunt(前端构建)
社区规模GitHub 3.2k stars / 886 forks;官网宣称 10 万+ 下载、193 个国家/地区;社区论坛 community.invoiceplane.com + Discord
版本节奏1.x 系列持续维护(1.6.5 → 1.7.0 → 1.7.1 → 1.7.2);v2 在独立仓库 InvoicePlane-v2 中重写开发(30 stars、216 个开放 issue,尚未发布)
官方文档Wiki(wiki.invoiceplane.com)+ 社区论坛 + Discord

💡 技术拓展:电子发票(eInvoice)不止一种格式标准。欧盟场景下常见标准对比——

标准形态特点与适用
Factur-XPDF/A-3 内嵌 XML法德主流,PDF 可读 + XML 机读兼顾
UBL 2.x纯 XML万维网联盟背书的通用商务文档格式,互换性强
XRechnung基于 UBL 的德国规范德国公共部门强制
ZUGFeRD德区 PDF 内嵌 XML与 Factur-X 同源兼容

InvoicePlane 自 1.6.2 起支持生成符合欧盟标准的电子发票,官方源码注释中明确提供 Factur-X 1.0 与 UBL 2.4 两类 XML 模板,配套模板在独立仓库 InvoicePlane-e-invoices 中维护。本文所述 1.7.2 版本即包含该能力。

项目沿革:InvoicePlane 源自商业产品 FusionInvoice 的社区分支,组织内至今保留从 FusionInvoice v1.x 迁移到 InvoicePlane 的官方迁移工具仓库(Migrationtool),这也解释了其代码基为 CodeIgniter 3(FusionInvoice 时代的选型)而非 Laravel。

三、核心架构

3.1 技术栈构成

以下成分逐项核实自 v1.7.2 官方源码树(composer.json / package.json / 官方 Containerfile / AGENTS.md):

层选型说明
Web 框架CodeIgniter 3(HMVC)非 Laravel:无 Artisan CLI、无 Eloquent ORM、无 artisan migrate;路由为 模块/控制器/方法 形态
语言运行时PHP 8.2+官方容器基于 php:8.2-apache;扩展依赖 bcmath/gd/mbstring/mysqli/xml/zip(Containerfile 内逐项安装并 composer check-platform-reqs 校验)
数据库MySQL / MariaDB数据表统一 ip_ 前缀(如 ip_clients、ip_invoices),官方安装器建 40+ 张表
PDF 生成mPDF由 HTML/CSS 模板渲染 PDF 发票与报价单
邮件发送PHPMailer经 mailer 模块封装,支持 SMTP 配置与邮件模板
前端构建Yarn + Gruntassets 构建产物随发行包提供
会话CI3 Session(文件或数据库表 ip_sessions)支持绑定 IP、定期重建销毁旧会话 ID 等加固项

💡 技术拓展:PHP 应用常见架构分层有"全栈框架单体(Laravel/Symfony)"与"轻量框架模块化单体(CodeIgniter HMVC)"两类。前者生态新、抽象厚、开发效率高;后者内核轻、学习曲线平缓、对老旧宿主机友好。InvoicePlane 1.x 采用后者,这直接决定了它的集成形态(详见第六节"限制")——本系列后续实测文档均基于该架构事实展开。

3.2 模块化业务架构(HMVC modules)

v1.7.2 源码 application/modules/ 下共 25 个业务模块(按职责归类):

业务域模块
客户clients(客户档案)、families(客户分组)、user_clients(客户侧访问授权)
报价quotes、quote 模板(公共/PDF 双套)
发票invoices(含 Cron、Recurring 控制器)、invoice_groups(编号规则)、custom_fields/custom_values(自定义字段)
收款payments、payment_methods、guest/gateways(PayPal、Stripe 在线支付回调)
计价要素products、tax_rates、units、tasks、projects
触达mailer(PHPMailer 封装)、email_templates(邮件模板)、upload(附件)
运营支撑reports(报表)、import(导入)、settings(系统设置)、setup(安装向导与迁移)、dashboard、filter、layout、sessions、guest(免登录公开访问)、welcome

3.3 关键机制一览

以下机制均以官方源码与官方文档(CONTAINER_DEPLOYMENT.md、ipconfig.php.example)为准,本系列后续文档逐项实测:

  1. 编号规则引擎(invoice_groups):每张发票/报价单按分组模板(如 {{{id}}}、QUO{{{id}}})自动编号,支持前导零、多套序列并行。
  2. 循环发票(Recurring Invoices):对周期性账单(月费、订阅费)设置频率(1D/7D/30D/…)与起止日期,由官方内置 HTTP 端点 invoices/cron/recur/<key> 触发生成,端点以 cron_key 鉴权并内置防爆破限流。
  3. 模板白名单防 RCE:自定义 PDF/网页模板必须同时在 ipconfig.php 的白名单常量(如 CUSTOM_INVOICE_TEMPLATES_PDF)中登记才会在界面出现——官方明确禁止文件系统扫描发现模板,堵死"上传 .php 模板即远程代码执行"类漏洞。
  4. 公开访问链接(guest 模块):每张发票/报价单生成 32 位随机 url_key,客户凭 …/guest/view/invoice/<url_key> 免登录查看、下载 PDF、在线支付;草稿态不暴露,已发送态才可见。
  5. 双层安装形态:① 经典 Web 安装向导(setup 模块,逐页填库建管理员);② 容器化环境变量契约(官方提供 Containerfile 与全部环境变量清单,启动时自动生成配置、跑迁移、建默认管理员)。
  6. 官方 CLI 入口:1.7.2 原生提供 php index.php setup/cli/migrate(建表/迁移)与 php index.php setup/cli/create_default_user(按环境变量创建首个管理员,仅命令行可调)。

四、功能特性

按官网宣传与源码模块逐项对照(来源:官网首页 + v1.7.2 源码,2026-10-24):

功能说明
报价单创建/发送报价,客户可经公开链接在线批准或拒绝,批准后一键转发票
发票管理草稿→已发送→已付/逾期状态机;只读锁定(sent 后禁改,可配置);条目级折扣与税
收款与在线支付手工登记收款 + PayPal/Stripe 在线支付(客户在公开页直接付款),网关回调记录留痕
循环发票周期自动生成 + 可选自动邮件(依赖邮件模板与 SMTP 配置)
客户管理联系方式、备注、自定义字段、客户分组;支持给客户开"门户式"访问授权(user_clients)
产品/任务/项目产品目录直接带入发票条目;任务与项目可计时计费
电子发票1.6.2+ 支持 EU 合规 eInvoice(Factur-X/UBL 模板,独立仓库维护)
报表按时间段/状态/客户维度的收入与账龄报表
多语言/多主题社区翻译多语言界面;官方 Themes 仓库提供可选主题
模板定制PDF 与网页两套模板体系(mPDF 渲染),支持自定义模板白名单挂载
附件/导入发票附件上传;CSV 导入客户/发票等历史数据
安全密码重置限流(IP 5 次/60 分钟、邮箱 3 次/小时、重置令牌 15 分钟有效);cron 端点防爆破限流(15 分钟窗口 10 次错误即封禁);会话绑定 IP/防固定;上传图片可选剥离 EXIF(含 GPS);CSRF、X-Frame-Options 等防护开关

五、快速开始(最小可用示例)

以下为官方经典安装主线,转述自官网下载页与官方 Wiki 安装文档(wiki.invoiceplane.com,2026-10-24 查询);完整步骤与实测回显见本系列部署篇。

  1. 获取发行包:访问官网 invoiceplane.com,点击 Download 获取当前版本 v1.7.2;或到 GitHub Releases 页(github.com/InvoicePlane/InvoicePlane/releases)下载对应版本的发布压缩包。
  2. 部署到 Web 根目录:将发行包解压到 PHP 8.2+ 环境的站点目录(Apache/Nginx 均可,需开启 URL 重写),确保 uploads/、storage/ 两个目录对 PHP 进程可写。
  3. 运行安装向导:浏览器访问站点,跟随 setup 向导逐步完成:数据库连接(MySQL/MariaDB 主机、库名、账号)→ 配置校验 → 数据表安装 → 创建管理员账号。
  4. 首次登录:使用向导中创建的管理员账号登录后台,即可开始建立客户、报价与发票。

面向容器化部署的读者:官方仓库提供一体化 Containerfile 与完整环境变量契约(必需项 IP_URL、DB_HOSTNAME、DB_USERNAME、DB_PASSWORD、DB_DATABASE、ENCRYPTION_KEY,可选项涵盖会话、限流、模板、Sumex 瑞士医疗发票等 30 余项),容器首次启动自动完成配置生成、数据库迁移与默认管理员创建。逐条实测的 Compose 部署、环境变量表与验证回显见 《InvoicePlane 1.7.2 Docker Compose 部署指南》。

六、适用场景与限制

6.1 适用场景

  • 自由职业者/工作室/小微企业:需要报价-开票-收款闭环但不想为 SaaS 订阅付费,数据希望留在自己服务器。
  • 周期性账单:托管费、会费、月度服务费等固定周期账单,用循环发票 + cron 端点 + 邮件模板实现准自动化。
  • 欧洲合规开票:需要向欧盟客户开具 Factur-X/UBL 电子发票的场景。
  • 客户自助:客户凭公开链接查看账单、下载 PDF、直接在线支付(PayPal/Stripe),无需开放后台。

6.2 限制(选型前必须知晓)

  1. 无 REST API:1.x 不提供 REST/gRPC 管理 API。对外集成仅三条路:官方 cron HTTP 端点(循环发票)、guest 公开链接(支付/查看)、直读数据库表(需自担升级兼容风险)。系统对接诉求强烈的团队应优先评估 Invoice Ninja 等带完整 API 的竞品。
  2. CLI 能力有限:仅 setup/cli 两个运维入口(迁移、建默认管理员),无数据导入导出/用户管理等运维子命令。
  3. 单业务主体:界面与权限模型围绕单一开票主体设计,多公司主体共用一套部署需借助发票分组区分序列,无法做到组织级隔离。
  4. 技术栈较老:CodeIgniter 3 + jQuery 时代前端;官方已将下一代重构为 InvoicePlane-v2(尚未发布),选型时应接受"1.x 稳定但架构陈旧、v2 未就绪"的现实。
  5. 支付网关内置仅两家:PayPal、Stripe(官网注明"others coming soon");其他支付渠道需自行开发。

七、同类选型对比(含量化维度)

下表为同类自托管开票/计费系统的量化对比(星数取自 shields.io GitHub stars 徽章接口,2026-10-24 查询;Crater 已归档停止维护,其社区继任者为 InvoiceShelf):

产品GitHub Stars技术栈定位API活跃度(2026-10)
InvoicePlane3.2kPHP 8.2 + CodeIgniter 3发票/报价/收款闭环无 REST(cron 端点 + 公开链接)主仓库 2026-10-23 有更新,v1.7.2 为当前稳定版
Invoice Ninja10kPHP/Laravel发票 + 任务计时 + 门户,功能面最广REST API 完整持续活跃,v5 系列
Crater8.4kPHP/Laravel + Vue现代界面开票系统REST API已归档,由 InvoiceShelf 接续
InvoiceShelf1.9kPHP/Laravel + VueCrater 社区继任者REST API维护中,社区规模尚小
Kill Bill5.8kJava订阅计费引擎(账单平台而非发票工具)REST API 完整持续活跃,面向计费平台化

关键差异解读:

  1. 体量与活跃度:Invoice Ninja 以 10k stars 与完整 API 领先;InvoicePlane 星数居中,但主仓库近两年持续有安全与功能维护(1.7.2 于 2026-08-27 定版,源码安全提交延续至 2026-10)。
  2. 定位差异:Kill Bill 是"订阅计费引擎"(面向平台型计费、计量计费、账单编排),与"给人用发票软件"不是一个赛道;Crater/InvoiceShelf/Invoice Ninja 才是 InvoicePlane 的直接可比对象。
  3. 集成能力是分水岭:需要 API 驱动(对接 ERP、电商、自动化平台)→ 选 Invoice Ninja/InvoiceShelf;只需人用界面 + 周期账单自动生成 → InvoicePlane 的循环发票 + cron 端点 + 公开支付链接即可闭环,且部署极轻(单应用 + 一个数据库)。
  4. 数据自主与许可:三者同为开源可自托管;InvoicePlane 为 MIT(最宽松),选型合规约束最少。

选型建议("如果…则…"):

  • 如果团队没有专职运维、只需要能开票收款的轻量系统 → InvoicePlane(部署面最小:一个应用进程 + 一个 MariaDB)。
  • 如果需要开放 API 给内部系统调用(订单自动开票、状态回写)→ Invoice Ninja(功能与 API 均最全)或 InvoiceShelf(喜欢 Crater 风格界面者)。
  • 如果业务本质是订阅制计费(套餐、用量计量、阶梯价、账单编排)→ Kill Bill,不要用发票工具硬扛。
  • 如果看重 EU 电子发票合规且要轻部署 → InvoicePlane 1.7.2(Factur-X/UBL 内置模板)。

八、参考链接

  1. 官网:https://invoiceplane.com (产品介绍与下载;查询日期 2026-10-24)
  2. GitHub 组织(16 仓库全景):https://github.com/InvoicePlane (查询日期 2026-10-24)
  3. 主仓库:https://github.com/InvoicePlane/InvoicePlane (v1.7.2 源码、LICENSE、CONTAINER_DEPLOYMENT.md;查询日期 2026-10-24)
  4. 发布流(版本核实):https://github.com/InvoicePlane/InvoicePlane/releases.atom (查询日期 2026-10-24)
  5. 官方文档 Wiki:https://wiki.invoiceplane.com/ (查询日期 2026-10-24)
  6. 官方电子发票模板仓库:https://github.com/InvoicePlane/InvoicePlane-e-invoices (查询日期 2026-10-24)
  7. 社区论坛:https://community.invoiceplane.com/ ;Discord:https://discord.gg/PPzD2hTrXt (查询日期 2026-10-24)
  8. 星数数据:shields.io GitHub stars 徽章接口(https://img.shields.io/github/stars/&lt;owner&gt;/&lt;repo&gt;.json;查询日期 2026-10-24)
  9. 本地实测系列:《InvoicePlane 1.7.2 Docker Compose 部署指南》、《InvoicePlane 1.7.2 配置参数详解》、《InvoicePlane 1.7.2 常用 CLI 命令与任务调度详解》