dooservice-cli


Namedooservice-cli JSON
Version 0.4.10 PyPI version JSON
download
home_pageNone
SummaryProfessional CLI tool for managing Odoo instances with declarative configuration, automated backups, snapshots, and GitHub integration.
upload_time2025-08-29 19:04:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT License Copyright (c) 2023 Your Name Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords odoo docker cli management deployment backup snapshot devops automation orchestration containerization enterprise erp github-integration webhook configuration-management
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DooService CLI

DooService CLI is a professional command-line tool for managing complex Odoo instances using a declarative approach. Define your entire infrastructure in a single `dooservice.yml` file and manage instances, repositories, backups, deployments, and GitHub integration from the command line.

## ✨ Features

- **🔧 Declarative Configuration**: Define all Odoo instances, repositories, and deployments in a single YAML file
- **🚀 Full Instance Lifecycle**: Create, start, stop, sync, and delete instances with simple commands  
- **📁 Repository Management**: Automatically clone and update Odoo addon repositories from Git
- **🐳 Docker Integration**: Native Docker support for deploying Odoo and PostgreSQL containers
- **💾 Backup System**: Create, restore, list, and manage instance backups with database and filestore support
- **📸 Snapshot Management**: Capture complete instance states including configuration, repositories, and modules
- **🐙 GitHub Integration**: OAuth authentication, SSH key management, and webhook-based auto-sync
- **🎣 Webhook Synchronization**: HTTP daemon with signature verification for real-time GitHub updates
- **🔍 Dry-Run Mode**: Preview all operations before executing them with `--dry-run`
- **⚡ High Performance**: Built with clean architecture principles and optimized for speed

## 📦 Installation

### Production Installation

```bash
# Using pipx (recommended)
pipx install dooservice-cli

# Using pip
pip install dooservice-cli

# Verify installation
dooservice --help
```

### Docker Installation

```bash
# Run with Docker
docker run -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock \
  dooservice/cli:latest --help
```

### Development Installation

```bash
# Clone the repository
git clone https://github.com/your-org/dooservice-cli-py.git
cd dooservice-cli

# Install uv (modern Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Install all dependencies
uv sync --all-extras

# Verify installation
uv run dooservice --help
```

For detailed installation instructions, see [INSTALL.md](INSTALL.md).

## 🚀 Quick Start

1. **Initialize Configuration**
   ```bash
   # Copy example configuration
   cp dooservice.yml.example dooservice.yml
   
   # Edit the configuration to match your needs
   nano dooservice.yml
   ```

2. **Validate Configuration**
   ```bash
   dooservice config validate
   ```

3. **Create Your First Instance**
   ```bash
   # Create and start instance (with preview)
   dooservice instance create my-instance --dry-run
   dooservice instance create my-instance --start
   ```

4. **Access Your Instance**
   Your Odoo instance will be running at `http://localhost:8069` (or your configured port)

5. **Manage Your Instance**
   ```bash
   # Check status
   dooservice instance status my-instance
   
   # View logs
   dooservice instance logs my-instance --follow
   
   # Create backup
   dooservice backup create my-instance
   ```

## 📖 Command Reference

### Instance Management
```bash
# Create and manage instances
dooservice instance create <name> [--start] [--dry-run]
dooservice instance start <name>
dooservice instance stop <name>
dooservice instance status <name>
dooservice instance logs <name> [--follow] [--tail <lines>]
dooservice instance sync <name> [--dry-run]
dooservice instance delete <name> [--dry-run]
dooservice instance exec-web <name>
dooservice instance exec-db <name>
```

### Repository Management
```bash
# Update addon repositories
dooservice repo update <repository_name>
dooservice repo update-all
```

### Configuration Management
```bash
# Validate and manage configuration
dooservice config validate
dooservice lock generate
```

### Backup Operations
```bash
# Create and manage backups
dooservice backup create <instance> [--dry-run] [--description <text>]
dooservice backup restore <backup_id> <target_instance> [--dry-run]
dooservice backup list [--instance <name>]
dooservice backup delete <backup_id>
```

### Snapshot Management
```bash
# Create and manage snapshots
dooservice snapshot create <instance> [--tag <tag>] [--dry-run]
dooservice snapshot restore <snapshot_id> <target> [--dry-run]
dooservice snapshot list [--instance <name>]
dooservice snapshot delete <snapshot_id>
```

