$ bun installIn the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3001 to view it in the browser.
Builds the app for production to the dist folder.
It correctly bundles Solid in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
- JWT login/signup flow against
tyange-cms-api - Budget dashboard and active-period spend record views
- Total-budget setup and active-budget total update actions for an active date range
- Per-user API key management page at
/api-keysfor issuing and revoking keys used withX-API-Key
This project deploys to AWS (Lightsail/EC2) as static files served by Nginx.
- Workflow:
.github/workflows/deploy.yml - Trigger:
pushonmainor manualworkflow_dispatch - Flow:
- checkout
- bun install
- build (
dist) - upload
distby SCP - switch
currentsymlink to new release nginx -tandsystemctl reload nginx
HOSTUSER_NAMEPRIVATE_SSH_KEY
DEPLOY_PATH(example:/var/www/tyange-dashboard)VITE_CMS_API_BASE_URL(example:https://tyange.com/api/cms)VITE_GOOGLE_CLIENT_ID(example:1234567890-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com)
If VITE_CMS_API_BASE_URL is not set in CI, build is configured to fail fast.
Google 로그인 버튼을 사용하려면 VITE_GOOGLE_CLIENT_ID도 함께 설정해야 합니다.
Use .env.example as the base template for local setup.
GitHub Actions creates .env.production during deploy so the build picks up both VITE_CMS_API_BASE_URL and VITE_GOOGLE_CLIENT_ID.
- Install and enable Nginx
- Create deploy path (
/var/www/tyange-dashboard) - Configure Nginx root to
/var/www/tyange-dashboard/current - Add SPA fallback:
try_files $uri $uri/ /index.html; - Run
sudo nginx -t && sudo systemctl reload nginx
Rollback is symlink-based. To rollback:
- Point
currentto previous release directory underreleases/ - Run
sudo nginx -t && sudo systemctl reload nginx