diff --git a/.devcontainer/docker-compose.yaml b/.devcontainer/docker-compose.yaml index 036e3de..eb4ef9e 100644 --- a/.devcontainer/docker-compose.yaml +++ b/.devcontainer/docker-compose.yaml @@ -28,9 +28,6 @@ services: - type: bind source: ../strapi target: /app - ports: - # Expose strapi to port 8001 - - "8001:8001" depends_on: - strapi-postgres @@ -62,6 +59,13 @@ services: source: ../app target: /app + caddy: + image: caddy + volumes: + - "../caddy/Caddyfile.dev:/etc/caddy/Caddyfile" + ports: + - "80:80" + volumes: # Persist strapi database strapi-data: diff --git a/app/package-lock.json b/app/package-lock.json index 46b0e2c..5969dd0 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -19,9 +19,9 @@ "typescript": "5.0.4" }, "devDependencies": { - "autoprefixer": "^10.4.14", - "postcss": "^8.4.23", - "tailwindcss": "^3.3.2" + "autoprefixer": "10.4.14", + "postcss": "8.4.23", + "tailwindcss": "3.3.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -3223,9 +3223,9 @@ } }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz", + "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==", "dev": true, "funding": [ { @@ -3957,9 +3957,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz", + "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -3982,6 +3982,7 @@ "postcss-load-config": "^4.0.1", "postcss-nested": "^6.0.1", "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0", "resolve": "^1.22.2", "sucrase": "^3.32.0" }, diff --git a/caddy/Caddyfile.dev b/caddy/Caddyfile.dev new file mode 100644 index 0000000..995e486 --- /dev/null +++ b/caddy/Caddyfile.dev @@ -0,0 +1,11 @@ +{ + auto_https off +} + +http://localhost:80 { + handle_path /strapi* { + reverse_proxy http://strapi:8001 + } + + reverse_proxy http://app:3000 +} diff --git a/strapi/.env.example b/strapi/.env.example index 0c67025..b532981 100644 --- a/strapi/.env.example +++ b/strapi/.env.example @@ -1,5 +1,6 @@ HOST=0.0.0.0 PORT=8001 +URL=http://localhost/strapi APP_KEYS="toBeModified1,toBeModified2" API_TOKEN_SALT=tobemodified ADMIN_JWT_SECRET=tobemodified diff --git a/strapi/config/middlewares.ts b/strapi/config/middlewares.ts index 5191241..3884bda 100644 --- a/strapi/config/middlewares.ts +++ b/strapi/config/middlewares.ts @@ -9,4 +9,5 @@ export default [ "strapi::session", "strapi::favicon", "strapi::public", + { resolve: "./src/middlewares/admin-redirect" }, ]; diff --git a/strapi/config/server.ts b/strapi/config/server.ts index b73a6e5..871c114 100644 --- a/strapi/config/server.ts +++ b/strapi/config/server.ts @@ -4,4 +4,5 @@ export default ({ env }) => ({ app: { keys: env.array("APP_KEYS"), }, + url: env("URL", "http://localhost/strapi"), }); diff --git a/strapi/src/middlewares/admin-redirect.ts b/strapi/src/middlewares/admin-redirect.ts new file mode 100644 index 0000000..632310e --- /dev/null +++ b/strapi/src/middlewares/admin-redirect.ts @@ -0,0 +1,15 @@ +/** + * `admin-redirect` middleware + */ +import { Strapi } from "@strapi/strapi"; + +export default (config, { strapi }: { strapi: Strapi }) => { + const redirects = ["/", "/index.html"].map((path) => ({ + method: "GET", + path, + handler: (ctx) => ctx.redirect(strapi.config.admin.url), + config: { auth: false }, + })); + + strapi.server.routes(redirects); +};