|
|
@ -10,99 +10,8 @@ |
|
|
hosting infrastructure and professional data providers, and to fund |
|
|
hosting infrastructure and professional data providers, and to fund |
|
|
ongoing development. |
|
|
ongoing development. |
|
|
</p> |
|
|
</p> |
|
|
<p i18n> |
|
|
|
|
|
If you prefer to run Ghostfolio on your own infrastructure, please |
|
|
|
|
|
find the source code and further instructions on |
|
|
|
|
|
<a href="https://github.com/ghostfolio/ghostfolio">GitHub</a>. |
|
|
|
|
|
</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="row"> |
|
|
|
|
|
<div class="col-lg-4 mb-3"> |
|
|
|
|
|
<mat-card appearance="outlined" class="h-100"> |
|
|
|
|
|
<mat-card-content class="d-flex flex-column h-100"> |
|
|
|
|
|
<div class="flex-grow-1"> |
|
|
|
|
|
<h4>Open Source</h4> |
|
|
|
|
|
<p i18n> |
|
|
|
|
|
For tech-savvy investors who prefer to run Ghostfolio on their |
|
|
|
|
|
own infrastructure. |
|
|
|
|
|
</p> |
|
|
|
|
|
<ul class="list-unstyled mb-3"> |
|
|
|
|
|
<li class="mb-2"> |
|
|
|
|
|
<ng-container> </ng-container> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Unlimited Transactions</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Unlimited Accounts</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Portfolio Performance</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Portfolio Summary</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Portfolio Allocations</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Performance Benchmarks</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>FIRE Calculator</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span>Ghostfolio MCP</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Data Import and Export</span> |
|
|
|
|
|
<span |
|
|
|
|
|
class="align-items-center d-flex ms-1" |
|
|
|
|
|
matTooltipPosition="above" |
|
|
|
|
|
[matTooltip]="importAndExportTooltipOSS" |
|
|
|
|
|
> |
|
|
|
|
|
<ion-icon name="information-circle-outline" /> |
|
|
|
|
|
</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<a i18n [routerLink]="routerLinkFeatures" |
|
|
|
|
|
>and more Features...</a |
|
|
|
|
|
> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Community Support</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
<p i18n>Self-hosted, update manually.</p> |
|
|
|
|
|
<p class="h5 text-end" i18n>Free</p> |
|
|
|
|
|
@if (user?.subscription?.type === 'Basic') { |
|
|
|
|
|
<div class="d-none d-lg-block invisible mt-3 text-center"> |
|
|
|
|
|
<a color="primary" mat-flat-button> </a> |
|
|
|
|
|
<p class="m-0 text-body-secondary"> |
|
|
|
|
|
<small> </small> |
|
|
|
|
|
</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
} |
|
|
|
|
|
@if (durationExtension) { |
|
|
|
|
|
<div class="d-none d-lg-block invisible mt-3"> |
|
|
|
|
|
<div class="badge p-3 w-100"> </div> |
|
|
|
|
|
</div> |
|
|
|
|
|
} |
|
|
|
|
|
</mat-card-content> |
|
|
|
|
|
</mat-card> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="justify-content-center row"> |
|
|
<div class="col-lg-4 mb-3"> |
|
|
<div class="col-lg-4 mb-3"> |
|
|
<mat-card |
|
|
<mat-card |
|
|
appearance="outlined" |
|
|
appearance="outlined" |
|
|
@ -124,7 +33,9 @@ |
|
|
</p> |
|
|
</p> |
|
|
<ul class="list-unstyled mb-3"> |
|
|
<ul class="list-unstyled mb-3"> |
|
|
<li class="mb-2"> |
|
|
<li class="mb-2"> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container i18n |
|
|
|
|
|
>Fully managed cloud offering, with</ng-container |
|
|
|
|
|
>: |
|
|
</li> |
|
|
</li> |
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
@ -151,7 +62,6 @@ |
|
|
</li> |
|
|
</li> |
|
|
</ul> |
|
|
</ul> |
|
|
</div> |
|
|
</div> |
|
|
<p i18n>Fully managed Ghostfolio cloud offering.</p> |
|
|
|
|
|
<p class="h5 text-end" i18n>Free</p> |
|
|
<p class="h5 text-end" i18n>Free</p> |
|
|
@if (user?.subscription?.type === 'Basic') { |
|
|
@if (user?.subscription?.type === 'Basic') { |
|
|
<div class="d-none d-lg-block invisible mt-3 text-center"> |
|
|
<div class="d-none d-lg-block invisible mt-3 text-center"> |
|
|
@ -259,7 +169,6 @@ |
|
|
</li> |
|
|
</li> |
|
|
</ul> |
|
|
</ul> |
|
|
</div> |
|
|
</div> |
|
|
<p i18n>Fully managed Ghostfolio cloud offering.</p> |
|
|
|
|
|
@if (price) { |
|
|
@if (price) { |
|
|
<p class="h5 text-end"> |
|
|
<p class="h5 text-end"> |
|
|
<span class="fw-normal"> |
|
|
<span class="fw-normal"> |
|
|
@ -314,14 +223,71 @@ |
|
|
</mat-card-content> |
|
|
</mat-card-content> |
|
|
</mat-card> |
|
|
</mat-card> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
@if (priceMax) { |
|
|
|
|
|
<div class="col-lg-4 mb-3"> |
|
|
|
|
|
<mat-card appearance="outlined" class="h-100"> |
|
|
|
|
|
<mat-card-content class="d-flex flex-column h-100"> |
|
|
|
|
|
<div class="flex-grow-1"> |
|
|
|
|
|
<h4 class="mb-2">Max</h4> |
|
|
|
|
|
<p i18n>For investors who manage several portfolios.</p> |
|
|
|
|
|
<ul class="list-unstyled mb-3"> |
|
|
|
|
|
<li class="mb-2"> |
|
|
|
|
|
<ng-container i18n |
|
|
|
|
|
>Everything in <strong>Premium</strong>, |
|
|
|
|
|
plus</ng-container |
|
|
|
|
|
>: |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Up to 5 User Accounts</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Centralized User Management</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
</ul> |
|
|
|
|
|
</div> |
|
|
|
|
|
<p class="h5 text-end"> |
|
|
|
|
|
<span class="fw-normal"> |
|
|
|
|
|
{{ baseCurrency }} <strong>{{ priceMax }}</strong> |
|
|
|
|
|
<span> </span> |
|
|
|
|
|
<span i18n>per year</span></span |
|
|
|
|
|
> |
|
|
|
|
|
</p> |
|
|
|
|
|
@if ( |
|
|
|
|
|
hasPermissionToUpdateUserSettings && |
|
|
|
|
|
user?.subscription?.type === 'Basic' |
|
|
|
|
|
) { |
|
|
|
|
|
<div class="mt-3 text-center"> |
|
|
|
|
|
<a |
|
|
|
|
|
color="primary" |
|
|
|
|
|
mat-stroked-button |
|
|
|
|
|
[href]="maxPlanMailHref" |
|
|
|
|
|
> |
|
|
|
|
|
<ng-container i18n>Get Max</ng-container> |
|
|
|
|
|
</a> |
|
|
|
|
|
<p class="invisible m-0"> |
|
|
|
|
|
<small> </small> |
|
|
|
|
|
</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
} |
|
|
|
|
|
@if (durationExtension) { |
|
|
|
|
|
<div class="d-none d-lg-block invisible mt-3"> |
|
|
|
|
|
<div class="badge p-3 w-100"> </div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
} |
|
|
|
|
|
</mat-card-content> |
|
|
|
|
|
</mat-card> |
|
|
|
|
|
</div> |
|
|
|
|
|
} |
|
|
</div> |
|
|
</div> |
|
|
@if (user?.referralPartners?.length) { |
|
|
@if (user?.referralPartners?.length) { |
|
|
<div class="row"> |
|
|
<div class="row"> |
|
|
<div class="col mt-3"> |
|
|
<div class="col mb-2 mt-2"> |
|
|
<p> |
|
|
<p> |
|
|
<ng-container i18n>If you plan to open an account at</ng-container> |
|
|
<ng-container i18n |
|
|
|
|
|
>If you plan to open an account at</ng-container |
|
|
|
|
|
> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container> </ng-container> |
|
|
@for ( |
|
|
@for ( |
|
|
partner of user.referralPartners; |
|
|
partner of user.referralPartners; |
|
|
@ -349,21 +315,26 @@ |
|
|
> |
|
|
> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container i18n |
|
|
<ng-container i18n |
|
|
>to use our referral link and get a Ghostfolio Premium membership |
|
|
>to use our referral link and get a Ghostfolio Premium |
|
|
for one year</ng-container |
|
|
membership for one year</ng-container |
|
|
>. <ng-container i18n>Looking for a student discount?</ng-container> |
|
|
>. |
|
|
|
|
|
<ng-container i18n>Looking for a student discount?</ng-container> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container i18n>Request it</ng-container> |
|
|
<ng-container i18n>Request it</ng-container> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container> </ng-container> |
|
|
<a href="mailto:hi@ghostfol.io?subject=Student Discount" i18n>here</a> |
|
|
<a href="mailto:hi@ghostfol.io?subject=Student Discount" i18n |
|
|
|
|
|
>here</a |
|
|
|
|
|
> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container> </ng-container> |
|
|
<ng-container i18n>with your university e-mail address</ng-container>. |
|
|
<ng-container i18n |
|
|
|
|
|
>with your university e-mail address</ng-container |
|
|
|
|
|
>. |
|
|
</p> |
|
|
</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
} @else if (hasPermissionToCreateUser && !user) { |
|
|
} @else if (hasPermissionToCreateUser && !user) { |
|
|
<div class="row"> |
|
|
<div class="row"> |
|
|
<div class="col mt-3 text-center"> |
|
|
<div class="col mb-3 mt-2 text-center"> |
|
|
<a |
|
|
<a |
|
|
color="primary" |
|
|
color="primary" |
|
|
i18n |
|
|
i18n |
|
|
@ -371,8 +342,91 @@ |
|
|
[routerLink]="routerLinkRegister" |
|
|
[routerLink]="routerLinkRegister" |
|
|
>Get Started</a |
|
|
>Get Started</a |
|
|
> |
|
|
> |
|
|
<p class="m-0 text-body-secondary"><small i18n>It’s free.</small></p> |
|
|
<p class="m-0 text-body-secondary"> |
|
|
|
|
|
<small i18n>It’s free.</small> |
|
|
|
|
|
</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
} |
|
|
} |
|
|
|
|
|
<div class="row"> |
|
|
|
|
|
<div class="col mb-3"> |
|
|
|
|
|
<mat-card appearance="outlined"> |
|
|
|
|
|
<mat-card-content> |
|
|
|
|
|
<h4>Open Source</h4> |
|
|
|
|
|
<p i18n> |
|
|
|
|
|
For tech-savvy investors who prefer to run Ghostfolio on their |
|
|
|
|
|
own infrastructure. |
|
|
|
|
|
</p> |
|
|
|
|
|
<ul |
|
|
|
|
|
class="list-unstyled mb-3 row row-cols-1 row-cols-lg-3 row-cols-md-2" |
|
|
|
|
|
> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Unlimited Transactions</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Unlimited Accounts</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Portfolio Performance</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Portfolio Summary</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Portfolio Allocations</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Performance Benchmarks</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>FIRE Calculator</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span>Ghostfolio MCP</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Data Import and Export</span> |
|
|
|
|
|
<span |
|
|
|
|
|
class="align-items-center d-flex ms-1" |
|
|
|
|
|
matTooltipPosition="above" |
|
|
|
|
|
[matTooltip]="importAndExportTooltipOSS" |
|
|
|
|
|
> |
|
|
|
|
|
<ion-icon name="information-circle-outline" /> |
|
|
|
|
|
</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<a i18n [routerLink]="routerLinkFeatures" |
|
|
|
|
|
>and more Features...</a |
|
|
|
|
|
> |
|
|
|
|
|
</li> |
|
|
|
|
|
<li class="align-items-center d-flex mb-1"> |
|
|
|
|
|
<ion-icon class="me-1" name="checkmark-circle-outline" /> |
|
|
|
|
|
<span i18n>Community Support</span> |
|
|
|
|
|
</li> |
|
|
|
|
|
</ul> |
|
|
|
|
|
<div class="align-items-center d-flex justify-content-between"> |
|
|
|
|
|
<p class="m-0" i18n>Self-hosted, update manually.</p> |
|
|
|
|
|
<p class="h5 m-0" i18n>Free</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
<hr /> |
|
|
|
|
|
<p class="m-0" i18n> |
|
|
|
|
|
Please find the source code and further instructions on |
|
|
|
|
|
<a href="https://github.com/ghostfolio/ghostfolio">GitHub</a>. |
|
|
|
|
|
</p> |
|
|
|
|
|
</mat-card-content> |
|
|
|
|
|
</mat-card> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|