# AeThex Forge - Local Development Setup ## Quick Start Guide This guide will help you set up and run the AeThex platform locally on your machine. ## Prerequisites 1. **Node.js** (v18 or higher) - Download from: https://nodejs.org/ - This will also install npm (Node Package Manager) 2. **Git** (optional, if you want to clone updates) - Download from: https://git-scm.com/ ## Installation Steps ### 1. Install Node.js - Visit https://nodejs.org/ and download the LTS version - Run the installer and follow the setup wizard - Restart your terminal/PowerShell after installation ### 2. Verify Installation Open PowerShell or Command Prompt and run: ```powershell node --version npm --version ``` You should see version numbers (e.g., v20.x.x and 10.x.x) ### 3. Install Project Dependencies Navigate to the project folder and install dependencies: ```powershell cd C:\Users\PCOEM\Downloads\aethex-forge\aethex-forge npm install ``` This may take a few minutes as it downloads all required packages. ### 4. Set Up Environment Variables Create a `.env` file in the root directory (`aethex-forge` folder) with the following variables: **Minimum Required (to run the app):** ```env # Supabase Configuration (Required) VITE_SUPABASE_URL=your_supabase_url_here VITE_SUPABASE_ANON_KEY=your_supabase_anon_key_here SUPABASE_SERVICE_ROLE=your_service_role_key_here SUPABASE_URL=your_supabase_url_here # API Base URL VITE_API_BASE=http://localhost:5000 ``` **Optional (for full functionality):** ```env # Discord Integration DISCORD_CLIENT_ID=your_discord_client_id DISCORD_CLIENT_SECRET=your_discord_client_secret DISCORD_BOT_TOKEN=your_discord_bot_token DISCORD_PUBLIC_KEY=your_discord_public_key DISCORD_REDIRECT_URI=http://localhost:5000/api/discord/oauth/callback # Foundation OAuth VITE_FOUNDATION_URL=https://aethex.foundation FOUNDATION_OAUTH_CLIENT_ID=your_foundation_client_id FOUNDATION_OAUTH_CLIENT_SECRET=your_foundation_client_secret # Email Service (SMTP) SMTP_HOST=your_smtp_host SMTP_PORT=587 SMTP_USER=your_smtp_user SMTP_PASSWORD=your_smtp_password # Other Services VITE_GHOST_API_URL=your_ghost_api_url GHOST_ADMIN_API_KEY=your_ghost_admin_key ``` **Note:** You can start with just the Supabase variables to get the app running. Other features will work once you add their respective credentials. ### 5. Run the Development Server ```powershell npm run dev ``` The application will start on **http://localhost:5000** Open your browser and navigate to that URL to view the application. ## Available Commands - `npm run dev` - Start development server (port 5000) - `npm run build` - Build for production - `npm start` - Start production server - `npm run typecheck` - Check TypeScript types - `npm test` - Run tests ## Project Structure ``` aethex-forge/ ├── client/ # React frontend (pages, components) ├── server/ # Express backend API ├── api/ # API route handlers ├── shared/ # Shared types between client/server ├── discord-bot/ # Discord bot integration └── supabase/ # Database migrations ``` ## Getting Supabase Credentials If you don't have Supabase credentials yet: 1. Go to https://supabase.com/ 2. Create a free account 3. Create a new project 4. Go to Project Settings → API 5. Copy: - Project URL → `VITE_SUPABASE_URL` and `SUPABASE_URL` - `anon` `public` key → `VITE_SUPABASE_ANON_KEY` - `service_role` `secret` key → `SUPABASE_SERVICE_ROLE` ## Troubleshooting ### Port Already in Use If port 5000 is already in use, you can change it in `vite.config.ts`: ```typescript server: { port: 5001, // Change to any available port } ``` ### Module Not Found Errors Try deleting `node_modules` and `package-lock.json`, then run `npm install` again: ```powershell Remove-Item -Recurse -Force node_modules Remove-Item package-lock.json npm install ``` ### Environment Variables Not Loading - Make sure `.env` file is in the root `aethex-forge` directory - Restart the dev server after adding new environment variables - Variables starting with `VITE_` are exposed to the client ## Need Help? - Check the `docs/` folder for detailed documentation - Review `AGENTS.md` for architecture details - See `replit.md` for deployment information