A simple Render (https://render.com/) type service where users can deploy their web-services
- PostgreSQL : As data storage
- RabbitMQ : To process task async
- Docker : To build and run the deployment images
In progress...
POST /api/v1/auth/signup
{
"email": "string",
"name": "string",
"password": "string"
}
Response 201
{
"status": 201,
"message": null,
"errors": [
],
"data": {
"token": {
"access_token": "string"
},
"user_info": {
"id": "string",
"email": "string",
"name": "string"
}
}
}
POST /api/v1/auth/login
{
"email": "string",
"password": "string"
}
Response 200
{
"status": 200,
"message": null,
"errors": [],
"data": {
"token": {
"access_token": "string"
},
"user_info": {
"id": "string",
"email": "string",
"name": "string"
}
}
}
GET /api/v1/auth/me
Header
{
Authorization: {access_token}
}
Response 200
{
"status": 200,
"message": null,
"errors": [],
"data": {
"id": "string",
"email": "string",
"name": "string"
}
}
GET /api/v1/deployments/type
Header
{
Authorization: {access_token}
}
Response 200
{
"status": 200,
"message": "",
"errors": [],
"data": [
{
"id": 0,
"name": "string",
"status": "string"
}
]
}
POST /api/v1/deployments
Header
{
Authorization: {access_token}
}
Req Body
{
"deployment_type_id": 0,
"name": "string",
"repository_link": "string",
"branch_name": "string",
"root_dir": "string",
"environment_variables": {}
}
Response 201
{
"status": 201,
"message": "",
"errors": [],
"data": {
"id": "string",
"deployment_type": {
"id": "string",
"name": "string"
},
"name": "string",
"sub_domain_name": "string",
"status": "string",
"last_deployed_at": "string",
"repository_link": "string",
"branch_name": "string",
"root_dir": "string",
"environment_variables": {}
}
}
GET /api/v1/deployments/{id}
Header
{
Authorization: {access_token}
}
Response 200
{
"status": 200,
"message": "string",
"errors": [],
"data": {
"id": "string",
"deployment_type": {
"id": "string",
"name": "string"
},
"name": "string",
"sub_domain_name": "string",
"status": "string",
"last_deployed_at": "string",
"repository_link": "string",
"branch_name": "string",
"root_dir": "string",
"environment_variables": {}
}
}
GET /api/v1/deployments/{id}?page={page}&limit={limit}
Header
{
Authorization: {access_token}
}
Response 200
{
"status": 200,
"message": "string",
"data": {
"deployments": [
{
"id": "string",
"deployment_type": {
"id": "string",
"name": "string"
},
"name": "string",
"sub_domain_name": "string",
"service_url": "string",
"status": "string",
"last_deployed_at": "string",
"repository_url": "string",
"repository_full_name": "string",
"branch_name": "string",
"root_dir": "string",
"environment_variables": {}
}
],
"pagination_meta": {
"itemCount": 0,
"totalItems": 0,
"itemsPerPage": 0,
"totalPages": 0,
"currentPage": 0
}
},
"errors": []
}
GET /api/v1/deployments/{id}/environment-variables
Header
{
Authorization: {access_token}
}
BODY
{
"environment_variables": {}
}
Response 201
{
"status": 201,
"message": "string",
"errors": [],
"data": {}
}
GET /api/v1/repositories/validate?repository_url={repository_url}
Header
{
Authorization: {access_token}
}
Response 200
{
"status": 200,
"message": "string",
"data": {
"repo_full_name": "string"
},
"errors": []
}