update readme

This commit is contained in:
Krrish Ghimire
2026-07-08 23:25:29 +05:45
parent 0b6886774e
commit 3e77b54d71

View File

@@ -10,7 +10,7 @@ A platform that lets anyone create, own, and publish their own static website th
- Java 17+
- Node.js 18+ and npm
- Docker & Docker Compose (for PostgreSQL, MongoDB, MinIO)
- Docker & Docker Compose (for PostgreSQL, MongoDB)
- npm packages: `@angular/cli@17` (`npm install -g @angular/cli@17`)
### Setup
@@ -21,7 +21,7 @@ A platform that lets anyone create, own, and publish their own static website th
docker compose up -d
```
This starts PostgreSQL (port 5432), MongoDB (port 27017), and MinIO (ports 9000/9001).
This starts PostgreSQL (port 5432) and MongoDB (port 27017).
2. **Start the backend:**
@@ -52,9 +52,6 @@ A platform that lets anyone create, own, and publish their own static website th
|------------|--------------------|--------------|--------------------------------|---------------------|
| PostgreSQL | `postgres:16-alpine` | host:5432 | `indie` / `indie_dev` | `pgdata` |
| MongoDB | `mongo:7` | host:27017 | (no auth) | `mongodata` |
| MinIO | `minio/minio:latest` | host:9000 (S3 API), host:9001 (Console) | `indieadmin` / `indiesecret` | `miniodata` |
MinIO mimics Cloudflare R2/S3 for local development. Console: `http://localhost:9001`.
---
@@ -76,13 +73,6 @@ MinIO mimics Cloudflare R2/S3 for local development. Console: `http://localhost:
| `INDIE_GIT_REPOS_PATH` | Git repositories root | `/var/git/sites/` |
| `INDIE_GIT_AUTHOR_NAME` | Default git author name | `Indie Platform` |
| `INDIE_GIT_AUTHOR_EMAIL` | Default git author email | `git@indie.local` |
| **Storage (S3-compatible)** | | |
| `INDIE_STORAGE_ENDPOINT` | S3 endpoint URL | `http://localhost:9000` |
| `INDIE_STORAGE_REGION` | S3 region | `auto` |
| `INDIE_STORAGE_ACCESS_KEY` | S3 access key | `indie` |
| `INDIE_STORAGE_SECRET_KEY` | S3 secret key | `indie_dev` |
| `INDIE_STORAGE_BUCKET` | S3 bucket name | `indie-sites` |
| `INDIE_STORAGE_PUBLIC_URL` | Public URL base for stored files | `http://localhost:9000/indie-sites` |
| **Encryption** | | |
| `INDIE_ENCRYPTION_KEY_PATH` | AES-256-GCM master key path | `config/encryption.key` |
| **App** | | |
@@ -123,7 +113,7 @@ backend/
│ │ ├── JwtAuthenticationToken.java # Custom AbstractAuthenticationToken
│ │ ├── UserPrincipal.java # UserDetails record
│ │ ├── GitConfig.java # Git repository settings
│ │ ├── StorageConfig.java # S3Client bean (MinIO / S3-compatible)
│ │ ├── EncryptionService.java # AES-256/GCM for LLM API key encryption
│ │ ├── RateLimitConfig.java # Bucket4j token-bucket rate limiter
│ │ ├── SchemaMigration.java # Startup DDL migrations
@@ -332,7 +322,7 @@ config/ # Auto-generated on first boot
| Method | Path | Description |
|--------|------|-------------|
| POST | `/api/sites/{id}/publish` | Publish site (git push + S3 upload) |
| POST | `/api/sites/{id}/publish` | Publish site (git push) |
| POST | `/api/sites/{id}/unpublish` | Unpublish site |
| GET | `/api/sites/{id}/export` | Download site as `.zip` archive |
@@ -376,7 +366,7 @@ config/ # Auto-generated on first boot
| Frontend | Angular 17, Angular Material, Tailwind CSS, Leaflet |
| Relational DB | PostgreSQL 16 |
| Document DB | MongoDB 7 (generation versions, LLM sessions) |
| Object Storage | MinIO (dev) / Cloudflare R2 (prod) |
| Auth | Spring Security + JWT (RS256), email/password |
| LLM | Gemini (primary), OpenAI (fallback), provider-abstraction |
| Git | JGit — local repo per site, GitHub/GitLab remote push |
@@ -390,17 +380,6 @@ config/ # Auto-generated on first boot
```
┌──────────────────────┐
│ Cloudflare CDN │
│ custom domains → R2 │
└────────┬─────────────┘
┌────────▼─────────────┐
│ Cloudflare R2 │
│ indie-sites bucket │
│ /{siteId}/* │
└──────────────────────┘
┌────────┴─────────────┐
│ Spring Boot API │
│ (VPS / Docker) │
└────────┬─────────────┘