### GitHub Integration
```bash
# Authentication
dooservice github login
dooservice github logout
dooservice github status

# SSH Key Management
dooservice github key list
dooservice github key add <title> <key_file>
dooservice github key remove <key_id>

# Repository Watchers
dooservice github watch add <repo> <instance> [--action <action>]
dooservice github watch remove <repo> <instance>
dooservice github watch list

# Webhook Synchronization
dooservice github listen start [--port <port>] [--host <host>]
dooservice github listen stop
dooservice github listen status
dooservice github listen logs [--follow]

# Webhook Synchronization Service
dooservice github sync start [--port <port>] [--daemon]
dooservice github sync stop
dooservice github sync status
```


## 📚 Configuration

The `dooservice.yml` file is the heart of DooService CLI. It defines your entire Odoo infrastructure in a declarative way.

### Basic Structure

```yaml
# Global repositories that can be used by instances
repositories:
  my-addons:
    url: "https://github.com/your-org/odoo-addons.git"
    branch: "main"

# Instance definitions
instances:
  production:
    odoo_version: "17.0"
    data_dir: "/opt/odoo-data/production"
    
    ports:
      web: 8069
      db: 5432
    
    repositories:
      - my-addons
    
    env_vars:
      ODOO_DB_NAME: "production_db"
      ODOO_DB_PASSWORD: "secure_password"
    
    deployment:
      docker:
        web:
          image: "odoo:17.0"
          container_name: "production-odoo"
        db:
          image: "postgres:15"
          container_name: "production-db"
```

### Advanced Features

- **🔄 Variable Substitution**: Use `${data_dir}` and `${env_vars.VARIABLE}` placeholders
- **🐳 Docker Health Checks**: Configure container health monitoring  
- **📁 Custom Paths**: Define paths for configs, addons, logs, and filestore
- **🔒 Environment Variables**: Secure configuration with environment-based secrets
- **🎯 Multiple Environments**: Define development, staging, and production instances
- **🐙 GitHub Integration**: OAuth authentication and webhook-based repository synchronization
- **🎣 Webhook Automation**: Automatic instance updates on repository changes

See `dooservice.yml.example` for a complete configuration example.

## 🤝 Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.

## 📜 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🆘 Support

