A Vercel-inspired platform for deploying web applications directly from Git repositories.
- User Authentication: Sign up and log in with email or GitHub
- Project Management: Connect GitHub repositories for deployment
- Automatic Deployments: Auto-deploy on git push
- Custom Domains: Connect your domains to your projects
- Dashboard: Monitor your deployments and projects
- Frontend: Next.js, React, Tailwind CSS
- Backend: Python, FastAPI, SQLAlchemy
- Database: PostgreSQL
- Authentication: JWT
- Deployment: Docker, GitHub API
- Task Queue: Celery, Redis
frontend/- Next.js frontend applicationbackend/- Python FastAPI backenddeployment/- Deployment service for building and running applications
- Docker and Docker Compose
- Git
-
Setup environment variables:
# For backend cp backend/.env.example backend/.env # Edit backend/.env with your configuration # For frontend cp frontend/.env.example frontend/.env # Edit frontend/.env if needed
-
Database options:
- Local PostgreSQL: Use the default configuration (postgres service in docker-compose.yml)
- External PostgreSQL (e.g., Neon, Azure):
- Set
DATABASE_URLinbackend/.envto your connection string - Remove or comment out the
postgresservice indocker-compose.yml - Update the dependencies in the
backendandcelery_workerservices
- Set
-
Clone the repository:
git clone https://github.com/yourusername/host-engine.git cd host-engine -
Start the development environment:
docker-compose up -d
-
Initialize the database:
docker-compose exec backend alembic upgrade head -
Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
POST /api/v1/auth/register- Register a new userPOST /api/v1/auth/login- Login and get access token
GET /api/v1/projects- List all projectsPOST /api/v1/projects- Create a new projectGET /api/v1/projects/{id}- Get project detailsPUT /api/v1/projects/{id}- Update projectDELETE /api/v1/projects/{id}- Delete project
GET /api/v1/deployments- List all deploymentsPOST /api/v1/deployments- Create a new deploymentGET /api/v1/deployments/{id}- Get deployment detailsGET /api/v1/deployments/project/{project_id}- Get deployments for a project
This project is licensed under the MIT License - see the LICENSE file for details.