Skip to main content

Multi-Server, Multi-App, Multi-Service Orchestrator.

Project description

DHermes — Multi-Server, Multi-App Enviroments Orchestrator (DevOps-as-Code)

Hermes is a robust and extensible environment manager designed to orchestrate complex DevOps workflows across multiple servers, applications, and services.

It provides a DevOps-as-Code interface that simplifies:

  • Infrastructure provisioning
  • Application deployment
  • Service lifecycle management
  • Event-driven automation
  • Secure multi-server credentials handling

Built with flexibility and scalability in mind, Hermes allows teams to define environments declaratively using a lightweight DSL (YAML), enabling:

  • Seamless coordination of distributed deployments
  • Reusable, composable event hooks (e.g., onDeploy, onUpdate)
  • Specific Environment server/app/service configurations
  • Importable configuration modules for better DRY practices

Use Cases

  • Deploy microservices to different VMs with event-triggered hooks
  • Spin up isolated dev/stage/prod environments with different configs
  • Automate CI/CD operations per service/app/server or global
  • Centralize infrastructure configuration in a single source of truth

Hermes File Structure

# File Extends
import?:
    - ...

# Server Dict
servers?:

    # Server
    <id>:
    server_name?:
    credentials: # Must contain either file or the other fields
        file: ".env.hermes"  
        project_id: ...
        vm_name: ...
        host_address: ...
        user: ...
        ssh_key: ...
    env: <file>

    # Apps
    apps?:
        # Must contain repository+branch and/or images
        <id>:
        app_name?: 
        repository?: 
        branch?: 
        images?:
        - ...
        services: 
        events?: 
        - ...

    # Server service-compose
    services?: <server_compose> # no tested

# Event Dict (interrupt + body)
events?:

    # Event
    <id>:
    when?: (default=call)

    # Body (actions & in-time calls)
    push?: 
        - from: <path>
        to: <path=server_root>
        - ...
    pull?: 
        - from: <path=server_path> 
        to: <path=call_root>   
        - ...
    remove?: 
        - path: <path>
        - ...
    migrate?: 
        - from: <path> 
        to: <path>    
        - ...

    call?:
        - <event>: <scope=self> 

    run_local:
        - ...
    run_serverside:
        - ...

    # annonymous loop func
    loop?:
        break: <event>
        # ... funcs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hermes_deployer-0.3.4.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hermes_deployer-0.3.4-py3-none-any.whl (45.9 kB view details)

Uploaded Python 3

File details

Details for the file hermes_deployer-0.3.4.tar.gz.

File metadata

  • Download URL: hermes_deployer-0.3.4.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hermes_deployer-0.3.4.tar.gz
Algorithm Hash digest
SHA256 262a725c5961640d14a130f7511d0d8022e79efb1adbbf2f70195a4366878cdd
MD5 1db0cc57c1cc574f27d5890d61f1f305
BLAKE2b-256 35b04bc6d42738b14488f4b2eefb2b1823c8b5f948233b5048133d9a1542ccb6

See more details on using hashes here.

File details

Details for the file hermes_deployer-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for hermes_deployer-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7987f7518d446782ba38bcc1ebbcdd4eb6bc22f914aebef23341c3f862102951
MD5 e9807a4893ccef051a7fb87cf7bb46a4
BLAKE2b-256 d3b0d19a2e2731d6f6d40c32814eba662649282b2afccb5b5d851159d2737c16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page