diff --git a/apps/api/src/app/info/info.service.ts b/apps/api/src/app/info/info.service.ts index e4f906b9a..8ed589cb5 100644 --- a/apps/api/src/app/info/info.service.ts +++ b/apps/api/src/app/info/info.service.ts @@ -145,6 +145,27 @@ export class InfoService { }); } + private async countDockerHubPulls(): Promise { + try { + const get = bent( + `https://hub.docker.com/v2/repositories/ghostfolio/ghostfolio`, + 'GET', + 'json', + 200, + { + 'User-Agent': 'request' + } + ); + + const { pull_count } = await get(); + return pull_count; + } catch (error) { + Logger.error(error, 'InfoService'); + + return undefined; + } + } + private async countGitHubContributors(): Promise { try { const get = bent( @@ -245,6 +266,8 @@ export class InfoService { const activeUsers1d = await this.countActiveUsers(1); const activeUsers30d = await this.countActiveUsers(30); const newUsers30d = await this.countNewUsers(30); + + const dockerHubPulls = await this.countDockerHubPulls(); const gitHubContributors = await this.countGitHubContributors(); const gitHubStargazers = await this.countGitHubStargazers(); const slackCommunityUsers = await this.countSlackCommunityUsers(); @@ -252,6 +275,7 @@ export class InfoService { statistics = { activeUsers1d, activeUsers30d, + dockerHubPulls, gitHubContributors, gitHubStargazers, newUsers30d, diff --git a/libs/common/src/lib/interfaces/statistics.interface.ts b/libs/common/src/lib/interfaces/statistics.interface.ts index ba3f0a1d9..f39529426 100644 --- a/libs/common/src/lib/interfaces/statistics.interface.ts +++ b/libs/common/src/lib/interfaces/statistics.interface.ts @@ -1,6 +1,7 @@ export interface Statistics { activeUsers1d: number; activeUsers30d: number; + dockerHubPulls: number; gitHubContributors: number; gitHubStargazers: number; newUsers30d: number;