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 0000000..d32af0c Binary files /dev/null and b/public/v4/logos/saleor.png differ