mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
docs(guide): add a low-resource deployment guide in 21 languages (#548)
New guide/low-resource page: what runs well on 2 GB machines, a Raspberry Pi / old laptop Compose walkthrough with tuned caps, the env-var knobs that matter on small hardware, and what to skip. Linked from getting-started, the deployment hardware section, and the sidebar. Translated into all 20 non-English locales via the i18n batch pipeline; parity check and VitePress build pass. Admin merge: docs-only PR, the path-filtered required integration contexts never report (#420 precedent). Closes #497
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: "Distribuera SnapOtter till produktion med Docker. Hårdvarukrav, GPU-konfiguration och konfigurationer för omvänd proxy för Nginx, Traefik och Cloudflare."
|
||||
i18n_output_hash: c280952d9d27
|
||||
i18n_source_hash: e0d8d5f6fc87
|
||||
i18n_source_hash: 98172965118b
|
||||
i18n_provenance: human
|
||||
---
|
||||
|
||||
@@ -218,6 +218,8 @@ docker logs SnapOtter 2>&1 | head -20
|
||||
|
||||
Dessa siffror kommer från benchmarktester över en rad system, från en modern amd64-arbetsstation med en NVIDIA RTX 4070 ner till en Raspberry Pi, där hela verktygskatalogen kördes på var och en och Docker-resursgränserna svepte över värdena för att hitta det verkliga golvet.
|
||||
|
||||
Kör du i den nedre änden av dessa nivåer (en Pi, en gammal bärbar dator, en VPS med 2 GB)? [Resurssnåla installationer](/sv/guide/low-resource) omvandlar dessa siffror till en konkret genomgång med anpassade tak.
|
||||
|
||||
### Snabbreferens {#quick-reference}
|
||||
|
||||
| Nivå | Användningsfall | CPU | RAM | GPU | Lagring |
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: "Installera SnapOtter med Docker i ett enda kommando. Inkluderar Docker Compose-konfiguration, byggande från källkod och en fullständig funktionsöversikt."
|
||||
i18n_output_hash: 4b247783a830
|
||||
i18n_source_hash: 24724b5595b2
|
||||
i18n_source_hash: 68bf7f60b68d
|
||||
i18n_provenance: human
|
||||
---
|
||||
|
||||
@@ -19,6 +19,8 @@ docker run -d --name SnapOtter -p 1349:1349 -v SnapOtter-data:/data snapotter/sn
|
||||
|
||||
Denna enda container kör allt den behöver: utan `DATABASE_URL` angivet startar den sin egen PostgreSQL och Redis på loopback-gränssnittet (inbäddat läge) och håller all data i `SnapOtter-data`-volymen. Det är det snabbaste sättet att prova SnapOtter eller att själv hosta i ett hemmalabb. För produktion, kör [Docker Compose](#docker-compose)-stacken nedan, som håller PostgreSQL och Redis i sina egna containrar. Inbäddat läge körs som root (standardvärdet) och stängs av automatiskt så snart du anger `DATABASE_URL`.
|
||||
|
||||
Installerar du på en Raspberry Pi, en gammal bärbar dator eller en liten VPS? Se [Resurssnåla installationer](/sv/guide/low-resource) för en anpassad genomgång och vad du kan förvänta dig av begränsad hårdvara.
|
||||
|
||||
Du kommer att ombes att ändra ditt lösenord vid första inloggningen.
|
||||
|
||||
::: tip Anonym produktanalys
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
---
|
||||
i18n_source_hash: f5de74aee1b9
|
||||
i18n_provenance: machine
|
||||
i18n_output_hash: 4ad5655688ed
|
||||
---
|
||||
# Resurssnåla installationer {#low-resource-setups}
|
||||
|
||||
SnapOtter fungerar bra på liten hårdvara: en Raspberry Pi 4 eller 5, en gammal bärbar dator eller en VPS med 2 GB. Den här sidan är den praktiska guiden för sådana maskiner: vad du kan förvänta dig, en kopieringsklar konfiguration med rimliga tak och vilka funktioner du bör hoppa över. Den fullständiga benchmarkdatan bakom dessa siffror finns i [Hårdvarukrav](/sv/guide/deployment#hardware-requirements).
|
||||
|
||||
Två hårda begränsningar direkt:
|
||||
|
||||
- **Endast 64 bitar.** Avbildningen byggs för `linux/amd64` och `linux/arm64`. 32-bitars ARM (`armv7`/`armhf`) stöds inte, så första generationens Pi och Pi Zero-familjen faller bort.
|
||||
- **2 GB minne som golv.** Med 512 MB kan stacken inte starta, och 1 GB misslyckas vid batchar med flera filer. 2 GB med 2 kärnor är den minsta konfigurationen som fungerar bekvämt.
|
||||
|
||||
## Vad som fungerar bra på liten hårdvara {#what-runs-well}
|
||||
|
||||
Alla verktyg utan AI fungerar på en maskin med 2 GB / 2 kärnor: hela sektionerna för bilder och filer, PDF-verktygen samt video- och ljudoperationerna med stream copy (trimma, tysta, byta container). De flesta blir klara på under en sekund.
|
||||
|
||||
Två arbetslaster är undantagen:
|
||||
|
||||
- **Omkodning av video** (konvertering mellan codecs) begränsas av CPU:n. Ett 1080p-klipp som tar ~40 s på en snabb stationär CPU kan ta flera minuter på en CPU i Pi-klass. Stream copy-operationer förblir omedelbara.
|
||||
- **AI-verktyg** behöver RAM (4 GB rekommenderas) och disk (de större paketen är 4-5 GB vardera), och de tunga (uppskalning, fotorestaurering, bakgrundsborttagning) är inte praktiska på CPU:er i Pi-klass. Lätt AI som ansiktsdetektering och OCR är användbart om du har minne för det.
|
||||
|
||||
Inget av detta installeras eller körs om du inte använder det: utan installerade AI-paket vilar appen på runt 360 MB, och AI-paket laddas bara ner när en administratör aktiverar dem.
|
||||
|
||||
## Genomgång för Raspberry Pi / gammal bärbar dator {#walkthrough}
|
||||
|
||||
Detta är standardinstallationen med Compose från [Kom igång](/sv/guide/getting-started), plus resursgränser och konservativa tak. Den förutsätter ett 64-bitars operativsystem (på en Pi: Raspberry Pi OS 64-bit eller Ubuntu Server arm64).
|
||||
|
||||
```yaml
|
||||
services:
|
||||
snapotter:
|
||||
image: snapotter/snapotter:latest
|
||||
ports:
|
||||
- "1349:1349"
|
||||
volumes:
|
||||
- ./snapotter-data:/data
|
||||
environment:
|
||||
- DATABASE_URL=postgres://snapotter:snapotter@db:5432/snapotter
|
||||
- REDIS_URL=redis://redis:6379
|
||||
# Small-box profile: see the table below for what each cap does.
|
||||
- CONCURRENT_JOBS=1
|
||||
- MAX_WORKER_THREADS=2
|
||||
- MAX_BATCH_SIZE=5
|
||||
- MAX_UPLOAD_SIZE_MB=100
|
||||
- MAX_MEGAPIXELS=50
|
||||
- MAX_VIDEO_DURATION_S=300
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "2"
|
||||
memory: 2G
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
restart: unless-stopped
|
||||
|
||||
db:
|
||||
image: postgres:17-alpine
|
||||
environment:
|
||||
- POSTGRES_USER=snapotter
|
||||
- POSTGRES_PASSWORD=snapotter
|
||||
- POSTGRES_DB=snapotter
|
||||
volumes:
|
||||
- ./postgres-data:/var/lib/postgresql/data
|
||||
restart: unless-stopped
|
||||
|
||||
redis:
|
||||
image: redis:8-alpine
|
||||
command: redis-server --maxmemory 256mb --maxmemory-policy noeviction
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
Anteckningar för maskiner i Pi-klass:
|
||||
|
||||
- **Föredra en USB-SSD framför ett SD-kort** för datavolymen och Postgres. Jobbens arbetsytor gör verklig disk-IO, och SD-kort är både långsamma och snabba på att slitas ut.
|
||||
- **Allt-i-ett-containern fungerar också här** (inbäddad Postgres och Redis när `DATABASE_URL`/`REDIS_URL` inte är satta), och på en värd med begränsat minne bör du sänka taket för dess inbäddade Redis med `REDIS_MAXMEMORY` (se [Konfiguration](/sv/guide/configuration)). Compose ger dig finare kontroll per tjänst, och det är därför den här genomgången använder det.
|
||||
- **Lägg till swap på enheter med 2 GB.** Det hindrar den enstaka toppen (en stor PDF, en batch du glömde att begränsa) från att sluta i en out-of-memory-kill. zram är det SD-kortvänliga alternativet.
|
||||
- arm64-avbildningen är endast CPU; det finns ingen CUDA på ARM-kort.
|
||||
|
||||
## Justeringsrattarna {#tuning-knobs}
|
||||
|
||||
Alla tak är miljövariabler och dokumenteras fullständigt i [Konfiguration](/sv/guide/configuration). `0` betyder obegränsat eller auto. De som spelar roll på liten hårdvara:
|
||||
|
||||
| Variabel | Förslag för små maskiner | Vad den skyddar |
|
||||
|---|---|---|
|
||||
| `CONCURRENT_JOBS` | `1` | Hur många jobb som körs parallellt. Autodetekteringen använder antalet CPU-kärnor minus en, vilket är bra på stora maskiner och för ivrigt på en 2-kärnig låda under minnestryck. |
|
||||
| `MAX_WORKER_THREADS` | `2` | Trådpool för bildbehandling. |
|
||||
| `MAX_BATCH_SIZE` | `5` | Batchar är där maskiner med 1-2 GB får slut på minne först. |
|
||||
| `MAX_UPLOAD_SIZE_MB` | `100` | Hindrar en enda enorm fil från att uppta hela arbetsytan. |
|
||||
| `MAX_MEGAPIXELS` | `50` | Att avkoda en bild på 100+ MP kostar RAM oavsett filstorlek. |
|
||||
| `MAX_VIDEO_DURATION_S` | `300` | Långa omkodningar lägger beslag på en liten CPU i minuter till timmar. |
|
||||
| `PROCESSING_TIMEOUT_S` | `600` | Hårt tak så att ett skenande jobb till slut frigör maskinen. |
|
||||
|
||||
Dessa tak gäller vad servern accepterar, så ställ in dem efter vad du faktiskt använder snarare än så lågt som möjligt. Om du aldrig rör video kostar ett `MAX_VIDEO_DURATION_S`-tak ingenting; om du skannar dokument dagligen ska du inte sätta något tak på `MAX_PDF_PAGES`.
|
||||
|
||||
## Vad du bör hoppa över {#what-to-skip}
|
||||
|
||||
- **Tunga AI-paket.** Uppskalning, fotorestaurering och bakgrundsborttagning vill ha en GPU eller en snabb CPU med många kärnor, och varje paket kostar 4-5 GB disk. På en liten maskin installerar du dem helt enkelt inte; verktyg vars paket saknas visar en installationsuppmaning i stället för att köras.
|
||||
- **Omkodning av video som rutinarbetslast.** Enstaka omkodningar går bra (de är bara långsamma); en stadig omkodningskö vill ha CPU-kärnor, inte en Pi.
|
||||
- **Oanvända verktyg i allmänhet.** En administratör kan stänga av enskilda verktyg i Settings, vilket tar bort dem från gränssnittet och slutar registrera deras API-rutter. Det sparar inte minne i sig, men det hindrar en delad liten instans från att användas för just den arbetslast som hårdvaran inte klarar.
|
||||
|
||||
Om du senare flyttar instansen till större hårdvara tar du bort taken (sätt tillbaka dem till `0`) och samma datavolym följer med.
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
description: "Guide för säkerhetshärdning för SnapOtter. Containersäkerhet, nätverksisolering, Docker-hemligheter, Kubernetes-distribution och efterlevnadsartefakter."
|
||||
i18n_source_hash: 986f7658430c
|
||||
i18n_provenance: machine
|
||||
i18n_provenance: human
|
||||
i18n_output_hash: a8e16c353a09
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user