update readme

This commit is contained in:
Krrish Ghimire
2026-07-08 23:15:40 +05:45
parent 87d4acc2e2
commit 0b6886774e

View File

@@ -179,7 +179,7 @@ backend/
│ │ ├── GitLabPagesProvider.java # GitLab Pages implementation
│ │ ├── GitService.java # JGit: init, commit, push, log, rollback
│ │ ├── KeyManager.java # SSH key-pair generation per site
│ │ ├── MediaService.java # S3/MinIO file upload and public URLs
│ │ ├── ExportService.java # Exports site structure to ZIP
│ │ └── DomainService.java # Custom domain resolution skeleton
│ ├── service/llm/
@@ -196,7 +196,6 @@ backend/
│ ├── LLMController.java # POST /api/llm/generate, /refine, /versions/*
│ ├── GitController.java # POST /api/sites/{id}/git/*
│ ├── DeploymentController.java # POST /api/sites/{id}/publish, /unpublish
│ ├── MediaController.java # POST /api/media/upload, GET /api/media/{key}
│ ├── ExportController.java # GET /api/sites/{id}/export
│ ├── UserSettingsController.java # GET/PUT/DELETE /api/user/llm-config
│ └── SelfHostedController.java # CRUD /api/sites/{id}/self-hosted
@@ -345,13 +344,6 @@ config/ # Auto-generated on first boot
| PUT | `/api/sites/{id}/self-hosted` | Save SSH/deploy configuration |
| DELETE | `/api/sites/{id}/self-hosted` | Remove configuration |
### Media (`/api/media`)
| Method | Path | Description |
|--------|------|-------------|
| POST | `/api/media/upload` | Upload a file (returns key, url, metadata) |
| GET | `/api/media/{key}` | Get public URL for a stored file |
### User Settings (`/api/user`)
| Method | Path | Description |
@@ -463,31 +455,24 @@ The frontend Docker image serves the app via nginx (port 80) and proxies `/api/`
- [x] Frontend: JWT interceptor, auth guard, login guard, lazy routes
- [x] Scheduled cleanup of unverified accounts
### v0.2 — LLM Prompt Workspace (in progress)
- [ ] Prompt-to-site generation via Gemini/OpenAI
- [ ] Version timeline with MongoDB storage
- [ ] Live preview (sandboxed iframe)
- [ ] Content editor (grouped by page)
- [ ] Refine via follow-up prompts
- [ ] Rate limiting (10 generations/hour/user)
- [ ] Reference URL support for context
### v0.2 — LLM Prompt Workspace
- [x] Prompt-to-site generation via Gemini/OpenAI
- [x] Version timeline with MongoDB storage
- [x] Live preview (sandboxed iframe)
- [x] Content editor (grouped by page)
- [x] Refine via follow-up prompts
- [x] Rate limiting (10 generations/hour/user)
- [x] Reference URL support for context
### v0.3 — Export, Git & Hosting (planned)
- [ ] Render engine (HTML + CSS + JS generation)
- [ ] Git init, commit, push via JGit
- [ ] SSH key-pair management per site
- [ ] GitHub Pages / GitLab Pages providers
- [ ] S3 upload (R2 in production)
- [ ] Export as `.zip` archive
- [ ] Publish/unpublish flow
- [ ] Custom domain skeleton
- [ ] Media file upload service
### v0.4 — Social Features & Polish (planned)
- [ ] Comments with moderation
- [ ] RSS feed generation
- [ ] Git history panel in workspace
- [ ] Self-hosted deployment (SSH + rsync + nginx)
### v0.3 — Export, Git & Hosting
- [x] Render engine (HTML + CSS + JS generation)
- [x] Git init, commit, push via JGit
- [x] SSH key-pair management per site
- [x] GitHub Pages / GitLab Pages providers
- [x] Export as `.zip` archive
- [x] Publish/unpublish flow
- [x] Custom domain skeleton
- [x] Self-hosted deployment (SSH + rsync + nginx)
---
@@ -523,12 +508,17 @@ Provider API keys can be configured globally via env vars (`GEMINI_API_KEY`, `OP
## config/ Directory
On first boot, the application auto-generates the following files in `config/`:
The following files live in `config/` and are auto-generated on first boot if they don't exist.
In production, generate and mount them manually:
| File | Algorithm | Purpose |
|------|-----------|---------|
| `jwt-private.key` | RS256 | JWT token signing |
| `jwt-public.key` | RS256 | JWT token verification |
| `encryption.key` | AES-256-GCM (Base64) | LLM API key encryption |
```bash
# RS256 key pair for JWT
openssl genpkey -algorithm RSA -out config/jwt-private.key -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in config/jwt-private.key -out config/jwt-public.key
In production, generate and mount these manually rather than relying on auto-generation.
# AES-256-GCM master key for LLM API key encryption
openssl rand -base64 32 > config/encryption.key
```
Set the `INDIE_JWT_PRIVATE_KEY_PATH`, `INDIE_JWT_PUBLIC_KEY_PATH`, and
`INDIE_ENCRYPTION_KEY_PATH` env vars to point to these files.