Skip to content

Commit 804a31a

Browse files
authored
Replace Firebase and Hasura apps with Nhost (#460)
* Update version to v0.23.0 * Replace Firebase and Hasura apps with Nhost * Update environment variables in .env (count: 22 → 4) * Replace React Query and NextAuth with Nhost (w/ Apollo Client) * Pages: * update: HOME page * add: secret.page.tsx * remove: Edit page, 1.page.tsx, 2.page.tsx * Add/Remove some dependencies
1 parent c149192 commit 804a31a

File tree

124 files changed

+1729
-2109
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

124 files changed

+1729
-2109
lines changed

.env.example

+7-35
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,13 @@
11
# Next.js (`apps/web`)
2-
NEXT_PUBLIC_GRAPHQL_ENDPOINT=http://localhost:49180/v1/graphql
3-
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID=
4-
5-
# Firebase (`apps/web`)
6-
NEXT_PUBLIC_FIREBASE_API_KEY=
7-
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
8-
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
9-
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
10-
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
11-
NEXT_PUBLIC_FIREBASE_APP_ID=
12-
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
13-
14-
# NextAuth (`apps/web [api]`)
15-
NEXTAUTH_URL=http://localhost:3000
16-
# Linux: `openssl rand -hex 32` or go to https://generate-secret.now.sh/32
17-
NEXTAUTH_SECRET=nextauth_secret_xxxxxxxxxxxxxxxx
182

19-
# Create Service Account on Firebase Console
20-
# https://console.firebase.google.com/project/<firebase-project-id>/settings/serviceaccounts/adminsdk
21-
FIREBASE_PROJECT_ID=
22-
FIREBASE_CLIENT_EMAIL=
23-
FIREBASE_PRIVATE_KEY=
24-
25-
# Hasura (`apps/hasura`) / @graphql-codegen (`packages/generated`)
26-
HASURA_GRAPHQL_ENDPOINT=http://localhost:49180
27-
HASURA_GRAPHQL_ADMIN_SECRET=hasura_graphql_admin_secret_xxxx
28-
HASURA_GRAPHQL_API_PATHS_GRAPHQL=v1/graphql
3+
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID=
294

30-
# Local only (Do not set it up in production)
5+
# Nhost (`apps/web`)
316

32-
# Firebase Emulator (`apps/web`, `apps/web [api]`)
33-
NEXT_PUBLIC_USE_EMURATOR=true
7+
NEXT_PUBLIC_NHOST_SUBDOMAIN=
8+
NEXT_PUBLIC_NHOST_REGION=
349

35-
# for firebase-admin (`apps/web [api]`)
36-
FIREBASE_AUTH_EMULATOR_HOST=localhost:9099
37-
FIRESTORE_EMULATOR_HOST=localhost:8080
38-
FIREBASE_STORAGE_EMULATOR_HOST=localhost:9199
10+
# @graphql-codegen (`packages/generated`)
3911

40-
# Hasura (`apps/hasura`)
41-
HASURA_GRAPHQL_JWT_SECRET={"type":"HS256","key":"hasura_graphql_admin_secret_xxxx"}
12+
HASURA_GRAPHQL_ENDPOINT=http://localhost:####/v1/graphql
13+
HASURA_GRAPHQL_ADMIN_SECRET=nhost-admin-secret

.github/workflows/main.yml

+2-13
Original file line numberDiff line numberDiff line change
@@ -60,21 +60,10 @@ jobs:
6060
- name: Run build 🐣
6161
run: pnpm build
6262
env:
63-
NEXT_PUBLIC_GRAPHQL_ENDPOINT: ${{ secrets.NEXT_PUBLIC_GRAPHQL_ENDPOINT }}
64-
NEXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}
65-
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN }}
66-
NEXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }}
67-
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET: ${{ secrets.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET }}
68-
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID }}
69-
NEXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }}
70-
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID }}
71-
NEXTAUTH_URL: ${{ secrets.NEXTAUTH_URL }}
72-
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}
73-
# Just set it up for Vercel only
74-
# FIREBASE_PROJECT_ID, FIREBASE_CLIENT_EMAIL, FIREBASE_PRIVATE_KEY
63+
NEXT_PUBLIC_NHOST_SUBDOMAIN: ${{ secrets.NEXT_PUBLIC_NHOST_SUBDOMAIN }}
64+
NEXT_PUBLIC_NHOST_REGION: ${{ secrets.NEXT_PUBLIC_NHOST_REGION }}
7565
HASURA_GRAPHQL_ENDPOINT: ${{ secrets.HASURA_GRAPHQL_ENDPOINT }}
7666
HASURA_GRAPHQL_ADMIN_SECRET: ${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }}
77-
HASURA_GRAPHQL_API_PATHS_GRAPHQL: ${{ secrets.HASURA_GRAPHQL_API_PATHS_GRAPHQL }}
7867

