コードネーム: advena アドヴェナ
Install mise, and add aliases:
# ~/.zshrc or ~/.bashrc etc.
alias mx="mise exec --"
alias mr="mise run"
Install dotenvx:
current using versions:
mise --version
2025.1.4 macos-arm64 (2f78ee6 2025-01-10)
dotenvx --version
1.26.0
Install firebase-tools:
curl -sL firebase.tools | bash
# frontend (fe, as shorthand)
mr fe:update
# backend (be, as shorthand)
mr be:update
# start emulator (firebase auth, firestore, storage, etc)
mr f:emulator
# open vscode (as shorthand)
mr c
# start
mr fe:dev
mr be:dev
# format
mr fe:format
mr be:format
# test
mr fe:test
mr be:test
run tasks in parallel:
# frontend and backend
mr fe:dev ::: be:dev
# format and test
mr fe:format ::: be:format ::: fe:test ::: be:test
frontend uses pnpm:
# frontend
cd frontend/web/
mx pnpm add <package-name>
mx pnpm add --save-dev <package-name>
backend uses uv:
# backend
cd backend/genai/
mx uv add <package-name>
mx uv add --dev <package-name>
# login (with load application default credentials, as shorthand)
mr g:login
# set confiture (only first, as shorthand)
mr g
if you want anther configuration, you can use:
gcloud config configurations create <your-configuration-name>
build docker image and push to google artifact registry
mr fe:build:dev
mr be:build:dev
and check build image internal files:
mr fe:check_dockerignore
mr be:check_dockerignore
deploy to google cloud run and other components(like firestore, storage, eventarc, firebase, etc)
mr fe:push:dev
mr be:push:dev
and firebase deploy:
mr f:deploy:dev
mr f:deploy:prd
and cors setting:
# check cors setting: output is null is no setting
gcloud storage buckets describe gs://${BUCKET_NAME} --format="default(cors_config)"
# set cors setting use cors.json
gcloud storage buckets update gs://${BUCKET_NAME} --cors-file=./cors.json
cloud run deployment is manual...
- chose AI on Google Cloud
- firestore practices
- Laminar LLM Tracing
- W&B Weave Tracking
- Next.js convention with dotenvx
- ...
gcloud auth login
gcloud auth application-default login
firebase login