summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRonald Loyko <[email protected]>2022-10-08 03:25:29 +0300
committerGitHub <[email protected]>2022-10-07 17:25:29 -0700
commitbb5f0bfc1dc34f7036a5e8a19b174f06ff6039eb (patch)
tree9304f2cba24b44a0677b8349f4dd866a0c98e6dd
parent0d4b495944d675991e374c29f52c1e8fb1e2338f (diff)
downloadcaprover-one-click-apps-bb5f0bfc1dc34f7036a5e8a19b174f06ff6039eb.tar.gz
caprover-one-click-apps-bb5f0bfc1dc34f7036a5e8a19b174f06ff6039eb.zip
feat: add lago (#753)
-rw-r--r--public/v4/apps/lago.yml271
-rw-r--r--public/v4/logos/lago.pngbin0 -> 17738 bytes
2 files changed, 271 insertions, 0 deletions
diff --git a/public/v4/apps/lago.yml b/public/v4/apps/lago.yml
new file mode 100644
index 0000000..6f00f77
--- /dev/null
+++ b/public/v4/apps/lago.yml
@@ -0,0 +1,271 @@
+captainVersion: 4
+services:
+ $$cap_appname:
+ image: getlago/front:$$cap_LAGO_VERSION
+ hostname: $$cap_appname.$$cap_root_domain
+ environment:
+ API_URL: http://$$cap_appname-api.$$cap_root_domain
+ APP_ENV: $$cap_LAGO_ENVIRONMENT
+ CODEGEN_API: http://$$cap_appname-api.$$cap_root_domain
+ LAGO_DISABLE_SIGNUP: $$cap_LAGO_DISABLE_SIGNUP
+ depends_on:
+ - $$cap_appname-api
+
+ $$cap_appname-api:
+ caproverExtra:
+ containerHttpPort: $$cap_LAGO_API_PORT
+ dockerfileLines:
+ - FROM getlago/api:$$cap_LAGO_VERSION
+ - CMD ["./scripts/start.sh"]
+ hostname: $$cap_appname-api.$$cap_root_domain
+ environment:
+ LAGO_API_URL: http://$$cap_appname-api.$$cap_root_domain
+ DATABASE_URL: postgresql://$$cap_POSTGRES_USER:$$cap_POSTGRES_PASSWORD@srv-captain--$$cap_appname-db/$$cap_POSTGRES_DB
+ REDIS_URL: redis://srv-captain--$$cap_appname-cache
+ SECRET_KEY_BASE: $$cap_LAGO_API_SECRET_KEY_BASE
+ RAILS_ENV: $$cap_LAGO_ENVIRONMENT
+ RAILS_LOG_TO_STDOUT: $$cap_LAGO_API_LOG_TO_STDOUT
+ SENTRY_DSN: $$cap_LAGO_API_SENTRY_DSN
+ LAGO_FRONT_URL: http://$$cap_appname.$$cap_root_domain
+ RSA_PRIVATE_KEY: $$cap_LAGO_API_RSA_PRIVATE_KEY
+ LAGO_RSA_PRIVATE_KEY: $$cap_LAGO_API_RSA_PRIVATE_KEY
+ LAGO_SIDEKIQ_WEB: $$cap_LAGO_API_SIDEKIQ_WEB
+ ENCRYPTION_PRIMARY_KEY: $$cap_LAGO_API_ENCRYPTION_PRIMARY_KEY
+ ENCRYPTION_DETERMINISTIC_KEY: $$cap_LAGO_API_ENCRYPTION_DETERMINISTIC_KEY
+ ENCRYPTION_KEY_DERIVATION_SALT: $$cap_LAGO_API_ENCRYPTION_KEY_DERIVATION_SALT
+ LAGO_USE_AWS_S3: $$cap_LAGO_API_USE_AWS_S3
+ LAGO_AWS_S3_ACCESS_KEY_ID: $$cap_LAGO_API_AWS_S3_ACCESS_KEY_ID
+ LAGO_AWS_S3_SECRET_ACCESS_KEY: $$cap_LAGO_API_AWS_S3_SECRET_ACCESS_KEY
+ LAGO_AWS_S3_REGION: $$cap_LAGO_API_AWS_S3_REGION
+ LAGO_AWS_S3_BUCKET: $$cap_LAGO_API_AWS_S3_BUCKET
+ LAGO_AWS_S3_ENDPOINT: $$cap_LAGO_API_AWS_S3_ENDPOINT
+ LAGO_PDF_URL: http://srv-captain--$$cap_appname-pdf
+ LAGO_REDIS_CACHE_URL: redis://srv-captain--$$cap_appname-cache
+ LAGO_DISABLE_SEGMENT: $$cap_LAGO_API_DISABLE_SEGMENT
+ volumes:
+ - $$cap_appname-api-storage-data:/app/storage
+ depends_on:
+ - $$cap_appname-db
+ - $$cap_appname-cache
+
+ $$cap_appname-api-worker:
+ caproverExtra:
+ notExposeAsWebApp: 'true'
+ dockerfileLines:
+ - FROM getlago/api:$$cap_LAGO_VERSION
+ - CMD ["./scripts/start.worker.sh"]
+ environment:
+ LAGO_API_URL: http://$$cap_appname-api.$$cap_root_domain
+ DATABASE_URL: postgresql://$$cap_POSTGRES_USER:$$cap_POSTGRES_PASSWORD@srv-captain--$$cap_appname-db/$$cap_POSTGRES_DB
+ REDIS_URL: redis://srv-captain--$$cap_appname-cache
+ SECRET_KEY_BASE: $$cap_LAGO_API_SECRET_KEY_BASE
+ RAILS_ENV: $$cap_LAGO_ENVIRONMENT
+ RAILS_LOG_TO_STDOUT: $$cap_LAGO_API_LOG_TO_STDOUT
+ SENTRY_DSN: $$cap_LAGO_API_SENTRY_DSN
+ LAGO_RSA_PRIVATE_KEY: $$cap_LAGO_API_RSA_PRIVATE_KEY
+ RSA_PRIVATE_KEY: $$cap_LAGO_API_RSA_PRIVATE_KEY
+ ENCRYPTION_PRIMARY_KEY: $$cap_LAGO_API_ENCRYPTION_PRIMARY_KEY
+ ENCRYPTION_DETERMINISTIC_KEY: $$cap_LAGO_API_ENCRYPTION_DETERMINISTIC_KEY
+ ENCRYPTION_KEY_DERIVATION_SALT: $$cap_LAGO_API_ENCRYPTION_KEY_DERIVATION_SALT
+ LAGO_USE_AWS_S3: $$cap_LAGO_API_USE_AWS_S3
+ LAGO_AWS_S3_ACCESS_KEY_ID: $$cap_LAGO_API_AWS_S3_ACCESS_KEY_ID
+ LAGO_AWS_S3_SECRET_ACCESS_KEY: $$cap_LAGO_API_AWS_S3_SECRET_ACCESS_KEY
+ LAGO_AWS_S3_REGION: $$cap_LAGO_API_AWS_S3_REGION
+ LAGO_AWS_S3_BUCKET: $$cap_LAGO_API_AWS_S3_BUCKET
+ LAGO_AWS_S3_ENDPOINT: $$cap_LAGO_API_AWS_S3_ENDPOINT
+ LAGO_PDF_URL: http://srv-captain--$$cap_appname-pdf
+ LAGO_REDIS_CACHE_URL: redis://srv-captain--$$cap_appname-cache
+ LAGO_DISABLE_SEGMENT: $$cap_LAGO_API_DISABLE_SEGMENT
+ volumes:
+ - $$cap_appname-api-storage-data:/app/storage
+ depends_on:
+ - $$cap_appname-api
+
+ $$cap_appname-api-clock:
+ caproverExtra:
+ notExposeAsWebApp: 'true'
+ dockerfileLines:
+ - FROM getlago/api:$$cap_LAGO_VERSION
+ - CMD ["./scripts/start.clock.sh"]
+ environment:
+ LAGO_API_URL: http://$$cap_appname-api.$$cap_root_domain
+ DATABASE_URL: postgresql://$$cap_POSTGRES_USER:$$cap_POSTGRES_PASSWORD@srv-captain--$$cap_appname-db/$$cap_POSTGRES_DB
+ REDIS_URL: redis://srv-captain--$$cap_appname-cache
+ SECRET_KEY_BASE: $$cap_LAGO_API_SECRET_KEY_BASE
+ RAILS_ENV: $$cap_LAGO_ENVIRONMENT
+ RAILS_LOG_TO_STDOUT: $$cap_LAGO_API_LOG_TO_STDOUT
+ SENTRY_DSN: $$cap_LAGO_API_SENTRY_DSN
+ LAGO_RSA_PRIVATE_KEY: $$cap_LAGO_API_RSA_PRIVATE_KEY
+ RSA_PRIVATE_KEY: $$cap_LAGO_API_RSA_PRIVATE_KEY
+ ENCRYPTION_PRIMARY_KEY: $$cap_LAGO_API_ENCRYPTION_PRIMARY_KEY
+ ENCRYPTION_DETERMINISTIC_KEY: $$cap_LAGO_API_ENCRYPTION_DETERMINISTIC_KEY
+ ENCRYPTION_KEY_DERIVATION_SALT: $$cap_LAGO_API_ENCRYPTION_KEY_DERIVATION_SALT
+ depends_on:
+ - $$cap_appname-api
+
+ $$cap_appname-pdf:
+ caproverExtra:
+ notExposeAsWebApp: 'true'
+ image: getlago/lago-gotenberg:$$cap_GOTENBERG_VERSION
+
+ $$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
+ PGDATA: $$cap_POSTGRES_PGDATA
+ volumes:
+ - $$cap_appname-db-data:/data/postgres
+
+ $$cap_appname-cache:
+ caproverExtra:
+ notExposeAsWebApp: 'true'
+ image: redis:$$cap_REDIS_VERSION
+ volumes:
+ - $$cap_appname-cache-data:/data
+
+caproverOneClickApp:
+ instructions:
+ start: |-
+ Lago is an open source billing API for product-led SaaS.
+ The best alternative to Chargebee, Recurly or Stripe Billing.
+ For usage-based, subscription-based, and all the nuances of pricing in between.
+ end: |-
+ Lago 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: Lago
+ isOfficial: true
+ description: Open source billing API for product-led SaaS
+ documentation: https://doc.getlago.com/docs/guide/intro/welcome
+ variables:
+ - id: $$cap_LAGO_VERSION
+ label: General | Lago Version
+ description: Check out their valid tags at https://hub.docker.com/r/getlago/api/tags
+ defaultValue: v0.11.0-alpha
+ validRegex: /.{1,}/
+ - id: $$cap_POSTGRES_VERSION
+ label: General | PostgreSQL Version
+ description: Check out their valid tags at https://hub.docker.com/_/postgres/tags
+ defaultValue: '14.0-alpine'
+ validRegex: /.{1,}/
+ - id: $$cap_REDIS_VERSION
+ label: General | Redis Version
+ description: Check out their valid tags at https://hub.docker.com/_/redis/tags
+ defaultValue: '6.2-alpine'
+ validRegex: /.{1,}/
+ - id: $$cap_GOTENBERG_VERSION
+ label: General | Gotenberg Version
+ description: Check out their valid tags at https://hub.docker.com/r/getlago/lago-gotenberg/tags
+ defaultValue: 7
+ validRegex: /.{1,}/
+ - id: $$cap_LAGO_ENVIRONMENT
+ label: General | Environment
+ description: Environment of the application. Should be left untouched.
+ defaultValue: production
+ validRegex: /^(production|development)$/
+ - id: $$cap_LAGO_DISABLE_SIGNUP
+ label: Application | Disable Sign-Up
+ description: Whether to disable registration.
+ defaultValue: 'false'
+ validRegex: /^(true|false)$/
+ - id: $$cap_LAGO_API_PORT
+ label: API | Port
+ description: Port of the API.
+ defaultValue: 3000
+ validRegex: /.{1,}/
+ - id: $$cap_LAGO_API_SECRET_KEY_BASE
+ label: API | Secret Key
+ description: >-
+ Secret key used for session encryption.
+ You can generate one using command `openssl rand -hex 64`.
+ defaultValue: $$cap_gen_random_hex(64)
+ validRegex: /.{1,}/
+ - id: $$cap_LAGO_API_LOG_TO_STDOUT
+ label: API | Output Log
+ description: Whether to log output to `stdout`. Should be left untouched.
+ defaultValue: 'true'
+ validRegex: /^(true|false)$/
+ - id: $$cap_LAGO_API_DISABLE_SEGMENT
+ label: API | Disable Tracking
+ description: Whether to opt-out of analytics.
+ defaultValue: 'true'
+ validRegex: /^(true|false)$/
+ - id: $$cap_LAGO_API_SENTRY_DSN
+ label: API | Sentry DSN
+ description: Sentry DSN key for error and performance tracking.
+ - id: $$cap_LAGO_API_RSA_PRIVATE_KEY
+ label: API | RSA Private Key
+ description: >-
+ Private key used for webhook signatures.
+ You should generate one using this command `openssl genrsa 2048 | base64`.
+ defaultValue: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBMmVmN0Eyc216b25PRU9oRm5wZ2gwZEd4Zk1JUXR1M290YlREcFFKdkxUTzl0YUhRCnlIZDRwUU5KNytqdW5EMy82QXZCbk1tQ0p4a3JJcDNrZ0xUN0tFTTFKaGVVdU90TXlvUWVSYTFYVEVUR2RiN24KWHN6WnBGRVBsYXFHUVVMeWZGTUVUTXh6elJPK0JOZFg3SFRkeDEwTi8vTklJTHBoSlJORm1QRlhDTXJodTFTbQpMVjQ2UmVkUm9JZjI1Z05XY0FHeG9STkZXcEJtUENienJZM2VTUDJpUFYwOHZwUDZ2aWFBSWpWd2VoSEhXTU05CmNzQitlYXJGRk9aRllROE9hOFVBS1RFVUNSVWhyelorS2ZmVkNRVjlrOW4rV0tueks2MlUvVXlveWZZV2hiZXIKeWJYdmliSlE2eXcxdElYZFJrL1lseVFEVmxFK080Qlk1WWV1cHdJREFRQUJBb0lCQUhIZlVNV1FrVThOcEtvaApONENSYjlyK0FncDRQOVBZcit1RTgxaWYxUW1DS0hscWZuakVOai9GWURZSE8rcGFYQWtmVzZaYmg3QjI3cHZBCmQxRHJRdlRmYWo3bHc4cCs3RHBJb0trNDFJMyt3dGQxVStPdW1XM05EcC9mNVJqbHEySmMzN3BpZllHRjk1OEEKQ2VwL2lBWlBFcW5Xc0xLcHMycDBqOEpGSEg1eXovYXd1bkRwRDhNb0d1NUM0cTdLSHJoeEpDYlc0bUw3OVVWQgpCbWwxTUpQZTM5a3AwSFVlRlRVVUhYdU02TmRKZ3lVRmtZTE9ES3IxaFF3dStFdzNzMUJlSmpLdkRpZm1xdGJyCnVKY1l1MEZjNHNWeEhKQXl2bTQ5elZqWFN4VGkvMUl1eHdveUp5KzhRbmY5bDdpTWkyK0JpRXJLKzNYUnlZOUwKTWcxNEQ4RUNnWUVBKzkxdm05V0ZhN1Jxek10VU5KQUZqRGwxcW83d0lDaHhJU2ZMdUVxRVgwUng3b3gyYlRyagp4VlJaNnRIdkd0S0NibHVZa1BhL00ySGhqT2JKeVRZYjBGcUx5bkZKVDFQekZPcVVJSFpVcUg4cEVWRXkyRExtCnFTeDFqM1pBd1cxUWQvaUtvakMyR2hEd0syYTJZZ2Fxb1JiL0tzQlN5N3JnL21oZ2IwTlpEck1DZ1lFQTNYdlIKcUROWDMvK0VpOWR1V3U1RGlNWVEzZTNnVnl5RGJuT1J2Y3BJZ2x2TDlVcFZiVVcvVWdpT1VEQTBYSzN3M0o0agovTHRsT0xvZnp2c1NsYTJjZWptRVkxYkFsL3hSVkpyWWJaWlRjYlhmUXlrMWsxUzEyREVlbElSd3dXc0RXbGQ5CmsrZmRqd09sWGVCUHJWeWVCK1BmRCsvb2pVc1d5Mk5EeUROckdqMENnWUVBNnkrYVFZei8ybFFOaXBDdlg2bkEKMUhEdlZFWEhLbkE1TzNtYXZNc3drbmtxWGxQaFhod29ocUkrbUl4U1Z0eU5tUm1FL0pDOGQvR0ZtWG9Fb1JRYQpvdE42UjU3RGt3VFVMd3JoS1BMMkdLVXRKeE9JZytQOENhc1BWOWhYbllkREpkUDdPSHArQVJjaC9aVWE1NnhMCjlzS3ZvUzhYNFUvdk93RWlVNk15N1FzQ2dZQWxsa2ZFVmNKSi8yRU5JbWhXQWkxdjNyMHFESjZQN0x2NVdKK1oKSitVYVNsM1lxTjdLaHBXclpFeFNpM3UzWnNXRGkwcnNMeGxFZ1VHNHJKOUF5NC9NcGtveldadWhyMjVWLzFsUApiNzJGaEtuNUNkdFB2NGFFeEFFK2p5TmJqNytuNjBVaWZxejVBbE5rRlJjd2dwRkhJWUxQZjVWbHRTS1BMYTlwCklHREN1UUtCZ1FDTGJJWEI3aHc2dGhHTitNVGNwK0Q1dXhacGYzcTB1eTc5Q3IxMktuM2ltZVI0c1Nmd2Q3RHgKSDdGeStMV2tQbHU2elNYamNIWFVRMDgwb1BoREVKYlZvN0I1WkJKWFhqeDRoWE1oVGdCaE5rY0tHL1dsdCtjeQpKSkdmTlY5dzIvVG5ZWW9pbFgxT1BTdk4rejNLN1AvRmMyUWVZS3c0c090aWsyOWhJTWJZTkE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=
+ validRegex: /.{1,}/
+ - id: $$cap_LAGO_API_SIDEKIQ_WEB
+ label: API | Sidekiq Web
+ description: Activate the Sidekiq web UI, disabled by default.
+ - id: $$cap_LAGO_API_ENCRYPTION_PRIMARY_KEY
+ label: API | Encryption Primary Key
+ description: >-
+ Encryption primary key used to secure sensitive values stored in the database.
+ You should generate one using this command `cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`.
+ defaultValue: $$cap_gen_random_hex(32)
+ validRegex: /.{1,}/
+ - id: $$cap_LAGO_API_ENCRYPTION_DETERMINISTIC_KEY
+ label: API | Encryption Deterministic Key
+ description: >-
+ Encryption deterministic key used to secure sensitive values stored in the database.
+ You should generate one using this command `cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`.
+ defaultValue: $$cap_gen_random_hex(32)
+ validRegex: /.{1,}/
+ - id: $$cap_LAGO_API_ENCRYPTION_KEY_DERIVATION_SALT
+ label: API | Encryption Key Derivation Salt
+ description: >-
+ Encryption key salt used to secure sensitive values stored in the database.
+ You should generate one using this command `cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1`.
+ defaultValue: $$cap_gen_random_hex(32)
+ validRegex: /.{1,}/
+ - id: $$cap_LAGO_API_USE_AWS_S3
+ label: API | Use AWS S3
+ description: Whether to use AWS S3 for file storage.
+ defaultValue: 'false'
+ validRegex: /^(true|false)$/
+ - id: $$cap_LAGO_API_AWS_S3_ACCESS_KEY_ID
+ label: API | AWS S3 Access Key ID
+ description: AWS access key ID that has access to S3.
+ - id: $$cap_LAGO_API_AWS_S3_SECRET_ACCESS_KEY
+ label: API | AWS S3 Secret Access Key
+ description: AWS secret access key that has access to S3.
+ - id: $$cap_LAGO_API_AWS_S3_REGION
+ label: API | AWS S3 Region
+ description: AWS S3 region (e.g. `us-east-1`).
+ - id: $$cap_LAGO_API_AWS_S3_BUCKET
+ label: API | AWS S3 Bucket
+ description: AWS S3 bucket name.
+ - id: $$cap_LAGO_API_AWS_S3_ENDPOINT
+ label: API | AWS S3 Endpoint
+ description: >-
+ S3 compatible storage endpoint.
+ Should be set only if you are using another storage provider than AWS S3.
+ - id: $$cap_POSTGRES_DB
+ label: Database | Name
+ description: Name of the PostgreSQL.
+ defaultValue: lago
+ validRegex: /.{1,}/
+ - id: $$cap_POSTGRES_USER
+ label: Database | User Name
+ description: Name of the PostgreSQL user.
+ defaultValue: lago
+ validRegex: /.{1,}/
+ - id: $$cap_POSTGRES_PASSWORD
+ label: Database | User Password
+ description: Password of the PostgreSQL user.
+ defaultValue: $$cap_gen_random_hex(16)
+ validRegex: /.{1,}/
+ - id: $$cap_POSTGRES_PGDATA
+ label: Database | Data Directory
+ description: Path to the data directory within PostgreSQL.
+ defaultValue: /data/postgres
+ validRegex: /.{1,}/
diff --git a/public/v4/logos/lago.png b/public/v4/logos/lago.png
new file mode 100644
index 0000000..c9e3ccc
--- /dev/null
+++ b/public/v4/logos/lago.png
Binary files differ