承接 horde/hordectl 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

horde/hordectl

Composer 安装命令:

composer require horde/hordectl

包简介

Scenario deployer library

README 文档

README

Deploy scenarios for end to end tests from yaml files Patch desired configurations into horde backends without touching unrelated content

For a full walkthrough (Ubuntu 24.04, MySQL, Apache or nginx, PHP 8.4, from empty host to logged-in user), see doc/INSTALL_HORDE.md. Developer notes: doc/DEVELOPMENT.md.

Install into your Horde 6 deployment

cd /var/www/horde-dev composer require horde/hordectl

Basic Usage

Show available horde apps

7root@cdcead205371:/var/www/horde-dev# ./vendor/bin/hordectl help Help Found Horde at: /var/www/horde-dev/web/horde Found Application: horde (active) Found Application: imp (inactive) Found Application: ingo (inactive) Found Application: sam (inactive) Found Application: kronolith (inactive) Found Application: turba (inactive) Found Application: nag (inactive) Found Application: mnemo (inactive) Found Application: trean (inactive) Found Application: ansel (inactive) Found Application: wicked (inactive) Found Application: chora (inactive) Found Application: whups (inactive) Found Application: luxor (inactive) Found Application: klutz (inactive) Found Application: jonah (inactive) Found Application: hermes (inactive) Found Application: sesha (inactive) Found Application: kolab (inactive) Found Application: gollem (inactive) Found Application: passwd (inactive) Found Application: agora (inactive) Found Application: ulaform (inactive) Found Application: vilma (inactive) Found Application: content (inactive) Found Application: timeobjects (inactive)

Inject a user or change his password (AKA: Help! I have locked myself out of horde)

If your horde authentication backend allows setting passwords through horde ...

  • SQL Authentication
  • Some types of LDAP/AD authentication with password change option
  • Some types of IMAP setup

You can change the password for an existing user or inject a new user into horde. This is also useful for automated deployment. You can configure horde to use the SQL backend, migrate up the database schema from zero and inject an admin user.

    hordectl patch user fritz mysecretpassword

Remember, this only works if the auth backend supports it.

Export resources to a yaml file

Exported resources are as backend independent as possible. Some backends may limit Horde's ability to expose every user's resources globally. Data format is similar to the internal representation but may deviate where it's appropriate. For example, groups do not export backend keys. When a permission query has per-group permissions, the group will be referenced by display name.

hordectl query user > user.yml
hordectl query group > group.yml
hordectl query permission > permission.yml

These will create individual files for resources. When exporting, order is not important. A syntax for filtering queries or combining resource types into one file is still missing.

Import definitions from a yaml file

hordectl import -f user.yml
hordectl import -f group.yml
hordectl import -f permission.yml

Order might be significant. Permissions won't accept group permissions for groups which are not present in the system yet. Some backends may be readonly and will not allow adding/changing some resources.

See doc dir for detailed explanations of possible input formats and their semantics

Translations

hordectl translation (alias i18n) manages gettext-based translations across every Horde package discovered under a target's installation. It replaces the legacy horde-translation script with a modern PSR-4 implementation and covers the full workflow: extract, merge, compile, init, cleanup, compendium, update-help, make-help and commit. Two additional read-only subcommands, diff and check, compare committed and freshly-regenerated .pot / .po files after normalization so reviewers and CI can tell material changes apart from creation-date churn. Discovery keys off .horde.yml type:, so applications and libraries are picked up automatically without hardcoded package lists. See doc/TRANSLATION.md for details.

Intended uses

If you need a verbatim backup, you might be better off with a snapshot of the database and vfs.

  • Deploy CI/CD scenario content without dependency on DB type or format
  • Reproduce edge cases to demonstrate bugs
  • Inject users/groups/perms into an existing or new installation
  • Demo scenarios
  • Migrate between backend types

Inspirations

  • yaml and similar formats from config management tools, infrastructure as code, kubectl, helm

Will it dump existing content to yaml?

Yes, it does. For any objects defined. Maybe within some limitations. I don't know. It will evolve as I need it.

Will it be a complete backup/restore solution?

Likely not. See horde/backup for a different take on dumping/restoring application content.

Development notes

Builtin commands

help TODO give help on commands in general or on a specific command and its switches and sub commands query output yaml format representations of backend data for which an exporter is either builtin or provided by the app import generate backend data from [potentially incomplete ] yaml repesentations and builder defaults if builtin or provided by the app patch manipulate resources with one-shot commands. app TODO run app specific commands implemented in your app.

horde/hordectl 适用场景与选型建议

horde/hordectl 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.82k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 04 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 horde/hordectl 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 horde/hordectl 我们能提供哪些服务?
定制开发 / 二次开发

基于 horde/hordectl 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.82k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 12
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 6
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: LGPL-2.1-only
  • 更新时间: 2022-04-13