Initial upload
This commit is contained in:
87
recipes/services/paperless-ai-multi/install.sh
Normal file
87
recipes/services/paperless-ai-multi/install.sh
Normal file
@@ -0,0 +1,87 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ensure_root
|
||||
detect_pkg_manager
|
||||
pkg_install curl
|
||||
|
||||
echo ""
|
||||
read -p "Instanz Nummer (z.B. 1, 2, 3...): " INSTANCE
|
||||
BASE="/srv/docker/services/paperless-$INSTANCE"
|
||||
$SUDO mkdir -p "$BASE/data" "$BASE/media" "$BASE/consume"
|
||||
cd "$BASE"
|
||||
|
||||
PORT=$((8100 + INSTANCE))
|
||||
echo "Web-Port wird: $PORT"
|
||||
|
||||
echo ""
|
||||
echo "Paperless Variante:"
|
||||
echo " 1) Paperless-NGX (ohne KI)"
|
||||
echo " 2) Paperless-AI (mit KI/RAG)"
|
||||
read -p "Auswahl (1/2): " MODE
|
||||
|
||||
if [[ "$MODE" == "2" ]]; then
|
||||
read -p "KI Backend URL (z.B. http://127.0.0.1:11434): " AI_URL
|
||||
read -p "Memory Server URL (z.B. http://127.0.0.1:8085): " MEMORY_URL
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Instanz $INSTANCE ersetzen ohne Daten zu löschen?"
|
||||
read -p "(y/n): " REPLACE
|
||||
|
||||
if [[ "$REPLACE" =~ ^[Yy]$ ]]; then
|
||||
$SUDO docker compose down || true
|
||||
fi
|
||||
|
||||
if [[ "$MODE" == "1" ]]; then
|
||||
cat > docker-compose.yml <<EOF
|
||||
services:
|
||||
paperless-$INSTANCE:
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||
container_name: paperless-$INSTANCE
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "$PORT:8000"
|
||||
volumes:
|
||||
- ./data:/usr/src/paperless/data
|
||||
- ./media:/usr/src/paperless/media
|
||||
- ./consume:/usr/src/paperless/consume
|
||||
environment:
|
||||
TZ=Europe/Berlin
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [[ "$MODE" == "2" ]]; then
|
||||
cat > docker-compose.yml <<EOF
|
||||
services:
|
||||
paperless-$INSTANCE:
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:latest
|
||||
container_name: paperless-$INSTANCE
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "$PORT:8000"
|
||||
volumes:
|
||||
- ./data:/usr/src/paperless/data
|
||||
- ./media:/usr/src/paperless/media
|
||||
- ./consume:/usr/src/paperless/consume
|
||||
environment:
|
||||
TZ=Europe/Berlin
|
||||
|
||||
paperless-ai-$INSTANCE:
|
||||
image: clusterzx/paperless-ai:latest
|
||||
container_name: paperless-ai-$INSTANCE
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
PAPERLESS_AI_OPENAI_API_BASE_URL: "$AI_URL"
|
||||
PAPERLESS_AI_EMBEDDING_MODEL: "nomic-embed-text"
|
||||
PAPERLESS_AI_CHAT_MODEL: "qwen2.5:0.5b"
|
||||
PAPERLESS_AI_MEMORY_SERVER_URL: "$MEMORY_URL"
|
||||
TZ: Europe/Berlin
|
||||
EOF
|
||||
fi
|
||||
|
||||
$SUDO docker compose up -d
|
||||
|
||||
echo ""
|
||||
echo "✅ Instanz $INSTANCE installiert!"
|
||||
echo "Web UI: http://<server-ip>:$PORT"
|
||||
Reference in New Issue
Block a user