AutomAI is a multi-tenant SaaS platform designed to simplify deployment workflows and infrastructure management for technical and non-technical users alike. It serves as an intuitive interface to existing tools like Jenkins, SSH, Docker, and Portainer, allowing users to deploy applications without deep technical knowledge.
Automai brings together the powerful automation tools your IT team already uses and makes them accessible through one simple interface. We don't reinvent the wheel - we make it easier to drive.
No New Tools to Learn: We connect to your existing systems and scripts, making them easier to manage Simplified Complexity: Turn complicated IT processes into easy-to-use workflows anyone can understand Central Management: See and control all your automation activities in one place Bridge Between Teams: Help technical and non-technical staff collaborate effectively Make Existing Infrastructure Work Harder: Get more value from your current IT investments
Business Leaders: Access powerful automation without needing technical expertise Department Managers: Request and monitor IT processes relevant to your team IT Managers: Delegate routine tasks while maintaining oversight and security Operations Teams: Create self-service options for common requests
- User-friendly dashboard that connects to sophisticated backend tools
- Secure connections to your existing servers and repositories
- Simple scheduling interface for your current automation scripts
- Team workspaces that respect your organizational structure
- Available on web or desktop for maximum flexibility
Automai doesn't replace your existing tools - it makes them work better together and puts them at everyone's fingertips.
- Frontend: Next.js App Router, React, Tailwind CSS, shadcn/ui components
- Backend: Next.js API routes and Server Actions
- Database & Auth: Supabase (PostgreSQL + Auth)
- CI/CD Integration: Jenkins (planned)
- Deployment Targets: SSH servers, Docker, Portainer (Docker in progress)
- Repository Integration: GitHub, GitLab, Gitea
The application follows a strict three-layer architecture:
-
Server DB Layer (Core)
- Direct database interaction via Supabase
- Located in
/src/lib/supabase/db*.tsfiles - Feature-specific DB modules in
/src/lib/supabase/db-{feature}/
-
Server Actions Layer (Bridge)
- Business logic and orchestration
- Located in
/src/app/actions/*.tsand feature-specific action files - Handles validation, error management, and calls to DB Layer
-
Client Hooks Layer (Interface)
- React hooks for frontend components
- Manages loading/error states and data caching
- Calls Server Actions (never directly to DB Layer)
# Start Next.js frontend
rm -rf .next && npm run dev
# Kill running process node
pkill -f "node"
npx kill-port 3000 3001
# Export supabase tables
npx supabase gen types typescript --project-id db?pwd > src/types/supabase.ts-
Clone the repository.
-
Install dependencies:
npm install
-
Set up environment variables:
- For all environment update
.env:DATABASE_URL= # Your Supabase PostgreSQL connection URL NEXT_PUBLIC_SUPABASE_URL= # Your Supabase project URL NEXT_PUBLIC_SUPABASE_ANON_KEY= # Your Supabase anon key JWT_SECRET= # Your JWT secret key
- For all environment update
- package.json "dev": "cross-env NODE_ENV=development ENV_FILE=.env.development ts-node server.ts",
Supabase vercel supabase-emerald-xylophone
You can run the application in different modes:
# Development mode (local PostgreSQL)
npm run dev
Start the Next.js development server:
npm run devAccess the frontend at http://localhost:3000. The API will be available at http://localhost:3000/api.
You can run the desktop app in two ways:
- Start the Next.js server first:
npm run dev- In a new terminal, start Electron:
npm run electron-devThis will use the existing Next.js server running on port 3000.
If Next.js is not running, simply run:
npm run electron-devThis will automatically start both Next.js and Electron.
npm run electron-packThe packaged desktop app will be available in the dist directory.
Note: The desktop app automatically detects if Next.js is running on port 3000 and will either use the existing server or start a new one.
For detailed desktop app documentation, see Desktop Implementation Guide.
# Development
npm run dev # Run full dev server with custom server
npm run build # Create production build
npm run start # Start production server
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint issues
npm run format # Run Prettier formatter
npm run format:check # Check formatting without fixing
npm run test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:e2e # Run end-to-end tests
npm run analyze # Analyze bundle size
npm run browser-tools # Run browser tools server
# Electron
npm run electron-dev # Run Electron in development mode
npm run electron-build # Build Electron application
npm run electron-pack # Package Electron applicationHappy Testing!
Template author: Joachim N'Doye Based on shadcn-admin repository Crafted with 🤍 by @satnaing https://github.com/satnaing/shadcn-admin