Guía de autoalojamiento
Requisitos
- Docker
- Node.js 20+
- npm
- PostgreSQL 16+ mediante la configuración de Docker incluida
Inicio rápido
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
Después, arranca los servicios en terminales independientes:
make auth-dev
make backend-dev
make web-dev
Esto pone en marcha:
postgresen el puerto5432authen el puerto8081backenden el puerto8080weben el puerto3000
URL locales:
http://localhost:3000para la aplicación webhttp://localhost:8080/v1para la API del backendhttp://localhost:8081para el servicio de autenticación
Configuración
Copia .env.example a .env y ajusta estos valores:
DATABASE_URL— cadena de conexión de PostgresAUTH_MODE—nonepara uso local,cognitopara autenticación OTP por correo electrónicoBACKEND_ALLOWED_ORIGINS— orígenes del navegador permitidos para solicitudes a la API autenticadas mediante sesiónPUBLIC_API_BASE_URLyPUBLIC_AUTH_BASE_URL— sobrescrituras opcionales si quieres que las respuestas de descubrimiento anuncien hosts públicos personalizados
Configuración local de iOS
La aplicación para iOS del repositorio principal toma los hosts locales de la API y del servicio de autenticación de:
apps/ios/Flashcards/Config/Local.xcconfig
Si hace falta, copia el archivo de ejemplo:
cp apps/ios/Flashcards/Config/Local.xcconfig.example apps/ios/Flashcards/Config/Local.xcconfig
Después, configura en ese archivo los dominios api y auth, ya sean locales o autoalojados.
Actualización
git pull
npm install --prefix api
npm install --prefix apps/auth
npm install --prefix apps/backend
npm install --prefix apps/web
Reinicia los servicios locales después de actualizar dependencias.
Despliegue en AWS
La arquitectura de producción documentada es:
- CloudFront + S3 para
app.<domain> - API Gateway + Lambda para
api.<domain> - API Gateway + Lambda para
auth.<domain> - Postgres en AWS RDS
- Cognito para OTP por correo electrónico sin contraseña
- Redirección opcional del dominio raíz cuando ese dominio no se use para otra cosa
Para ver los detalles del despliegue, consulta: