{ "slug": "komodo-swarm", "kind": "swarm", "metadata": { "name": "Komodo", "description": "Build and deployment automation tool for managing Docker deployments, stacks, and builds across multiple servers. Features real-time container monitoring, batch operations, and a web-based management interface.", "tags": [ "traefik", "deployment", "automation" ], "icon": { "provider": "selfhst", "id": "komodo" }, "draft": true, "version": { "name": "2.1.2", "source_dep_name": "ghcr.io/moghtech/komodo-core", "source_dep_version": "2.1.2" } }, "variables": [ { "title": "General", "name": "general", "items": [ { "name": "service_name", "type": "str", "title": "Service Name", "required": false, "default": "komodo", "config": { "placeholder": "komodo" } }, { "name": "container_hostname", "type": "str", "title": "Container Hostname", "required": false, "default": "komodo", "config": { "placeholder": "komodo" } }, { "name": "network_mode", "type": "enum", "title": "Network Mode", "required": false, "default": "bridge", "config": { "options": [ "bridge", "macvlan", "host" ] } }, { "name": "network_macvlan_ipv4_address", "type": "str", "title": "IPv4 Address", "required": false, "default": "", "needs": [ "network_mode=macvlan" ], "config": { "placeholder": "192.0.2.10" } }, { "name": "network_external", "type": "bool", "title": "External Network", "required": false, "default": false }, { "name": "volume_mode", "type": "enum", "title": "Volume Mode", "required": false, "default": "local", "config": { "options": [ "local", "mount", "nfs" ] } }, { "name": "volume_nfs_options", "type": "str", "title": "Volume Nfs Options", "required": false, "default": "", "needs": [ "volume_mode=nfs" ], "config": { "placeholder": "rw,nolock,soft" } }, { "name": "volume_mount_path", "type": "str", "title": "Volume Mount Path", "required": false, "default": "", "needs": [ "volume_mode=mount" ], "config": { "placeholder": "/path/to/storage" } }, { "name": "volume_nfs_server", "type": "str", "title": "Volume Nfs Server", "required": false, "default": "", "needs": [ "volume_mode=nfs" ], "config": { "placeholder": "192.0.2.1" } }, { "name": "volume_nfs_path", "type": "str", "title": "Volume Nfs Path", "required": false, "default": "", "needs": [ "volume_mode=nfs" ], "config": { "placeholder": "/path/to/export" } }, { "name": "network_macvlan_subnet", "type": "str", "title": "Subnet", "required": false, "default": "", "needs": [ "network_mode=macvlan" ], "config": { "placeholder": "192.0.2.0/24" } }, { "name": "network_name", "type": "str", "title": "Network Name", "required": false, "default": "komodo_network", "config": { "placeholder": "komodo_network" } }, { "name": "network_macvlan_parent_interface", "type": "str", "title": "Parent Interface", "required": false, "default": "", "needs": [ "network_mode=macvlan" ], "config": { "placeholder": "eth0" } }, { "name": "network_macvlan_gateway", "type": "str", "title": "Gateway", "required": false, "default": "", "needs": [ "network_mode=macvlan" ], "config": { "placeholder": "192.0.2.1" } } ] }, { "title": "Traefik", "name": "traefik", "toggle": "traefik_enabled", "items": [ { "name": "traefik_enabled", "type": "bool", "title": "Traefik", "required": false, "default": false }, { "name": "traefik_entrypoint", "type": "str", "title": "Entrypoint", "required": true, "default": "web", "config": { "placeholder": "web" } }, { "name": "traefik_host", "type": "str", "title": "Host", "required": true, "config": { "placeholder": "komodo" } }, { "name": "traefik_network", "type": "str", "title": "Network", "required": true, "default": "traefik", "config": { "placeholder": "traefik" } }, { "name": "traefik_domain", "type": "str", "title": "Domain", "required": true, "config": { "placeholder": "home.arpa" } } ] }, { "title": "Traefik TLS", "name": "traefik-tls", "toggle": "traefik_tls_enabled", "items": [ { "name": "traefik_tls_enabled", "type": "bool", "title": "TLS", "required": false, "default": false }, { "name": "traefik_tls_entrypoint", "type": "str", "title": "TLS Entrypoint", "required": true, "default": "websecure", "config": { "placeholder": "websecure" } }, { "name": "traefik_tls_certresolver", "type": "str", "title": "Cert Resolver", "required": true, "default": "cloudflare", "config": { "placeholder": "cloudflare" } } ] }, { "title": "Ports", "name": "ports", "items": [ { "name": "ports_http", "type": "int", "title": "HTTP Port", "required": false, "default": 9120, "needs": [ "traefik_enabled=false", "network_mode=bridge" ], "config": { "placeholder": "9120" } } ] }, { "title": "Resource Limits", "name": "resources", "toggle": "resources_enabled", "items": [ { "name": "resources_enabled", "type": "bool", "title": "Resources Enabled", "required": false, "default": false }, { "name": "resources_cpu_limit", "type": "str", "title": "Resources Cpu Limit", "required": true, "default": 1, "config": { "placeholder": "1" } }, { "name": "resources_cpu_reservation", "type": "str", "title": "Resources Cpu Reservation", "required": true, "default": 0.25, "config": { "placeholder": "0.25" } }, { "name": "resources_memory_limit", "type": "str", "title": "Resources Memory Limit", "required": true, "default": "1G", "config": { "placeholder": "1G" } }, { "name": "resources_memory_reservation", "type": "str", "title": "Resources Memory Reservation", "required": true, "default": "512M", "config": { "placeholder": "512M" } } ] }, { "title": "Environment Variables", "name": "environment", "toggle": "environment_enabled", "items": [ { "name": "environment_enabled", "type": "bool", "title": "Environment", "required": false, "default": true, "description": "Configure environment variables (required)" }, { "name": "environment_database_address", "type": "str", "title": "Database Address", "required": false, "default": "mongodb://database:27017", "description": "Database connection address (MongoDB or FerretDB)", "needs": [ "environment_enabled=true" ], "config": { "placeholder": "mongodb://database:27017" } }, { "name": "environment_database_name", "type": "str", "title": "Database name", "required": false, "default": "komodo", "needs": [ "environment_enabled=true" ], "config": { "placeholder": "komodo" } }, { "name": "environment_database_username", "type": "str", "title": "DB User", "required": false, "default": "", "description": "Database username (optional)", "needs": [ "environment_enabled=true" ], "config": { "placeholder": "komodo" } }, { "name": "environment_database_password", "type": "secret", "title": "DB Password", "required": false, "default": "", "description": "Database password (optional)", "needs": [ "environment_enabled=true" ] }, { "name": "environment_jwt_secret", "type": "secret", "title": "JWT Secret", "required": false, "description": "JWT secret for authentication (auto-generated if empty)", "needs": [ "environment_enabled=true" ], "config": { "autogenerated": { "length": 64 } } }, { "name": "environment_log_level", "type": "enum", "title": "Log level", "required": false, "default": "info", "needs": [ "environment_enabled=true" ], "config": { "options": [ "debug", "info", "warn", "error" ] } } ] } ] }