I deployed a new remix app, basic stack, the deploy is successful however browsing the wenbite I get the Netlify 404 page.
My Netlify site name is : iridescent-florentine-598963
My netlify.toml:
[build]
command = "remix build"
publish = "public/build"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-XSS-Protection = "1; mode=block"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "no-referrer-when-downgrade"
Content-Security-Policy = "default-src 'self'"
[build.environment]
NODE_ENV = "production"
[functions]
node_bundler = "esbuild"
external_node_modules = ["@remix-run/react"]
My Build output is
11:18:26 PM: build-image version: c11c0eb9939c949586b0f78302107908b668a11e (focal)
11:18:26 PM: buildbot version: 7c805444e63405246c545edc7c88027cc22d5424
11:18:27 PM: Building without cache
11:18:27 PM: Starting to prepare the repo for build
11:18:27 PM: No cached dependencies found. Cloning fresh repo
11:18:27 PM: git clone --filter=blob:none https://github.com/boringcommerce/makerkit-original
11:18:27 PM: Preparing Git Reference refs/heads/main
11:18:28 PM: Custom build command detected. Proceeding with the specified command: 'remix build'
11:18:29 PM: Starting to install dependencies
11:18:29 PM: Python version set to 3.8
11:18:29 PM: Attempting Ruby version 2.7.2, read from environment
11:18:30 PM: Using Ruby version 2.7.2
11:18:30 PM: Started restoring cached go cache
11:18:30 PM: Finished restoring cached go cache
11:18:31 PM: go version go1.19.10 linux/amd64
11:18:32 PM: Using PHP version 8.0
11:18:33 PM: Downloading and installing node v18.16.1...
11:18:33 PM: Downloading https://nodejs.org/dist/v18.16.1/node-v18.16.1-linux-x64.tar.xz...
11:18:33 PM: Computing checksum with sha256sum
11:18:33 PM: Checksums matched!
11:18:35 PM: Now using node v18.16.1 (npm v9.5.1)
11:18:35 PM: Enabling Node.js Corepack
11:18:35 PM: Started restoring cached build plugins
11:18:35 PM: Finished restoring cached build plugins
11:18:35 PM: WARNING: The environment variable 'NODE_ENV' is set to 'production'. Any 'devDependencies' in package.json will not be installed
11:18:35 PM: Started restoring cached corepack dependencies
11:18:35 PM: Finished restoring cached corepack dependencies
11:18:35 PM: No npm workspaces detected
11:18:35 PM: Started restoring cached node modules
11:18:35 PM: Finished restoring cached node modules
11:18:36 PM: Installing npm packages using npm version 9.5.1
11:18:41 PM: npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs
11:18:51 PM: added 1002 packages, and audited 1003 packages in 15s
11:18:51 PM: 181 packages are looking for funding
11:18:51 PM: run `npm fund` for details
11:18:51 PM: 20 vulnerabilities (19 moderate, 1 high)
11:18:51 PM: To address issues that do not require attention, run:
11:18:51 PM: npm audit fix
11:18:51 PM: To address all issues (including breaking changes), run:
11:18:51 PM: npm audit fix --force
11:18:51 PM: Run `npm audit` for details.
11:18:51 PM: npm packages installed
11:18:51 PM: Install dependencies script success
11:18:51 PM: Starting build script
11:18:52 PM: Detected 1 framework(s)
11:18:52 PM: vite at version 4.3.5
11:18:52 PM: Section completed: initializing
11:18:53 PM:
11:18:53 PM: Netlify Build
11:18:53 PM: ────────────────────────────────────────────────────────────────
11:18:53 PM:
11:18:53 PM: ❯ Version
11:18:53 PM: @netlify/build 29.12.1
11:18:53 PM:
11:18:53 PM: ❯ Flags
11:18:53 PM: baseRelDir: true
11:18:53 PM: buildId: 64972c6983147603bf371b87
11:18:53 PM: config: /opt/build/repo/netlify.toml
11:18:53 PM: deployId: 64972c6983147603bf371b89
11:18:53 PM: tracing:
11:18:53 PM: enabled: 'false'
11:18:53 PM: host: 10.65.64.55
11:18:53 PM: parentSpanId: 78a02dbcec7cedc2
11:18:53 PM: traceFlags: '00'
11:18:53 PM: traceId: 5110d27cac6ef4b7885d8dfd8b779e48
11:18:53 PM:
11:18:53 PM: ❯ Current directory
11:18:53 PM: /opt/build/repo
11:18:53 PM:
11:18:53 PM: ❯ Config file
11:18:53 PM: /opt/build/repo/netlify.toml
11:18:53 PM:
11:18:53 PM: ❯ Context
11:18:53 PM: production
11:18:53 PM:
11:18:53 PM: build.command from netlify.toml
11:18:53 PM: ────────────────────────────────────────────────────────────────
11:18:53 PM:
11:18:53 PM: $ remix build
11:18:56 PM: Starting post processing
11:18:56 PM: Skipping HTML post processing
11:18:56 PM: Post processing - header rules
11:18:56 PM: Post processing - redirect rules
11:18:56 PM: Post processing done
11:18:56 PM: Section completed: postprocessing
11:18:57 PM: Site is live ✨
11:18:54 PM: Building Remix app in production mode...
11:18:54 PM: ⚠️ REMIX FUTURE CHANGE: The route `meta` export signature is changing in v2. You can prepare for this change at your convenience with the `v2_meta` future flag. For instructions on making this change see https://remix.run/docs/en/v1.15.0/pages/v2#meta
11:18:54 PM: ⚠️ REMIX FUTURE CHANGE: The `serverModuleFormat` config default option will be changing in v2 from `cjs` to `esm`. You can prepare for this change by explicitly specifying `serverModuleFormat: 'cjs'`. For instructions on making this change see https://remix.run/docs/en/v1.16.0/pages/v2#servermoduleformat
11:18:54 PM: ⚠️ REMIX FUTURE CHANGE: The route file convention is changing in v2. You can prepare for this change at your convenience with the `v2_routeConvention` future flag. For instructions on making this change see https://remix.run/docs/en/v1.15.0/pages/v2#file-system-route-convention
11:18:56 PM: Built in 1.8s
11:18:56 PM:
11:18:56 PM: (build.command completed in 2.5s)
11:18:56 PM:
11:18:56 PM: Deploy site
11:18:56 PM: ────────────────────────────────────────────────────────────────
11:18:56 PM:
11:18:56 PM: Starting to deploy site from 'public/build'
11:18:56 PM: Calculating files to upload
11:18:56 PM: 0 new files to upload
11:18:56 PM: 0 new functions to upload
11:18:56 PM: Section completed: deploying
11:18:56 PM: Site deploy was successfully initiated
11:18:56 PM:
11:18:56 PM: (Deploy site completed in 104ms)
11:18:56 PM:
11:18:56 PM: The build completed successfully, but the following processes were still running:
11:18:56 PM:
11:18:56 PM: - /opt/build/repo/node_modules/@esbuild/linux-x64/bin/esbuild --service=0.17.6 --ping
11:18:56 PM:
11:18:56 PM: These processes have been terminated. In case this creates a problem for your build, refer to this article for details about why this process termination happens and how to fix it.
11:18:56 PM:
11:18:56 PM: Netlify Build Complete
11:18:56 PM: ────────────────────────────────────────────────────────────────
11:18:56 PM:
11:18:56 PM: (Netlify Build completed in 2.7s)
11:18:56 PM: Caching artifacts
11:18:56 PM: Started saving node modules
11:18:56 PM: Finished saving node modules
11:18:56 PM: Started saving build plugins
11:18:56 PM: Finished saving build plugins
11:18:56 PM: Started saving corepack cache
11:18:56 PM: Finished saving corepack cache
11:18:56 PM: Started saving pip cache
11:18:56 PM: Finished saving pip cache
11:18:56 PM: Started saving emacs cask dependencies
11:18:56 PM: Finished saving emacs cask dependencies
11:18:56 PM: Started saving maven dependencies
11:18:56 PM: Finished saving maven dependencies
11:18:56 PM: Started saving boot dependencies
11:18:56 PM: Finished saving boot dependencies
11:18:56 PM: Started saving rust rustup cache
11:18:56 PM: Finished saving rust rustup cache
11:18:56 PM: Started saving go dependencies
11:18:56 PM: Finished saving go dependencies
11:18:57 PM: Build script success
11:18:57 PM: Section completed: building
11:18:58 PM: Uploading Cache of size 141.0MB
11:18:59 PM: Section completed: cleanup
11:18:59 PM: Finished processing build request in 32.669s
My package.json is
{
"name": "remix-supabase-saas-kit",
"version": "0.4.20",
"private": true,
"sideEffects": false,
"scripts": {
"build": "remix build",
"cypress": "cypress open",
"cypress:headless": "cypress run",
"dev": "remix dev",
"test:remix": "dotenv -e .env.test npm run dev",
"supabase:start": "supabase start --ignore-health-check",
"supabase:stop": "supabase stop",
"supabase:db:reset": "supabase db reset",
"supabase:functions:serve": "supabase functions serve stream --env-file ./supabase/.env.local",
"format": "prettier --write .",
"lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .",
"start": "remix build",
"stripe:listen": "docker run --rm -it --name=makerpal-stripe -v ~/.config/stripe:/root/.config/stripe stripe/stripe-cli:latest listen --forward-to http://host.docker.internal:3000/resources/stripe/webhook",
"stripe:mock-server": "docker run --rm -it -p 12111-12112:12111-12112 stripe/stripe-mock:latest",
"typegen": "supabase gen types typescript --local > app/database.types.ts",
"test": "vitest",
"test:e2e": "sh ./scripts/test.sh",
"test:db": "supabase test db --debug",
"test:reset:db": "supabase db reset && supabase test db --debug",
"typecheck": "tsc -b && tsc -b cypress",
"validate": "run-p \"test -- --run\" lint typecheck test:e2e:run"
},
"prettier": {
"tabWidth": 2,
"useTabs": false,
"semi": true,
"printWidth": 80,
"singleQuote": true
},
"browserslist": [
">0.3%",
"not ie 11",
"not dead",
"not op_mini all"
],
"eslintIgnore": [
"/node_modules",
"/build",
"/public/build"
],
"dependencies": {
"@headlessui/react": "^1.7.14",
"@heroicons/react": "^2.0.18",
"@radix-ui/react-avatar": "^1.0.2",
"@radix-ui/react-dialog": "^1.0.3",
"@radix-ui/react-dropdown-menu": "^2.0.4",
"@radix-ui/react-popover": "1.0.5",
"@radix-ui/react-select": "^1.2.1",
"@radix-ui/react-tooltip": "^1.0.5",
"@react-email/body": "^0.0.2",
"@react-email/button": "^0.0.8",
"@react-email/column": "^0.0.7",
"@react-email/head": "^0.0.5",
"@react-email/html": "^0.0.4",
"@react-email/preview": "^0.0.6",
"@react-email/render": "^0.0.7",
"@react-email/section": "^0.0.9",
"@react-email/text": "^0.0.5",
"@remix-run/css-bundle": "^1.16.1",
"@remix-run/node": "^1.16.1",
"@remix-run/react": "^1.16.1",
"@remix-run/serve": "^1.16.1",
"@remix-run/server-runtime": "^1.16.1",
"@sentry/node": "^7.52.1",
"@sentry/remix": "^7.52.1",
"@supabase/auth-helpers-remix": "^0.1.9",
"@supabase/supabase-js": "^2.22.0",
"@tanstack/react-query": "^4.29.7",
"@vercel/analytics": "^0.1.11",
"bcryptjs": "^2.4.3",
"classnames": "^2.3.2",
"csrf": "^3.1.0",
"cva": "npm:class-variance-authority@^0.6.0",
"date-fns": "^2.30.0",
"heroicons": "^2.0.18",
"i18next": "^22.5.0",
"i18next-browser-languagedetector": "^7.0.1",
"i18next-fs-backend": "^2.1.2",
"i18next-http-backend": "^2.2.1",
"isbot": "^3.6.10",
"nodemailer": "^6.9.2",
"pino": "^8.14.1",
"react": "^18.2.0",
"react-content-loader": "^6.2.1",
"react-dom": "^18.2.0",
"react-hook-form": "^7.43.9",
"react-hot-toast": "^2.4.1",
"react-i18next": "^12.2.2",
"react-top-loading-bar": "^2.3.1",
"recharts": "^2.6.2",
"remix-i18next": "^5.1.1",
"sse.js": "^0.6.1",
"stripe": "^12.5.0",
"tiny-invariant": "^1.3.1",
"zod": "^3.21.4",
"zustand": "^4.3.6",
"uri-js": "^4.4.1"
},
"devDependencies": {
"@remix-run/dev": "^1.16.1",
"@remix-run/eslint-config": "^1.16.1",
"@testing-library/cypress": "^9.0.0",
"@testing-library/dom": "^9.2.0",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.4.3",
"@types/bcryptjs": "^2.4.2",
"@types/eslint": "^8.37.0",
"@types/i18next-fs-backend": "^1.1.2",
"@types/node": "^20.1.1",
"@types/nodemailer": "^6.4.8",
"@types/react": "^18.2.6",
"@types/react-dom": "^18.2.4",
"@vitejs/plugin-react": "^4.0.0",
"@vitest/coverage-c8": "^0.31.1",
"autoprefixer": "^10.4.14",
"binode": "^1.0.5",
"c8": "^7.13.0",
"cookie": "^0.5.0",
"cross-env": "^7.0.3",
"cypress": "^12.12.0",
"dotenv-cli": "^7.2.1",
"eslint": "^8.40.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-cypress": "^2.13.3",
"happy-dom": "^9.10.9",
"msw": "^0.49.3",
"npm-run-all": "^4.1.5",
"pino-pretty": "^10.0.0",
"postcss": "^8.4.23",
"prettier": "2.8.8",
"prettier-plugin-tailwindcss": "^0.3.0",
"start-server-and-test": "^2.0.0",
"supabase": "^1.61.5",
"tailwindcss": "^3.3.2",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.0.4",
"vite": "^4.3.5",
"vite-tsconfig-paths": "^4.2.0",
"vitest": "^0.31.0"
},
"engines": {
"node": ">=14"
}
}