update readme
This commit is contained in:
70
README.md
70
README.md
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user