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:
Siddharth Kumar Sah
2026-04-10 17:38:54 +08:00
parent b0083e2b08
commit 958b10cb45
32 changed files with 311 additions and 424 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ export default defineConfig({
`,
customTemplateVariables: {
description:
"Self-hosted, open-source image processing platform with 30+ tools. Runs in a single Docker container. Available as :latest (full, ~11 GB with AI/ML) or :lite (~1.5 GB, image processing only).",
"Self-hosted, open-source image processing platform with 30+ tools including AI/ML. Runs in a single Docker container with GPU auto-detection.",
details:
"Resize, compress, convert, remove backgrounds, upscale, run OCR, and more - without sending images to external services.",
},
+11 -4
View File
@@ -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.
-6
View File
@@ -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
+1 -4
View File
@@ -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.
+2 -12
View File
@@ -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.