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 │ │ ├── GitLabPagesProvider.java # GitLab Pages implementation
│ │ ├── GitService.java # JGit: init, commit, push, log, rollback │ │ ├── GitService.java # JGit: init, commit, push, log, rollback
│ │ ├── KeyManager.java # SSH key-pair generation per site │ │ ├── KeyManager.java # SSH key-pair generation per site
│ │ ├── MediaService.java # S3/MinIO file upload and public URLs
│ │ ├── ExportService.java # Exports site structure to ZIP │ │ ├── ExportService.java # Exports site structure to ZIP
│ │ └── DomainService.java # Custom domain resolution skeleton │ │ └── DomainService.java # Custom domain resolution skeleton
│ ├── service/llm/ │ ├── service/llm/
@@ -196,7 +196,6 @@ backend/
│ ├── LLMController.java # POST /api/llm/generate, /refine, /versions/* │ ├── LLMController.java # POST /api/llm/generate, /refine, /versions/*
│ ├── GitController.java # POST /api/sites/{id}/git/* │ ├── GitController.java # POST /api/sites/{id}/git/*
│ ├── DeploymentController.java # POST /api/sites/{id}/publish, /unpublish │ ├── 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 │ ├── ExportController.java # GET /api/sites/{id}/export
│ ├── UserSettingsController.java # GET/PUT/DELETE /api/user/llm-config │ ├── UserSettingsController.java # GET/PUT/DELETE /api/user/llm-config
│ └── SelfHostedController.java # CRUD /api/sites/{id}/self-hosted │ └── 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 | | PUT | `/api/sites/{id}/self-hosted` | Save SSH/deploy configuration |
| DELETE | `/api/sites/{id}/self-hosted` | Remove 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`) ### User Settings (`/api/user`)
| Method | Path | Description | | 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] Frontend: JWT interceptor, auth guard, login guard, lazy routes
- [x] Scheduled cleanup of unverified accounts - [x] Scheduled cleanup of unverified accounts
### v0.2 — LLM Prompt Workspace (in progress) ### v0.2 — LLM Prompt Workspace
- [ ] Prompt-to-site generation via Gemini/OpenAI - [x] Prompt-to-site generation via Gemini/OpenAI
- [ ] Version timeline with MongoDB storage - [x] Version timeline with MongoDB storage
- [ ] Live preview (sandboxed iframe) - [x] Live preview (sandboxed iframe)
- [ ] Content editor (grouped by page) - [x] Content editor (grouped by page)
- [ ] Refine via follow-up prompts - [x] Refine via follow-up prompts
- [ ] Rate limiting (10 generations/hour/user) - [x] Rate limiting (10 generations/hour/user)
- [ ] Reference URL support for context - [x] Reference URL support for context
### v0.3 — Export, Git & Hosting (planned) ### v0.3 — Export, Git & Hosting
- [ ] Render engine (HTML + CSS + JS generation) - [x] Render engine (HTML + CSS + JS generation)
- [ ] Git init, commit, push via JGit - [x] Git init, commit, push via JGit
- [ ] SSH key-pair management per site - [x] SSH key-pair management per site
- [ ] GitHub Pages / GitLab Pages providers - [x] GitHub Pages / GitLab Pages providers
- [ ] S3 upload (R2 in production) - [x] Export as `.zip` archive
- [ ] Export as `.zip` archive - [x] Publish/unpublish flow
- [ ] Publish/unpublish flow - [x] Custom domain skeleton
- [ ] Custom domain skeleton - [x] Self-hosted deployment (SSH + rsync + nginx)
- [ ] 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)
--- ---
@@ -523,12 +508,17 @@ Provider API keys can be configured globally via env vars (`GEMINI_API_KEY`, `OP
## config/ Directory ## 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 | ```bash
|------|-----------|---------| # RS256 key pair for JWT
| `jwt-private.key` | RS256 | JWT token signing | openssl genpkey -algorithm RSA -out config/jwt-private.key -pkeyopt rsa_keygen_bits:2048
| `jwt-public.key` | RS256 | JWT token verification | openssl rsa -pubout -in config/jwt-private.key -out config/jwt-public.key
| `encryption.key` | AES-256-GCM (Base64) | LLM API key encryption |
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.