From e73765dbe92853c49d13f0b15c6dcbb1e22e3a9c Mon Sep 17 00:00:00 2001 From: Ronald Loyko <108372764+ronaldloyko@users.noreply.github.com> Date: Thu, 23 Mar 2023 06:21:14 +0200 Subject: [PATCH] feat: add saleor (#887) * feat: add saleor * fix: remove private key field --------- Co-authored-by: Ronald Loyko --- public/v4/apps/saleor.yml | 138 +++++++++++++++++++++++++++++++++++++ public/v4/logos/saleor.png | Bin 0 -> 30567 bytes 2 files changed, 138 insertions(+) create mode 100644 public/v4/apps/saleor.yml create mode 100644 public/v4/logos/saleor.png diff --git a/public/v4/apps/saleor.yml b/public/v4/apps/saleor.yml new file mode 100644 index 0000000..458e490 --- /dev/null +++ b/public/v4/apps/saleor.yml @@ -0,0 +1,138 @@ +captainVersion: 4 +services: + $$cap_appname-api: + caproverExtra: + containerHttpPort: 8000 + image: ghcr.io/saleor/saleor:$$cap_SALEOR_CORE_VERSION + environment: + DASHBOARD_URL: http://$$cap_appname.$$cap_root_domain + DATABASE_URL: postgresql://$$cap_POSTGRES_USER:$$cap_POSTGRES_PASSWORD@srv-captain--$$cap_appname-db/$$cap_POSTGRES_DB + CELERY_BROKER_URL: redis://srv-captain--$$cap_appname-cache + DEFAULT_FROM_EMAIL: $$cap_SALEOR_DEFAULT_FROM_EMAIL + SECRET_KEY: $$cap_SALEOR_SECRET_KEY + DEFAULT_CHANNEL_SLUG: default-channel + ALLOWED_HOSTS: $$cap_appname-api.$$cap_root_domain + ALLOWED_CLIENT_HOSTS: $$cap_appname-api.$$cap_root_domain + ENABLE_ACCOUNT_CONFIRMATION_BY_EMAIL: $$cap_ENABLE_ACCOUNT_CONFIRMATION_BY_EMAIL + depends_on: + - $$cap_appname-db + - $$cap_appname-cache + volumes: + - $$cap_appname-media:/app/media + $$cap_appname: + image: ghcr.io/saleor/saleor-dashboard:$$cap_SALEOR_DASHBOARD_VERSION + environment: + API_URL: http://$$cap_appname-api.$$cap_root_domain/graphql/ + $$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 + volumes: + - $$cap_appname-db:/var/lib/postgresql/data + $$cap_appname-cache: + caproverExtra: + notExposeAsWebApp: 'true' + image: redis:$$cap_REDIS_VERSION + volumes: + - $$cap_appname-cache:/data + $$cap_appname-worker: + caproverExtra: + notExposeAsWebApp: 'true' + dockerfileLines: + - FROM ghcr.io/saleor/saleor:$$cap_SALEOR_CORE_VERSION + - CMD celery -A saleor --app=saleor.celeryconf:app worker --loglevel=info -B + environment: + DATABASE_URL: postgresql://$$cap_POSTGRES_USER:$$cap_POSTGRES_PASSWORD@srv-captain--$$cap_appname-db/$$cap_POSTGRES_DB + CELERY_BROKER_URL: redis://srv-captain--$$cap_appname-cache + DEFAULT_FROM_EMAIL: $$cap_SALEOR_DEFAULT_FROM_EMAIL + SECRET_KEY: $$cap_SALEOR_SECRET_KEY + DEFAULT_CHANNEL_SLUG: default-channel + ALLOWED_HOSTS: $$cap_appname-api.$$cap_root_domain + ALLOWED_CLIENT_HOSTS: $$cap_appname-api.$$cap_root_domain + ENABLE_ACCOUNT_CONFIRMATION_BY_EMAIL: $$cap_ENABLE_ACCOUNT_CONFIRMATION_BY_EMAIL + depends_on: + - $$cap_appname-cache + volumes: + - $$cap_appname-media:/app/media +caproverOneClickApp: + displayName: Saleor + description: An open-source, GraphQL-first e-commerce platform delivering ultra-fast, dynamic and personalized shopping experiences + isOfficial: true + documentation: https://saleor.io + instructions: + start: |- + Saleor is an open-source ecosystem for building rich e-commerce experiences. + Its centerpiece is Saleor GraphQL API that processes complex online store logic. + + **You will need access to your server via SSH to perform some commands after deployment. This needs to be done only once.** + end: |- + Saleor has been successfully deployed! It might take few moments before it's fully started. + + Before you can start using it, you need to perform some steps. + You only need to do this once. + **Please screenshot/copy the following instructions before proceeding:** + + 1. Access your server via SSH + 2. Execute following command to trigger database migrations: `docker exec -it $(docker ps --filter name=srv-captain--$$cap_appname-api -q) python3 manage.py migrate` + 3. **Optional**: If you want to populate the database with sample data, execute following command: `docker exec -it $(docker ps --filter name=srv-captain--$$cap_appname-api -q) python3 manage.py populatedb` + 4. Execute following command to create your account: `docker exec -it $(docker ps --filter name=srv-captain--$$cap_appname-api -q) python3 manage.py createsuperuser` + + That's it! + + You can access the dashboard at `http://$$cap_appname.$$cap_root_domain` + You can access the API at `http://$$cap_appname-api.$$cap_root_domain` + variables: + - id: $$cap_SALEOR_CORE_VERSION + label: Core | Version + description: Saleor core version. Check out their valid tags at https://github.com/saleor/saleor/pkgs/container/saleor + defaultValue: '3.12.5' + validRegex: /.{1,}/ + - id: $$cap_SALEOR_DASHBOARD_VERSION + label: Dashboard | Version + description: Saleor dashboard version. Check out their valid tags at https://github.com/saleor/saleor-dashboard/pkgs/container/saleor-dashboard + defaultValue: '3.12.1' + validRegex: /.{1,}/ + - id: $$cap_ENABLE_ACCOUNT_CONFIRMATION_BY_EMAIL + label: Core | Email Confirmation + description: Whether registering new customer accounts should require email confirmation. + defaultValue: 'False' + validRegex: /^(True|False)$/ + - id: $$cap_POSTGRES_VERSION + label: Database | Version + description: PostgreSQL version. Check out their valid tags at https://hub.docker.com/_/postgres/tags + defaultValue: '15.0-alpine' + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_DB + label: Database | Name + description: Name of the PostgreSQL database. + defaultValue: saleor + validRegex: /.{1,}/ + - id: $$cap_POSTGRES_USER + label: Database | User Name + description: Name of the PostgreSQL user. + defaultValue: saleor + 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_REDIS_VERSION + label: Cache | Version + description: Redis version. Check out their valid tags at https://hub.docker.com/_/redis/tags + defaultValue: '7.0-alpine' + validRegex: /.{1,}/ + - id: $$cap_SALEOR_DEFAULT_FROM_EMAIL + label: Mail | Version + description: Sender email address. + defaultValue: 'noreply@example.com' + validRegex: /.{1,}/ + - id: $$cap_SALEOR_SECRET_KEY + label: Security | Secret Key + description: Secret key. + defaultValue: $$cap_gen_random_hex(16) + validRegex: /.{1,}/ diff --git a/public/v4/logos/saleor.png b/public/v4/logos/saleor.png new file mode 100644 index 0000000000000000000000000000000000000000..d32af0c2eada5304aa11af14c1532aec82576207 GIT binary patch literal 30567 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 literal 0 HcmV?d00001