7968
- name: Run lint 👀
8069
run: pnpm lint

.prettierignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ out/
88
# Custom
99
.turbo
1010
.vercel
11-
/apps/firebase/functions/lib
1211
/apps/mockup/public/script.js
1312
/apps/mockup/public/styles.css
13+
/apps/nhost/.nhost
14+
/apps/nhost/nhost/config.yaml
15+
/apps/nhost/nhost/metadata
1416
/apps/storybook/storybook-static
1517
/apps/web/src/lib/$path.ts
1618
/packages/generated/dist

README.md

+8-18
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,8 @@ Monorepo template for creating a web service with Next.js.
1515

1616
- **Apps**
1717

18-
- [`firebase`](./apps/firebase/README.md):
19-
[Firebase Local Emulator Suite](https://firebase.google.com/docs/emulator-suite) and Firebase settings.
20-
[Firebase (Authentication/Firestore/Functions/Storage)](https://firebase.google.com/)
21-
- [`hasura`](./apps/hasura/README.md):
22-
[Hasura](https://hasura.io/) on Docker and [Hasura Cloud](https://hasura.io/cloud/) settings.
18+
- [`nhost`](./apps/nhost/README.md):
19+
[Nhost](https://nhost.io/) dev server for prod/test server migration
2320
- [`mockup`](./apps/mockup/README.md): [[Demo](https://nextjs-template-mockup.usagizmo.com/)]
2421
A starting point for building a static site.
2522
- [`storybook`](./apps/storybook/README.md): [[Demo](https://nextjs-template-storybook.usagizmo.com/)]
@@ -28,8 +25,8 @@ Monorepo template for creating a web service with Next.js.
2825
A starting point for building a Next.js application.
2926
[Next.js](https://nextjs.org/) x [Tailwind CSS](https://tailwindcss.com/) (w/ [TypeScript](https://www.typescriptlang.org/))
3027
Page Transition ([react-transition-group](https://reactcommunity.org/react-transition-group/) x [GSAP](https://greensock.com/gsap/))
31-
[pathpida](https://github.com/aspida/pathpida) / [NextAuth](https://next-auth.js.org/) / [Jotai](https://jotai.org/)
32-
[React Query](https://react-query.tanstack.com/) (w/ [GraphQL Code Generator](https://www.graphql-code-generator.com/))
28+
[pathpida](https://github.com/aspida/pathpida) / [Jotai](https://jotai.org/)
29+
[Nhost](https://nhost.io/) (w/ [Apollo Client](https://www.apollographql.com/apollo-client) x [GraphQL Code Generator](https://www.graphql-code-generator.com/))
3330

3431
- **Packages**
3532

@@ -67,24 +64,17 @@ pnpm clean # rm .turbo, node_module and generated files
6764

6865
## List of listening port numbers
6966

67+
- `1337`: `apps/nhost/` - Hasura
68+
- `* (auto)`: GraphQL Endpoint
69+
- `* (auto)`: MailHog
7070
- `3000`: `apps/web/` - Next.js application
71-
- `4000`: `apps/firebase/` - Emulator UI
72-
- Services
73-
- `9099`: Authentication
74-
- `5001`: Functions
75-
- `8080`: Firestore
76-
- `8085`: Pub/Sub
77-
- `9199`: Storage
78-
- `4400`: Emulator Hub
79-
- `4500`: Other reserved port
8071
- `6006`: `apps/storybook/` - Storybook
8172
- `8000`: `apps/mockup/` - Static site
8273
- `49160`: `apps/mockup/` - Express server
83-
- `49180`: `apps/hasura/` - Hasura
8474

8575
## Registering environment variables for GitHub / Vercel
8676

87-
If you need to prepare the GitHub / Vercel environment, you will need to set the environment variables (the contents of `.env`) at build time.
77+
If you need to prepare GitHub / Vercel environment, you need to set environment variables (`.env` items) in each service.
8878

8979
## Deploy to Vercel
9080

apps/firebase/.gitignore

-69
This file was deleted.

apps/firebase/README.md

-39
This file was deleted.

apps/firebase/firebase.json

-38
This file was deleted.

apps/firebase/firestore.indexes.json

-4
This file was deleted.

apps/firebase/firestore.rules

-8
This file was deleted.

apps/firebase/functions/.eslintrc.js

-28
This file was deleted.

apps/firebase/functions/.gitignore

-9
This file was deleted.

apps/firebase/functions/.runtimeconfig.json

-8
This file was deleted.

apps/firebase/functions/package.json

-43
This file was deleted.

0 commit comments

Comments
 (0)