62 lines
1.4 KiB
Markdown
62 lines
1.4 KiB
Markdown
# Root
|
|
|
|
Team collaboration platform built with SvelteKit, Supabase, and TailwindCSS.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
npm install
|
|
cp .env.example .env # Fill in your credentials
|
|
npm run dev
|
|
```
|
|
|
|
Open http://localhost:5173
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Required | Description |
|
|
|---|---|---|
|
|
| `PUBLIC_SUPABASE_URL` | Yes | Supabase project URL |
|
|
| `PUBLIC_SUPABASE_ANON_KEY` | Yes | Supabase anonymous key |
|
|
| `GOOGLE_API_KEY` | No | Google Maps API key (for map module) |
|
|
| `GOOGLE_SERVICE_ACCOUNT_KEY` | No | Google Calendar push (JSON key) |
|
|
| `MATRIX_HOMESERVER_URL` | No | Matrix/Synapse homeserver URL |
|
|
| `MATRIX_ADMIN_TOKEN` | No | Synapse admin token for auto-provisioning |
|
|
| `RESEND_API_KEY` | No | Resend.com API key for invite emails |
|
|
| `RESEND_FROM_EMAIL` | No | Verified sender email (e.g. `noreply@yourdomain.com`) |
|
|
|
|
## Database
|
|
|
|
Migrations are in `supabase/migrations/`. Push them with:
|
|
|
|
```bash
|
|
npm run db:push # Push pending migrations
|
|
npm run db:types # Regenerate TypeScript types
|
|
npm run db:migrate # Both in one step
|
|
```
|
|
|
|
## Production Deployment
|
|
|
|
### Docker
|
|
|
|
```bash
|
|
docker-compose up -d app
|
|
```
|
|
|
|
The app runs on port 3000 with a `/health` endpoint for monitoring.
|
|
|
|
### Manual
|
|
|
|
```bash
|
|
npm run build
|
|
node build
|
|
```
|
|
|
|
Set `PORT` (default 3000), `HOST` (default 0.0.0.0), and `NODE_ENV=production`.
|
|
|
|
### Development (Docker)
|
|
|
|
```bash
|
|
docker-compose up dev
|
|
```
|