A powerful platform to analyze GitHub organizations, trending repositories, top contributors, and more.
Easily search for repositories, users, and organizations with advanced analytics and a user-friendly interface.
- 🔍 Fast search for repositories, users, and organizations
- 📊 Organization analytics and statistics
- 🏆 Trending repositories and top contributors
- 🌗 Light/Dark theme support
- 📝 Personal Access Token login for higher API rate limits
- 🕒 Search history and recent searches
- ⚡ Dashboard and customizable settings
- Node.js (v16 or higher recommended)
- npm, yarn, pnpm, or bun
-
Clone the repository:
git clone https://github.com/your-username/githubmon.git cd githubmon
-
Install dependencies:
npm install # or yarn install # or pnpm install # or bun install
-
Set up environment variables:
cp .env.example .env.local
Edit
.env.local
and fill in the required values:GITHUB_CLIENT_ID
- Your GitHub OAuth App Client IDGITHUB_CLIENT_SECRET
- Your GitHub OAuth App Client SecretNEXTAUTH_SECRET
- A random secret for NextAuth.jsNEXTAUTH_URL
- Your application URL (http://localhost:3000 for development)
-
Start the development server:
npm run dev # or yarn dev # or pnpm dev # or bun dev
-
Open http://localhost:3000 in your browser.
This application requires GitHub OAuth for authentication. Follow these steps:
-
Create a new OAuth App with these settings:
- Application name: GitHubMon (or your preferred name)
- Homepage URL:
http://localhost:3000
(for development) - Application description: Optional description
- Authorization callback URL:
http://localhost:3000/api/auth/callback/github
-
After creating the app, copy the Client ID and Client Secret
Copy .env.example
to .env.local
and update the values:
# Required - Get these from your GitHub OAuth App
GITHUB_CLIENT_ID=your_github_client_id_here
GITHUB_CLIENT_SECRET=your_github_client_secret_here
# Required - Generate a random secret
NEXTAUTH_SECRET=your_random_secret_here
# Required - Your app URL
NEXTAUTH_URL=http://localhost:3000
To generate a secure NEXTAUTH_SECRET
, you can use:
openssl rand -base64 32
The application requests these minimal GitHub scopes:
read:user
- Read basic user profile informationuser:email
- Access user email addressespublic_repo
- Read-only access to public repositories
These scopes follow the principle of least privilege and provide secure access without unnecessary permissions.
- You can use the app without a GitHub token, but rate limits will be low (60 requests/hour).
- For full features and higher limits (5,000 requests/hour), log in with your GitHub Personal Access Token.
- To generate a token:
- Go to GitHub → Settings → Developer settings → Personal access tokens
- Click "Generate new token (classic)"
- Select required scopes (e.g.,
repo
,user
) - Copy and save your token securely
- Change organization/user name and token anytime from the Settings page.
- Switch between light and dark themes.
- Clear all local data with one click.
- Your token is stored only in your browser (local storage).
- It is never sent to any server.
- Tokens are automatically deleted after 1 month.
- You can log out anytime.
Contributions are welcome! Please open an issue or submit a pull request.
MIT