|
| 1 | +--- |
| 2 | +# generated by https://github.com/hashicorp/terraform-plugin-docs |
| 3 | +page_title: "elestio_audiomuse_ai Resource - terraform-provider-elestio" |
| 4 | +subcategory: "Services: Applications" |
| 5 | +description: |- |
| 6 | + AudioMuse-AI is a self-hosted, Dockerized music playlist generator using sonic analysis to discover related tracks for Jellyfin, Navidrome, LMS, Lyrion, and Emby: no metadata or external APIs needed.The elestio_audiomuse_ai resource allows the creation and management of Elestio AudioMuse-AI services. The service uses the following docker image ghcr.io/neptunehub/audiomuse-ai https://hub.docker.com/r/ghcr.io/neptunehub/audiomuse-ai |
| 7 | +--- |
| 8 | + |
| 9 | +# elestio_audiomuse_ai (Resource) |
| 10 | + |
| 11 | +<img src="https://cf.appdrag.com/dashboard-openvm-clo-b2d42c/uploads/AudioMuse-AI-YE90.png" width="100" /><br>AudioMuse-AI is a self-hosted, Dockerized music playlist generator using sonic analysis to discover related tracks for Jellyfin, Navidrome, LMS, Lyrion, and Emby: no metadata or external APIs needed.<br><br>The **elestio_audiomuse_ai** resource allows the creation and management of Elestio AudioMuse-AI services. The service uses the following docker image [ghcr.io/neptunehub/audiomuse-ai](https://hub.docker.com/r/ghcr.io/neptunehub/audiomuse-ai) |
| 12 | + |
| 13 | +## Example Usage |
| 14 | + |
| 15 | +```terraform |
| 16 | +resource "elestio_audiomuse_ai" "example" { |
| 17 | + project_id = "2500" |
| 18 | + version = "latest" |
| 19 | + provider_name = "netcup" |
| 20 | + datacenter = "nbg" |
| 21 | + server_type = "MEDIUM-2C-4G" |
| 22 | +
|
| 23 | + # Default firewall rules |
| 24 | + firewall_user_rules = [ |
| 25 | + # Required system ports |
| 26 | + { |
| 27 | + "type" = "input" |
| 28 | + "port" = "22" |
| 29 | + "protocol" = "tcp" |
| 30 | + "targets" = ["0.0.0.0/0", "::/0"] |
| 31 | + }, |
| 32 | + { |
| 33 | + "type" = "input" |
| 34 | + "port" = "4242" |
| 35 | + "protocol" = "udp" |
| 36 | + "targets" = ["0.0.0.0/0", "::/0"] |
| 37 | + }, |
| 38 | + # Application ports |
| 39 | + { |
| 40 | + "type" = "input" |
| 41 | + "port" = "80" |
| 42 | + "protocol" = "tcp" |
| 43 | + "targets" = ["0.0.0.0/0", "::/0"] |
| 44 | + }, |
| 45 | + { |
| 46 | + "type" = "input" |
| 47 | + "port" = "443" |
| 48 | + "protocol" = "tcp" |
| 49 | + "targets" = ["0.0.0.0/0", "::/0"] |
| 50 | + }, |
| 51 | + { |
| 52 | + "type" = "input" |
| 53 | + "port" = "35406" |
| 54 | + "protocol" = "tcp" |
| 55 | + "targets" = ["0.0.0.0/0", "::/0"] |
| 56 | + } |
| 57 | + ] |
| 58 | +} |
| 59 | +``` |
| 60 | + |
| 61 | +<!-- schema generated by tfplugindocs --> |
| 62 | +## Schema |
| 63 | + |
| 64 | +### Required |
| 65 | + |
| 66 | +- `datacenter` (String) The datacenter of the provider where the service will be hosted. You can look for available datacenters in the [providers documentation](https://registry.terraform.io/providers/elestio/elestio/latest/docs/guides/providers_datacenters_server_types). Requires replace to change it. |
| 67 | +- `project_id` (String) Identifier of the project in which the service is. Requires replace to change it. |
| 68 | +- `provider_name` (String) The name of the provider to use to host the service (must be lowercase). Common providers: `hetzner`, `do`, `lightsail`, `linode`, `vultr`, `scaleway`, `netcup`. You can look for available provider names in the [providers documentation](https://registry.terraform.io/providers/elestio/elestio/latest/docs/guides/providers_datacenters_server_types). Requires replace to change it. |
| 69 | +- `server_type` (String) The server type defines the power and memory allocated to the service. Each `provider_name` has a list of available server types. You can look for available server types in the [providers documentation](https://registry.terraform.io/providers/elestio/elestio/latest/docs/guides/providers_datacenters_server_types). You can only upgrade it, not downgrade.<br/>Requires replace to update the server type with the provider `scale_way`. |
| 70 | + |
| 71 | +### Optional |
| 72 | + |
| 73 | +- `admin_email` (String) Service admin email. Requires replace to change it. |
| 74 | +- `alerts_enabled` (Boolean) Service alerts state. **Default** `true`. |
| 75 | +- `app_auto_updates_enabled` (Boolean) Service app auto update state. **Default** `true`. |
| 76 | +- `backups_enabled` (Boolean) Service backups state. Requires a support_level higher than `level1`. **Default** `false`. |
| 77 | +- `custom_domain_names` (Set of String) Indicate the list of domains for which you want to activate HTTPS / TLS / SSL. You will also need to create a DNS entry on your domain name (from your registrar control panel) pointing to your service. You must create a CNAME record pointing to the service `cname` value. Alternatively, you can create an A record pointing to the service `ipv4` value. |
| 78 | +- `default_password` (String) Set the default password used by you services at **CREATION** time.</br>The password can only contain alphanumeric characters or hyphens `-`. Require at least 10 characters, one uppercase letter, one lowercase letter and one number.</br>If you don't set a password, a random one will be generated by the API.</br>This attribute will **not be synced** after the creation. Use `admin.password` or `database_admin.password` to get the current password after the creation. |
| 79 | +- `firewall_enabled` (Boolean) Service firewall state. **Default** `true`. |
| 80 | +- `firewall_remove_tool_ports` (Boolean) When `true`, removes API-managed tool ports (VS Code, Terminal, etc.) that are not explicitly defined in `firewall_user_rules`. Tool ports explicitly included in `firewall_user_rules` are user-managed and will always be preserved. **Default** `false`. Use temporarily for cleanup, then reset to `false`. |
| 81 | +- `firewall_user_rules` (Attributes Set) Firewall rules for the service. **Required ports (must use exactly `["0.0.0.0/0", "::/0"]`):** `22/tcp` (SSH), `4242/udp` (Nebula VPN), `80/tcp` (Let's Encrypt for custom domains). When `firewall_enabled` is `false`, set to `[]`. **Software default ports:** `80/tcp`, `443/tcp`, `35406/tcp`. (see [below for nested schema](#nestedatt--firewall_user_rules)) |
| 82 | +- `keep_backups_on_delete_enabled` (Boolean) Creates a backup and keeps all existing ones after deleting the service. If the project is deleted, the backups will be lost. **Default** `true`. |
| 83 | +- `local_field` (Dynamic) This field is dynamic and can be used to store any custom data that you want to retrieve later in your configuration. It is not used by the provider. |
| 84 | +- `local_field_sensitive` (Dynamic, Sensitive) Same as `local_field` but the value is sensitive. |
| 85 | +- `remote_backups_enabled` (Boolean) Service remote backups state. **Default** `true`. |
| 86 | +- `server_name` (String) Service server name. Max length 60 characters, and can only include lowercase letters a-z, digits 0-9, and hyphens (-). Must be unique within the project. Requires replace to change it. |
| 87 | +- `ssh_keys` (Attributes Set, Deprecated) This attribute allows you to add SSH keys to your service. (see [below for nested schema](#nestedatt--ssh_keys)) |
| 88 | +- `ssh_public_keys` (Attributes Set) You can add Public Keys to your resource to access it via the SSH protocol. (see [below for nested schema](#nestedatt--ssh_public_keys)) |
| 89 | +- `support_level` (String) Service support level. Available support levels are `level1`, `level2` and `level3`. You can look for their advantages in the [pricing documentation](https://elest.io/pricing). Requires replace the whole resource to change it in terraform. It is recommended to use the web dashboard to change it without replacing the service. |
| 90 | +- `system_auto_updates_enabled` (Boolean) Service system auto update state. **Default** `true`. |
| 91 | +- `system_auto_updates_security_patches_only_enabled` (Boolean) Service system auto update security patches only state. **Default** `false`. |
| 92 | +- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts)) |
| 93 | +- `version` (String) This is the version of the software used as service. **Default** `latest`. |
| 94 | + |
| 95 | +### Read-Only |
| 96 | + |
| 97 | +- `admin` (Attributes, Sensitive) Service admin. (see [below for nested schema](#nestedatt--admin)) |
| 98 | +- `admin_user` (String) Service admin user. |
| 99 | +- `app_auto_updates_day_of_week` (Number) Service app auto update day of week. `0 = Sunday`, `1 = Monday`, ..., `6 = Saturday`, `-1 = Everyday` |
| 100 | +- `app_auto_updates_hour` (Number) Service app auto update hour. |
| 101 | +- `app_auto_updates_minute` (Number) Service app auto update minute. |
| 102 | +- `category` (String) Service category. |
| 103 | +- `city` (String) Service city. |
| 104 | +- `cname` (String) Service CNAME. |
| 105 | +- `cores` (Number) Service cores. |
| 106 | +- `country` (String) Service country. |
| 107 | +- `created_at` (String) Service creation date. |
| 108 | +- `creator_name` (String) Service creator name. |
| 109 | +- `database_admin` (Attributes, Sensitive) Service database admin. (see [below for nested schema](#nestedatt--database_admin)) |
| 110 | +- `deployment_ended_at` (String) Service deployment endedAt date. |
| 111 | +- `deployment_started_at` (String) Service deployment startedAt date. |
| 112 | +- `deployment_status` (String) Service deployement status. |
| 113 | +- `elestio_id` (Number) Service identifier unique and handled by Elestio. |
| 114 | +- `env` (Map of String, Sensitive) Service environment variables. |
| 115 | +- `external_backups_enabled` (Boolean) Service external backups state. **Default** `false`. |
| 116 | +- `external_backups_retain_day_of_week` (Number) Service external backups retain day of week. `0 = Sunday`, `1 = Monday`, ..., `6 = Saturday`, `-1 = Everyday` |
| 117 | +- `external_backups_update_day_of_week` (Number) Service external backups update day. `0 = Sunday`, `1 = Monday`, ..., `6 = Saturday`, `-1 = Everyday` |
| 118 | +- `external_backups_update_hour` (Number) Service external backups update hour. |
| 119 | +- `external_backups_update_minute` (Number) Service external backups update minute. |
| 120 | +- `external_backups_update_type` (String) Service external backups update type. |
| 121 | +- `firewall_id` (String) Service firewall id. |
| 122 | +- `firewall_ports` (String) Service firewall ports. |
| 123 | +- `firewall_tool_rules` (Attributes Set) API-managed tool ports (VS Code, Terminal, File Explorer, etc.) that are not explicitly defined in `firewall_user_rules`. These ports are automatically managed by the API and will be preserved unless `firewall_remove_tool_ports` is set to `true`. If you want to manage a tool port yourself, include it explicitly in `firewall_user_rules`. (see [below for nested schema](#nestedatt--firewall_tool_rules)) |
| 124 | +- `global_ip` (String) Service global IP. |
| 125 | +- `id` (String) Service identifier handled by the provider. The format can change. |
| 126 | +- `ipv4` (String) Service IPv4. |
| 127 | +- `ipv6` (String) Service IPv6. |
| 128 | +- `last_updated` (String) |
| 129 | +- `price_per_hour` (String) Service price per hour. |
| 130 | +- `ram_size_gb` (String) Service ram size in GB. |
| 131 | +- `root_app_path` (String) Service root app path. |
| 132 | +- `status` (String) Service status. |
| 133 | +- `storage_size_gb` (Number) Service storage size in GB. |
| 134 | +- `system_auto_updates_reboot_day_of_week` (Number) Service system auto update reboot day of week. `0 = Sunday`, `1 = Monday`, ..., `6 = Saturday`, `-1 = Everyday` |
| 135 | +- `system_auto_updates_reboot_hour` (Number) Service system auto update reboot hour. |
| 136 | +- `system_auto_updates_reboot_minute` (Number) Service system auto update reboot minute. |
| 137 | +- `template_id` (Number) The template identifier defines the software used. You can look for available template ids in the [templates documentation](https://elest.io/fully-managed-services). |
| 138 | +- `traffic_included` (Number) Service traffic included. |
| 139 | +- `traffic_incoming` (Number) Service traffic incoming. |
| 140 | +- `traffic_outgoing` (Number) Service traffic outgoing. |
| 141 | + |
| 142 | +<a id="nestedatt--firewall_user_rules"></a> |
| 143 | +### Nested Schema for `firewall_user_rules` |
| 144 | + |
| 145 | +Required: |
| 146 | + |
| 147 | +- `port` (String) Port number (`80`, `443`) or range (`8000-9000`). |
| 148 | +- `protocol` (String) The protocol (`tcp` or `udp`). |
| 149 | +- `targets` (Set of String) CIDR blocks allowed to access this port. Use `["0.0.0.0/0", "::/0"]` to allow access from all IPv4/IPv6 addresses. **Note:** Required system ports (22/tcp/input, 4242/udp/input, and 80/tcp/input when using custom domains) must have exactly these two targets and cannot have additional target restrictions. |
| 150 | +- `type` (String) The firewall rule type. Currently only `input` is supported. |
| 151 | + |
| 152 | + |
| 153 | +<a id="nestedatt--ssh_keys"></a> |
| 154 | +### Nested Schema for `ssh_keys` |
| 155 | + |
| 156 | +Required: |
| 157 | + |
| 158 | +- `key_name` (String) SSH Key Name. |
| 159 | +- `public_key` (String, Deprecated) SSH Public Key.The SSH public key should only contain two parts separated by a space. Example: `ssh-rsa AAaCfa...WAqDUNs=`. You should not include the username, hostname, or comment. |
| 160 | + |
| 161 | + |
| 162 | +<a id="nestedatt--ssh_public_keys"></a> |
| 163 | +### Nested Schema for `ssh_public_keys` |
| 164 | + |
| 165 | +Required: |
| 166 | + |
| 167 | +- `key_data` (String) The Public Key value without comment. Use `provider::elestio::parse_ssh_key_data(file("~/.ssh/id_rsa.pub"))` to remove the comment from your key. Read the guide ["How to use SSH keys with Elestio Terraform Provider"](https://registry.terraform.io/providers/elestio/elestio/latest/docs/guides/ssh_keys). |
| 168 | +- `username` (String) The username is used to identify the Public Key among others. Must be unique (per resource). |
| 169 | + |
| 170 | + |
| 171 | +<a id="nestedblock--timeouts"></a> |
| 172 | +### Nested Schema for `timeouts` |
| 173 | + |
| 174 | +Optional: |
| 175 | + |
| 176 | +- `create` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). |
| 177 | +- `delete` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. |
| 178 | +- `update` (String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). |
| 179 | + |
| 180 | + |
| 181 | +<a id="nestedatt--admin"></a> |
| 182 | +### Nested Schema for `admin` |
| 183 | + |
| 184 | +Read-Only: |
| 185 | + |
| 186 | +- `password` (String) Service admin password. |
| 187 | +- `url` (String) Service admin URL. |
| 188 | +- `user` (String) Service admin user. |
| 189 | + |
| 190 | + |
| 191 | +<a id="nestedatt--database_admin"></a> |
| 192 | +### Nested Schema for `database_admin` |
| 193 | + |
| 194 | +Read-Only: |
| 195 | + |
| 196 | +- `command` (String) Service database admin command. |
| 197 | +- `host` (String) Service database admin host. |
| 198 | +- `password` (String) Service database admin password. |
| 199 | +- `port` (String) Service database admin port. |
| 200 | +- `user` (String) Service database admin user. |
| 201 | + |
| 202 | + |
| 203 | +<a id="nestedatt--firewall_tool_rules"></a> |
| 204 | +### Nested Schema for `firewall_tool_rules` |
| 205 | + |
| 206 | +Read-Only: |
| 207 | + |
| 208 | +- `name` (String) The tool name. |
| 209 | +- `port` (String) Port number. |
| 210 | +- `protocol` (String) The protocol. |
| 211 | +- `targets` (Set of String) CIDR blocks allowed to access this port. |
| 212 | +- `type` (String) The firewall rule type. |
| 213 | + |
| 214 | +## Import |
| 215 | + |
| 216 | +Import is supported using the following syntax: |
| 217 | + |
| 218 | +```shell |
| 219 | +# Import a AudioMuse-AI service by specifying the Project ID it belongs to, and the AudioMuse-AI service ID (spaced by a comma). |
| 220 | +terraform import elestio_audiomuse_ai.my_audiomuse_ai project_id,audiomuse_ai_service_id |
| 221 | +``` |
0 commit comments