Instalación y Configuración de Strapi 4
INSTALACION
- Abrimos AWS en nuestro navegador.
- Vamos al apartado CodeCommit.
- Creamos un nuevo repositorio.
- Copiamos el HTTPS del repositorio creado.
- Clonamos el repositorio en la ruta que queramos usando
git clone [HTTPS]. En este caso, nuestra ruta serávar/www/html. - Abrimos MySQL Workbench.
- Seleccionamos la conexión donde queramos tener nuestra BBDD, en este caso
mysql-local.(OJO! esto cambia en función del entorno TEST, PRODUCCIÓN, LOCAL) - Creamos un nuevo schema. Seleccionamos la opción
utf8paraCharacter setyutf8_unicode_ciparaCollation.

- En la ruta donde hemos clonado anteriormente el repositorio, ejecutamos el comando npx create-strapi-app@latest [nombre]. En la configuración seleccionaremos la siguiente estructura:
- custom
- JavaScript
- mysql
- [nombre squema BBDD]
- [IP conexión donde hemos creado el schema de la BBDD]
- default port
- desarrollo
- Alebat12358%
- no enable SSL

- una vez terminada la configuración, movemos todos los archivos (exceptuando el .git) de la carpeta strapi acabamos de crear al repositorio previamente clonado.
- Hacemos cd en el repositorio y ejecutamos:
npm i npm run build npm run develop- iniciamos sesión para crear el primer usuario (Normalmente se abre el navegador para hacer el registro, sino copiamos la url del terminal y la pegamos en el navegador)
- copiamos en .gitinore de algún proyecto ya creado y lo pegamos en el nuestro.
CONFIGURACIÓN
- Vamos a la configuracion
- En Media Library dejamos la selección como la de la siguiente imagen:

- En el
package.json, en el apartado de dependencies, tenemos que tener las siguientes dependencias instaladas (Puede que cuando estes leyendo esto hay versiones mas modernas asique no copies y pegues, fijate en el númerito que es la versión)
"@retikolo/drag-drop-content-types": "1.3.9","@strapi/plugin-graphql": "^4.14.4","@strapi/plugin-i18n": "^4.15.0","@strapi/plugin-seo": "1.9.2","@strapi/plugin-users-permissions": "4.13.6","@strapi/provider-email-amazon-ses": "4.12.5","@strapi/provider-upload-aws-s3": "4.11.7","@strapi/strapi": "v4.14.4","aws-sdk": "^2.1494.0","axios": "1.4.0","jsonwebtoken": "9.0.2","mysql": "2.18.1","mysql2": "3.5.2","semver": "^7.5.4","strapi-plugin-import-export-entries": "1.21.0","strapi-plugin-multi-select": "1.2.2","strapi-plugin-notes": "1.0.1","strapi-plugin-transformer": "3.1.1","strapi-plugin-translate": "^1.2.3","strapi-provider-translate-deepl": "^1.1.2","stripe": "13.5.0"- El archivo
plugins.js, lo cambiaremos por el siguiente código:
const fechaActual = new Date();const añoActual = fechaActual.getFullYear();const mesActual = fechaActual.getMonth() + 1;
module.exports = ({ env }) => ({ upload: { config: { provider: "aws-s3", providerOptions: { baseUrl: env("CDN_URL"), rootPath: `${env("CDN_ROOT_PATH")}${añoActual}/${mesActual}`, s3Options: { accessKeyId: env("AWS_ACCESS_KEY_ID"), secretAccessKey: env("AWS_ACCESS_SECRET"), region: env("AWS_REGION"), params: { ACL: env("AWS_ACL", "public-read"), signedUrlExpires: env("AWS_SIGNED_URL_EXPIRES", 15 * 60), Bucket: env("AWS_BUCKET"), }, }, }, actionOptions: { upload: {}, uploadStream: {}, delete: {}, }, }, }, "import-export-entries": { enabled: true, config: {}, }, email: { config: { provider: "amazon-ses", providerOptions: { key: env("AWS_SES_KEY"), secret: env("AWS_SES_SECRET"), amazon: `https://email.${env("AWS_SES_REGION")}.amazonaws.com`, }, settings: { defaultFrom: "info@alebateducation.com", defaultReplyTo: "info@alebateducation.com", }, }, }, pedidos: { enabled: true, resolve: "./src/plugins/pedidos", }, transformer: { enabled: true, config: { responseTransforms: { removeAttributesKey: true, removeDataKey: true, }, }, }, translate: { enabled: true, config: { provider: "deepl", providerOptions: { apiKey: "4c58f016-006c-3951-31eb-dd72860753b1:fx", localeMap: { ES: "ES", }, apiOptions: { formality: "default", }, }, }, },});La sección de “pedidos” solo la incluiremos si la aplicación estamos creando va a permitir compras