Add Blinko stack - Note-taking app with Ollama AI integration
This commit is contained in:
parent
0e3f9d74d4
commit
ebd6e7c3ee
4 changed files with 160 additions and 0 deletions
10
stacks/blinko/Caddyfile
Normal file
10
stacks/blinko/Caddyfile
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
:80 {
|
||||
# Fix Blinko Bug: /embed* -> /api/embed*
|
||||
handle /embed* {
|
||||
uri replace /embed /api/embed
|
||||
reverse_proxy ollama:11434
|
||||
}
|
||||
|
||||
# Alles andere direkt zu Ollama
|
||||
reverse_proxy ollama:11434
|
||||
}
|
||||
68
stacks/blinko/README.md
Normal file
68
stacks/blinko/README.md
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
# Blinko
|
||||
|
||||
📝 Self-hosted note-taking app with AI integration (Ollama)
|
||||
|
||||
## Deploy in Komodo
|
||||
|
||||
**Pfad:** `stacks/blinko/`
|
||||
|
||||
## Secrets
|
||||
|
||||
Erstelle eine `.env` Datei im Stack-Verzeichnis:
|
||||
|
||||
```bash
|
||||
# NextAuth
|
||||
NEXTAUTH_SECRET=<openssl rand -base64 48>
|
||||
|
||||
# PostgreSQL
|
||||
POSTGRES_PASSWORD=<secure-password>
|
||||
POSTGRES_USER=postgres
|
||||
POSTGRES_DB=postgres
|
||||
|
||||
# Domain (optional, default: https://blink.nocci.it)
|
||||
NEXTAUTH_URL=https://blink.your-domain.com
|
||||
NEXT_PUBLIC_BASE_URL=https://blink.your-domain.com
|
||||
```
|
||||
|
||||
## Ports
|
||||
|
||||
| Service | Port | Beschreibung |
|
||||
|---------|------|--------------|
|
||||
| blinko-website | 1110 | Web UI |
|
||||
| postgres | 5435 | Datenbank (nur intern empfohlen) |
|
||||
| ollama | 11434 | Ollama API |
|
||||
|
||||
## Caddy
|
||||
|
||||
Für externen Zugriff:
|
||||
|
||||
```caddyfile
|
||||
blink.example.com {
|
||||
reverse_proxy localhost:1110
|
||||
}
|
||||
|
||||
ollama.example.com {
|
||||
reverse_proxy localhost:11434
|
||||
}
|
||||
```
|
||||
|
||||
## Ollama Models
|
||||
|
||||
Nach dem Deploy Modelle pullen:
|
||||
|
||||
```bash
|
||||
docker exec -it blinko-ollama ollama pull llama3.2
|
||||
docker exec -it blinko-ollama ollama pull nomic-embed-text
|
||||
```
|
||||
|
||||
## Volumes
|
||||
|
||||
- `blinko_data` → `/app/.blinko` (Notizen & Daten)
|
||||
- `postgres_data` → `/var/lib/postgresql/data` (Datenbank)
|
||||
- `ollama_data` → `/root/.ollama` (AI Modelle)
|
||||
|
||||
## Health Checks
|
||||
|
||||
- Blinko: HTTP Check auf Port 1111
|
||||
- PostgreSQL: `pg_isready` Check
|
||||
- Ollama: Container läuft
|
||||
78
stacks/blinko/compose.yaml
Normal file
78
stacks/blinko/compose.yaml
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
services:
|
||||
blinko-website:
|
||||
image: blinkospace/blinko:latest
|
||||
container_name: blinko-website
|
||||
restart: always
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- NEXTAUTH_URL=${NEXTAUTH_URL:-https://blink.nocci.it}
|
||||
- NEXT_PUBLIC_BASE_URL=${NEXT_PUBLIC_BASE_URL:-https://blink.nocci.it}
|
||||
- NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
|
||||
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- blinko_data:/app/.blinko
|
||||
networks:
|
||||
- blinko-network
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:1111/"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
logging:
|
||||
options:
|
||||
max-size: 10m
|
||||
max-file: "3"
|
||||
|
||||
postgres:
|
||||
image: postgres:14
|
||||
container_name: blinko-postgres
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_DB=${POSTGRES_DB:-postgres}
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||
- TZ=Europe/Berlin
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- blinko-network
|
||||
healthcheck:
|
||||
test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER:-postgres}", "-d", "${POSTGRES_DB:-postgres}"]
|
||||
interval: 5s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
container_name: blinko-ollama
|
||||
restart: always
|
||||
environment:
|
||||
- OLLAMA_HOST=0.0.0.0:11434
|
||||
volumes:
|
||||
- ollama_data:/root/.ollama
|
||||
networks:
|
||||
- blinko-network
|
||||
|
||||
ollama-proxy:
|
||||
image: caddy:2
|
||||
container_name: blinko-ollama-proxy
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- ollama
|
||||
volumes:
|
||||
- ./Caddyfile:/etc/caddy/Caddyfile:ro
|
||||
networks:
|
||||
- blinko-network
|
||||
|
||||
volumes:
|
||||
blinko_data:
|
||||
postgres_data:
|
||||
ollama_data:
|
||||
|
||||
networks:
|
||||
blinko-network:
|
||||
driver: bridge
|
||||
4
stacks/blinko/stack.toml
Normal file
4
stacks/blinko/stack.toml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
[[stacks]]
|
||||
name = "blinko"
|
||||
description = "Note-taking app with AI integration (Ollama)"
|
||||
compose_path = "compose.yml"
|
||||
Loading…
Add table
Add a link
Reference in a new issue