diff --git a/packages/playground/public/images/icons/domains.png b/packages/playground/public/images/icons/domains.png
new file mode 100644
index 0000000000..dfe4b7b6ce
Binary files /dev/null and b/packages/playground/public/images/icons/domains.png differ
diff --git a/packages/playground/public/info/domains.md b/packages/playground/public/info/domains.md
new file mode 100644
index 0000000000..7b1e41555b
--- /dev/null
+++ b/packages/playground/public/info/domains.md
@@ -0,0 +1,5 @@
+---
+title: Domains
+---
+
+Domains allows users to securely expose servers hosted on local machines or VMs to the public internet. Users are required to specify the machine's IP, which can be a Mycelium IP, Yggdrasil IP, or a public IP (IPv4 or IPv6). For more details, check the [Domains documentation](https://www.manual.grid.tf/documentation/dashboard/solutions/domains.html).
diff --git a/packages/playground/src/components/deployment_data_dialog.vue b/packages/playground/src/components/deployment_data_dialog.vue
index c7473e9d15..453c14e320 100644
--- a/packages/playground/src/components/deployment_data_dialog.vue
+++ b/packages/playground/src/components/deployment_data_dialog.vue
@@ -20,7 +20,9 @@
>
- {{ item.name }}
+ {{
+ contracts && contracts.length === 1 && "name" in contracts ? (contracts as any).name : item.name
+ }}
@@ -28,7 +30,10 @@
-
+
Make sure to create an A record on your name provider with
{{ contract.customDomain }}
@@ -102,6 +107,20 @@
+
+
+
+
+
+
diff --git a/packages/playground/src/components/node_selector/TfDomainName.vue b/packages/playground/src/components/node_selector/TfDomainName.vue
index 13c708b621..b5863adfec 100644
--- a/packages/playground/src/components/node_selector/TfDomainName.vue
+++ b/packages/playground/src/components/node_selector/TfDomainName.vue
@@ -11,7 +11,7 @@
-
+
diff --git a/packages/playground/src/views/solutions_view.vue b/packages/playground/src/views/solutions_view.vue
index 00e297f78b..2bcb5997b9 100644
--- a/packages/playground/src/views/solutions_view.vue
+++ b/packages/playground/src/views/solutions_view.vue
@@ -144,6 +144,13 @@ export default {
icon: "wordpress.png",
route: DashboardRoutes.Applications.Wordpress,
},
+ {
+ title: "Domains",
+ excerpt:
+ "Domains allow users to securely expose servers hosted on local machines or VMs to the public internet.",
+ icon: "domains.png",
+ route: DashboardRoutes.Applications.Domains,
+ },
];
cards = cards.sort((a, b) => a.title.localeCompare(b.title));
diff --git a/packages/playground/src/weblets/tf_deployment_list.vue b/packages/playground/src/weblets/tf_deployment_list.vue
index 6e3d9a2150..067e1ff6e9 100644
--- a/packages/playground/src/weblets/tf_deployment_list.vue
+++ b/packages/playground/src/weblets/tf_deployment_list.vue
@@ -217,6 +217,21 @@
/>
+
+
+
+
+
+
+
+ Deploy a Domains Instance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/yarn.lock b/yarn.lock
index 04215a3e39..bb7a663c68 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4563,12 +4563,12 @@ axios@0.25.0:
dependencies:
follow-redirects "^1.14.7"
-axios@1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267"
- integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==
+axios@1.7.4:
+ version "1.7.4"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2"
+ integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==
dependencies:
- follow-redirects "^1.15.0"
+ follow-redirects "^1.15.6"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
@@ -7300,6 +7300,11 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.7, follow-redirects@^1.14.9, fol
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz"
integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+follow-redirects@^1.15.6:
+ version "1.15.6"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
+ integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"