@weirdfingers/baseboards 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,145 +2,891 @@
2
2
 
3
3
  One-command launcher for Boards, an AI-powered creative toolkit for generating, storing, and sharing images, video, audio, and text.
4
4
 
5
+ ## Table of Contents
6
+
7
+ - [Overview](#overview)
8
+ - [Key Features](#key-features)
9
+ - [Installation](#installation)
10
+ - [Quick Start](#quick-start)
11
+ - [Commands Reference](#commands-reference)
12
+ - [Template System](#template-system)
13
+ - [Development Modes](#development-modes)
14
+ - [Common Workflows](#common-workflows)
15
+ - [Configuration](#configuration)
16
+ - [Advanced Usage](#advanced-usage)
17
+ - [Troubleshooting](#troubleshooting)
18
+ - [Community & Social](#community--social)
19
+
20
+ ## Overview
21
+
22
+ Baseboards CLI provides a streamlined way to scaffold, deploy, and manage Boards applications. With a single command, you can have a full-stack AI creative platform running locally with Docker.
23
+
24
+ ## Key Features
25
+
26
+ - **Multiple template options** - Choose from feature-rich or minimal starter templates
27
+ - **Docker-based backend** - Zero-configuration PostgreSQL, Redis, and API server
28
+ - **Local development mode** - Run frontend locally with `--app-dev` for fast iteration
29
+ - **Template caching** - Downloaded templates are cached for offline use
30
+ - **Interactive setup** - Guided prompts for API keys and template selection
31
+ - **Health monitoring** - Built-in diagnostics with the `doctor` command
32
+
33
+ ## Installation
34
+
35
+ No installation required! Use npx to run Baseboards directly:
36
+
37
+ ```bash
38
+ npx @weirdfingers/baseboards@latest up my-project
39
+ ```
40
+
41
+ ### Prerequisites
42
+
43
+ **Required:**
44
+ - Docker Desktop (macOS/Windows) or Docker Engine (Linux)
45
+
46
+ **Optional (for `--app-dev` mode only):**
47
+ - Node.js 20+
48
+ - Package manager (npm, pnpm, yarn, or bun)
49
+
5
50
  ## Quick Start
6
51
 
7
52
  ```bash
8
- # Create and start a new Baseboards installation
9
- npx @weirdfingers/baseboards up my-boards-app
53
+ # Start with full-featured template (recommended)
54
+ npx @weirdfingers/baseboards up my-app --template baseboards
10
55
 
11
- # You'll be prompted to enter API keys during setup
12
- # (or you can add them later by editing api/.env)
56
+ # Minimal starter for custom development
57
+ npx @weirdfingers/baseboards up my-app --template basic
13
58
 
14
- # Access the app
15
- open http://localhost:3300
59
+ # Local frontend development with native dev server
60
+ npx @weirdfingers/baseboards up my-app --template basic --app-dev
61
+
62
+ # Interactive template selection (no flag)
63
+ npx @weirdfingers/baseboards up my-app
16
64
  ```
17
65
 
18
- ## Commands
66
+ After starting, access the app at [http://localhost:3300](http://localhost:3300)
67
+
68
+ ## Commands Reference
19
69
 
20
70
  ### `up [directory]`
21
71
 
22
- Scaffold and start Baseboards. If the directory doesn't exist, creates a new project from templates. Runs in detached mode (background) by default.
72
+ Scaffold and start Baseboards. If the directory doesn't exist, creates a new project from the selected template. Runs in detached mode (background) by default.
23
73
 
24
74
  ```bash
25
- baseboards up # Current directory (detached)
26
- baseboards up my-app # New directory (detached)
27
- baseboards up --prod # Production mode
28
- baseboards up --attach # Attach to logs (foreground)
29
- baseboards up --ports web=3300 # Custom ports
30
- baseboards up --fresh # Clean up existing volumes before starting
75
+ baseboards up [directory] [options]
31
76
  ```
32
77
 
33
- **Note:** The `--fresh` flag removes existing Docker volumes before starting, which is useful if you encounter database password mismatch errors.
78
+ **Options:**
79
+
80
+ | Flag | Description | Example |
81
+ |------|-------------|---------|
82
+ | `--template <name>` | Select template (baseboards, basic) | `--template basic` |
83
+ | `--app-dev` | Run frontend locally instead of in Docker | `--app-dev` |
84
+ | `--attach` | Attach to logs (runs in foreground) | `--attach` |
85
+ | `--ports <string>` | Custom port mappings | `--ports web=3300 api=8800` |
86
+ | `--fresh` | Delete existing volumes before starting | `--fresh` |
87
+ | `--dev-packages` | Use unpublished local packages (requires `--app-dev` and monorepo) | `--dev-packages` |
88
+
89
+ **Examples:**
90
+
91
+ ```bash
92
+ # Create in current directory with default template
93
+ baseboards up
94
+
95
+ # Create in new directory with explicit template
96
+ baseboards up my-app --template baseboards
97
+
98
+ # Local frontend development
99
+ baseboards up my-app --app-dev
100
+
101
+ # Custom ports
102
+ baseboards up my-app --ports web=3000 api=8000
103
+
104
+ # Fresh start (clears database and volumes)
105
+ baseboards up my-app --fresh
106
+
107
+ # Attach to logs to see output in foreground
108
+ baseboards up my-app --attach
109
+ ```
110
+
111
+ **Note:** The `--fresh` flag removes existing Docker volumes before starting, which is useful if you encounter database password mismatch errors or want a clean slate.
34
112
 
35
113
  ### `down [directory]`
36
114
 
37
- Stop Baseboards.
115
+ Stop Baseboards services.
38
116
 
39
117
  ```bash
40
- baseboards down # Stop services
41
- baseboards down --volumes # Also remove volumes (deletes data)
118
+ baseboards down [directory] [options]
119
+ ```
120
+
121
+ **Options:**
122
+
123
+ | Flag | Description |
124
+ |------|-------------|
125
+ | `--volumes` | Also remove volumes (deletes all data) |
126
+
127
+ **Examples:**
128
+
129
+ ```bash
130
+ # Stop services (preserves data)
131
+ baseboards down
132
+
133
+ # Stop and remove all data
134
+ baseboards down --volumes
42
135
  ```
43
136
 
44
137
  ### `logs [directory] [services...]`
45
138
 
46
- View service logs.
139
+ View service logs. Supports filtering by specific services and following live output.
140
+
141
+ ```bash
142
+ baseboards logs [directory] [services...] [options]
143
+ ```
144
+
145
+ **Services:** `web`, `api`, `db`, `cache`
146
+
147
+ **Options:**
148
+
149
+ | Flag | Description | Example |
150
+ |------|-------------|---------|
151
+ | `-f, --follow` | Follow log output (live tail) | `-f` |
152
+ | `--since <time>` | Show logs since timestamp | `--since 1h`, `--since 30m` |
153
+ | `--tail <lines>` | Number of lines to show from end | `--tail 50` |
154
+
155
+ **Examples:**
47
156
 
48
157
  ```bash
49
- baseboards logs # All services
50
- baseboards logs api web # Specific services
51
- baseboards logs -f # Follow logs
52
- baseboards logs --since 1h # Last hour
158
+ # View all service logs
159
+ baseboards logs
160
+
161
+ # Follow logs in real-time
162
+ baseboards logs -f
163
+
164
+ # View only API and database logs
165
+ baseboards logs api db
166
+
167
+ # Last hour of logs
168
+ baseboards logs --since 1h
169
+
170
+ # Last 50 lines, following live
171
+ baseboards logs -f --tail 50
53
172
  ```
54
173
 
55
174
  ### `status [directory]`
56
175
 
57
- Show service status.
176
+ Show the status of all services (running, stopped, health).
58
177
 
59
178
  ```bash
60
- baseboards status
179
+ baseboards status [directory]
180
+ ```
181
+
182
+ **Example output:**
183
+
184
+ ```
185
+ Service Status:
186
+ web running (healthy)
187
+ api running (healthy)
188
+ db running (healthy)
189
+ cache running (healthy)
61
190
  ```
62
191
 
63
192
  ### `clean [directory]`
64
193
 
65
- Clean up Docker resources.
194
+ Clean up Docker resources associated with the project.
195
+
196
+ ```bash
197
+ baseboards clean [directory] [options]
198
+ ```
199
+
200
+ **Options:**
201
+
202
+ | Flag | Description |
203
+ |------|-------------|
204
+ | `--hard` | Also remove Docker images (WARNING: requires re-download) |
205
+
206
+ **Examples:**
66
207
 
67
208
  ```bash
68
- baseboards clean # Remove containers and volumes
69
- baseboards clean --hard # Also remove images
209
+ # Remove containers and volumes
210
+ baseboards clean
211
+
212
+ # Remove everything including images (requires re-download)
213
+ baseboards clean --hard
70
214
  ```
71
215
 
72
- ### `update [directory]`
216
+ **Warning:** The `--hard` flag will delete Docker images, requiring them to be re-downloaded on next `up`. This can take significant time depending on your internet connection.
73
217
 
74
- Update to the latest version (preserves configuration).
218
+ ### `templates`
219
+
220
+ List available templates with details about size, features, and frameworks.
75
221
 
76
222
  ```bash
77
- baseboards update
223
+ baseboards templates [options]
224
+ ```
225
+
226
+ **Options:**
227
+
228
+ | Flag | Description |
229
+ |------|-------------|
230
+ | `--refresh` | Clear cache and re-fetch template list |
231
+ | `--version <version>` | Show templates for specific CLI version |
232
+
233
+ **Examples:**
234
+
235
+ ```bash
236
+ # List available templates
237
+ baseboards templates
238
+
239
+ # Refresh cache and fetch latest
240
+ baseboards templates --refresh
241
+
242
+ # Show templates for specific version
243
+ baseboards templates --version 0.8.0
244
+ ```
245
+
246
+ **Example output:**
247
+
248
+ ```
249
+ 📦 Available templates for v0.8.0:
250
+
251
+ baseboards (recommended)
252
+ Full-featured Boards application with UI
253
+ Frameworks: Next.js, React, TailwindCSS
254
+ Features: Authentication, Boards UI, Image Generation
255
+ Size: 12.5 MB
256
+
257
+ basic
258
+ Minimal starter for custom apps
259
+ Frameworks: Next.js, React
260
+ Features: GraphQL Client, Hooks
261
+ Size: 45.2 KB
262
+ ```
263
+
264
+ ### `upgrade [directory]`
265
+
266
+ Upgrade Baseboards installation to a newer version. This updates templates and Docker Compose configurations while preserving your data and settings.
267
+
268
+ ```bash
269
+ baseboards upgrade [directory] [options]
270
+ ```
271
+
272
+ **Options:**
273
+
274
+ | Flag | Description |
275
+ |------|-------------|
276
+ | `--version <version>` | Upgrade to specific version (default: latest) |
277
+ | `--dry-run` | Preview upgrade without making changes |
278
+ | `--force` | Skip confirmation prompts and compatibility warnings |
279
+
280
+ **Examples:**
281
+
282
+ ```bash
283
+ # Upgrade to latest version
284
+ baseboards upgrade
285
+
286
+ # Upgrade to specific version
287
+ baseboards upgrade --version 0.8.0
288
+
289
+ # Preview what would change
290
+ baseboards upgrade --dry-run
291
+
292
+ # Preview upgrade to specific version
293
+ baseboards upgrade --dry-run --version 0.8.0
78
294
  ```
79
295
 
80
296
  ### `doctor [directory]`
81
297
 
82
- Run diagnostics and show system information.
298
+ Run diagnostics and show system information. Useful for troubleshooting issues.
83
299
 
84
300
  ```bash
85
- baseboards doctor
301
+ baseboards doctor [directory]
86
302
  ```
87
303
 
88
- ## Requirements
304
+ **Checks:**
89
305
 
90
- - Docker Desktop (macOS/Windows) or Docker Engine (Linux)
306
+ - Docker installation and version
307
+ - Docker Compose availability
308
+ - Node.js version (for `--app-dev` mode)
309
+ - Service health status
310
+ - Port availability
311
+ - Configuration validity
312
+
313
+ **Example output:**
314
+
315
+ ```
316
+ 🏥 Baseboards Doctor
317
+
318
+ System Information:
319
+ Platform: darwin (macOS)
320
+ Docker: 24.0.2 ✓
321
+ Docker Compose: 2.18.1 ✓
322
+ Node.js: 20.5.0 ✓
323
+
324
+ Project Status:
325
+ Directory: /Users/user/my-app
326
+ Scaffolded: Yes
327
+ Mode: Docker (default)
328
+ Services:
329
+ ✓ web (healthy)
330
+ ✓ api (healthy)
331
+ ✓ db (healthy)
332
+ ✓ cache (healthy)
333
+
334
+ Configuration:
335
+ Ports: web=3300 api=8800 db=5432 redis=6379
336
+ Template: baseboards
337
+ Version: 0.8.0
338
+ ```
339
+
340
+ ## Template System
341
+
342
+ Templates are pre-configured frontend applications that work with the Boards backend. They are downloaded on-demand from GitHub Releases and cached locally for offline use.
343
+
344
+ ### Available Templates
345
+
346
+ | Template | Size | Description | Best For |
347
+ |----------|------|-------------|----------|
348
+ | **baseboards** | ~12 MB | Full-featured application with authentication, boards UI, and image generation | Quick start, demos, production use |
349
+ | **basic** | ~45 KB | Minimal Next.js starter with GraphQL client and hooks | Custom apps, learning, minimal footprint |
350
+
351
+ ### Template Selection
352
+
353
+ **Interactive (recommended):**
354
+
355
+ ```bash
356
+ baseboards up my-app
357
+ # You'll be prompted to select a template
358
+ ```
359
+
360
+ **Explicit flag:**
361
+
362
+ ```bash
363
+ baseboards up my-app --template basic
364
+ ```
365
+
366
+ ### Template Caching
367
+
368
+ Templates are automatically cached in `~/.cache/baseboards/templates/` after first download. This enables:
369
+
370
+ - **Offline usage** - Work without internet after initial download
371
+ - **Faster setup** - Subsequent projects use cached templates
372
+ - **Version pinning** - Each CLI version caches its compatible templates
373
+
374
+ **Clear cache:**
375
+
376
+ ```bash
377
+ baseboards templates --refresh
378
+ ```
379
+
380
+ ### How to Choose
381
+
382
+ **Choose `baseboards` if you want:**
383
+ - A complete, production-ready application
384
+ - Built-in authentication and user management
385
+ - Full boards UI with image generation
386
+ - Minimal configuration
387
+
388
+ **Choose `basic` if you want:**
389
+ - A minimal starting point for custom apps
390
+ - Full control over UI/UX design
391
+ - Smaller download size
392
+ - To learn how Boards works
393
+
394
+ ## Development Modes
395
+
396
+ Baseboards supports two development modes optimized for different workflows.
397
+
398
+ ### Docker Mode (Default)
399
+
400
+ All services run in Docker containers, including the frontend.
401
+
402
+ ```bash
403
+ baseboards up my-app
404
+ ```
405
+
406
+ **Characteristics:**
407
+ - Frontend runs in Docker with hot reload
408
+ - All services orchestrated via Docker Compose
409
+ - No Node.js required on host machine
410
+ - Best for: Quick testing, demos, production-like environments
411
+
412
+ **How it works:**
413
+ - Frontend dev server runs inside Docker container
414
+ - Changes to `web/` directory trigger hot reload
415
+ - Access at http://localhost:3300
416
+
417
+ ### App-Dev Mode
418
+
419
+ Backend runs in Docker, frontend runs locally on your machine.
420
+
421
+ ```bash
422
+ baseboards up my-app --app-dev
423
+ ```
424
+
425
+ **Characteristics:**
426
+ - Backend services (API, DB, Redis) run in Docker
427
+ - Frontend runs as native dev server on host
428
+ - Native package manager integration (npm, pnpm, yarn, bun)
429
+ - Best for: Active frontend development, faster iteration
430
+
431
+ **How it works:**
432
+ 1. Backend services start in Docker
433
+ 2. CLI installs frontend dependencies using your preferred package manager
434
+ 3. Frontend dev server starts locally
435
+ 4. Hot reload works natively with your editor/IDE
436
+
437
+ **Prerequisites:**
91
438
  - Node.js 20+
439
+ - Package manager (you'll be prompted to select one)
440
+
441
+ **Switching between modes:**
92
442
 
93
- ## What Gets Scaffolded
443
+ You can switch between modes by running `down` then `up` with different flags:
94
444
 
445
+ ```bash
446
+ # Switch to app-dev mode
447
+ baseboards down
448
+ baseboards up --app-dev
449
+
450
+ # Switch back to Docker mode
451
+ baseboards down
452
+ baseboards up
95
453
  ```
96
- my-app/
97
- ├─ web/ # Next.js frontend
98
- ├─ api/ # FastAPI backend
99
- ├─ data/storage/ # Generated media (local storage)
100
- ├─ docker/ # Docker Compose configuration
101
- ├─ compose.yaml
102
- ├─ compose.dev.yaml
103
- └─ README.md
454
+
455
+ ## Common Workflows
456
+
457
+ ### Starting a New Project
458
+
459
+ ```bash
460
+ # Create and start new project
461
+ npx @weirdfingers/baseboards up my-boards-app
462
+
463
+ # Follow prompts for:
464
+ # 1. Template selection (baseboards or basic)
465
+ # 2. API key entry (Replicate, OpenAI, etc.)
466
+
467
+ # Access the application
468
+ open http://localhost:3300
469
+ ```
470
+
471
+ ### Stopping and Starting
472
+
473
+ ```bash
474
+ # Stop services (preserves data)
475
+ baseboards down
476
+
477
+ # Start again (no re-scaffolding needed)
478
+ baseboards up
479
+
480
+ # Stop and remove all data
481
+ baseboards down --volumes
104
482
  ```
105
483
 
484
+ ### Viewing Logs
485
+
486
+ ```bash
487
+ # View all logs
488
+ baseboards logs
489
+
490
+ # Follow logs in real-time
491
+ baseboards logs -f
492
+
493
+ # View specific service
494
+ baseboards logs api
495
+
496
+ # Last 2 hours of API logs
497
+ baseboards logs api --since 2h
498
+ ```
499
+
500
+ ### Cleaning Up
501
+
502
+ ```bash
503
+ # Remove project completely
504
+ baseboards down --volumes
505
+ cd ..
506
+ rm -rf my-boards-app
507
+
508
+ # Clean Docker resources (in project directory)
509
+ baseboards clean
510
+
511
+ # Full cleanup including images
512
+ baseboards clean --hard
513
+ ```
514
+
515
+ ### Using Custom Ports
516
+
517
+ ```bash
518
+ # Frontend on 3000, API on 8000
519
+ baseboards up --ports web=3000 api=8000
520
+
521
+ # Just change frontend port
522
+ baseboards up --ports web=4000
523
+ ```
524
+
525
+ ### Local Development Workflow
526
+
527
+ For active frontend development:
528
+
529
+ ```bash
530
+ # 1. Start in app-dev mode
531
+ baseboards up my-app --app-dev
532
+
533
+ # 2. Backend runs in Docker (API, DB, Redis)
534
+ # 3. Frontend runs locally (native dev server)
535
+ # 4. Make changes to web/ directory
536
+ # 5. Hot reload works natively
537
+
538
+ # When done, stop services
539
+ baseboards down
540
+ ```
541
+
542
+ For backend development, edit files in `api/` - changes will trigger reload in Docker.
543
+
106
544
  ## Configuration
107
545
 
108
- ### Provider API Keys (Required)
546
+ ### Environment Variables
109
547
 
110
- During initial setup, you'll be prompted to enter API keys. You can also edit `api/.env` directly:
548
+ API keys and configuration are stored in `api/.env`:
111
549
 
112
550
  ```bash
113
- # Keys are stored as JSON in a single environment variable
551
+ # Provider API keys (JSON format)
114
552
  BOARDS_GENERATOR_API_KEYS={"REPLICATE_API_KEY":"r8_...","OPENAI_API_KEY":"sk-..."}
553
+
554
+ # Database (auto-configured)
555
+ POSTGRES_USER=boards
556
+ POSTGRES_PASSWORD=<generated>
557
+ POSTGRES_DB=boards
558
+
559
+ # Redis (auto-configured)
560
+ REDIS_PASSWORD=<generated>
561
+
562
+ # API secrets (auto-configured)
563
+ BOARDS_SECRET_KEY=<generated>
115
564
  ```
116
565
 
117
- Get keys from:
566
+ **Get API keys:**
118
567
 
119
568
  - **Replicate**: https://replicate.com/account/api-tokens
120
569
  - **OpenAI**: https://platform.openai.com/api-keys
121
570
  - **FAL**: https://fal.ai/dashboard/keys
122
571
  - **Google**: https://makersuite.google.com/app/apikey
123
572
 
124
- ### Generators
573
+ ### Configuration Files
574
+
575
+ ```
576
+ my-app/
577
+ ├─ api/.env # Environment variables
578
+ ├─ api/config/generators.yaml # Generator providers and models
579
+ ├─ api/config/storage_config.yaml # Storage configuration (local/S3/GCS)
580
+ ├─ compose.yaml # Docker Compose orchestration
581
+ └─ docker/ # Service-specific Docker configs
582
+ ```
583
+
584
+ ### Port Configuration
585
+
586
+ **Default ports:**
587
+
588
+ | Service | Port | Description |
589
+ |---------|------|-------------|
590
+ | web | 3300 | Frontend application |
591
+ | api | 8800 | Backend GraphQL API |
592
+ | db | 5432 | PostgreSQL (internal only) |
593
+ | cache | 6379 | Redis (internal only) |
594
+
595
+ **Custom ports:**
596
+
597
+ ```bash
598
+ baseboards up --ports web=3000 api=8000
599
+ ```
600
+
601
+ **Port conflicts:**
602
+
603
+ If ports are already in use, you'll see an error. Use `--ports` to specify different ports:
604
+
605
+ ```bash
606
+ # Error: port 3300 already in use
607
+ baseboards up --ports web=3301
608
+ ```
609
+
610
+ ### Backend Version Pinning
611
+
612
+ The backend Docker image version is automatically matched to your CLI version. To use a different backend version:
613
+
614
+ 1. Edit `compose.yaml` in your project
615
+ 2. Change the image tag for the `api` service:
616
+
617
+ ```yaml
618
+ services:
619
+ api:
620
+ image: ghcr.io/weirdfingers/boards-backend:0.8.0 # Pin to specific version
621
+ ```
622
+
623
+ ## Advanced Usage
624
+
625
+ ### Offline Usage with Cached Templates
626
+
627
+ After downloading a template once, you can work offline:
628
+
629
+ ```bash
630
+ # First time (requires internet)
631
+ baseboards up project1 --template basic
632
+
633
+ # Later (works offline if cached)
634
+ baseboards up project2 --template basic
635
+ ```
636
+
637
+ Cache location: `~/.cache/baseboards/templates/`
638
+
639
+ ### CI/CD Usage (Non-Interactive)
640
+
641
+ For automated deployments, specify template explicitly to avoid prompts:
642
+
643
+ ```bash
644
+ # Non-interactive mode (no prompts)
645
+ baseboards up deployment --template baseboards
646
+
647
+ # Set API keys via environment
648
+ export BOARDS_GENERATOR_API_KEYS='{"REPLICATE_API_KEY":"r8_..."}'
649
+ ```
650
+
651
+ ### Custom Backend Versions
652
+
653
+ For testing or pinning specific backend versions:
654
+
655
+ ```bash
656
+ # Start project
657
+ baseboards up my-app
658
+
659
+ # Edit compose.yaml
660
+ cd my-app
661
+ # Change image: ghcr.io/weirdfingers/boards-backend:latest
662
+ # to image: ghcr.io/weirdfingers/boards-backend:0.7.5
663
+
664
+ # Restart with specific version
665
+ baseboards down
666
+ baseboards up
667
+ ```
668
+
669
+ ### Developer Mode (Monorepo Contributors)
670
+
671
+ For Boards contributors testing unpublished package changes:
672
+
673
+ ```bash
674
+ # From monorepo root
675
+ cd boards
676
+
677
+ # Build packages
678
+ pnpm build
679
+
680
+ # Create test project with local packages
681
+ pnpm cli up test-app --app-dev --dev-packages
682
+
683
+ # Changes to packages/frontend are reflected immediately
684
+ ```
685
+
686
+ **Note:** `--dev-packages` requires:
687
+ - Running from Boards monorepo
688
+ - `--app-dev` mode enabled
689
+ - Monorepo packages built
690
+
691
+ ### Template Caching Management
692
+
693
+ ```bash
694
+ # View available templates and cache status
695
+ baseboards templates
696
+
697
+ # Refresh cache (re-download all templates)
698
+ baseboards templates --refresh
699
+
700
+ # View templates for different version
701
+ baseboards templates --version 0.7.0
702
+
703
+ # Manually clear cache
704
+ rm -rf ~/.cache/baseboards/templates
705
+ ```
706
+
707
+ ## Troubleshooting
708
+
709
+ ### Common Issues
710
+
711
+ #### Port Conflicts
712
+
713
+ **Symptoms:** Error message "port 3300 already in use"
714
+
715
+ **Solutions:**
716
+
717
+ ```bash
718
+ # Option 1: Stop conflicting service
719
+ # Find what's using the port
720
+ lsof -i :3300 # macOS/Linux
721
+ netstat -ano | findstr :3300 # Windows
722
+
723
+ # Option 2: Use different ports
724
+ baseboards up --ports web=3301 api=8801
725
+ ```
726
+
727
+ #### Docker Not Running
728
+
729
+ **Symptoms:** "Cannot connect to the Docker daemon"
730
+
731
+ **Solutions:**
732
+
733
+ 1. Start Docker Desktop (macOS/Windows)
734
+ 2. Start Docker Engine (Linux): `sudo systemctl start docker`
735
+ 3. Verify: `docker ps`
736
+
737
+ Run diagnostics:
738
+
739
+ ```bash
740
+ baseboards doctor
741
+ ```
742
+
743
+ #### Template Download Failures
744
+
745
+ **Symptoms:** "Failed to download template" or "Network error"
746
+
747
+ **Solutions:**
748
+
749
+ ```bash
750
+ # Check internet connection
751
+ ping github.com
752
+
753
+ # Clear cache and retry
754
+ baseboards templates --refresh
755
+
756
+ # Try different template
757
+ baseboards up my-app --template basic
758
+
759
+ # Check GitHub status
760
+ # https://www.githubstatus.com/
761
+ ```
762
+
763
+ #### Permission Errors
764
+
765
+ **Symptoms:** "Permission denied" when creating directories
766
+
767
+ **Solutions:**
125
768
 
126
- Edit `api/config/generators.yaml` to customize providers and models.
769
+ ```bash
770
+ # Ensure you have write permissions
771
+ mkdir test-dir && rmdir test-dir
772
+
773
+ # Try different directory
774
+ baseboards up ~/Documents/my-app
127
775
 
128
- ### Storage
776
+ # Linux: Check Docker group membership
777
+ groups # Should include "docker"
778
+ sudo usermod -aG docker $USER # Add to docker group
779
+ # Log out and back in
780
+ ```
129
781
 
130
- Edit `api/config/storage_config.yaml` to configure storage (local/S3/GCS).
782
+ #### Database Password Mismatch
783
+
784
+ **Symptoms:** "password authentication failed for user boards"
785
+
786
+ **Solution:**
787
+
788
+ ```bash
789
+ # Clean start (removes volumes)
790
+ baseboards down --volumes
791
+ baseboards up --fresh
792
+ ```
793
+
794
+ #### Node.js Version Issues (App-Dev Mode)
795
+
796
+ **Symptoms:** "Node.js 20+ required for --app-dev mode"
797
+
798
+ **Solutions:**
799
+
800
+ ```bash
801
+ # Check version
802
+ node --version
803
+
804
+ # Upgrade Node.js
805
+ # Using nvm (recommended)
806
+ nvm install 20
807
+ nvm use 20
808
+
809
+ # Or download from https://nodejs.org/
810
+ ```
811
+
812
+ #### Out of Disk Space
813
+
814
+ **Symptoms:** "no space left on device"
815
+
816
+ **Solutions:**
817
+
818
+ ```bash
819
+ # Clean up Docker resources
820
+ docker system prune -a --volumes
821
+
822
+ # Remove old Baseboards projects
823
+ baseboards clean --hard
824
+ cd old-project && baseboards down --volumes
825
+ ```
826
+
827
+ ### Getting Help
828
+
829
+ **Run diagnostics:**
830
+
831
+ ```bash
832
+ baseboards doctor
833
+ ```
131
834
 
132
- ## Development
835
+ **View logs:**
836
+
837
+ ```bash
838
+ baseboards logs -f
839
+ ```
840
+
841
+ **Report issues:**
842
+
843
+ - GitHub Issues: https://github.com/weirdfingers/boards/issues
844
+ - Include output from `baseboards doctor`
845
+ - Include relevant logs from `baseboards logs`
846
+
847
+ **Documentation:**
848
+
849
+ - Full docs: https://baseboards.dev/docs
850
+ - API reference: https://baseboards.dev/docs/api
851
+ - Guides: https://baseboards.dev/docs/guides
852
+
853
+ **Community:**
854
+
855
+ - Discord: https://discord.gg/rvVuHyuPEx
856
+ - GitHub Discussions: https://github.com/weirdfingers/boards/discussions
857
+
858
+ ## Community & Social
859
+
860
+ Join the Weirdfingers community:
861
+
862
+ - **Discord**: [https://discord.gg/rvVuHyuPEx](https://discord.gg/rvVuHyuPEx)
863
+ - **GitHub**: [https://github.com/weirdfingers/boards](https://github.com/weirdfingers/boards)
864
+ - **TikTok**: [https://www.tiktok.com/@weirdfingers](https://www.tiktok.com/@weirdfingers)
865
+ - **X (Twitter)**: [https://x.com/_Weirdfingers_](https://x.com/_Weirdfingers_)
866
+ - **YouTube**: [https://www.youtube.com/@Weirdfingers](https://www.youtube.com/@Weirdfingers)
867
+ - **Instagram**: [https://www.instagram.com/_weirdfingers_/](https://www.instagram.com/_weirdfingers_/)
868
+
869
+ ## License
870
+
871
+ MIT
872
+
873
+ ---
874
+
875
+ ## For Contributors
133
876
 
134
877
  This package is part of the Boards monorepo.
135
878
 
136
879
  ### Building
137
880
 
138
881
  ```bash
882
+ # Install dependencies
883
+ pnpm install
884
+
885
+ # Build package
139
886
  pnpm build
140
887
  ```
141
888
 
142
889
  This will:
143
-
144
890
  1. Run `prepare-templates.js` to copy templates from monorepo
145
891
  2. Build TypeScript with tsup
146
892
  3. Create `dist/` and `templates/` directories
@@ -148,37 +894,35 @@ This will:
148
894
  ### Testing Locally
149
895
 
150
896
  ```bash
151
- # 1. Build the package
897
+ # Build the package
152
898
  pnpm build
153
899
 
154
- # 2. Run the CLI directly
900
+ # Run CLI directly
155
901
  node dist/index.js up test-project
156
902
 
157
- # 3. When done testing, clean up
903
+ # Clean up
158
904
  cd test-project
159
905
  docker compose down -v
160
906
  cd ..
161
907
  rm -rf test-project
162
908
  ```
163
909
 
164
- **Note:** The `-v` flag removes volumes (including database data). Use `docker compose down` without `-v` if you want to preserve data between tests.
165
-
166
910
  ### Release
167
911
 
168
- All packages use unified versioning. To release:
912
+ All packages use unified versioning:
169
913
 
170
914
  ```bash
171
915
  # Bump version across all packages
172
916
  pnpm version 1.2.0 -r
173
917
 
174
- # Build (templates get auto-copied)
918
+ # Build
175
919
  pnpm build
176
920
 
177
921
  # Publish
178
922
  pnpm publish
179
923
  ```
180
924
 
181
- ## Architecture
925
+ ### Architecture
182
926
 
183
927
  The CLI bundles templates from the monorepo:
184
928
 
@@ -188,17 +932,3 @@ The CLI bundles templates from the monorepo:
188
932
  Templates are copied during build time via `scripts/prepare-templates.js`.
189
933
 
190
934
  When users run `baseboards up`, templates are copied to their machine and Docker Compose orchestrates the services.
191
-
192
- ## Community & Social
193
-
194
- Join the Weirdfingers community:
195
-
196
- - **TikTok**: [https://www.tiktok.com/@weirdfingers](https://www.tiktok.com/@weirdfingers)
197
- - **X (Twitter)**: [https://x.com/_Weirdfingers_](https://x.com/_Weirdfingers_)
198
- - **YouTube**: [https://www.youtube.com/@Weirdfingers](https://www.youtube.com/@Weirdfingers)
199
- - **Discord**: [https://discord.gg/rvVuHyuPEx](https://discord.gg/rvVuHyuPEx)
200
- - **Instagram**: [https://www.instagram.com/_weirdfingers_/](https://www.instagram.com/_weirdfingers_/)
201
-
202
- ## License
203
-
204
- MIT