Canceled

Yii2 Cloud Deployer

Published on the August 03, 2017 in IT & Programming

About this project

Open

Yii2 Inquid Deployer:
We need a deployer that saves a register of the attached database
We recommend to use: https://github.com/mootensai/yii2-enhanced-gii:

After ask all this information to the user and save it to a MySQL database, it needs to create a Google Cloud Instance and then run the script, if the user choose client Virtual server it must create a subdomain using Godaddy API and also execute the script in the virtual host server.
Google Cloud Account will be provided also Godaddy API.

This project needs to be a Yii2 Module and will be distributed as an Yii2 Extension with composer.
Design: https://www.figma.com/file/KGBOWOojwtjnz29tIoLdToqQ/Inquid-Deployer
We want to use this widget: https://github.com/drsdre/yii2-wizardwidget
Godaddy domain integration could be optional as a plus, the important part is save the info in the tables as it is in the description, and also include to all tables created time, update time fields and created by and updated by using the id of the user creating the register
and of course use google api to create the instance and execute a script in the server
This Script shows how to create an instance using PHP
https://github.com/GoogleCloudPlatform/php-docs-samples/blob/master/compute/helloworld/app.php

Database attached

create schema if not exists `inquid deployer` default character set utf8 ;
use `inquid deployer` ;

create table if not exists `inquid deployer`.`Project` (
  `id` int not null auto_increment,
  `name` varchar(45) null,
  primary key (`id`))
engine = innodb;

create table if not exists `inquid deployer`.`Domain` (
  `id` int not null auto_increment,
  `domain` varchar(100) not null,
  `subdomain` tinyint(1) not null default 0,
  `type` varchar(45) null comment 'a aaa cname etc\n',
  `domainscol` varchar(45) null,
  `bought` tinyint(1) null,
  `created_at` date null,
  `updated_at` date null,
  `created_by` int null,
  `updated_by` int null,
  primary key (`id`))
engine = innodb;

create table if not exists `inquid deployer`.`Ip` (
  `id` int not null auto_increment,
  `ip` varchar(45) null,
  `ephemeral` tinyint(1) null,
  primary key (`id`))
engine = innodb;


create table if not exists `inquid deployer`.`Zone` (
  `id` int not null auto_increment,
  `zone_name` varchar(45) null,
  primary key (`id`))
engine = innodb;

create table if not exists `inquid deployer`.`Server` (
  `id` int not null auto_increment,
  `name` varchar(45) null,
  `type` varchar(45) null comment 'apache / nginx',
  `os` varchar(45) null,
  `cpu` varchar(45) null,
  `ram` varchar(45) null,
  `disk` varchar(45) null,
  `description` text null,
  `created_at` date null,
  `updated_at` date null,
  `created_by` int null,
  `updated_by` int null,
  `project_id` int not null,
  `domain_id` int not null,
  `ip_id` int not null,
  `zone_idzones` int not null,
  primary key (`id`),
  index `fk_server_project_idx` (`project_id` asc),
  index `fk_server_domain1_idx` (`domain_id` asc),
  index `fk_server_ip1_idx` (`ip_id` asc),
  index `fk_server_zone1_idx` (`zone_idzones` asc),
  constraint `fk_server_project`
    foreign key (`project_id`)
    references `inquid deployer`.`Project` (`id`)
    on delete no action
    on update no action,
  constraint `fk_server_domain1`
    foreign key (`domain_id`)
    references `inquid deployer`.`Domain` (`id`)
    on delete no action
    on update no action,
  constraint `fk_server_ip1`
    foreign key (`ip_id`)
    references `inquid deployer`.`Ip` (`id`)
    on delete no action
    on update no action,
  constraint `fk_server_zone1`
    foreign key (`zone_idzones`)
    references `inquid deployer`.`Zone` (`id`)
    on delete no action
    on update no action)
engine = innodb;

create table if not exists `inquid deployer`.`Script` (
  `id` int not null auto_increment,
  `name` varchar(45) null,
  `description` text null,
  `filepath` varchar(45) null,
  `created_at` date null,
  `updated_at` date null,
  `created_by` int null,
  `updated_by` int null,
  `server_id` int not null,
  primary key (`id`),
  index `fk_script_server1_idx` (`server_id` asc),
  constraint `fk_script_server1`
    foreign key (`server_id`)
    references `inquid deployer`.`server` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

Category IT & Programming
Subcategory Web development
What is the scope of the project? Medium-sized change
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Other (Other APIs)
Roles needed Developer

Delivery term: Not specified

Skills needed