diff --git a/.env.example b/.env.example deleted file mode 100644 index f1f7330..0000000 --- a/.env.example +++ /dev/null @@ -1,6 +0,0 @@ -HOST=0.0.0.0 -PORT=1337 -APP_KEYS="toBeModified1,toBeModified2" -API_TOKEN_SALT=tobemodified -ADMIN_JWT_SECRET=tobemodified -JWT_SECRET=tobemodified diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f2cf211 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +services: + + # PostgreSQL (Database) + #gs_postgres: + # extends: + # file: apps/backend/postgres.yml + # service: gs_postgres + + # MySQL (Database) + gs_mysql: + extends: + file: ./mysql.yml + service: gs_mysql + + gs_phpmyadmin: + extends: + file: ./mysql.yml + service: gs_phpmyadmin + + gs_redis: + image: "redis:alpine" + ports: + - "6379:6379" + + gs_redis_commander: + image: rediscommander/redis-commander:latest + environment: + - REDIS_HOSTS=local:gs_redis:6379 + ports: + - "8081:8081" + depends_on: + - gs_redis + + +volumes: + gs_postgres-master: + driver: local + gs_mariadb-master: + driver: local diff --git a/mysql.yml b/mysql.yml index 462ea3c..877ebef 100644 --- a/mysql.yml +++ b/mysql.yml @@ -18,3 +18,15 @@ services: # Where our data will be persisted volumes: - gs_mariadb-master:/var/lib/mysql + + gs_phpmyadmin: + image: phpmyadmin/phpmyadmin:latest + container_name: gs-phpmyadmin + environment: + PMA_ARBITRARY: 1 + PMA_HOST: gs_mysql + PMA_USER: root + PMA_PASSWORD: ${MYSQL_DATABASE_ROOT_PASSWORD} + UPLOAD_LIMIT: 20M + ports: + - 8899:80 diff --git a/package-lock.json b/package-lock.json index 2fe6689..19cd5b9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@strapi/plugin-i18n": "4.6.0", "@strapi/plugin-users-permissions": "4.6.0", "@strapi/provider-email-nodemailer": "4.5.6", - "@strapi/strapi": "4.6.0", + "@strapi/strapi": "^4.6.0", "@strapi/utils": "4.5.6", "better-sqlite3": "7.4.6", "mysql": "2.18.1", @@ -21,7 +21,6 @@ "strapi-plugin-menus": "1.2.1", "strapi-plugin-populate-deep": "1.1.2" }, - "devDependencies": {}, "engines": { "node": ">=14.19.1 <=18.x.x", "npm": ">=6.0.0" diff --git a/package.json b/package.json index d235a24..2cc72af 100644 --- a/package.json +++ b/package.json @@ -4,19 +4,21 @@ "version": "0.1.0", "description": "A Strapi application", "scripts": { + "predevelop": "docker-compose up -d", "develop": "strapi develop", "start": "strapi start", "build": "strapi build", - "strapi": "strapi" + "strapi": "strapi", + "build:staging": "npm run build", + "postbuild:staging": "node scripts/strapi/build-staging.js" }, - "devDependencies": {}, "dependencies": { - "@strapi/strapi": "4.6.0", - "@strapi/plugin-users-permissions": "4.6.0", "@strapi/plugin-i18n": "4.6.0", - "better-sqlite3": "7.4.6", + "@strapi/plugin-users-permissions": "4.6.0", "@strapi/provider-email-nodemailer": "4.5.6", + "@strapi/strapi": "^4.6.0", "@strapi/utils": "4.5.6", + "better-sqlite3": "7.4.6", "mysql": "2.18.1", "pg": "8.8.0", "strapi-plugin-import-export-entries": "1.18.0", diff --git a/scripts/strapi/build-staging.js b/scripts/strapi/build-staging.js new file mode 100644 index 0000000..d6ae3cd --- /dev/null +++ b/scripts/strapi/build-staging.js @@ -0,0 +1,9 @@ +const fs = require('fs'); +const fse = require('fs-extra'); +const path = require('path'); + +fse.copySync(path.join(__dirname, '..', '..', 'apps/backend/public'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/public')); +fs.copyFileSync(path.join(__dirname, '..', '..', 'apps/backend/.env.staging'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/.env')); +fs.copyFileSync(path.join(__dirname, 'sources/server.js'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/server.js')); +fs.copyFileSync(path.join(__dirname, 'sources/package.json'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/package.json')); +fs.copyFileSync(path.join(__dirname, 'sources/.strapi-updater.json'), path.join(__dirname, '..', '..', 'dist', 'apps', 'backend/.strapi-updater.json')); diff --git a/scripts/strapi/sources/package.json b/scripts/strapi/sources/package.json new file mode 100644 index 0000000..b44ac8d --- /dev/null +++ b/scripts/strapi/sources/package.json @@ -0,0 +1,31 @@ +{ + "name": "nx-guitar-school", + "version": "0.0.0", + "overrides": { + "@strapi/strapi": "4.5.4" + }, + "dependencies": { + "@strapi/plugin-i18n": "4.5.4", + "@strapi/plugin-users-permissions": "4.5.4", + "@strapi/provider-email-nodemailer": "4.5.6", + "@strapi/strapi": "4.5.4", + "@strapi/utils": "4.5.6", + "better-sqlite3": "7.4.6", + "mysql": "2.18.1", + "pg": "8.8.0", + "strapi-plugin-import-export-entries": "1.18.0", + "strapi-plugin-menus": "1.2.1", + "strapi-plugin-populate-deep": "1.1.2" + }, + "author": { + "name": "A Strapi developer" + }, + "strapi": { + "uuid": "d1de7a93-c68b-4597-80ee-b5b56ea4eb10" + }, + "engines": { + "node": ">=14.19.1 <=18.x.x", + "npm": ">=6.0.0" + }, + "license": "MIT" +} diff --git a/scripts/strapi/sources/server.js b/scripts/strapi/sources/server.js new file mode 100644 index 0000000..63dd6c2 --- /dev/null +++ b/scripts/strapi/sources/server.js @@ -0,0 +1,3 @@ +const strapi = require('@strapi/strapi'); +const app = strapi({distDir: './dist'}); +app.start(); diff --git a/tsconfig.json b/tsconfig.json index 3f3ccfe..b9532e3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "@strapi/typescript-utils/tsconfigs/server", "compilerOptions": { - "outDir": "../../dist/apps/backend/dist", + "outDir": "dist", "rootDir": "." }, "include": [