From 0d4b495944d675991e374c29f52c1e8fb1e2338f Mon Sep 17 00:00:00 2001 From: Ronald Loyko <108372764+ronaldloyko@users.noreply.github.com> Date: Fri, 7 Oct 2022 17:21:13 +0300 Subject: [PATCH] feat: add ghostfolio (#741) --- public/v4/apps/ghostfolio.yml | 102 +++++++++++++++++++++++++++++++++ public/v4/logos/ghostfolio.png | Bin 0 -> 3028 bytes 2 files changed, 102 insertions(+) create mode 100644 public/v4/apps/ghostfolio.yml create mode 100644 public/v4/logos/ghostfolio.png diff --git a/public/v4/apps/ghostfolio.yml b/public/v4/apps/ghostfolio.yml new file mode 100644 index 0000000..df2897e --- /dev/null +++ b/public/v4/apps/ghostfolio.yml @@ -0,0 +1,102 @@ +captainVersion: 4 +services: + $$cap_appname: + caproverExtra: + containerHttpPort: '3333' + image: ghostfolio/ghostfolio:$$cap_GHOSTFOLIO_VERSION + hostname: $$cap_appname.$$cap_root_domain + environment: + NODE_ENV: $$cap_NODE_ENV + ACCESS_TOKEN_SALT: $$cap_ACCESS_TOKEN_SALT + BASE_CURRENCY: $$cap_BASE_CURRENCY + DATABASE_URL: postgresql://$$cap_POSTGRES_USER:$$cap_POSTGRES_PASSWORD@srv-captain--$$cap_appname-db:5432/$$cap_POSTGRES_DB?sslmode=prefer + HOST: $$cap_appname.$$cap_root_domain + JWT_SECRET_KEY: $$cap_JWT_SECRET_KEY + POSTGRES_DB: $$cap_POSTGRES_DB + POSTGRES_USER: $$cap_POSTGRES_USER + POSTGRES_PASSWORD: $$cap_POSTGRES_PASSWORD + REDIS_HOST: srv-captain--$$cap_appname-cache + REDIS_PORT: 6379 + $$cap_appname-db: + caproverExtra: + notExposeAsWebApp: 'true' + image: postgres:$$cap_POSTGRES_VERSION + environment: + POSTGRES_DB: $$cap_POSTGRES_DB + POSTGRES_USER: $$cap_POSTGRES_USER + POSTGRES_PASSWORD: $$cap_POSTGRES_PASSWORD + POSTGRES_ROOT_PASSWORD: $$cap_POSTGRES_ROOT_PASSWORD + volumes: + - $$cap_appname-db:/var/lib/postgresql/data + $$cap_appname-cache: + caproverExtra: + notExposeAsWebApp: 'true' + image: redis:$$cap_REDIS_VERSION +caproverOneClickApp: + instructions: + start: |- + Ghostfolio is an open source wealth management software built with web technology. + The application empowers busy people to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions. + end: |- + Ghostfolio has been successfully deployed! It might take few moments before it's fully started. + You can access it at `http://$$cap_appname.$$cap_root_domain` + displayName: Ghostfolio + isOfficial: true + description: Open Source Wealth Management Software + documentation: See https://ghostfol.io + variables: + - id: $$cap_GHOSTFOLIO_VERSION + label: Ghostfolio Version + description: Check out their valid tags at https://hub.docker.com/r/ghostfolio/ghostfolio/tags + defaultValue: '1.199.1' + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_VERSION + label: Postgres Version + description: Check out their valid tags at https://hub.docker.com/_/postgres/tags + defaultValue: '14.5' + validRegex: /.{1,}/ + - id: $$cap_REDIS_VERSION + label: Redis Version + description: Check out their valid tags at https://hub.docker.com/_/redis/tags + defaultValue: '7.0.5' + validRegex: /.{1,}/ + - id: $$cap_NODE_ENV + label: Application Environment + description: Configure the environment. + defaultValue: production + validRegex: /.{1,}/ + - id: $$cap_ACCESS_TOKEN_SALT + label: Access Token Salt + description: A random string used as salt for access tokens. + defaultValue: $$cap_gen_random_hex(32) + validRegex: /.{1,}/ + - id: $$cap_BASE_CURRENCY + label: Base Currency + description: The base currency of the Ghostfolio application. This can **not** be changed later! + defaultValue: USD + validRegex: /.{1,}/ + - id: $$cap_JWT_SECRET_KEY + label: Base Currency + description: A random string used for JSON Web Tokens (JWT). + defaultValue: $$cap_gen_random_hex(32) + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_DB + label: Database + description: The name of the PostgreSQL database. + defaultValue: ghostfolio + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_USER + label: Database User + description: The user of the PostgreSQL database. + defaultValue: ghostfolio + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_PASSWORD + label: Database Password + description: The password of the PostgreSQL database. + defaultValue: $$cap_gen_random_hex(32) + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_ROOT_PASSWORD + label: Database Root User Password + description: The password of the PostgreSQL database root user. + defaultValue: $$cap_gen_random_hex(32) + validRegex: /.{1,}/ diff --git a/public/v4/logos/ghostfolio.png b/public/v4/logos/ghostfolio.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3ce881e29c4e3a593df1d46aff032cddb91da7 GIT binary patch literal 3028 zcmd5;`#Tc~A9v~$C9QMZa!bkW)rOKJZLTBt2+g&I47pSybKBcRBKOKpu7}B;IhM(W zg;| zOV8H3N-SF*2tXqfg{$2C5^_||^jKg^ZGwLd>}v6#GNqhB38LqhpuZmAUgO{HRPlH; zj)X9VV*{dw5zTq6RdqmNbkI-gcXs?&hh%GVElrAYR$|idP{fg6jfgX{w|1^Uwnqmx z89`qHW!}w8GA%&Q7h1elgOAMq9?Z>aPa`zG2MQMk##bveU7H+!TDVu?yVfPTIH1z@ zP7lC+*LN41cDugslzeem2o2%5Tf#XZ!B@sds8w;;wx%F;mLLFwRYyo6c^NmQ;fB*; zj3wGb$Hb>22jP(e8YRjqPW@1fxW$)U@oSF+yLu7C4~jMZ>4}7nxgL&5!`e>zDGB3O zDa}}o&2RL2>+pRK*+!FM4g+sA<-chb{Pq&?TtHR~Z-zk+*);PwqaRa+5fl{7%3*9Q z$b~j^6*jXivT*& zX83WTvc4TuZ)7N*ehRAbR;$i_>8iNN<$ad$Z*-8JU(R zirK7aNo7*9t0q$Esmg4)Q{@Oo`zCSB`16Kc%WH)$+5#`J4``x2X(awAesC=runqT= zH$9>VPP2<^#8o~_16O_kEdMaOC*3J?{UGmyPYXBZQ=mpichh-F5h&a`t89I%8E<^~ zRtQ&RBHD4#Jf&L%*bg_GWGT&v&qzp#j<>HJvHbIa&D|Hv3@P$c;jzR}d z952H<%fd9X`@+{pr_asG{JkT!u9$bTF{%HSEG~n^-lB?!yIRCLfI@*+)j z|CY>fv<8@K`Js#^*V}}pes2m7mL0^xIqPrd;8Xg{9fUuY$=*}Aeb&a&qaStO@oB|C*^THS`N2vd+ z_OsNb_^dI$Evma&N@}H_)301?zklwHa(@uwCA6St^fu0SiMz7J$BswOUoR=3JpJh7 zN1PihBEE;*xm+TkSC3#=e0S7Rix=rssPIAKjNXgmLmDXknDufPj92OH)6ki@;tL^7 z^d$Y5nnuza+`1VRjg(Sk#Uce~Ab1Xe)#~)Z?D9$!OpvGLoMfZ@8Z6yjS2|}N(=5B| z-gELLb7Py_MLMZEMp(07-kC-*^?>zgd>jb5^;eD+9KJ`|F=F1>wsH=P_EqO_b9U?v z#zIf=DSh0MBFMXtxp1fbpnGfb9_^0ZNpsZ}`zB|*msC|L%#xGTwH*yThfER#?Izq| zI5;X#tjB7lXr-Uu?3-$LIv)At}R#0*$jYxTn zQ6IR?>j6`iOc^(lcTI07dK_c!CD~bOqaX(FntgkxLR=COx9a-EBflqu&Lxu?$DO|> zdh#My0y4{8m$u*gQR8{!o4KJW2>7n!jUReIUKzizLrW(e8s%x2^;+i6hwRC1osq&X zbN4$3;6*xh{63VgPL%Cp`1Z`&1VkTxAn16laueZhDRpLH+T9=uwlJgmC$)6xDeQBD zP(r$L1MYSq3MT*NJ~t17u3=uHaq^F&Uh5!YsY3&BU(Oh^`EwGQ2<5TTCKrq1hI)E{ z(V`}3!EU=QI#Y{Yv9J{0a(J`w_^MwU^mV4zde;E_eDCpK(y!m-(93b4`Y`MUJ7hSa zzq<%@#*yK8pZp!}%fbrn%(??lqM@-5ZeS;hmQsjuwB|wdGQ+z*-8f}SwxrM6*dn`K(@VwfBoR+a~i9z-yEFr^Dcz6g|es^rPG)8cUbd0vr z5Z{3kXv8rq@WzEh+u@{`c3gAE)YN9!>cr769`#;9^a1qG(5gh|fDP43E#Y}1@3{DT zl=z%__;*G$<6jtBaYB$y~eG)b99X2Vlk>?LUOHV~ty%Awkabn&^ zY>VU>?2jDv`|wVXM1gMv0y|G!UCKOE-i2`TP#yZ2bye{Ro#@I+EsUNRsqvdnXDKq0S6 z8=z4J`1D+DDdIJu;k}P?x(%S`EQa4-o(;4+_}AJ#Y$sjaBk(b`_ZeLFYZs=QE86Y! zGImxnrS-^CZXFQtNo^!SSA(+M^SuAoV0l`PsOVa$zGj*LGZ*NxC&g(MUH$d6b(q># zuZ__0nXd)3bvfl^C45zUi;t;}s(sryA+w&ApfAT?4K-oE%8hjn47T`oAWD=v zh14VV+oX+^#iGJKJ1m3tyYjumv#f&Hq63n{ANLyavNKQgMnV-{KPYd=?h!kfkCF9=7D1~61oN%#cG52K&_y)ioY)I(5X8NjVS zYc?d?jILa)_Lt7nk=wSJymk9xiPDP{gY~BPZ}JN98pxPgbk(KZs`t%Z zici|^CVEg&?fG~sC{hI0q<$%z8sgHXcjaPYr{&?0*2^a(v4lfDtk_H51U)^S{xM8< zPLt_W#8t}5qfABcVer)_JRK54L&C;2%0RJ2#+