deployphp / deployer

The PHP deployment tool with support for popular frameworks out of the box
https://deployer.org
MIT License
10.59k stars 1.48k forks source link

New module develop progress - deployer-web #2097

Closed asafov closed 4 years ago

asafov commented 4 years ago

Hello, dear users and @antonmedv! At this moment i work under new module - deployer-web. It will be lightweight rest api based on lumen micro framework with the following features:

  1. Manage projects (Git path, project name, option reload)
  2. Manage users (login, password, access_level, api_key, is_active)
  3. Manage user projects access
  4. Manage hosts (All data in database will be encrypted)
  5. API for deploy, rollback and get status actions
  6. Telegram webhook functions (Deploy, rollback)
  7. Simple S2S webhook functions (Auto-deploy)
  8. List of builds (Project, host, status, message, requested_by (UserID or 0 for auto))
  9. Install script for homestead system (Vagrant based) full create home workstation based env
  10. Some console commands for basic operations
  11. System ACL (Whitelist or Blacklist)

You can create own full-functional UI at any language and just connect to exist database. So product will be something like light-weight API. All tasks are based at redis queues.

Some examples of future routes:

GET  /api/projects - get list of user allowed projects
GET  /api/projects/{slug} - get info for project with codename {slug}
GET  /api/projects/{slug}/deploy - get last deploy information for project with codename {slug}
POST /api/projects/{slug}/deploy - start deploy of project
POST /api/projects/{slug}/rollback - start rollback of project
POST /webhook/telegram - telegram webhook
POST /webhook/s2s - universal webhook for auto-deploy
Telegram functions:
    1. Deploy project with status notify
    2. Rollback project with status notify
asafov commented 4 years ago

At this moment is ready:

  1. API auth system (simple api_token unique per user) and project related micro-acl (view / deploy / rollback)
  2. Project api (List, get, status, deploy, rollback)
  3. Ability to log deploy status to deployer or lumen log.
  4. Some little things

Current project architecture: Based on Lumen micro-framework v7, longman/telegram-bot package for telegram functions, any framework compatible database for data storage, redis for queues and all module is event-based. Module can be used standalone or with Homestead package (Vagrant with VirtualBox). All software for Homestead virtual machine is ready for work and configured.

Project roadmap: v0.1

v0.2

v0.3

Maybe sometimes

antonmedv commented 4 years ago

I am cleaning up on issues. Fill free to reopen if needed. Also, we have a new section available: discussions.