ಸ್ವಂತ ಹೋಸ್ಟಿಂಗ್ ಮಾರ್ಗದರ್ಶಿ
Nibomo ಎರಡು ಪ್ರತ್ಯೇಕ ಮಾರ್ಗಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ: ಲೋಕಲ್ ಡೆವಲಪ್ಮೆಂಟ್ ಪರಿಸರ ಮತ್ತು AWS ಮೇಲಿನ ಪ್ರೊಡಕ್ಷನ್ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್. Docker Compose ಲೋಕಲ್ ಡೆವಲಪ್ಮೆಂಟ್ಗಾಗಿ PostgreSQL ಮತ್ತು ಮೈಗ್ರೇಶನ್ಗಳನ್ನು ಚಲಾಯಿಸುತ್ತದೆ; ಅದು ಪ್ರೊಡಕ್ಷನ್ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ವಿಧಾನವಲ್ಲ.
ಲೋಕಲ್ ಡೆವಲಪ್ಮೆಂಟ್ನ ಅವಶ್ಯಕತೆಗಳು
- Git
- Bash
- GNU Make
- Docker Compose ಸಹಿತ Docker
- Node.js 24
- npm
ಒದಗಿಸಲಾದ Docker Compose ಫೈಲ್ ಪ್ರಸ್ತುತ PostgreSQL 18.4 ಅನ್ನು ಚಲಾಯಿಸುತ್ತದೆ. ಪ್ರತ್ಯೇಕವಾಗಿ ಲೋಕಲ್ PostgreSQL ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ.
ಲೋಕಲ್ ತ್ವರಿತ ಆರಂಭ
git clone https://github.com/kirill-markin/flashcards-open-source-app.git
cd flashcards-open-source-app
cp .env.example .env
make db-up
npm install --prefix api
npm install --prefix apps/auth
npm install --prefix apps/backend
npm install --prefix apps/web
npm install --prefix apps/admin
make db-up PostgreSQL ಅನ್ನು ಆರಂಭಿಸುತ್ತದೆ ಮತ್ತು ಮೈಗ್ರೇಶನ್ ಕಂಟೇನರ್ ಮೂಲಕ scripts/deploy/migrate.sh ಚಲಾಯಿಸುತ್ತದೆ. .env.example ನಿಂದ ನಕಲಿಸಿದ ಡೀಫಾಲ್ಟ್ ಪಾಸ್ವರ್ಡ್ಗಳೊಂದಿಗೆ, ಮೈಗ್ರೇಶನ್ ಈ ಲೋಕಲ್ ರನ್ಟೈಮ್ ಸಂಪರ್ಕಗಳನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ:
- ಬ್ಯಾಕೆಂಡ್:
postgresql://backend_app:backend_app@localhost:5432/flashcards - ದೃಢೀಕರಣ:
postgresql://auth_app:auth_app@localhost:5432/flashcards - ರಿಪೋರ್ಟಿಂಗ್:
postgresql://reporting_readonly:reporting_readonly@localhost:5432/flashcards
.env ನಲ್ಲಿ BACKEND_DB_PASSWORD, AUTH_DB_PASSWORD ಅಥವಾ REPORTING_DB_PASSWORD ಬದಲಾಯಿಸಿದರೆ, ಹೊಂದಿಕೆಯಾಗುವ ಸಂಪರ್ಕ URL ನಲ್ಲಿಯೂ ಅದೇ ಬದಲಾದ ಪಾಸ್ವರ್ಡ್ ಬಳಸಿ.
ವೇಗದ, ಲೋಕಲ್ಗೆ ಮಾತ್ರ ಸೀಮಿತ ಆರಂಭ
ಬ್ಯಾಕೆಂಡ್ Make ಟಾರ್ಗೆಟ್ ರೂಟ್ .env ಅನ್ನು ಲೋಡ್ ಮಾಡುವುದಿಲ್ಲ. ಅದಕ್ಕೆ ಬೇಕಾದ ಲೋಕಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ನೀಡಿ:
AUTH_MODE=none \
ALLOW_INSECURE_LOCAL_AUTH=true \
DATABASE_URL=postgresql://backend_app:backend_app@localhost:5432/flashcards \
REPORTING_DATABASE_URL=postgresql://reporting_readonly:reporting_readonly@localhost:5432/flashcards \
make backend-dev
ಕ್ಲೈಂಟ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕ ಟರ್ಮಿನಲ್ಗಳಲ್ಲಿ ಚಲಾಯಿಸಿ:
make web-dev
make admin-dev
ಈ ಮಾರ್ಗ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ make auth-dev ಅನ್ನು ಆರಂಭಿಸುವುದಿಲ್ಲ. AUTH_MODE=none ಸ್ಪಷ್ಟವಾಗಿ ಅಸುರಕ್ಷಿತವಾದ, localhost ಗೆ ಮಾತ್ರ ಸೀಮಿತ ಮೋಡ್; ಡಿಪ್ಲಾಯ್ ಮಾಡಿದ ಪರಿಸರದಲ್ಲಿ ಇದನ್ನು ಎಂದಿಗೂ ಬಳಸಬೇಡಿ.
ಇದು ಮುಖ್ಯ ಬ್ಯಾಕೆಂಡ್, ಸಾರ್ವಜನಿಕ Agent API ಡಿಸ್ಕವರಿ, ವೆಬ್ ಮತ್ತು ಅಡ್ಮಿನ್ ಡೆವಲಪ್ಮೆಂಟ್ ಅನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ, ಆದರೆ Chat V2 ಅನ್ನು ಲಭ್ಯವಾಗಿಸುವುದಿಲ್ಲ.
ಸಂಪೂರ್ಣ ಲೋಕಲ್ Cognito ಫ್ಲೋ
ದೃಢೀಕರಣ ಟಾರ್ಗೆಟ್ ರೂಟ್ .env ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಆದರೆ ಬ್ಯಾಕೆಂಡ್ ಟಾರ್ಗೆಟ್ ಮಾಡುವುದಿಲ್ಲ. ಮೊದಲು ನಕಲಿಸಿದ .env ನಲ್ಲಿರುವ ಹಳೆಯ DATABASE_URL ಅನ್ನು ದೃಢೀಕರಣ ರೋಲ್ನ URL ನಿಂದ ಬದಲಾಯಿಸಿ ಮತ್ತು ನಿಮ್ಮ ನೈಜ Cognito ಮೌಲ್ಯಗಳನ್ನು ಸೇರಿಸಿ:
DATABASE_URL=postgresql://auth_app:auth_app@localhost:5432/flashcards
AUTH_MODE=cognito
COGNITO_USER_POOL_ID=<your-user-pool-id>
COGNITO_CLIENT_ID=<your-client-id>
COGNITO_REGION=<your-aws-region>
SESSION_ENCRYPTION_KEY=<64-character-hex-value>
ದೃಢೀಕರಣವನ್ನು ಆರಂಭಿಸಿ:
make auth-dev
ಬ್ಯಾಕೆಂಡ್ ಟರ್ಮಿನಲ್ನಲ್ಲಿ, .env ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಲೋಡ್ ಮಾಡಿ, ನಂತರ ಆ ಪ್ರಕ್ರಿಯೆಗೆ ಮಾತ್ರ ಅದರ ದೃಢೀಕರಣ ಡೇಟಾಬೇಸ್ URL ಅನ್ನು ಬ್ಯಾಕೆಂಡ್ ರೋಲ್ನ URL ನಿಂದ ಅತಿಕ್ರಮಿಸಿ:
set -a
source .env
set +a
DATABASE_URL=postgresql://backend_app:backend_app@localhost:5432/flashcards \
make backend-dev
make web-dev ಮತ್ತು make admin-dev ಅನ್ನು ಅವುಗಳದೇ ಟರ್ಮಿನಲ್ಗಳಲ್ಲಿ ಚಲಾಯಿಸಿ. ಎರಡೂ ಟಾರ್ಗೆಟ್ಗಳು ರೂಟ್ .env ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತವೆ.
ಸೇವೆಗಳು ಈ ಲೋಕಲ್ ವಿಳಾಸಗಳನ್ನು ಬಳಸುತ್ತವೆ:
| ಸೇವೆ | ವಿಳಾಸ |
|---|---|
| PostgreSQL | localhost:5432 |
| ದೃಢೀಕರಣ, ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ್ದಾಗ | http://localhost:8081 |
| ಬ್ಯಾಕೆಂಡ್ API | http://localhost:8080/v1 |
| ವೆಬ್ ಆ್ಯಪ್ | http://localhost:3000 |
| ಅಡ್ಮಿನ್ ಆ್ಯಪ್ | http://localhost:3001 |
PostgreSQL ಮತ್ತು ಮೈಗ್ರೇಶನ್ ಕಂಟೇನರ್ ಅನ್ನು ಇದರಿಂದ ನಿಲ್ಲಿಸಿ:
make db-down
ಲೋಕಲ್ ಕಾನ್ಫಿಗರೇಶನ್
.env.example ನಿಂದ ಆರಂಭಿಸಿ; ಲಭ್ಯವಿರುವ ವೇರಿಯೇಬಲ್ಗಳನ್ನು ಮತ್ತು ಯಾವ ಮೌಲ್ಯಗಳು ಲೋಕಲ್ಗೆ ಮಾತ್ರ ಎಂಬುದನ್ನು ಅದು ದಾಖಲಿಸುತ್ತದೆ. ಮೇಲೆ ತೋರಿಸಿದಂತೆ, ದೃಢೀಕರಣವನ್ನು ಚಲಾಯಿಸುವ ಮೊದಲು ಅದರ ಹಳೆಯ DATABASE_URL ಅನ್ನು ಬದಲಾಯಿಸಿ.
ಮುಖ್ಯ ಲೋಕಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳು:
- Docker ಒಳಗಿನ ಸ್ಕೀಮಾ ಮೈಗ್ರೇಶನ್ಗಳಿಗಾಗಿ
MIGRATION_DATABASE_URL make auth-devಗಾಗಿ ರೂಟ್.envನಲ್ಲಿauth_appರೋಲ್ಗೆ ಹೊಂದಿಸಿದDATABASE_URLmake backend-devಗಾಗಿbackend_appರೋಲ್ ಆಗಿ ನೀಡಿದDATABASE_URL- ಬ್ಯಾಕೆಂಡ್ ದೃಢೀಕರಣಕ್ಕಾಗಿ
AUTH_MODEಮತ್ತುALLOW_INSECURE_LOCAL_AUTH - ಲೋಕಲ್ ವೆಬ್ ಮತ್ತು ಅಡ್ಮಿನ್ ಆರಿಜಿನ್ಗಳಿಗಾಗಿ
BACKEND_ALLOWED_ORIGINS - ಬ್ರೌಸರ್ ದೃಢೀಕರಣಕ್ಕಾಗಿ
ALLOWED_REDIRECT_URISಮತ್ತುCOOKIE_DOMAIN - ನೈಜ OTP ಪರೀಕ್ಷಿಸುವಾಗ Cognito ಮತ್ತು ಸೆಷನ್ ಎನ್ಕ್ರಿಪ್ಶನ್ ಮೌಲ್ಯಗಳು
Agent API ಬ್ಯಾಕೆಂಡ್ನ ಭಾಗ. ಬ್ಯಾಕೆಂಡ್ ಆರಂಭವಾದ ನಂತರ ಅದರ ಸಾರ್ವಜನಿಕ ಲೋಕಲ್ ಡಿಸ್ಕವರಿ ದಾಖಲೆ http://localhost:8080/v1/agent ನಲ್ಲಿ ಲಭ್ಯವಿರುತ್ತದೆ. ಸಂರಕ್ಷಿತ Agent ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ApiKey ದೃಢೀಕರಣ ಅಗತ್ಯ, ಮತ್ತು ಅವು AUTH_MODE=none ಮಾರ್ಗದಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ.
ಮಾರ್ಗದ ಪ್ರಕಾರ AI ವ್ಯಾಪ್ತಿ
ಮೇಲಿನ ಲೋಕಲ್ ಕಮಾಂಡ್ಗಳು ಅಸಿಂಕ್ರೊನಸ್ ಚಾಟ್ ವರ್ಕರ್ ಅನ್ನು ಆರಂಭಿಸುವುದಿಲ್ಲ. ವೇಗದ ಮಾರ್ಗವು AUTH_MODE=none ಅನ್ನೂ ಬಳಸುತ್ತದೆ, ಅದನ್ನು Chat V2 ತಿರಸ್ಕರಿಸುತ್ತದೆ; OpenAI ಕೀ ಅಥವಾ ಅತಿಥಿ ಕೋಟಾ ಸೇರಿಸಿದರೂ ಆ ಮಾರ್ಗದಲ್ಲಿ AI ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ಸಂಪೂರ್ಣ ಲೋಕಲ್ Cognito ಫ್ಲೋ ಬೆಂಬಲಿತ ದೃಢೀಕರಣ ಟ್ರಾನ್ಸ್ಪೋರ್ಟ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಆದರೆ ಅದೂ ವರ್ಕರ್ ಅನ್ನು ಆರಂಭಿಸುವುದಿಲ್ಲ.
AWS CDK ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ವರ್ಕರ್ Lambda ಅನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಕರೆಯಲು ಬ್ಯಾಕೆಂಡ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. OPENAI_API_KEY ನಂತಹ ಪೂರೈಕೆದಾರರ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳು ಬೆಂಬಲಿತ ದೃಢೀಕೃತ ವಿನಂತಿಗಳಿಗೆ ಮಾಡೆಲ್ ಕರೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತವೆ. GUEST_AI_WEIGHTED_MONTHLY_TOKEN_CAP ಪ್ರತ್ಯೇಕವಾಗಿ ಅತಿಥಿ AI ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಮಿತಿಗೊಳಿಸುತ್ತದೆ; ಸೈನ್ ಇನ್ ಆದ ಅಥವಾ bearer ದೃಢೀಕೃತ AI ಅನ್ನು ಅದು ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ. Langfuse ಸೆಟ್ಟಿಂಗ್ಗಳು ಐಚ್ಛಿಕ ಟ್ರೇಸಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್.
ನೇಟಿವ್ ಕ್ಲೈಂಟ್ಗಳು
ಅದೇ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ iOS ಮತ್ತು Android ಕ್ಲೈಂಟ್ಗಳಿವೆ, ಆದರೆ ಲೋಕಲ್ ವೆಬ್/ಸರ್ವರ್ ಕಮಾಂಡ್ಗಳು ಅವುಗಳನ್ನು ಬಿಲ್ಡ್ ಮಾಡುವುದಿಲ್ಲ ಅಥವಾ ವಿತರಿಸುವುದಿಲ್ಲ.
iOS ಪ್ರಾಜೆಕ್ಟ್ ಲೋಕಲ್ API ಮತ್ತು ದೃಢೀಕರಣ ಹೋಸ್ಟ್ಗಳನ್ನು ಇಲ್ಲಿಂದ ಓದುತ್ತದೆ:
apps/ios/Flashcards/Config/Local.xcconfig
ಅಗತ್ಯವಿದ್ದಾಗ ಉದಾಹರಣೆ ಫೈಲ್ನಿಂದ ಅದನ್ನು ರಚಿಸಿ:
cp apps/ios/Flashcards/Config/Local.xcconfig.example apps/ios/Flashcards/Config/Local.xcconfig
ಅವುಗಳ ಪ್ರತ್ಯೇಕ ಬಿಲ್ಡ್ ಮತ್ತು ಟೆಸ್ಟ್ ಪ್ರಕ್ರಿಯೆಗಳಿಗಾಗಿ ರೆಪೊಸಿಟರಿಯ iOS README ಮತ್ತು Android README ನೋಡಿ.
ಪ್ರೊಡಕ್ಷನ್ AWS CDK ಬಳಸುತ್ತದೆ
ಬೆಂಬಲಿತ ಪ್ರೊಡಕ್ಷನ್ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಎಂದರೆ ಒಳಗೊಂಡಿರುವ AWS CDK ಸ್ಟ್ಯಾಕ್. ಇದು ವೆಂಡರ್-ತಟಸ್ಥವಲ್ಲ, AWS ಆಧಾರಿತ, ಮತ್ತು ಇದರಲ್ಲಿ ಇವು ಸೇರಿವೆ:
- ಒಂದು VPC ಮತ್ತು ಖಾಸಗಿ ಸಬ್ನೆಟ್ಗಳು
- Amazon RDS ಮೇಲೆ PostgreSQL 18
- Amazon Cognito ಪಾಸ್ವರ್ಡ್ ಇಲ್ಲದ ಇಮೇಲ್ OTP
- ಬ್ಯಾಕೆಂಡ್, ದೃಢೀಕರಣ ಮತ್ತು MCP ಸೇವೆಗಳಿಗಾಗಿ API Gateway ಮತ್ತು Lambda
- ಅಸಿಂಕ್ರೊನಸ್ ಚಾಟ್ ವರ್ಕರ್ Lambda ಮತ್ತು Cognito ಕಸ್ಟಮ್ ಇಮೇಲ್ ಸೆಂಡರ್ Lambda
- ವೆಬ್ ಮತ್ತು ಅಡ್ಮಿನ್ ಆ್ಯಪ್ಗಳಿಗಾಗಿ S3 ಮತ್ತು CloudFront
- ಡೇಟಾಬೇಸ್, ಸೆಷನ್, ಇಮೇಲ್, ಮಾನಿಟರಿಂಗ್ ಮತ್ತು ಐಚ್ಛಿಕ AI ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳಿಗಾಗಿ Secrets Manager
- CloudWatch ಅಲಾರಂಗಳು, SNS ಅಧಿಸೂಚನೆಗಳು ಮತ್ತು RDS ಬ್ಯಾಕಪ್ ಯೋಜನೆ
- GitHub Actions OIDC ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ರೋಲ್
- ಸಾರ್ವಜನಿಕ ಡೊಮೇನ್ಗಳಿಗಾಗಿ Cloudflare ಸೆಟಪ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು
ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ app.<domain>, admin.<domain>, api.<domain>, auth.<domain> ಮತ್ತು mcp.<domain> ಅನ್ನು ಸಾರ್ವಜನಿಕಗೊಳಿಸುತ್ತದೆ. ಮೂಲ ಡೊಮೇನ್ ಬೇರೆ ಯಾವುದಕ್ಕೂ ಬಳಕೆಯಲ್ಲಿಲ್ಲದಿದ್ದರೆ, ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಆ ಮೂಲ ಡೊಮೇನ್ನಿಂದ ರಿಡೈರೆಕ್ಟ್ ಅನ್ನೂ ರಚಿಸಬಹುದು.
ಪ್ರೊಡಕ್ಷನ್ ಹೆಲ್ಪರ್ ಅನ್ನು ಇವು ಇರುವ ಆಪರೇಟರ್ ಕಂಪ್ಯೂಟರ್ನಿಂದ ಚಲಾಯಿಸಿ:
- Node.js 24 ಮತ್ತು npm
- Bash ಮತ್ತು GNU Make
- ಚಾಲನೆಯಲ್ಲಿರುವ Docker
- ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಖಾತೆಗೆ ದೃಢೀಕರಿಸಿದ AWS CLI
- ಗುರಿ ರೆಪೊಸಿಟರಿಗೆ ದೃಢೀಕರಿಸಿದ GitHub CLI
curl,jqಮತ್ತು Python 3
ಡಿಪ್ಲಾಯ್ ಮಾಡುವ ಮೊದಲು, ರೂಟ್ .env ನಲ್ಲಿ ಆಪರೇಟರ್ ಮೌಲ್ಯಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ. ಅಗತ್ಯ ಮೌಲ್ಯಗಳಲ್ಲಿ AWS ರೀಜನ್, ಡೊಮೇನ್, ಅಲರ್ಟ್ ಇಮೇಲ್, GitHub ರೆಪೊಸಿಟರಿ, Cloudflare ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳು, Resend ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳು ಮತ್ತು ಬ್ಯಾಕೆಂಡ್ Sentry ಕಾನ್ಫಿಗರೇಶನ್ ಸೇರಿವೆ. OpenAI ಮತ್ತು Langfuse ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳು ಐಚ್ಛಿಕ.
ರೆಪೊಸಿಟರಿಯ ರೂಟ್ನಿಂದ ಮೊದಲ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ಗೆ ಶಿಫಾರಸು ಮಾಡಲಾದ ಕಮಾಂಡ್:
npm ci --prefix apps/auth
bash scripts/deploy/first-deploy.sh \
--region eu-central-1 \
--domain example.com \
--alert-email alerts@example.com
ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ಹೆಲ್ಪರ್ ಆ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಂಡಲ್ ಮಾಡುತ್ತದೆ ಆದರೆ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಸ್ವಚ್ಛ ಚೆಕ್ಔಟ್ನಿಂದ ಆರಂಭಿಸುವಾಗ ಸದ್ಯಕ್ಕೆ ದೃಢೀಕರಣ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವುದು ಅಗತ್ಯ. ಹೆಲ್ಪರ್ ನೈಜ AWS, Cloudflare ಮತ್ತು GitHub ಸಂಪನ್ಮೂಲಗಳನ್ನು ರಚಿಸುತ್ತದೆ ಅಥವಾ ಬದಲಾಯಿಸುತ್ತದೆ. ಅದನ್ನು ಚಲಾಯಿಸುವ ಮೊದಲು ರೆಪೊಸಿಟರಿಯ ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ದಾಖಲೆಗಳನ್ನು ಮತ್ತು ಕ್ಲೌಡ್ ವೆಚ್ಚಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ಅದು CDK ಅನ್ನು ಬೂಟ್ಸ್ಟ್ರ್ಯಾಪ್ ಮಾಡುತ್ತದೆ, ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್ ಅನ್ನು ಡಿಪ್ಲಾಯ್ ಮಾಡುತ್ತದೆ, ಮೈಗ್ರೇಶನ್ಗಳನ್ನು ಚಲಾಯಿಸುತ್ತದೆ, ವೆಬ್ ಮತ್ತು ಅಡ್ಮಿನ್ ಅಸೆಟ್ಗಳನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡುತ್ತದೆ, ಬಿಟ್ಟುಬಿಡದ ಹೊರತು ಸಾರ್ವಜನಿಕ app, admin, api, auth ಮತ್ತು mcp DNS ರೆಕಾರ್ಡ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಇಲ್ಲದಿರುವ GitHub Actions ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ತುಂಬುತ್ತದೆ.
ಡಿಪ್ಲಾಯ್ಮೆಂಟ್ ನಂತರ:
-
ALERT_EMAILಇನ್ಬಾಕ್ಸ್ಗೆ ಕಳುಹಿಸಲಾದ SNS ಚಂದಾದಾರಿಕೆಯನ್ನು ದೃಢೀಕರಿಸಿ. -
ಪ್ರತ್ಯೇಕ Resend ಕಳುಹಿಸುವ ಡೊಮೇನ್ನ DNS ರೆಕಾರ್ಡ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ ಪರಿಶೀಲಿಸಿ:
bash scripts/setup/setup-resend-domain.sh \ --domain example.com \ --subdomain mail
first-deploy.sh ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸಾರ್ವಜನಿಕ ಅಪ್ಲಿಕೇಶನ್ ಡೊಮೇನ್ಗಳಿಗಾಗಿ scripts/cloudflare/setup-dns.sh ಚಲಾಯಿಸುತ್ತದೆ. ಅದು setup-resend-domain.sh ಅನ್ನು ಚಲಾಯಿಸುವುದಿಲ್ಲ; ಎರಡನೆಯದು mail.<domain> ಗಾಗಿ ಇಮೇಲ್ ಕಳುಹಿಸುವವರ ರೆಕಾರ್ಡ್ಗಳನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ಆ ಡೊಮೇನ್ ಅನ್ನು Resend ನಲ್ಲಿ ಪರಿಶೀಲಿಸುತ್ತದೆ. ನೀವು --skip-dns ಜೊತೆಗೆ ಡಿಪ್ಲಾಯ್ ಮಾಡಿದರೆ, AWS CDK ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ದಾಖಲಿಸಿರುವಂತೆ ಸಾರ್ವಜನಿಕ ರೆಕಾರ್ಡ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.
ಡೇಟಾ ಪೋರ್ಟಬಿಲಿಟಿ
ಕಾರ್ಯಸ್ಥಳ ಪ್ಯಾಕೇಜ್ನ ಇಂಪೋರ್ಟ್ ಮತ್ತು ಎಕ್ಸ್ಪೋರ್ಟ್ ಕಾರ್ಡ್ಗಳು, ಅವುಗಳ ಟ್ಯಾಗ್ಗಳು ಮತ್ತು ಸಂಬಂಧಿತ ಮೀಡಿಯಾವನ್ನು ಮಾತ್ರ ವರ್ಗಾಯಿಸುತ್ತದೆ. ಅದು ಪುನರಾವರ್ತನೆಯ ಇತಿಹಾಸ, FSRS ಶೆಡ್ಯೂಲರ್ ಸ್ಥಿತಿ, ಕಾರ್ಯಸ್ಥಳದ ಸೆಟ್ಟಿಂಗ್ಗಳು, ಸಂಪೂರ್ಣ ಡೆಕ್ ರಚನೆಗಳು ಅಥವಾ ಖಾತೆಯ ಡೇಟಾವನ್ನು ವರ್ಗಾಯಿಸುವುದಿಲ್ಲ.
ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ವಿಷಯ ವರ್ಗಾವಣೆ ಎಂದು ಪರಿಗಣಿಸಿ, ಹೋಸ್ಟ್ ಮಾಡಿದ ಸೇವೆಯಿಂದ ಸ್ವಂತ ಹೋಸ್ಟಿಂಗ್ಗೆ ಸಂಪೂರ್ಣ ಮೈಗ್ರೇಶನ್ ಅಥವಾ ವಿಪತ್ತು ಮರುಪ್ರಾಪ್ತಿ ಬ್ಯಾಕಪ್ ಎಂದು ಅಲ್ಲ. ಡಿಪ್ಲಾಯ್ ಮಾಡಿದ PostgreSQL ಡೇಟಾಬೇಸ್ ಮತ್ತು ಮೀಡಿಯಾ ಸ್ಟೋರೇಜ್ನ ಬ್ಯಾಕಪ್ ಮತ್ತು ಮರುಸ್ಥಾಪನೆಗೆ ಆಪರೇಟರ್ಗಳೇ ಜವಾಬ್ದಾರರು.
ಆಪರೇಟರ್ನ ಜವಾಬ್ದಾರಿಗಳು
ಸ್ವಂತ ಹೋಸ್ಟಿಂಗ್ ಎಂದರೆ ಇವುಗಳನ್ನು ನೀವೇ ಒದಗಿಸಿ ನಿರ್ವಹಿಸುತ್ತೀರಿ:
- AWS ಇನ್ಫ್ರಾಸ್ಟ್ರಕ್ಚರ್ ಮತ್ತು ಅದರ ವೆಚ್ಚಗಳು
- Cloudflare DNS ಮತ್ತು ಡೊಮೇನ್ ಕಾನ್ಫಿಗರೇಶನ್
- Resend ಇಮೇಲ್ ವಿತರಣಾ ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳು ಮತ್ತು ಡೊಮೇನ್ ರೆಕಾರ್ಡ್ಗಳು
- ಅಗತ್ಯವಿರುವ Sentry ಮಾನಿಟರಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್
- ಐಚ್ಛಿಕ AI ಪೂರೈಕೆದಾರ ಮತ್ತು Langfuse ಕ್ರೆಡೆನ್ಶಿಯಲ್ಗಳು
- ಸೀಕ್ರೆಟ್ಗಳು, ಅಪ್ಗ್ರೇಡ್ಗಳು, ಮೈಗ್ರೇಶನ್ಗಳು, ಅಲರ್ಟ್ಗಳು, ಬ್ಯಾಕಪ್ಗಳು ಮತ್ತು ಮರುಸ್ಥಾಪನೆಯ ಪರೀಕ್ಷೆ
- ನಿಮ್ಮದೇ iOS ಅಥವಾ Android ಬಿಡುಗಡೆಗಳು ಬೇಕಿದ್ದರೆ, ನೇಟಿವ್ ಮೊಬೈಲ್ ಬಿಲ್ಡ್ಗಳು ಮತ್ತು ವಿತರಣೆ
ಈ ಸ್ಟ್ಯಾಕ್ ಇವುಗಳಲ್ಲಿ ಹಲವು ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಆಟೊಮೇಶನ್ ಅನ್ನು ಒಳಗೊಂಡಿದೆ, ಆದರೆ ಅದಕ್ಕೆ ಈಗಲೂ ಒಬ್ಬ ಆಪರೇಟರ್ ಬೇಕು. Docker Compose ಈ ಪ್ರೊಡಕ್ಷನ್ ಆರ್ಕಿಟೆಕ್ಚರ್ಗೆ ಪರ್ಯಾಯವಲ್ಲ.