- 📖 [Documentation](https://github.com/your-org/dooservice-cli-py)
- 🐛 [Issues](https://github.com/your-org/dooservice-cli-py/issues)
- 💬 [Discussions](https://github.com/your-org/dooservice-cli-py/discussions)


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "dooservice-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "DooService Development Team <principal@apiservicesac.com>",
    "keywords": "odoo, docker, cli, management, deployment, backup, snapshot, devops, automation, orchestration, containerization, enterprise, erp, github-integration, webhook, configuration-management",
    "author": null,
    "author_email": "DooService Development Team <principal@apiservicesac.com>, API SERVICE SAC <principal@apiservicesac.com>",
    "download_url": "https://files.pythonhosted.org/packages/41/6e/b826ec7f74f9547026c28b8467469f513814f9c96611656b3371e1589ca2/dooservice_cli-0.4.10.tar.gz",
    "platform": null,
    "description": "# DooService CLI\n\nDooService CLI is a professional command-line tool for managing complex Odoo instances using a declarative approach. Define your entire infrastructure in a single `dooservice.yml` file and manage instances, repositories, backups, deployments, and GitHub integration from the command line.\n\n## \u2728 Features\n\n- **\ud83d\udd27 Declarative Configuration**: Define all Odoo instances, repositories, and deployments in a single YAML file\n- **\ud83d\ude80 Full Instance Lifecycle**: Create, start, stop, sync, and delete instances with simple commands  \n- **\ud83d\udcc1 Repository Management**: Automatically clone and update Odoo addon repositories from Git\n- **\ud83d\udc33 Docker Integration**: Native Docker support for deploying Odoo and PostgreSQL containers\n- **\ud83d\udcbe Backup System**: Create, restore, list, and manage instance backups with database and filestore support\n- **\ud83d\udcf8 Snapshot Management**: Capture complete instance states including configuration, repositories, and modules\n- **\ud83d\udc19 GitHub Integration**: OAuth authentication, SSH key management, and webhook-based auto-sync\n- **\ud83c\udfa3 Webhook Synchronization**: HTTP daemon with signature verification for real-time GitHub updates\n- **\ud83d\udd0d Dry-Run Mode**: Preview all operations before executing them with `--dry-run`\n- **\u26a1 High Performance**: Built with clean architecture principles and optimized for speed\n\n## \ud83d\udce6 Installation\n\n### Production Installation\n\n```bash\n# Using pipx (recommended)\npipx install dooservice-cli\n\n# Using pip\npip install dooservice-cli\n\n# Verify installation\ndooservice --help\n```\n\n### Docker Installation\n\n```bash\n# Run with Docker\ndocker run -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock \\\n  dooservice/cli:latest --help\n```\n\n### Development Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/your-org/dooservice-cli-py.git\ncd dooservice-cli\n\n# Install uv (modern Python package manager)\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n\n# Install all dependencies\nuv sync --all-extras\n\n# Verify installation\nuv run dooservice --help\n```\n\nFor detailed installation instructions, see [INSTALL.md](INSTALL.md).\n\n## \ud83d\ude80 Quick Start\n\n1. **Initialize Configuration**\n   ```bash\n   # Copy example configuration\n   cp dooservice.yml.example dooservice.yml\n   \n   # Edit the configuration to match your needs\n   nano dooservice.yml\n   ```\n\n2. **Validate Configuration**\n   ```bash\n   dooservice config validate\n   ```\n\n3. **Create Your First Instance**\n   ```bash\n   # Create and start instance (with preview)\n   dooservice instance create my-instance --dry-run\n   dooservice instance create my-instance --start\n   ```\n\n4. **Access Your Instance**\n   Your Odoo instance will be running at `http://localhost:8069` (or your configured port)\n\n5. **Manage Your Instance**\n   ```bash\n   # Check status\n   dooservice instance status my-instance\n   \n   # View logs\n   dooservice instance logs my-instance --follow\n   \n   # Create backup\n   dooservice backup create my-instance\n   ```\n\n## \ud83d\udcd6 Command Reference\n\n### Instance Management\n```bash\n# Create and manage instances\ndooservice instance create <name> [--start] [--dry-run]\ndooservice instance start <name>\ndooservice instance stop <name>\ndooservice instance status <name>\ndooservice instance logs <name> [--follow] [--tail <lines>]\ndooservice instance sync <name> [--dry-run]\ndooservice instance delete <name> [--dry-run]\ndooservice instance exec-web <name>\ndooservice instance exec-db <name>\n```\n\n### Repository Management\n```bash\n# Update addon repositories\ndooservice repo update <repository_name>\ndooservice repo update-all\n```\n\n### Configuration Management\n```bash\n# Validate and manage configuration\ndooservice config validate\ndooservice lock generate\n```\n\n### Backup Operations\n```bash\n# Create and manage backups\ndooservice backup create <instance> [--dry-run] [--description <text>]\ndooservice backup restore <backup_id> <target_instance> [--dry-run]\ndooservice backup list [--instance <name>]\ndooservice backup delete <backup_id>\n```\n\n### Snapshot Management\n```bash\n# Create and manage snapshots\ndooservice snapshot create <instance> [--tag <tag>] [--dry-run]\ndooservice snapshot restore <snapshot_id> <target> [--dry-run]\ndooservice snapshot list [--instance <name>]\ndooservice snapshot delete <snapshot_id>\n```\n\n### GitHub Integration\n```bash\n# Authentication\ndooservice github login\ndooservice github logout\ndooservice github status\n\n# SSH Key Management\ndooservice github key list\ndooservice github key add <title> <key_file>\ndooservice github key remove <key_id>\n\n# Repository Watchers\ndooservice github watch add <repo> <instance> [--action <action>]\ndooservice github watch remove <repo> <instance>\ndooservice github watch list\n\n# Webhook Synchronization\ndooservice github listen start [--port <port>] [--host <host>]\ndooservice github listen stop\ndooservice github listen status\ndooservice github listen logs [--follow]\n\n# Webhook Synchronization Service\ndooservice github sync start [--port <port>] [--daemon]\ndooservice github sync stop\ndooservice github sync status\n```\n\n\n## \ud83d\udcda Configuration\n\nThe `dooservice.yml` file is the heart of DooService CLI. It defines your entire Odoo infrastructure in a declarative way.\n\n### Basic Structure\n\n```yaml\n# Global repositories that can be used by instances\nrepositories:\n  my-addons:\n    url: \"https://github.com/your-org/odoo-addons.git\"\n    branch: \"main\"\n\n# Instance definitions\ninstances:\n  production:\n    odoo_version: \"17.0\"\n    data_dir: \"/opt/odoo-data/production\"\n    \n    ports:\n      web: 8069\n      db: 5432\n    \n    repositories:\n      - my-addons\n    \n    env_vars:\n      ODOO_DB_NAME: \"production_db\"\n      ODOO_DB_PASSWORD: \"secure_password\"\n    \n    deployment:\n      docker:\n        web:\n          image: \"odoo:17.0\"\n          container_name: \"production-odoo\"\n        db:\n          image: \"postgres:15\"\n          container_name: \"production-db\"\n```\n\n### Advanced Features\n\n- **\ud83d\udd04 Variable Substitution**: Use `${data_dir}` and `${env_vars.VARIABLE}` placeholders\n- **\ud83d\udc33 Docker Health Checks**: Configure container health monitoring  \n- **\ud83d\udcc1 Custom Paths**: Define paths for configs, addons, logs, and filestore\n- **\ud83d\udd12 Environment Variables**: Secure configuration with environment-based secrets\n- **\ud83c\udfaf Multiple Environments**: Define development, staging, and production instances\n- **\ud83d\udc19 GitHub Integration**: OAuth authentication and webhook-based repository synchronization\n- **\ud83c\udfa3 Webhook Automation**: Automatic instance updates on repository changes\n\nSee `dooservice.yml.example` for a complete configuration example.\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.\n\n## \ud83d\udcdc License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83c\udd98 Support\n\n- \ud83d\udcd6 [Documentation](https://github.com/your-org/dooservice-cli-py)\n- \ud83d\udc1b [Issues](https://github.com/your-org/dooservice-cli-py/issues)\n- \ud83d\udcac [Discussions](https://github.com/your-org/dooservice-cli-py/discussions)\n\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023 Your Name  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Professional CLI tool for managing Odoo instances with declarative configuration, automated backups, snapshots, and GitHub integration.",
    "version": "0.4.10",
    "project_urls": {
        "Changelog": "https://github.com/apiservicesac/dooservice-cli-py/releases",
        "Documentation": "https://github.com/apiservicesac/dooservice-cli-py#readme",
        "Homepage": "https://apiservicesac.com",
        "Issues": "https://github.com/apiservicesac/dooservice-cli-py/issues",
        "Repository": "https://github.com/apiservicesac/dooservice-cli-py"
    },
    "split_keywords": [
        "odoo",
        " docker",
        " cli",
        " management",
        " deployment",
        " backup",
        " snapshot",
        " devops",
        " automation",
        " orchestration",
        " containerization",
        " enterprise",
        " erp",
        " github-integration",
        " webhook",
        " configuration-management"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "daf316e04fdf1fb5fe29a765e43930c09a3a83bf9d53f8e672baf8ef2e3495fc",
                "md5": "235abac6b88af42b65c9401d22418e3f",
                "sha256": "8ffbb685d6e8db47ee882da1dba3cf6c385132c27fa4ce4eb412a31b9d943ea9"
            },
            "downloads": -1,
            "filename": "dooservice_cli-0.4.10-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "235abac6b88af42b65c9401d22418e3f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 209450,
            "upload_time": "2025-08-29T19:04:29",
            "upload_time_iso_8601": "2025-08-29T19:04:29.757866Z",
            "url": "https://files.pythonhosted.org/packages/da/f3/16e04fdf1fb5fe29a765e43930c09a3a83bf9d53f8e672baf8ef2e3495fc/dooservice_cli-0.4.10-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "416eb826ec7f74f9547026c28b8467469f513814f9c96611656b3371e1589ca2",
                "md5": "8399e7c70b875c4d960e25b0f2d50278",
                "sha256": "34f8ce1b604724c3a4e270111f8adee9f2f30dea82c81a06d3969fe7eb40ac9a"
            },
            "downloads": -1,
            "filename": "dooservice_cli-0.4.10.tar.gz",
            "has_sig": false,
            "md5_digest": "8399e7c70b875c4d960e25b0f2d50278",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 142757,
            "upload_time": "2025-08-29T19:04:31",
            "upload_time_iso_8601": "2025-08-29T19:04:31.227411Z",
            "url": "https://files.pythonhosted.org/packages/41/6e/b826ec7f74f9547026c28b8467469f513814f9c96611656b3371e1589ca2/dooservice_cli-0.4.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-29 19:04:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "apiservicesac",
    "github_project": "dooservice-cli-py",
    "github_not_found": true,
    "lcname": "dooservice-cli"
}
        
Elapsed time: 0.42835s