#!/usr/bin/env bash # Prépare le workspace persistant puis lance la console web (ttyd → Claude Code). set -euo pipefail WS="${WORKSPACE:-$HOME/workspace}" mkdir -p "$WS" # Seed du workspace depuis l'image, SANS écraser ce que l'utilisateur (ou Claude) a modifié. # `cp -rn` = no-clobber : pose les fichiers manquants (nouvelle version d'image → nouveaux # fichiers), préserve portfolio.yaml/edits/.cache existants sur le PVC. cp -rn /opt/seed/. "$WS"/ 2>/dev/null || true cd "$WS" # Petit mot d'accueil dans le shell de la console. cat > "$HOME/.bash_motd" <<'MOTD' ──────────────────────────────────────────────────────────── FinLab — console Claude Code (analyste de marché) • Lance l'assistant : claude • 1ʳᵉ fois : dans claude, fais /login (abonnement, persisté) • Outils finlab en MCP + CLI : python -m finlab.cli digest • Ton portefeuille : portfolio.yaml (éditable ici) ⚠ Analyse uniquement — aucun ordre réel. ──────────────────────────────────────────────────────────── MOTD grep -q bash_motd "$HOME/.bashrc" 2>/dev/null || echo '[ -f "$HOME/.bash_motd" ] && cat "$HOME/.bash_motd"' >> "$HOME/.bashrc" # ttyd : terminal web (port 7681), écriture activée. L'auth est assurée en amont par le # middleware basicAuth de Traefik (cf. k8s/apps/finlab/middleware.yaml) — ttyd reste interne. exec ttyd -p 7681 -W -t titleFixed='FinLab — console' -t 'theme={"background":"#0b0e14"}' \ bash -l