feat: all-in-one embedded single-container mode (#377)

Embedded Postgres 17 + Redis via s6-overlay when DATABASE_URL/REDIS_URL are unset; restores the one-command docker run for 2.0. EMBEDDED=0 disables; Compose stays the production path. Verified arm64 (14/14 lifecycle + Compose regression) and amd64 (build + embedded smoke).
This commit is contained in:
SnapOtter
2026-06-29 15:49:09 +08:00
committed by GitHub
parent 0cdd560ac4
commit 084a9c9faa
36 changed files with 656 additions and 24 deletions
+7 -3
View File
@@ -1,12 +1,16 @@
# SnapOtter
Open-source, self-hostable file processing suite with 200+ tools across image, video, audio, PDF, and files, plus a layer-based image editor and local AI. Runs as a small Docker Compose stack, no external services. Dual-licensed AGPLv3 and commercial.
Open-source, self-hostable file processing suite with 200+ tools across image, video, audio, PDF, and files, plus a layer-based image editor and local AI. Runs as a single container with embedded Postgres + Redis for quick start, or a Docker Compose stack for production. No external services. Dual-licensed AGPLv3 and commercial.
All processing happens locally. Files never leave your infrastructure.
## Quick Start (Docker Compose)
## Quick Start
SnapOtter runs alongside PostgreSQL 17 and Redis 8. Minimal compose.yaml:
Single container (embedded Postgres + Redis), the fastest way to start:
docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/snapotter:latest
For production, run alongside PostgreSQL 17 and Redis 8 with Compose. Minimal compose.yaml:
services:
snapotter: