macOS Installation Guide
March 17, 2025 ยท View on GitHub
Project Architecture Overview
This project consists of multiple services that work together. For a detailed understanding of the service hierarchy and how they interact, please see Architecture Overview.
Key services that will be running:
- PostgreSQL databases (Main & Shadow) for data storage
- Redis for caching and real-time updates
- S3Mock for file storage
- IDE/Agent Server (port 3030) for backend operations
- Portal Frontend (port 3000) for user interface
Prerequisites
-
Homebrew (Package Manager)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Node.js 18+
brew install node@18 -
Docker Desktop
brew install --cask dockerStart Docker Desktop from Applications folder
Note for M1/M2 Mac Users: You may see platform mismatch warnings for the database containers (e.g., "platform linux/amd64 does not match host platform linux/arm64/v8"). These warnings are expected and the containers should still work correctly. If you experience issues, you can enable "Use Rosetta for x86/amd64 emulation on Apple Silicon" in Docker Desktop settings.
-
Python 3.11
brew install python@3.11 brew link python@3.11
Clerk Authentication Setup
Magick uses Clerk for authentication. You'll need to set up a Clerk account and application before proceeding:
- Sign up for a free account at clerk.com
- Create a new application

- Once created, copy the required environment variables

- Add these values to your
.env.localfile in the next section
Installation Steps
-
Clone Repository
git clone https://github.com/Oneirocom/Magick cd Magick -
Install Dependencies
npm install --python=python3.11 -
Configure Environment
cp .env.example .env.localThe default development URLs will be:
- Portal Frontend: http://localhost:3000
- IDE/Agent Server: http://localhost:3030
-
Start Infrastructure Services
npm run portal:upThis starts PostgreSQL, Redis, and S3Mock containers. Wait a few moments for the services to be ready.
-
Initialize and Seed Databases
npm run db:init # Initialize main database npm run portal:db:init # Initialize portal database and seed templates -
Start Services
Start the required services in separate terminal windows:
npm run dev-base # Start the base services npm run dev:connector # Start the connector service npm run dev:portal # Start the portal frontend
Verification
After starting all services, you should be able to access:
- Portal Frontend: http://localhost:3000
- IDE/Agent Server: http://localhost:3030
Troubleshooting
If you encounter issues:
- Ensure all required services are running (check Docker Desktop)
- Verify environment variables in
.env.local - Check service logs for specific errors
- Refer to Architecture Overview for service dependencies