Skip to content

Commit ff60db6

Browse files
adamkrimclaude
andcommitted
Update templates and add v0.29.0 changelog
Add new services (audiomuse_ai, erugo, garage, ghostfolio, glean, hermes, netbox, rustfs, seaweedfs, temporal), update existing ones, and document v0.29.0 covering configurable operation timeouts and the services update. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 9856560 commit ff60db6

46 files changed

Lines changed: 2963 additions & 37 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,3 +367,29 @@ New services:
367367
- `elestio_pgduckdb`
368368
- `elestio_shinyserver`
369369
- `elestio_unibee`
370+
371+
## v0.29.0
372+
373+
### Configurable operation timeouts
374+
375+
- **New block:** `timeouts` on every service resource. Configure how long the provider waits for `create`, `update`, and `delete` operations to complete.
376+
- The default per-operation timeout is now **20 minutes** (raised from 15 minutes).
377+
- The create error message now suggests increasing the timeout when a service takes longer to provision than the wait allows.
378+
- **New guide:** Operation Timeouts.
379+
380+
### Services update
381+
382+
- Introduced several new services and updated existing ones.
383+
384+
New services:
385+
386+
- `elestio_audiomuse_ai`
387+
- `elestio_erugo`
388+
- `elestio_garage`
389+
- `elestio_ghostfolio`
390+
- `elestio_glean`
391+
- `elestio_hermes`
392+
- `elestio_netbox`
393+
- `elestio_rustfs`
394+
- `elestio_seaweedfs`
395+
- `elestio_temporal`

docs/resources/audiomuse_ai.md

Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,221 @@
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

Comments
 (0)