This guide will help you set up and run TrayDesk locally on your machine.
Before you begin, ensure you have the following installed:
- Node.js 18.0.0 or higher
- pnpm 8.0.0 or higher
- PHP 8.0+ (for Twig app only)
- Composer (for Twig app only)
- Git
git clone https://github.com/Trayshmhirk/traydesk.git
cd traydesk# Install all dependencies for all apps
pnpm installThis will install dependencies for:
- Root workspace (Husky, Prettier, ESLint, etc.)
- Next.js app
- Vue.js app
- Twig app (Node dependencies only)
If you plan to run the Twig app:
cd apps/twig-app
composer install
cd ../..Choose the framework you want to work with:
pnpm dev:nextpnpm dev:vuepnpm dev:twigtraydesk/
├── apps/
│ ├── next-app/ # Next.js TypeScript application
│ ├── vue-app/ # Vue 3 TypeScript application
│ └── twig-app/ # PHP Twig application
├── packages/ # Shared packages (future)
├── docs/ # Documentation
├── .husky/ # Git hooks
└── package.json # Root workspace config-
Create a new branch:
git checkout -b feature/my-feature
-
Make your changes in the appropriate app directory
-
Test your changes locally
-
Commit following conventional commits:
git commit -m "feat(next-app): add new feature"
The project uses automated tools to ensure code quality:
- Husky: Git hooks for pre-commit checks
- lint-staged: Runs linters on staged files
- Prettier: Code formatting
- ESLint: Code linting
- Commitlint: Commit message validation
These run automatically when you commit.
- Read the Architecture Guide
- Learn about Contributing
- Check the API Documentation
- Review the Design System
If you see "Port already in use" errors:
# Find and kill the process using the port
# On Windows:
netstat -ano | findstr :3200
taskkill /PID <PID> /F
# On macOS/Linux:
lsof -ti:3200 | xargs killClear all dependencies and reinstall:
pnpm clean
pnpm install