feat(apps): integriere kernanwendungen im vps-stack

This commit is contained in:
Felix
2026-05-15 21:05:17 +02:00
parent abce2d89c3
commit 4b9fa166c0
2 changed files with 104 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
#!/bin/bash
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
STACK_DIR="/opt/docker-stacks/03-apps"
DB_PATH="${STACK_DIR}/data/filebrowser/filebrowser.db"
echo -e "${BLUE}==================================================${NC}"
echo -e "${BLUE} 🚀 OpenClaw App-Stack Deployment (03-apps) ${NC}"
echo -e "${BLUE}==================================================${NC}"
cd "$STACK_DIR" || { echo -e "${RED}Fehler: Verzeichnis $STACK_DIR nicht gefunden!${NC}"; exit 1; }
echo -e "${YELLOW}⏳ Stoppe laufende Container...${NC}"
docker compose down
if [ -d "$DB_PATH" ]; then
echo -e "${YELLOW}⚠️ Bereinige fehlerhaftes Verzeichnis...${NC}"
sudo rm -rf "$DB_PATH"
fi
echo -e "${YELLOW}📂 Bereite Verzeichnisstruktur vor...${NC}"
sudo mkdir -p "$(dirname "$DB_PATH")"
# Datenbank sauber mit dem offiziellen Tool initialisieren, falls sie neu ist
if [ ! -s "$DB_PATH" ]; then
echo -e "${YELLOW}📦 Initialisiere frische File-Browser Datenbank...${NC}"
# Temporären Container starten, der NUR die DB sauber aufsetzt
docker run --rm \
-v "$(dirname "$DB_PATH")":/database \
filebrowser/filebrowser:latest \
filebrowser -d /database/filebrowser.db config init
# Standard-Admin explizit hinzufügen, damit admin/admin garantiert klappt
docker run --rm \
-v "$(dirname "$DB_PATH")":/database \
filebrowser/filebrowser:latest \
filebrowser -d /database/filebrowser.db users add admin admin --perm.admin=true
sudo chmod 666 "$DB_PATH"
echo -e "${GREEN}✓ Datenbankstruktur erfolgreich mit Standard-User (admin/admin) aufgesetzt.${NC}"
fi
echo -e "${YELLOW}⚡ Starte Docker-Compose-Stack neu...${NC}"
docker compose up -d --force-recreate --remove-orphans
echo -e "${YELLOW}⏳ Warte auf Initialisierung...${NC}"
sleep 5
echo -e "\n${BLUE}==================================================${NC}"
echo -e "${BLUE} 📊 Aktueller Status der Services: ${NC}"
echo -e "${BLUE}==================================================${NC}"
docker compose ps
echo -e "\n${GREEN}🎉 Deployment abgeschlossen! Melde dich an auf https://files.brabros.de${NC}"
+45
View File
@@ -0,0 +1,45 @@
version: '3.8'
networks:
traefik_proxy:
external: true
volumes:
filebrowser_db:
services:
filebrowser:
image: filebrowser/filebrowser:latest
container_name: filebrowser
user: "0:0"
restart: unless-stopped
volumes:
- /opt/docker-stacks:/srv
- filebrowser_db:/database/
networks:
- traefik_proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.filebrowser.rule=Host(`files.brabros.de`)"
- "traefik.http.routers.filebrowser.entrypoints=websecure"
- "traefik.http.routers.filebrowser.tls.certresolver=myresolver"
- "traefik.http.routers.filebrowser.middlewares=authelia@docker"
- "traefik.http.services.filebrowser.loadbalancer.server.port=80"
- "traefik.docker.network=traefik_proxy"
memos:
image: ghcr.io/usememos/memos:latest
container_name: memos
restart: unless-stopped
volumes:
- ./data/memos:/var/opt/memos
networks:
- traefik_proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.memos.rule=Host(`memos.brabros.de`)"
- "traefik.http.routers.memos.entrypoints=websecure"
- "traefik.http.routers.memos.tls.certresolver=myresolver"
- "traefik.http.routers.memos.middlewares=authelia@docker"
- "traefik.http.services.memos.loadbalancer.server.port=5230"
- "traefik.docker.network=traefik_proxy"