R1ck404/mercel
Mercel is a small-scale clone of Vercel, designed to mimic the UI and functionality of Vercel as closely as possible
Mercel - Mini Vercel Clone
Mercel is a small-scale clone of Vercel, designed to mimic the UI and functionality of Vercel as closely as possible. It is a personal project and is not intended for production use. The project is still under development and may contain bugs, non-optimal code, and unoptimized performance. If the repository gains enough stars, I will continue to work on it to make it production-ready.
π οΈ Technologies Used
- Frontend: React, Next.js, Tailwind CSS
- Backend: Next.js API Routes
- Database: PocketBase
- Deployment: Docker, Nginx
π Getting Started
Prerequisites
- Node.js (v16 or higher)
- Docker (with Docker CLI installed and running)
- Docker Image: Ensure you have the
node:23-alpineDocker image installed. You can pull it using:docker pull node:23-alpine
- PocketBase (Download from here)
- GitHub OAuth App (for authentication)
Installation
-
Clone the Repository
git clone https://github.com/R1ck404/mercel.git cd mercel -
Install Dependencies
npm install --force
-
Set Up Environment Variables
Create a
.envfile in the root directory and add the following variables:NEXT_PUBLIC_PB_URL=http://127.0.0.1:8090/ NEXT_PUBLIC_API_URL=http://127.0.0.1:3000/ NEXT_PUBLIC_SERVER_IP=127.0.0.1 GITHUB_WEBHOOK_SECRET=abc
-
Set Up PocketBase
- Download PocketBase from the official documentation.
- Launch PocketBase and go to
Settings->Import Collections. Import thepb_schema.jsonfile found in the root of the repository. - Set up GitHub OAuth:
- Go to
Collections->Users->Settings->Options->OAuth2. - Add GitHub as a provider if itβs not already there.
- Enter the Client ID and Secret from your GitHub OAuth App.
- Go to
-
Set Up GitHub OAuth App
- Go to GitHub -> Settings -> Developer Settings -> OAuth Apps -> New OAuth App.
- Set the Homepage URL to your app's URL (e.g.,
http://127.0.0.1:3000/). - Set the Authorization callback URL to
http://127.0.0.1:3000/api/oauth2-redirect.
-
Run the Application
-
Start the Next.js development server:
npm run dev
-
Ensure Docker and Nginx are running if you plan to deploy the app.
-
π Known Issues
- The project is not fully complete and may contain bugs.
- The code is not optimized and should not be used in production.
- Some features may not work as expected.
π€ Contributing
Contributions are welcome! If you find any bugs or have suggestions for improvements, feel free to open an issue or submit a pull request.
π License
This project is licensed under the MIT License. See the LICENSE file for details.
βοΈ Support
If you find this project interesting or useful, please give it a βοΈ on GitHub! If the repository gains enough stars, I will continue to work on it to make it production-ready.
Maybe you can buy me a coffee too! Buy me a coffee!
π§ Contact
For any questions or feedback, feel free to reach out to me at rickhuijser898@gmail.com.
Happy coding! π