vibetunnel/docs/PROJECT_STRUCTURE.md
Peter Steinberger a9fd66c291 refactor: major project restructuring - move macOS app to mac/ directory
- Move all macOS-specific code from root to mac/ directory
- Move app icons and assets to dedicated assets/ directory
- Update GitHub workflows for new structure
- Consolidate documentation files
- Clean up root directory for better multi-platform organization
2025-06-20 13:20:01 +02:00

2.7 KiB

VibeTunnel Project Structure

After reorganization, the VibeTunnel project now has a clearer structure:

Directory Layout

vibetunnel/
├── mac/                    # macOS app
│   ├── VibeTunnel/        # Source code
│   ├── VibeTunnelTests/   # Tests
│   ├── VibeTunnel.xcodeproj
│   ├── VibeTunnel.xcworkspace
│   ├── Package.swift
│   ├── scripts/           # Build and release scripts
│   ├── docs/              # macOS-specific documentation
│   └── private/           # Signing keys
│
├── ios/                   # iOS app
│   ├── VibeTunnel/       # Source code
│   ├── VibeTunnel.xcodeproj
│   └── Package.swift
│
├── web/                   # Web frontend
│   ├── src/
│   ├── public/
│   └── package.json
│
├── linux/                 # Go backend server
│   ├── cmd/
│   ├── pkg/
│   └── go.mod
│
├── tty-fwd/              # Rust terminal forwarder
│   ├── src/
│   └── Cargo.toml
│
└── docs/                 # General documentation

Build Instructions

macOS App

cd mac
xcodebuild -workspace VibeTunnel.xcworkspace -scheme VibeTunnel build
# or use the build script:
./scripts/build.sh

iOS App

cd ios
xcodebuild -project VibeTunnel.xcodeproj -scheme VibeTunnel build

CI/CD Updates

The GitHub Actions workflows have been updated to use the new paths:

  • Swift CI (swift.yml) - Now uses cd mac before building, linting, and testing
  • iOS CI (ios.yml) - Continues to use cd ios
  • Release (release.yml) - NEW! Automated release workflow for both platforms
  • Build Scripts - Now located at mac/scripts/
  • Monitor Script - CI monitoring at mac/scripts/monitor-ci.sh

Workflow Changes Made

  1. Swift CI workflow updated with:

    • cd mac before dependency resolution
    • cd mac for all build commands
    • cd mac for linting (SwiftFormat and SwiftLint)
    • Updated test result paths to mac/TestResults
  2. New Release workflow created:

    • Builds both macOS and iOS apps
    • Creates DMG for macOS distribution
    • Uploads artifacts to GitHub releases
    • Supports both tag-based and manual releases

Running CI Monitor

cd mac
./scripts/monitor-ci.sh

Important Notes

  • The Xcode project build phases need to be updated to reference paths relative to the project root, not SRCROOT
  • For example, web directory should be referenced as ${SRCROOT}/../web instead of ${SRCROOT}/web
  • All macOS-specific scripts are now in mac/scripts/
  • Documentation split between docs/ (general) and mac/docs/ (macOS-specific)