This project is a full-stack application built with Node.js, TypeScript, and React. It uses a monorepo structure managed by pnpm and TurboRepo, and it is designed to be deployed on Fly.io.
Visit the live site at https://gel.fly.dev.
- apps/backend: The backend application built with Node.js.
- apps/frontend: The frontend application built with React and Vite.
- packages/data: Shared data models and utilities.
- packages/party-images: Utilities for downloading and processing party images.
- Node.js 20.x
- pnpm
- Docker
-
Clone the repository:
git clone https://github.com/your-repo/gel.git cd gel
-
Install dependencies:
pnpm install
To start the development server for both the backend and frontend:
-
Start the backend:
pnpm dev pnpm --filter backend dev
To build the project for production:
pnpm build
The project includes a Dockerfile for building a production-ready Docker image. To build and run the Docker image locally:
-
Build the Docker image:
docker build -t gel-app .
-
Run the Docker container:
docker run -p 3000:3000 gel-app
This project is configured to be deployed on Fly.io. Follow these steps to deploy:
-
Install Fly CLI:
curl -L https://fly.io/install.sh | sh
-
Login to Fly.io:
flyctl auth login
-
Initialize Fly.io app:
flyctl launch
-
Deploy the app:
flyctl deploy
The frontend application uses Vite for development and build. The configuration can be found in apps/frontend/vite.config.ts
.
The project uses ESLint for linting. The configuration can be found in tooling/eslint/base.js
.
Contributions are welcome! Please open an issue or submit a pull request.