Required software
Node.js
Hayon requires Node.js v18 or higher. The recommended version is v20 LTS.- macOS
- Ubuntu / Debian
- Windows
pnpm
Hayon uses pnpm v9 or later as its package manager. The repository is a pnpm workspace containingbackend, frontend, and schemas packages.
If you previously installed dependencies with npm, remove any
node_modules directories and package-lock.json files before running pnpm install.MongoDB
Hayon stores all application data in MongoDB. You can run it locally or use a hosted cluster.- Local installation
- MongoDB Atlas (hosted)
Follow the MongoDB Community Edition installation guide for your operating system.Start MongoDB after installation:Verify it is running:
Redis
Hayon uses Redis for caching and session management. Redis must be running before the backend starts.- macOS
- Ubuntu / Debian
- Docker
RabbitMQ
Hayon uses RabbitMQ as a message queue for scheduling and publishing posts in the background. RabbitMQ must be running before the backend starts.- macOS
- Ubuntu / Debian
- Docker
External service accounts
Hayon integrates with several external services. You will need accounts and credentials for each.AWS account (S3 for media storage)
AWS account (S3 for media storage)
Hayon stores uploaded media (post images, profile photos) in an AWS S3 bucket.
- Create an AWS account if you do not have one.
- In the AWS Console, navigate to S3 and create a new bucket.
- Configure the bucket’s CORS policy to allow requests from your frontend domain.
- In IAM, create a new user with programmatic access and attach the
AmazonS3FullAccesspolicy (or a scoped policy for the specific bucket). - Save the Access Key ID and Secret Access Key — you will need them for
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEY.
AWS_REGION: the region where your bucket is located (e.g.,us-east-1)AWS_S3_BUCKET_NAME: the exact name of your S3 bucket
Stripe account (subscriptions and payments)
Stripe account (subscriptions and payments)
Hayon uses Stripe to handle subscription billing (free and pro plans).
- Create a Stripe account.
- In the Stripe Dashboard, navigate to Developers > API keys to get your secret key.
- Create a product and a recurring price in Products — copy the price ID for
STRIPE_PRO_PRICE_ID. - Set up a webhook endpoint pointing to
https://your-backend-domain/api/payments/webhook. - Copy the webhook signing secret for
STRIPE_WEBHOOK_SECRET.
sk_test_...) during development.Google Cloud account (OAuth and Gemini AI)
Google Cloud account (OAuth and Gemini AI)
Hayon uses Google for two separate integrations:Google OAuth (user authentication):
- Go to the Google Cloud Console.
- Create a new project.
- Enable the Google+ API or People API.
- Under APIs & Services > Credentials, create an OAuth 2.0 client ID.
- Add your backend callback URL as an authorized redirect URI:
https://your-backend-domain/api/auth/google/callback. - Copy the Client ID and Client Secret.
- In the same or a new Google Cloud project, enable the Generative Language API.
- Under APIs & Services > Credentials, create an API key.
- Copy the key for
GEMINI_API_KEY.
Summary checklist
Once all prerequisites are in place, continue to Backend setup.
