开源财富管理软件
ghostfol.io |现场演示| GhostFolio Premium |常见问题解答|博客|松弛| x
GhostFolio是使用Web技术构建的开源财富管理软件。该应用程序使忙碌的人能够跟踪股票,ETF或加密货币,并做出坚实的数据驱动投资决策。该软件设计用于连续操作的个人使用。

我们官方的GhostFolio Premium Cloud产品是最简单的入门方式。由于节省的时间,对于大多数人来说,这将是最佳选择。收入用于支付托管基础设施的成本并为持续发展提供资金。
如果您希望在自己的基础架构上运行GhostFolio,请在自托管部分中找到更多说明。
如果您是...
Today的时间加权率(TWR), WTD , MTD , YTD , 1Y , 5Y , Max
GhostFolio是用打字稿编写的现代Web应用程序,并作为NX工作区组织。
后端基于Nestjs使用PostgreSQL作为数据库,以及用于缓存的Prisma和Redis。
前端是用角度构建的,并使用Bootstrap带有实用类别的角材料。
我们为linux/amd64 , linux/arm/v7和linux/arm64提供了托管在Docker Hub上的官方容器图像。

| 姓名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
ACCESS_TOKEN_SALT | string | 一个随机字符串用作盐的访问令牌 | |
API_KEY_COINGECKO_DEMO | string (可选) | Coingecko演示API键 | |
API_KEY_COINGECKO_PRO | string (可选) | Coingecko Pro API密钥 | |
DATABASE_URL | string | 数据库连接URL,例如postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@localhost:5432/${POSTGRES_DB}?sslmode=prefer | |
HOST | string (可选) | 0.0.0.0 | GhostFolio应用程序将在哪里运行的主机 |
JWT_SECRET_KEY | string | 用于JSON Web令牌(JWT)的随机字符串 | |
LOG_LEVELS | string[] (可选) | GhostFolio应用程序的日志记录级别,例如["debug","error","log","warn"] | |
PORT | number (可选) | 3333 | GhostFolio应用程序将在 |
POSTGRES_DB | string | PostgreSQL数据库的名称 | |
POSTGRES_PASSWORD | string | PostgreSQL数据库的密码 | |
POSTGRES_USER | string | PostgreSQL数据库的用户 | |
REDIS_DB | number (可选) | 0 | REDIS的数据库索引 |
REDIS_HOST | string | REDIS正在运行的主机 | |
REDIS_PASSWORD | string | REDIS的密码 | |
REDIS_PORT | number | REDIS正在运行的端口 | |
REQUEST_TIMEOUT | number (可选) | 2000 | 网络请求向数据提供商以毫秒为单位 |
.env.example复制到.env并用数据填充( cp .env.example .env ) 运行以下命令从Docker Hub启动Docker Images:
docker compose --env-file ./.env -f docker/docker-compose.yml up -d运行以下命令以构建并启动Docker映像:
docker compose --env-file ./.env -f docker/docker-compose.build.yml build
docker compose --env-file ./.env -f docker/docker-compose.build.yml up -dADMIN ) docker/docker-compose.yml中ghostfolio/ghostfolio Docker图像的版本docker compose --env-file ./.env -f docker/docker-compose.yml up -dGhostFolio可用于各种家庭服务器系统,包括Casaos,Home Assistant,Runtipi,Truecharts,Umbrel和Unraid。
有关环境设置和开发过程的详细信息,请参阅开发。
设置每个请求的标题:如下:
"Authorization": "Bearer eyJh..."
您可以通过POST http://localhost:3333/api/v1/auth/anonymous (正文: { "accessToken": "<INSERT_SECURITY_TOKEN_OF_ACCOUNT>" } )
已弃用: GET http://localhost:3333/api/v1/auth/anonymous/<INSERT_SECURITY_TOKEN_OF_ACCOUNT>或curl -s http://localhost:3333/api/v1/auth/anonymous/<INSERT_SECURITY_TOKEN_OF_ACCOUNT> 。
GET http://localhost:3333/api/v1/health
信息:健康检查不需要携带者令牌
200 OK
{
"status": "OK"
}
授权的承载令牌
POST http://localhost:3333/api/v1/import
{
"activities": [
{
"currency": "USD",
"dataSource": "YAHOO",
"date": "2021-09-15T00:00:00.000Z",
"fee": 19,
"quantity": 5,
"symbol": "MSFT",
"type": "BUY",
"unitPrice": 298.58
}
]
}
| 场地 | 类型 | 描述 |
|---|---|---|
accountId | string (可选) | 帐户的ID |
comment | string (可选) | 活动评论 |
currency | string | CHF | EUR | USD等 |
dataSource | string | COINGECKO | MANUAL (用于类型ITEM )| YAHOO |
date | string | 格式ISO-8601的日期 |
fee | number | 活动的费用 |
quantity | number | 活动数量 |
symbol | string | 活动的象征(适用于dataSource ) |
type | string | BUY | DIVIDEND | FEE | INTEREST | ITEM | LIABILITY | SELL |
unitPrice | number | 每单位的价格 |
201 Created
400 Bad Request
{
"error": "Bad Request",
"message": [
"activities.1 is a duplicate activity"
]
}
在我的GhostFolio的“访问”选项卡中授予类型公共的访问。
GET http://localhost:3333/api/v1/public/<INSERT_ACCESS_ID>/portfolio
信息:授权不需要携带者令牌
{
"performance": {
"1d": {
"relativeChange": 0 // normalized from -1 to 1
};
"ytd": {
"relativeChange": 0 // normalized from -1 to 1
},
"max": {
"relativeChange": 0 // normalized from -1 to 1
}
}
}
发现有关GhostFolio的各种社区项目:https://github.com/topics/ghostfolio
您正在建立自己的项目吗?将ghostfolio主题添加到您的GitHub存储库中以列出。了解更多→
GhostFolio是100%免费和开源的。我们鼓励并支持一个积极健康的社区,该社区接受包括您在内的公众贡献。
不知道该如何处理?我们有一些想法,即使是新来者。请加入GhostFolio Slack频道或在X上发布@ghostfolio_。我们很想听听您的来信。
如果您想支持这个项目,请获得GhostFolio Premium或给我买咖啡。
©2021-2024 Ghostfolio
根据AGPLV3许可证许可。