feat: add lago (#753)
This commit is contained in:
parent
0d4b495944
commit
bb5f0bfc1d
|
|
@ -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,}/
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue