template.yaml.backup 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. ---
  2. kind: compose
  3. schema: "1.2"
  4. metadata:
  5. name: Komodo
  6. description: |
  7. Build and deployment automation tool for managing software across multiple servers. Komodo provides
  8. unlimited server connections, flexible API access, and comprehensive management of Docker deployments,
  9. stacks, and builds. Features include real-time container monitoring, batch operations, and integration
  10. with Docker, Docker Compose, and build systems. Supports both MongoDB and FerretDB as database backends.
  11. ## Important Notes
  12. * Requires MongoDB or FerretDB for data storage (database not included in this template)
  13. * Requires Periphery agent on managed servers for remote operations
  14. * Web interface and API accessible through configured ports
  15. ## References
  16. * **Project:** https://github.com/moghtech/komodo
  17. * **Documentation:** https://github.com/moghtech/komodo/tree/main/docsite/docs
  18. * **Docker Hub:** https://hub.docker.com/r/moghtech/komodo
  19. version: latest
  20. author: Christian Lempa
  21. date: '2025-11-13'
  22. tags:
  23. - traefik
  24. - swarm
  25. - deployment
  26. - automation
  27. next_steps: |
  28. ### 1. Prerequisites
  29. * Deploy MongoDB or FerretDB database
  30. * Configure database connection in environment variables
  31. * Install Periphery agent on servers you want to manage
  32. ### 2. Deploy the Service
  33. {% if swarm_enabled -%}
  34. Deploy to Docker Swarm:
  35. ```bash
  36. docker stack deploy -c compose.yaml komodo
  37. ```
  38. {% else -%}
  39. Start Komodo using Docker Compose:
  40. ```bash
  41. docker compose up -d
  42. ```
  43. {% endif -%}
  44. ### 3. Access the Web Interface
  45. {% if traefik_enabled -%}
  46. * Navigate to: **https://{{ traefik_host }}.{{ traefik_domain }}**
  47. {% else -%}
  48. * Navigate to: **http://localhost:{{ ports_http }}**
  49. {% endif -%}
  50. * Complete initial setup and create admin user
  51. ### 4. Install Periphery Agent
  52. On each server you want to manage:
  53. ```bash
  54. curl -sSL https://raw.githubusercontent.com/moghtech/komodo/main/scripts/setup-periphery.py | python3
  55. ```
  56. ### 5. Configure Servers
  57. * Add servers to Komodo through the web interface
  58. * Configure API keys for programmatic access
  59. * Start managing deployments, stacks, and builds
  60. spec:
  61. general:
  62. vars:
  63. service_name:
  64. default: "komodo"
  65. container_name:
  66. default: "komodo"
  67. container_hostname:
  68. default: "komodo"
  69. traefik:
  70. vars:
  71. traefik_host:
  72. default: "komodo"
  73. network:
  74. vars:
  75. network_name:
  76. default: "komodo_network"
  77. ports:
  78. vars:
  79. ports_http:
  80. description: "External HTTP port (web interface and API)"
  81. type: int
  82. default: 9120
  83. needs: ["traefik_enabled=false", "network_mode=bridge"]
  84. volume:
  85. vars:
  86. volume_mount_path:
  87. default: "/mnt/storage/komodo"
  88. environment:
  89. title: "Environment Variables"
  90. toggle: environment_enabled
  91. required: true
  92. vars:
  93. environment_enabled:
  94. type: bool
  95. default: true
  96. description: "Configure environment variables (required)"
  97. environment_database_address:
  98. type: str
  99. default: "mongodb://mongo:27017"
  100. description: "Database connection address (MongoDB or FerretDB)"
  101. needs: "environment_enabled=true"
  102. environment_database_name:
  103. type: str
  104. default: "komodo"
  105. description: "Database name"
  106. needs: "environment_enabled=true"
  107. environment_database_username:
  108. type: str
  109. default: ""
  110. description: "Database username (optional)"
  111. needs: "environment_enabled=true"
  112. environment_database_password:
  113. type: str
  114. default: ""
  115. sensitive: true
  116. description: "Database password (optional)"
  117. needs: "environment_enabled=true"
  118. environment_jwt_secret:
  119. type: str
  120. default: ""
  121. sensitive: true
  122. autogenerated: true
  123. description: "JWT secret for authentication (auto-generated if empty)"
  124. needs: "environment_enabled=true"
  125. environment_log_level:
  126. type: enum
  127. default: "info"
  128. options: ["debug", "info", "warn", "error"]
  129. description: "Log level"
  130. needs: "environment_enabled=true"