Explore the dynamic world of project management through our meticulously designed platform, where form meets function. Transform your development workflow with seamless automation, secure deployments, and versatile features.
A beautiful, modern web application for managing Next.js projects with automated CI/CD pipelines, built with Next.js 15, TypeScript, and Tailwind CSS.
- π Automated Project Creation - Create new Next.js projects with a single click
- π Real-time Pipeline Monitoring - Monitor deployment pipelines with live status updates
- π¨ Beautiful UI - Cracker-inspired design with glassmorphism effects and smooth animations
- π Secure Authentication - GitLab OAuth integration with role-based access control
- π Analytics Dashboard - Track project performance and deployment metrics
- π§ DevOps Integration - Seamless integration with GitLab CI/CD and self-hosted runners
- Frontend: Next.js 15, React 18, TypeScript
- Styling: Tailwind CSS, Framer Motion
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js with GitLab OAuth
- Deployment: Docker, Nginx
- CI/CD: GitLab CI/CD with self-hosted runners
- Node.js 18+
- PostgreSQL 15+
- Docker & Docker Compose
- GitLab account with API access
- Copy the environment template:
cp env.example .env.local- Configure your environment variables:
# GitLab Configuration
GITLAB_HOST=https://gitlab.sonod.tech
GITLAB_TOKEN=your_gitlab_token_here
GITLAB_GROUP_ID=your_nextjs_group_id
# Database
DATABASE_URL="postgresql://username:password@localhost:5432/sonod_projects_manager"
# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret_here
# GitLab OAuth
GITLAB_CLIENT_ID=your_oauth_app_client_id
GITLAB_CLIENT_SECRET=your_oauth_app_client_secret
# Pipeline Configuration
PIPELINE_PROJECT_ID=228
PIPELINE_TRIGGER_TOKEN=your_trigger_token_here
# Server Configuration
HOST_TEST_ADDRESS=23.88.63.252
HOST_TEST_USER=root
BASE_PATH=/opt/nextjs
TEMPLATE_PATH=/opt/nextjs/templates- Install dependencies:
npm install- Set up the database:
npx prisma generate
npx prisma db push- Start the development server:
npm run dev- Open http://localhost:3000 in your browser.
- Build the application:
npm run build- Start with Docker Compose:
docker-compose up -dsonod-projects-manager/
βββ app/ # Next.js app directory
β βββ api/ # API routes
β βββ dashboard/ # Dashboard pages
β βββ projects/ # Project management
β βββ pipelines/ # Pipeline monitoring
βββ components/ # Reusable UI components
β βββ ui/ # Base UI components
β βββ layout/ # Layout components
β βββ projects/ # Project-specific components
β βββ pipelines/ # Pipeline-specific components
βββ lib/ # Utility libraries
β βββ actions/ # Server actions
β βββ auth.ts # Authentication config
β βββ gitlab/ # GitLab API client
βββ prisma/ # Database schema
- GitLab Integration: Comprehensive API client for project and pipeline management
- Authentication: Secure OAuth flow with session management
- Real-time Updates: Webhook integration for live pipeline monitoring
- Responsive Design: Mobile-first approach with beautiful animations
-
Create a GitLab OAuth application:
- Go to GitLab β Settings β Applications
- Add redirect URI:
https://your-domain.com/api/auth/callback/gitlab - Note the Client ID and Client Secret
-
Create a Personal Access Token:
- Go to GitLab β Settings β Access Tokens
- Select scopes:
api,read_api,read_user,read_repository,write_repository
-
Set up webhooks:
- Configure project webhooks to point to your application
- Enable pipeline and job events
- Create PostgreSQL database:
CREATE DATABASE sonod_projects_manager;- Run Prisma migrations:
npx prisma migrate devThe application is designed to work with your existing infrastructure:
- Test Server:
23.88.63.252(root access) - Base Path:
/opt/nextjs - Template Path:
/opt/nextjs/templates - Domain:
*.check.sonod.tech
- Primary: Blue gradient (
#0ea5e9to#0284c7) - Secondary: Purple gradient (
#d946efto#c026d3) - Accent: Green (
#22c55e) - Dark: Deep blue (
#0f172a)
- Font: Inter (Google Fonts)
- Weights: 300, 400, 500, 600, 700, 800
- Glass Cards: Semi-transparent with backdrop blur
- Gradient Buttons: Smooth hover animations
- Status Indicators: Color-coded with icons
- Loading States: Skeleton screens and spinners
The application is fully responsive with breakpoints:
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
- Authentication: GitLab OAuth with secure session management
- Rate Limiting: API endpoints protected with rate limits
- HTTPS: SSL/TLS encryption for all communications
- CORS: Proper cross-origin resource sharing configuration
- Headers: Security headers for XSS and CSRF protection
- Build and deploy:
docker-compose up -d- Set up SSL certificates:
# Place your SSL certificates in ./ssl/
# cert.pem and key.pem- Configure domain:
# Update nginx.conf with your domain
# Configure DNS to point to your serverEnsure all required environment variables are set in production:
# Required for production
NEXTAUTH_URL=https://your-domain.com
DATABASE_URL=postgresql://user:pass@host:5432/db
GITLAB_TOKEN=your_production_token- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Alezz Ballajem - DevOps Lead
- Crafted with β€οΈ for the Sonod team
- Transforming development workflows through automation
Built with Next.js, TypeScript, and lots of β