apache/fineract!Build !Docker Hub !Docker Build !Technical Debt
Fineract是一个成熟的开放API平台,提供可靠、健壮且经济实惠的核心银行解决方案,专为向全球30亿未被充分服务和无银行账户人群提供服务的机构设计。该平台支持机构高效管理账户、交易和客户数据,通过开放API实现与第三方系统的集成,满足小额和普惠的业务需求。
bash# 启动MariaDB容器 docker run --name mariadb-11.5 -p 3306:3306 -e MARIADB_ROOT_PASSWORD=mysql -d mariadb:11.5.2 # 停止并删除容器(数据将丢失,仅用于开发环境) docker rm -f mariadb-11.5
注意:默认容器数据存储在容器内部,删除容器后数据将丢失。生产环境需配置持久化存储,详见MariaDB容器文档。
bash# Linux/macOS git clone [***] && cd fineract # Windows git clone [***] --config core.autocrlf=input && cd fineract
bash./gradlew :fineract-provider:jibDockerBuild -x test
bashdocker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
bashdocker compose -f docker-compose-development.yml up -d
mifos,密码password注意:首次访问需在浏览器中接受API的自签名SSL证书,否则UI可能显示误导性错误。
PROJECT_ROOT/build/fineract/logs.jfr文件可通过IntelliJ或Azul Mission Control分析若遇到Docker Compose文件权限问题,需修改PROJECT_ROOT/config/docker/env/fineract-common.env中的FINERACT_USER和FINERACT_GROUP:
bash# 获取当前用户ID和组ID id -u ${USER} id -g ${USER}
bash./gradlew createDB -PdbName=fineract_tenants ./gradlew createDB -PdbName=fineract_default
bash./gradlew devRun
bash./gradlew clean bootJar
生成的JAR文件位于:fineract-provider/build/libs
bashwget [***]
bashjava -Dloader.path=. -jar fineract-provider/build/libs/fineract-provider.jar
bashexport FINERACT_HIKARI_PASSWORD=verysecret export FINERACT_HIKARI_JDBC_URL=jdbc:mariadb://localhost:3306/fineract_tenants?serverTimezone=UTC&useLegacyDatetimeCode=false&sessionVariables=time_zone='-00:00' # 其他环境变量... java -jar fineract-provider.jar
Fineract 1.7.0+版本采用UTC时间存储,需确保:
serverTimezone=UTC&useLegacyDatetimeCode=false&sessionVariables=time_zone='-00:00'
迁移注意:若从非UTC时区环境迁移,需调整历史数据时区偏移,避免数据读取错误。
通过环境变量配置Hikari连接池,前缀为FINERACT_HIKARI_*,主要参数包括:
FINERACT_HIKARI_JDBC_URL:JDBC连接URLFINERACT_HIKARI_USERNAME:数据库用户名FINERACT_HIKARI_PASSWORD:数据库密码FINERACT_HIKARI_MAXIMUM_POOL_SIZE:最大连接数(默认10)FINERACT_HIKARI_CONNECTION_TIMEOUT:连接超时时间(默认30000ms)完整配置参数见HikariCP文档
详见官方文档:HTTPS配置
通过环境变量调整Tomcat性能参数,主要包括:
FINERACT_SERVER_TOMCAT_MAX_HTTP_FORM_POST_SIZE:最大POST大小(默认2MB)完整配置参考Spring Boot文档
bashgit clone [***] && cd fineract/kubernetes ./kubectl-startup.sh
bash# 启动Minikube minikube start # 部署Fineract cd fineract/kubernetes && ./kubectl-startup.sh # 获取访问URL minikube service fineract-server --url --https # 健康检查 http --verify=no --timeout 240 --check-status get $(minikube service fineract-server --url --https)/fineract-provider/actuator/health # 查看日志 kubectl logs deployment/fineract-server # 停止并清理 ./kubectl-shutdown.sh minikube ssh sudo rm -rf /mnt/data/
支持ActiveMQ(JMS)和Kafka,用于外部业务事件通知和Spring Batch远程分区作业。
yaml# docker-compose示例片段 environment: FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED: "true" FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED: "false" FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_BROKER_URL: "tcp://activemq:61616"
支持PLAINTEXT无认证模式及AWS MSK IAM认证,完整配置见官方文档
config/checkstyle/checkstyle.xml定义代码规范./gradlew spotlessApply修复格式问题./gradlew clean build jacocoTestReport生成覆盖率报告,位于build/code-coveragebash./gradlew doc
依赖工具:Ghostscript、Graphviz(详见.github/workflows/build-documentation.yml)
/fineract-provider/legacy-docs/apiLive.htm(运行时访问)/fineract-provider/swagger-ui/index.html(在线演示)
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务