mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
chore: remove internal docs from repo, update public documentation
Remove docs/superpowers/, .claude/ config, and PRD.md from version control (kept locally via .gitignore). Update README, CHANGELOG, VitePress docs, and .env.example to reflect recent features: Files page, teams, admin settings, persistent storage, and various API improvements.
This commit is contained in:
@@ -47,11 +47,12 @@ Shared TypeScript types, constants (like `APP_VERSION` and tool definitions), an
|
||||
### API (`apps/api`)
|
||||
|
||||
A Fastify v5 server that handles:
|
||||
- File uploads and temporary workspace management
|
||||
- File uploads, temporary workspace management, and persistent file storage
|
||||
- Tool execution (routes each tool request to the image engine or AI bridge)
|
||||
- Pipeline orchestration (chaining multiple tools sequentially)
|
||||
- Batch processing with concurrency control via p-queue
|
||||
- User authentication, API key management, and rate limiting
|
||||
- User authentication, teams, API key management, and rate limiting
|
||||
- Admin settings (tool visibility, feature flags, cleanup config, branding)
|
||||
- Swagger/OpenAPI documentation at `/api/docs`
|
||||
- Serving the built frontend as a SPA in production
|
||||
|
||||
@@ -61,6 +62,8 @@ Key dependencies: Fastify, Drizzle ORM, better-sqlite3, Sharp, Zod for validatio
|
||||
|
||||
A React 19 single-page app built with Vite. Uses Zustand for state management, Tailwind CSS v4 for styling, and Lucide for icons. Communicates with the API over REST and SSE (for progress tracking).
|
||||
|
||||
Pages include a tool workspace, a Files page for managing persistent uploads and results, an automation/pipeline builder, and an admin settings panel.
|
||||
|
||||
The built frontend gets served by the Fastify backend in production, so there is no separate web server in the Docker container.
|
||||
|
||||
### Docs (`apps/docs`)
|
||||
|
||||
@@ -26,6 +26,7 @@ All configuration is done through environment variables. Every variable has a se
|
||||
| `STORAGE_MODE` | `local` | `local` or `s3`. Only local storage is currently implemented. |
|
||||
| `DB_PATH` | `./data/stirling.db` | Path to the SQLite database file. |
|
||||
| `WORKSPACE_PATH` | `./tmp/workspace` | Directory for temporary files during processing. Cleaned up automatically. |
|
||||
| `FILES_STORAGE_PATH` | `./data/files` | Directory for persistent user files (uploaded images, saved results). |
|
||||
|
||||
### Processing limits
|
||||
|
||||
@@ -76,5 +77,5 @@ services:
|
||||
|
||||
The Docker container uses two volumes:
|
||||
|
||||
- `/data` -- Persistent storage for the SQLite database. Mount this to keep users, API keys, and saved pipelines across container restarts.
|
||||
- `/data` -- Persistent storage for the SQLite database and user files. Mount this to keep users, API keys, saved pipelines, and uploaded images across container restarts.
|
||||
- `/tmp/workspace` -- Temporary storage for images being processed. This can be ephemeral, but mounting it avoids filling up the container's writable layer.
|
||||
|
||||
@@ -61,18 +61,19 @@ Start the dev server:
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
This starts both the API server and the React frontend. The app opens at `http://localhost:5173` by default during development.
|
||||
This starts both the API server and the React frontend. Open `http://localhost:1349` in your browser.
|
||||
|
||||
## What you can do
|
||||
|
||||
Once logged in, the sidebar lists every available tool. Pick one, upload an image, adjust the settings, and download the result.
|
||||
The sidebar lists every tool. Pick one, upload an image, tweak the settings, download the result.
|
||||
|
||||
A few things to try first:
|
||||
Some things to try first:
|
||||
|
||||
- **Resize** an image to specific dimensions or a percentage
|
||||
- **Remove a background** using the AI-powered background removal tool
|
||||
- **Compress** a photo to reduce file size before uploading it somewhere
|
||||
- **Convert** between formats (JPEG, PNG, WebP, AVIF, TIFF)
|
||||
- **Batch process** a folder of images through any tool
|
||||
- Resize an image to specific dimensions or a percentage
|
||||
- Remove a background with the AI tool
|
||||
- Compress a photo before uploading it somewhere
|
||||
- Convert between formats (JPEG, PNG, WebP, AVIF, TIFF)
|
||||
- Batch process a folder of images through any tool
|
||||
- Save results to the Files page for later
|
||||
|
||||
Every tool in the UI is also available through the [REST API](../api/rest), so you can script your workflows or integrate Stirling Image into other systems.
|
||||
Every tool is also available through the [REST API](../api/rest), so you can script workflows or plug Stirling Image into other systems.
|
||||
|
||||
Reference in New Issue
Block a user