#!/usr/bin/env node /** * Setup script for forking aturi.to * * This interactive script helps you configure your fork by: * - Creating a .env.local file with your settings * - Updating key configuration values * - Providing next steps for deployment * * Usage: node scripts/setup-fork.js */ const fs = require('fs'); const path = require('path'); const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); function question(prompt) { return new Promise((resolve) => { rl.question(prompt, resolve); }); } async function main() { console.log('\n🌟 Welcome to aturi.to fork setup!\n'); console.log('This script will help you configure your custom instance.\n'); // Get configuration from user const domain = await question('What is your custom domain? (e.g., myshare.app): '); const siteName = await question(`Site name [${domain}]: `) || domain; const description = await question('Site description [Fast travel across the Atmosphere]: ') || 'Fast travel across the Atmosphere'; const authorName = await question('Your name: '); const authorUrl = await question('Your website/profile URL (optional): '); const repoUrl = await question('Your repository URL: '); console.log('\nšŸ“ Creating .env.local file...\n'); // Create .env.local content const envContent = `# aturi.to Fork Configuration # Generated by setup-fork.js # Your custom domain NEXT_PUBLIC_DOMAIN=${domain} # Site branding NEXT_PUBLIC_SITE_NAME=${siteName} NEXT_PUBLIC_SITE_DESCRIPTION=${description} # Author/Creator info NEXT_PUBLIC_AUTHOR_NAME=${authorName} ${authorUrl ? `NEXT_PUBLIC_AUTHOR_URL=${authorUrl}` : '# NEXT_PUBLIC_AUTHOR_URL='} # Source code repository URL NEXT_PUBLIC_REPO_URL=${repoUrl} # Analytics (optional) # NEXT_PUBLIC_ANALYTICS_ENABLED=true # Feature flags NEXT_PUBLIC_SHOW_INTEGRATION_PROMO=true `; // Write .env.local const envPath = path.join(process.cwd(), '.env.local'); fs.writeFileSync(envPath, envContent); console.log('āœ… Created .env.local\n'); // Update config.ts with defaults console.log('šŸ’” Your configuration is ready!\n'); console.log('Next steps:\n'); console.log('1. Review src/lib/config.ts if you need more customization'); console.log('2. Customize waypoints in src/utils/waypoints.tsx'); console.log('3. Update branding (logo, colors) in src/app/globals.css'); console.log('4. Test locally: npm run dev'); console.log('5. Deploy to Vercel and configure your domain\n'); console.log('šŸ“š See FORKING.md for detailed instructions.\n'); console.log('āš–ļø Remember: Keep your fork open source under GPL v3!\n'); console.log('šŸŽ‰ Setup complete! Happy forking!\n'); rl.close(); } main().catch((error) => { console.error('Error:', error); process.exit(1); });