mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
refactor: remove lite variant, fix release workflow
- Remove all lite/full variant logic from frontend, API, shared constants, docs, and tests (single unified Docker image only) - Replace single QEMU multi-arch Docker build with per-architecture native builds (amd64 + arm64) and manifest merge to fix disk space exhaustion - Add disk cleanup step and per-platform build cache scopes - Switch release trigger from push to workflow_dispatch - Add GitHub issue templates and PR template
This commit is contained in:
@@ -110,9 +110,16 @@ Set `client_max_body_size` to match your `MAX_UPLOAD_SIZE_MB` value.
|
||||
|
||||
## CI/CD
|
||||
|
||||
The GitHub repository has two workflows:
|
||||
The GitHub repository has three workflows:
|
||||
|
||||
- **release.yml** -- On release, builds a multi-arch Docker image (amd64 + arm64), and pushes to Docker Hub (`stirlingimage/stirling-image`) and GitHub Container Registry (`ghcr.io/stirling-image/stirling-image`).
|
||||
- **deploy-docs.yml** -- Builds this documentation site and deploys it to GitHub Pages.
|
||||
- **ci.yml** -- Runs automatically on every push and PR. Lints, typechecks, tests, builds, and validates the Docker image (without pushing).
|
||||
- **release.yml** -- Triggered manually via `workflow_dispatch`. Runs semantic-release to create a version tag and GitHub release, then builds a multi-arch Docker image (amd64 + arm64) and pushes to Docker Hub (`stirlingimage/stirling-image`) and GitHub Container Registry (`ghcr.io/stirling-image/stirling-image`).
|
||||
- **deploy-docs.yml** -- Builds this documentation site and deploys it to GitHub Pages on push to `main`.
|
||||
|
||||
Both run automatically. No manual steps needed after merging to `main`.
|
||||
To create a release, go to **Actions > Release > Run workflow** in the GitHub UI, or run:
|
||||
|
||||
```bash
|
||||
gh workflow run release.yml
|
||||
```
|
||||
|
||||
Semantic-release determines the version from commit history. The `latest` Docker tag always points to the most recent release.
|
||||
|
||||
@@ -198,12 +198,6 @@ Build the full production image locally:
|
||||
docker build -f docker/Dockerfile -t stirling-image:latest .
|
||||
```
|
||||
|
||||
Build the lite image (no Python/AI, ~1.5 GB):
|
||||
|
||||
```bash
|
||||
docker build --build-arg VARIANT=lite -f docker/Dockerfile -t stirling-image:lite .
|
||||
```
|
||||
|
||||
Use BuildKit cache mounts for faster rebuilds:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -118,9 +118,6 @@ volumes:
|
||||
|
||||
## Migration from previous tags
|
||||
|
||||
If you were using `:lite` or `:cuda` tags, switch to `:latest`:
|
||||
|
||||
- **From `:lite`**: Pull `:latest`. You now have all AI tools included.
|
||||
- **From `:cuda`**: Pull `:latest` and keep `--gpus all`. Same GPU support, unified image.
|
||||
If you were using the `:cuda` tag, switch to `:latest` and keep `--gpus all`. Same GPU support, unified image.
|
||||
|
||||
Your data and settings are preserved in the volumes.
|
||||
|
||||
@@ -14,21 +14,11 @@ docker run -d \
|
||||
|
||||
Open `http://localhost:1349` in your browser. Log in with `admin` / `admin`.
|
||||
|
||||
::: tip Lite image
|
||||
Don't need AI tools (background removal, upscaling, OCR, face blur, object eraser)? Use the lite image instead - 1.5 GB vs 11 GB:
|
||||
|
||||
```bash
|
||||
stirlingimage/stirling-image:lite
|
||||
```
|
||||
|
||||
All 27+ image processing tools work the same. See [Docker Tags](./docker-tags) for the full comparison.
|
||||
:::
|
||||
|
||||
::: tip GPU acceleration
|
||||
Have an NVIDIA GPU? The CUDA image auto-detects your GPU and accelerates background removal (2.7x), upscaling (3x), and OCR (1.5x):
|
||||
Have an NVIDIA GPU? Add `--gpus all` to accelerate background removal (2.7x), upscaling (3x), and OCR (1.5x):
|
||||
|
||||
```bash
|
||||
docker run -d --gpus all -p 1349:1349 -v stirling-data:/data stirlingimage/stirling-image:cuda
|
||||
docker run -d --gpus all -p 1349:1349 -v stirling-data:/data stirlingimage/stirling-image:latest
|
||||
```
|
||||
|
||||
Requires [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html). Falls back to CPU if no GPU is found. See [Docker Tags](./docker-tags) for details and benchmarks.
|
||||
|
||||
Reference in New Issue
Block a user