Phase 1 & 2: full-stack family dashboard scaffold
- pnpm monorepo (apps/client + apps/server) - Server: Express + node:sqlite with numbered migration runner, REST API for all 9 features (members, events, chores, shopping, meals, messages, countdowns, photos, settings) - Client: React 18 + Vite + TypeScript + Tailwind + Framer Motion + Zustand - Theme system: dark/light + 5 accent colors, CSS custom properties, anti-FOUC script, ThemeToggle on every surface - AppShell: collapsible sidebar, animated route transitions, mobile drawer - Phase 2 features: Calendar (custom month grid, event chips, add/edit modal), Chores (card grid, complete/reset, member filter, streaks), Shopping (multi-list tabs, animated check-off, quick-add bar, member assign) - Family member CRUD with avatar, color picker - Settings page: theme/accent, photo folder, slideshow, weather, date/time - Docker: multi-stage Dockerfile, docker-compose.yml, entrypoint with PUID/PGID - Unraid: CA XML template, CLI install script, UNRAID.md guide - .gitignore covering node_modules, dist, db files, secrets, build artifacts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
38
docker-compose.yml
Normal file
38
docker-compose.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
services:
|
||||
family-planner:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: family-planner
|
||||
restart: unless-stopped
|
||||
|
||||
ports:
|
||||
- "${PORT:-3001}:3001"
|
||||
|
||||
environment:
|
||||
# App
|
||||
PORT: 3001
|
||||
TZ: ${TZ:-America/New_York}
|
||||
|
||||
# File paths inside the container
|
||||
DATA_DIR: /data
|
||||
PHOTOS_DIR: /photos
|
||||
|
||||
# Drop privileges to this UID/GID (Unraid: nobody=99, users=100)
|
||||
PUID: ${PUID:-99}
|
||||
PGID: ${PGID:-100}
|
||||
|
||||
volumes:
|
||||
# Persistent database storage — map to wherever you keep appdata
|
||||
- ${DATA_PATH:-./data}:/data
|
||||
|
||||
# Your photo library — mount read-only
|
||||
# Change the left side to your actual photos folder path
|
||||
- ${PHOTOS_PATH:-./photos}:/photos:ro
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-qO-", "http://localhost:3001/api/settings"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
Reference in New Issue
Block a user