From 6eba45048a1b3309bfe448677a1ac02ded19015b Mon Sep 17 00:00:00 2001 From: Samuel K Date: Wed, 24 Jun 2026 06:53:47 -0500 Subject: [PATCH 1/2] feat(assets): host static assets on assets.devsy.sh Add a dedicated assets.devsy.sh static host (sites/assets-devsy-sh) and repoint all hosted icon references to it. - New static site: committed SVGs under public/, served at the root (e.g. https://assets.devsy.sh/docker.svg), pure Netlify publish like dl-devsy-sh. - pkg/config/repo.go: WebsiteAssetsURL -> https://assets.devsy.sh (flat root), sweeping all CLI IDE icon URLs in ideparse. - Fix bob.svg hardcode in ideparse to use the WebsiteAssetsURL constant. - Repoint provider manifests and login icon URLs to assets.devsy.sh. - Reconcile the desktop e2e mock fixture onto assets.devsy.sh (and fix k8s.svg -> kubernetes.svg). - netlify-ops: add find-assets-site and add-assets-custom-domain jobs. --- .github/workflows/netlify-ops.yml | 105 +++++++++++++++ cmd/pro/login.go | 2 +- desktop/e2e/fixtures/mock-devsy.cjs | 4 +- hack/pro/provider.yaml | 2 +- pkg/config/repo.go | 6 +- pkg/ide/ideparse/parse.go | 2 +- providers/docker/provider.yaml | 2 +- providers/kubernetes/provider.yaml | 2 +- providers/podman/provider.yaml | 2 +- providers/pro/provider.yaml | 2 +- sites/assets-devsy-sh/.gitignore | 1 + sites/assets-devsy-sh/netlify.toml | 8 ++ sites/assets-devsy-sh/public/antigravity.svg | 101 ++++++++++++++ sites/assets-devsy-sh/public/aws.svg | 5 + sites/assets-devsy-sh/public/azure.svg | 23 ++++ sites/assets-devsy-sh/public/bob.svg | 123 ++++++++++++++++++ sites/assets-devsy-sh/public/bob_dark.svg | 123 ++++++++++++++++++ sites/assets-devsy-sh/public/civo.svg | 5 + sites/assets-devsy-sh/public/clion.svg | 35 +++++ sites/assets-devsy-sh/public/code-server.svg | 3 + .../public/code-server_dark.svg | 3 + sites/assets-devsy-sh/public/codium.svg | 9 ++ .../public/codium_insiders.svg | 9 ++ sites/assets-devsy-sh/public/cpp.svg | 8 ++ sites/assets-devsy-sh/public/cursor.svg | 19 +++ sites/assets-devsy-sh/public/cursor_dark.svg | 19 +++ sites/assets-devsy-sh/public/dataspell.svg | 19 +++ sites/assets-devsy-sh/public/devsy.svg | 6 + sites/assets-devsy-sh/public/digitalocean.svg | 4 + sites/assets-devsy-sh/public/docker.svg | 4 + sites/assets-devsy-sh/public/dotnet.svg | 7 + sites/assets-devsy-sh/public/fleet.svg | 50 +++++++ sites/assets-devsy-sh/public/gcp.svg | 6 + sites/assets-devsy-sh/public/go.svg | 4 + sites/assets-devsy-sh/public/go_dark.svg | 4 + sites/assets-devsy-sh/public/goland.svg | 37 ++++++ sites/assets-devsy-sh/public/index.html | 75 +++++++++++ sites/assets-devsy-sh/public/intellij.svg | 41 ++++++ sites/assets-devsy-sh/public/java.svg | 9 ++ sites/assets-devsy-sh/public/jupyter.svg | 14 ++ sites/assets-devsy-sh/public/jupyter_dark.svg | 14 ++ sites/assets-devsy-sh/public/kubernetes.svg | 7 + sites/assets-devsy-sh/public/marimo.svg | 19 +++ sites/assets-devsy-sh/public/marimo_dark.svg | 19 +++ sites/assets-devsy-sh/public/nodejs.svg | 3 + sites/assets-devsy-sh/public/none.svg | 11 ++ sites/assets-devsy-sh/public/none_dark.svg | 11 ++ sites/assets-devsy-sh/public/php.svg | 3 + sites/assets-devsy-sh/public/php_dark.svg | 3 + sites/assets-devsy-sh/public/phpstorm.svg | 48 +++++++ sites/assets-devsy-sh/public/podman.svg | 1 + sites/assets-devsy-sh/public/positron.svg | 5 + .../public/provider_placeholder.svg | 6 + sites/assets-devsy-sh/public/pycharm.svg | 62 +++++++++ sites/assets-devsy-sh/public/python.svg | 14 ++ sites/assets-devsy-sh/public/rider.svg | 25 ++++ sites/assets-devsy-sh/public/rstudio.svg | 5 + sites/assets-devsy-sh/public/ruby.svg | 17 +++ sites/assets-devsy-sh/public/rubymine.svg | 33 +++++ sites/assets-devsy-sh/public/rust.svg | 3 + sites/assets-devsy-sh/public/rust_dark.svg | 3 + sites/assets-devsy-sh/public/rustrover.svg | 1 + sites/assets-devsy-sh/public/ssh.svg | 4 + sites/assets-devsy-sh/public/terraform.svg | 6 + sites/assets-devsy-sh/public/universal.svg | 5 + .../assets-devsy-sh/public/universal_dark.svg | 5 + sites/assets-devsy-sh/public/vscode.svg | 30 +++++ .../public/vscode_insiders.svg | 37 ++++++ .../assets-devsy-sh/public/vscodebrowser.svg | 32 +++++ sites/assets-devsy-sh/public/webstorm.svg | 21 +++ sites/assets-devsy-sh/public/windsurf.svg | 43 ++++++ sites/assets-devsy-sh/public/zed.svg | 15 +++ sites/assets-devsy-sh/public/zed_dark.svg | 15 +++ 73 files changed, 1417 insertions(+), 12 deletions(-) create mode 100644 sites/assets-devsy-sh/.gitignore create mode 100644 sites/assets-devsy-sh/netlify.toml create mode 100644 sites/assets-devsy-sh/public/antigravity.svg create mode 100644 sites/assets-devsy-sh/public/aws.svg create mode 100644 sites/assets-devsy-sh/public/azure.svg create mode 100644 sites/assets-devsy-sh/public/bob.svg create mode 100644 sites/assets-devsy-sh/public/bob_dark.svg create mode 100644 sites/assets-devsy-sh/public/civo.svg create mode 100644 sites/assets-devsy-sh/public/clion.svg create mode 100644 sites/assets-devsy-sh/public/code-server.svg create mode 100644 sites/assets-devsy-sh/public/code-server_dark.svg create mode 100644 sites/assets-devsy-sh/public/codium.svg create mode 100644 sites/assets-devsy-sh/public/codium_insiders.svg create mode 100644 sites/assets-devsy-sh/public/cpp.svg create mode 100644 sites/assets-devsy-sh/public/cursor.svg create mode 100644 sites/assets-devsy-sh/public/cursor_dark.svg create mode 100644 sites/assets-devsy-sh/public/dataspell.svg create mode 100644 sites/assets-devsy-sh/public/devsy.svg create mode 100644 sites/assets-devsy-sh/public/digitalocean.svg create mode 100644 sites/assets-devsy-sh/public/docker.svg create mode 100644 sites/assets-devsy-sh/public/dotnet.svg create mode 100644 sites/assets-devsy-sh/public/fleet.svg create mode 100644 sites/assets-devsy-sh/public/gcp.svg create mode 100644 sites/assets-devsy-sh/public/go.svg create mode 100644 sites/assets-devsy-sh/public/go_dark.svg create mode 100644 sites/assets-devsy-sh/public/goland.svg create mode 100644 sites/assets-devsy-sh/public/index.html create mode 100644 sites/assets-devsy-sh/public/intellij.svg create mode 100644 sites/assets-devsy-sh/public/java.svg create mode 100644 sites/assets-devsy-sh/public/jupyter.svg create mode 100644 sites/assets-devsy-sh/public/jupyter_dark.svg create mode 100644 sites/assets-devsy-sh/public/kubernetes.svg create mode 100644 sites/assets-devsy-sh/public/marimo.svg create mode 100644 sites/assets-devsy-sh/public/marimo_dark.svg create mode 100644 sites/assets-devsy-sh/public/nodejs.svg create mode 100644 sites/assets-devsy-sh/public/none.svg create mode 100644 sites/assets-devsy-sh/public/none_dark.svg create mode 100644 sites/assets-devsy-sh/public/php.svg create mode 100644 sites/assets-devsy-sh/public/php_dark.svg create mode 100644 sites/assets-devsy-sh/public/phpstorm.svg create mode 100644 sites/assets-devsy-sh/public/podman.svg create mode 100644 sites/assets-devsy-sh/public/positron.svg create mode 100644 sites/assets-devsy-sh/public/provider_placeholder.svg create mode 100644 sites/assets-devsy-sh/public/pycharm.svg create mode 100644 sites/assets-devsy-sh/public/python.svg create mode 100644 sites/assets-devsy-sh/public/rider.svg create mode 100644 sites/assets-devsy-sh/public/rstudio.svg create mode 100644 sites/assets-devsy-sh/public/ruby.svg create mode 100644 sites/assets-devsy-sh/public/rubymine.svg create mode 100644 sites/assets-devsy-sh/public/rust.svg create mode 100644 sites/assets-devsy-sh/public/rust_dark.svg create mode 100644 sites/assets-devsy-sh/public/rustrover.svg create mode 100644 sites/assets-devsy-sh/public/ssh.svg create mode 100644 sites/assets-devsy-sh/public/terraform.svg create mode 100644 sites/assets-devsy-sh/public/universal.svg create mode 100644 sites/assets-devsy-sh/public/universal_dark.svg create mode 100644 sites/assets-devsy-sh/public/vscode.svg create mode 100644 sites/assets-devsy-sh/public/vscode_insiders.svg create mode 100644 sites/assets-devsy-sh/public/vscodebrowser.svg create mode 100644 sites/assets-devsy-sh/public/webstorm.svg create mode 100644 sites/assets-devsy-sh/public/windsurf.svg create mode 100644 sites/assets-devsy-sh/public/zed.svg create mode 100644 sites/assets-devsy-sh/public/zed_dark.svg diff --git a/.github/workflows/netlify-ops.yml b/.github/workflows/netlify-ops.yml index 950d5ba18..4be9deb1a 100644 --- a/.github/workflows/netlify-ops.yml +++ b/.github/workflows/netlify-ops.yml @@ -13,6 +13,8 @@ on: - add-dl-custom-domain - find-images-site - add-images-custom-domain + - find-assets-site + - add-assets-custom-domain jobs: restore-devsy-sh: @@ -139,6 +141,109 @@ jobs: echo "Full site info:" echo "$BODY" | jq '{id, name, custom_domain, subdomain, url, ssl_url}' + find-assets-site: + name: Find or Create assets.devsy.sh Netlify Site + if: inputs.operation == 'find-assets-site' + runs-on: ubuntu-latest + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + steps: + - name: Find or create assets.devsy.sh site and output ID + run: | + echo "Listing Netlify sites..." + SITES_RESP=$(curl -s -w "\n%{http_code}" -H "Authorization: Bearer $NETLIFY_AUTH_TOKEN" \ + "https://api.netlify.com/api/v1/sites?per_page=100") + SITES_HTTP=$(echo "$SITES_RESP" | tail -1) + SITES=$(echo "$SITES_RESP" | sed '$d') + if [ "$SITES_HTTP" != "200" ]; then + echo "ERROR: Failed to list sites (HTTP $SITES_HTTP)" + echo "$SITES" + exit 1 + fi + + ASSETS_SITE_ID=$(echo "$SITES" | \ + jq -r '.[] | select(.custom_domain == "assets.devsy.sh" or .name == "assets-devsy-sh") | .id' | head -1) + + if [ -n "$ASSETS_SITE_ID" ] && [ "$ASSETS_SITE_ID" != "null" ]; then + ASSETS_SITE_NAME=$(echo "$SITES" | jq -r ".[] | select(.id == \"$ASSETS_SITE_ID\") | .name") + echo "Found existing site: $ASSETS_SITE_NAME" + else + echo "Site not found. Listing all sites for reference:" + echo "$SITES" | jq '.[] | {id, name, custom_domain, url}' | head -100 + echo "" + echo "Creating assets-devsy-sh..." + CREATE_RESP_RAW=$(curl -s -w "\n%{http_code}" -X POST \ + -H "Authorization: Bearer $NETLIFY_AUTH_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"name": "assets-devsy-sh"}' \ + "https://api.netlify.com/api/v1/sites") + CREATE_HTTP=$(echo "$CREATE_RESP_RAW" | tail -1) + CREATE_RESP=$(echo "$CREATE_RESP_RAW" | sed '$d') + if [ "$CREATE_HTTP" != "200" ] && [ "$CREATE_HTTP" != "201" ]; then + echo "ERROR: Site creation failed (HTTP $CREATE_HTTP)" + echo "$CREATE_RESP" + exit 1 + fi + ASSETS_SITE_ID=$(echo "$CREATE_RESP" | jq -r '.id // empty') + if [ -z "$ASSETS_SITE_ID" ]; then + echo "ERROR: Site created but no id returned" + echo "$CREATE_RESP" + exit 1 + fi + echo "Created: $(echo "$CREATE_RESP" | jq '{id, name, url}')" + fi + + echo "" + echo "========================================" + echo "NETLIFY_ASSETS_SITE_ID = $ASSETS_SITE_ID" + echo "========================================" + echo "Run: gh secret set NETLIFY_ASSETS_SITE_ID --org devsy-org --visibility all --body \"$ASSETS_SITE_ID\"" + + add-assets-custom-domain: + name: Add assets.devsy.sh Custom Domain to assets-devsy-sh Site + if: inputs.operation == 'add-assets-custom-domain' + runs-on: ubuntu-latest + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + ASSETS_SITE_ID: ${{ secrets.NETLIFY_ASSETS_SITE_ID }} + steps: + - name: Add custom domain and report DNS instructions + run: | + if [ -z "$ASSETS_SITE_ID" ]; then + echo "ERROR: NETLIFY_ASSETS_SITE_ID secret is not set. Run find-assets-site first." + exit 1 + fi + echo "Adding assets.devsy.sh as custom domain to site $ASSETS_SITE_ID..." + RESPONSE=$(curl -s -w "\n%{http_code}" -X PUT \ + -H "Authorization: Bearer $NETLIFY_AUTH_TOKEN" \ + -H "Content-Type: application/json" \ + -d '{"custom_domain": "assets.devsy.sh"}' \ + "https://api.netlify.com/api/v1/sites/$ASSETS_SITE_ID") + + HTTP_CODE=$(echo "$RESPONSE" | tail -1) + BODY=$(echo "$RESPONSE" | sed '$d') + + if [ "$HTTP_CODE" != "200" ] && [ "$HTTP_CODE" != "201" ]; then + echo "ERROR: Custom domain update failed (HTTP $HTTP_CODE)" + echo "$BODY" + exit 1 + fi + + echo "Custom domain set (HTTP $HTTP_CODE)" + NETLIFY_SUBDOMAIN=$(echo "$BODY" | jq -r '.subdomain // .name') + echo "" + echo "========================================" + echo "CUSTOM DOMAIN CONFIGURED: assets.devsy.sh" + echo "========================================" + echo "" + echo "DNS action required — add this DNS record:" + echo " Type: CNAME" + echo " Name: assets" + echo " Value: ${NETLIFY_SUBDOMAIN}.netlify.app" + echo "" + echo "Full site info:" + echo "$BODY" | jq '{id, name, custom_domain, subdomain, url, ssl_url}' + find-images-site: name: Find or Create images.devsy.sh Netlify Site if: inputs.operation == 'find-images-site' diff --git a/cmd/pro/login.go b/cmd/pro/login.go index e81dcd763..fff8778e9 100644 --- a/cmd/pro/login.go +++ b/cmd/pro/login.go @@ -362,7 +362,7 @@ func login( var fallbackProvider = `name: devsy-pro version: v0.0.0 -icon: https://devsy.sh/assets/devsy.svg +icon: https://assets.devsy.sh/devsy.svg description: Devsy Pro options: DEVSY_CONFIG: diff --git a/desktop/e2e/fixtures/mock-devsy.cjs b/desktop/e2e/fixtures/mock-devsy.cjs index 4458c2905..c38059ebf 100755 --- a/desktop/e2e/fixtures/mock-devsy.cjs +++ b/desktop/e2e/fixtures/mock-devsy.cjs @@ -18,7 +18,7 @@ function defaultState() { config: { name: "docker", version: "v0.5.0", - icon: "https://devsy.sh/icons/docker.svg", + icon: "https://assets.devsy.sh/docker.svg", description: "Devsy on Docker", source: { github: "devsy-org/devsy-provider-docker" }, options: { @@ -38,7 +38,7 @@ function defaultState() { config: { name: "kubernetes", version: "v0.3.0", - icon: "https://devsy.sh/icons/k8s.svg", + icon: "https://assets.devsy.sh/kubernetes.svg", description: "Devsy on Kubernetes", source: { github: "devsy-org/devsy-provider-kubernetes" }, options: {}, diff --git a/hack/pro/provider.yaml b/hack/pro/provider.yaml index f21416024..8dac45b11 100644 --- a/hack/pro/provider.yaml +++ b/hack/pro/provider.yaml @@ -1,6 +1,6 @@ name: devsy-pro version: ##VERSION## -icon: https://devsy.sh/assets/devsy.svg +icon: https://assets.devsy.sh/devsy.svg description: Devsy Pro options: DEVSY_CONFIG: diff --git a/pkg/config/repo.go b/pkg/config/repo.go index 4a821845f..51a8ca837 100644 --- a/pkg/config/repo.go +++ b/pkg/config/repo.go @@ -25,11 +25,11 @@ const ( // SSHHostSuffix is appended to workspace IDs for SSH config host entries. SSHHostSuffix = "." + BinaryName - // WebsiteBaseURL is the project website used for asset URLs. + // WebsiteBaseURL is the project website. WebsiteBaseURL = "https://" + RepoName + ".sh" - // WebsiteAssetsURL is the base URL for icon/image assets. - WebsiteAssetsURL = WebsiteBaseURL + "/assets" + // WebsiteAssetsURL is the root URL for icon/image assets, served at WebsiteAssetsURL + "/.svg". + WebsiteAssetsURL = "https://assets." + RepoName + ".sh" // AgentDownloadBaseURL is the prefix under which versioned agent binaries are published. AgentDownloadBaseURL = GitHubReleasesURL + "/download/" diff --git a/pkg/ide/ideparse/parse.go b/pkg/ide/ideparse/parse.go index 2f460adda..856c93f5d 100644 --- a/pkg/ide/ideparse/parse.go +++ b/pkg/ide/ideparse/parse.go @@ -228,7 +228,7 @@ var AllowedIDEs = []AllowedIDE{ Name: config.IDEBob, DisplayName: "IBM Bob", Options: vscode.Options, - Icon: "https://devsy.sh/assets/bob.svg", + Icon: config.WebsiteAssetsURL + "/bob.svg", Group: config.IDEGroupPrimary, }, } diff --git a/providers/docker/provider.yaml b/providers/docker/provider.yaml index 75085908c..55085714d 100644 --- a/providers/docker/provider.yaml +++ b/providers/docker/provider.yaml @@ -1,6 +1,6 @@ name: docker version: v1.0.0 -icon: https://devsy.sh/assets/docker.svg +icon: https://assets.devsy.sh/docker.svg home: https://github.com/devsy-org/devsy description: |- Devsy on Docker diff --git a/providers/kubernetes/provider.yaml b/providers/kubernetes/provider.yaml index 965c968cd..4e21ffe33 100644 --- a/providers/kubernetes/provider.yaml +++ b/providers/kubernetes/provider.yaml @@ -1,6 +1,6 @@ name: kubernetes version: v1.0.0 -icon: https://devsy.sh/assets/kubernetes.svg +icon: https://assets.devsy.sh/kubernetes.svg home: https://github.com/devsy-org/devsy description: |- Devsy on Kubernetes diff --git a/providers/podman/provider.yaml b/providers/podman/provider.yaml index 60ba8f810..aca767399 100644 --- a/providers/podman/provider.yaml +++ b/providers/podman/provider.yaml @@ -1,6 +1,6 @@ name: podman version: v1.0.0 -icon: https://devsy.sh/assets/podman.svg +icon: https://assets.devsy.sh/podman.svg home: https://github.com/devsy-org/devsy description: |- Devsy on Podman diff --git a/providers/pro/provider.yaml b/providers/pro/provider.yaml index fbe4401bc..12bc5fa18 100644 --- a/providers/pro/provider.yaml +++ b/providers/pro/provider.yaml @@ -1,6 +1,6 @@ name: devsy-pro version: v1.0.0 -icon: https://devsy.sh/assets/devsy.svg +icon: https://assets.devsy.sh/devsy.svg home: https://github.com/devsy-org/devsy description: Devsy Pro options: diff --git a/sites/assets-devsy-sh/.gitignore b/sites/assets-devsy-sh/.gitignore new file mode 100644 index 000000000..c2658d7d1 --- /dev/null +++ b/sites/assets-devsy-sh/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/sites/assets-devsy-sh/netlify.toml b/sites/assets-devsy-sh/netlify.toml new file mode 100644 index 000000000..584f97c2e --- /dev/null +++ b/sites/assets-devsy-sh/netlify.toml @@ -0,0 +1,8 @@ +[build] + publish = "public" + +[[headers]] + for = "/*" + [headers.values] + Access-Control-Allow-Origin = "*" + Cache-Control = "public, max-age=300" diff --git a/sites/assets-devsy-sh/public/antigravity.svg b/sites/assets-devsy-sh/public/antigravity.svg new file mode 100644 index 000000000..2d30965ea --- /dev/null +++ b/sites/assets-devsy-sh/public/antigravity.svg @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/aws.svg b/sites/assets-devsy-sh/public/aws.svg new file mode 100644 index 000000000..f7b9d4f4e --- /dev/null +++ b/sites/assets-devsy-sh/public/aws.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sites/assets-devsy-sh/public/azure.svg b/sites/assets-devsy-sh/public/azure.svg new file mode 100644 index 000000000..b45c55265 --- /dev/null +++ b/sites/assets-devsy-sh/public/azure.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/bob.svg b/sites/assets-devsy-sh/public/bob.svg new file mode 100644 index 000000000..8110de734 --- /dev/null +++ b/sites/assets-devsy-sh/public/bob.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/bob_dark.svg b/sites/assets-devsy-sh/public/bob_dark.svg new file mode 100644 index 000000000..1c316fa22 --- /dev/null +++ b/sites/assets-devsy-sh/public/bob_dark.svg @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/civo.svg b/sites/assets-devsy-sh/public/civo.svg new file mode 100644 index 000000000..6a0d6a96d --- /dev/null +++ b/sites/assets-devsy-sh/public/civo.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sites/assets-devsy-sh/public/clion.svg b/sites/assets-devsy-sh/public/clion.svg new file mode 100644 index 000000000..b81570b22 --- /dev/null +++ b/sites/assets-devsy-sh/public/clion.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/code-server.svg b/sites/assets-devsy-sh/public/code-server.svg new file mode 100644 index 000000000..01a01541e --- /dev/null +++ b/sites/assets-devsy-sh/public/code-server.svg @@ -0,0 +1,3 @@ + + + diff --git a/sites/assets-devsy-sh/public/code-server_dark.svg b/sites/assets-devsy-sh/public/code-server_dark.svg new file mode 100644 index 000000000..08d791601 --- /dev/null +++ b/sites/assets-devsy-sh/public/code-server_dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/sites/assets-devsy-sh/public/codium.svg b/sites/assets-devsy-sh/public/codium.svg new file mode 100644 index 000000000..5786647ba --- /dev/null +++ b/sites/assets-devsy-sh/public/codium.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/codium_insiders.svg b/sites/assets-devsy-sh/public/codium_insiders.svg new file mode 100644 index 000000000..33f82364f --- /dev/null +++ b/sites/assets-devsy-sh/public/codium_insiders.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/cpp.svg b/sites/assets-devsy-sh/public/cpp.svg new file mode 100644 index 000000000..dd74a019f --- /dev/null +++ b/sites/assets-devsy-sh/public/cpp.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/sites/assets-devsy-sh/public/cursor.svg b/sites/assets-devsy-sh/public/cursor.svg new file mode 100644 index 000000000..219ffba9c --- /dev/null +++ b/sites/assets-devsy-sh/public/cursor.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/cursor_dark.svg b/sites/assets-devsy-sh/public/cursor_dark.svg new file mode 100644 index 000000000..96e3e6820 --- /dev/null +++ b/sites/assets-devsy-sh/public/cursor_dark.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/dataspell.svg b/sites/assets-devsy-sh/public/dataspell.svg new file mode 100644 index 000000000..aafa75298 --- /dev/null +++ b/sites/assets-devsy-sh/public/dataspell.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/devsy.svg b/sites/assets-devsy-sh/public/devsy.svg new file mode 100644 index 000000000..ebcc689fc --- /dev/null +++ b/sites/assets-devsy-sh/public/devsy.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/sites/assets-devsy-sh/public/digitalocean.svg b/sites/assets-devsy-sh/public/digitalocean.svg new file mode 100644 index 000000000..381c8aabf --- /dev/null +++ b/sites/assets-devsy-sh/public/digitalocean.svg @@ -0,0 +1,4 @@ + + + + diff --git a/sites/assets-devsy-sh/public/docker.svg b/sites/assets-devsy-sh/public/docker.svg new file mode 100644 index 000000000..2bab53a58 --- /dev/null +++ b/sites/assets-devsy-sh/public/docker.svg @@ -0,0 +1,4 @@ + + + + diff --git a/sites/assets-devsy-sh/public/dotnet.svg b/sites/assets-devsy-sh/public/dotnet.svg new file mode 100644 index 000000000..099e3369d --- /dev/null +++ b/sites/assets-devsy-sh/public/dotnet.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/sites/assets-devsy-sh/public/fleet.svg b/sites/assets-devsy-sh/public/fleet.svg new file mode 100644 index 000000000..9f8304bed --- /dev/null +++ b/sites/assets-devsy-sh/public/fleet.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/gcp.svg b/sites/assets-devsy-sh/public/gcp.svg new file mode 100644 index 000000000..6b4f4c01a --- /dev/null +++ b/sites/assets-devsy-sh/public/gcp.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/sites/assets-devsy-sh/public/go.svg b/sites/assets-devsy-sh/public/go.svg new file mode 100644 index 000000000..a8fb6223d --- /dev/null +++ b/sites/assets-devsy-sh/public/go.svg @@ -0,0 +1,4 @@ + + + + diff --git a/sites/assets-devsy-sh/public/go_dark.svg b/sites/assets-devsy-sh/public/go_dark.svg new file mode 100644 index 000000000..bfbd948c3 --- /dev/null +++ b/sites/assets-devsy-sh/public/go_dark.svg @@ -0,0 +1,4 @@ + + + + diff --git a/sites/assets-devsy-sh/public/goland.svg b/sites/assets-devsy-sh/public/goland.svg new file mode 100644 index 000000000..abf7842c2 --- /dev/null +++ b/sites/assets-devsy-sh/public/goland.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/index.html b/sites/assets-devsy-sh/public/index.html new file mode 100644 index 000000000..89e3cd865 --- /dev/null +++ b/sites/assets-devsy-sh/public/index.html @@ -0,0 +1,75 @@ + + + + + + assets.devsy.sh + + + +

devsy static assets

+

Icon and image assets served for the devsy CLI, desktop app, and providers.

+ + + diff --git a/sites/assets-devsy-sh/public/intellij.svg b/sites/assets-devsy-sh/public/intellij.svg new file mode 100644 index 000000000..131690ea1 --- /dev/null +++ b/sites/assets-devsy-sh/public/intellij.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/java.svg b/sites/assets-devsy-sh/public/java.svg new file mode 100644 index 000000000..65e9ab7ae --- /dev/null +++ b/sites/assets-devsy-sh/public/java.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/jupyter.svg b/sites/assets-devsy-sh/public/jupyter.svg new file mode 100644 index 000000000..d7a243674 --- /dev/null +++ b/sites/assets-devsy-sh/public/jupyter.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/jupyter_dark.svg b/sites/assets-devsy-sh/public/jupyter_dark.svg new file mode 100644 index 000000000..7f0d62840 --- /dev/null +++ b/sites/assets-devsy-sh/public/jupyter_dark.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/kubernetes.svg b/sites/assets-devsy-sh/public/kubernetes.svg new file mode 100644 index 000000000..69b483a84 --- /dev/null +++ b/sites/assets-devsy-sh/public/kubernetes.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/sites/assets-devsy-sh/public/marimo.svg b/sites/assets-devsy-sh/public/marimo.svg new file mode 100644 index 000000000..f28ba734b --- /dev/null +++ b/sites/assets-devsy-sh/public/marimo.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/marimo_dark.svg b/sites/assets-devsy-sh/public/marimo_dark.svg new file mode 100644 index 000000000..116d0b793 --- /dev/null +++ b/sites/assets-devsy-sh/public/marimo_dark.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/nodejs.svg b/sites/assets-devsy-sh/public/nodejs.svg new file mode 100644 index 000000000..84948ff4d --- /dev/null +++ b/sites/assets-devsy-sh/public/nodejs.svg @@ -0,0 +1,3 @@ + + + diff --git a/sites/assets-devsy-sh/public/none.svg b/sites/assets-devsy-sh/public/none.svg new file mode 100644 index 000000000..6e3abf5d7 --- /dev/null +++ b/sites/assets-devsy-sh/public/none.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/none_dark.svg b/sites/assets-devsy-sh/public/none_dark.svg new file mode 100644 index 000000000..5f81eff52 --- /dev/null +++ b/sites/assets-devsy-sh/public/none_dark.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/php.svg b/sites/assets-devsy-sh/public/php.svg new file mode 100644 index 000000000..240f94313 --- /dev/null +++ b/sites/assets-devsy-sh/public/php.svg @@ -0,0 +1,3 @@ + + + diff --git a/sites/assets-devsy-sh/public/php_dark.svg b/sites/assets-devsy-sh/public/php_dark.svg new file mode 100644 index 000000000..3939cb596 --- /dev/null +++ b/sites/assets-devsy-sh/public/php_dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/sites/assets-devsy-sh/public/phpstorm.svg b/sites/assets-devsy-sh/public/phpstorm.svg new file mode 100644 index 000000000..5159aeae9 --- /dev/null +++ b/sites/assets-devsy-sh/public/phpstorm.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/podman.svg b/sites/assets-devsy-sh/public/podman.svg new file mode 100644 index 000000000..cb60caea7 --- /dev/null +++ b/sites/assets-devsy-sh/public/podman.svg @@ -0,0 +1 @@ +Podman diff --git a/sites/assets-devsy-sh/public/positron.svg b/sites/assets-devsy-sh/public/positron.svg new file mode 100644 index 000000000..2d5fc3342 --- /dev/null +++ b/sites/assets-devsy-sh/public/positron.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sites/assets-devsy-sh/public/provider_placeholder.svg b/sites/assets-devsy-sh/public/provider_placeholder.svg new file mode 100644 index 000000000..19f2fe652 --- /dev/null +++ b/sites/assets-devsy-sh/public/provider_placeholder.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/sites/assets-devsy-sh/public/pycharm.svg b/sites/assets-devsy-sh/public/pycharm.svg new file mode 100644 index 000000000..1c0d9c542 --- /dev/null +++ b/sites/assets-devsy-sh/public/pycharm.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/python.svg b/sites/assets-devsy-sh/public/python.svg new file mode 100644 index 000000000..316fbb458 --- /dev/null +++ b/sites/assets-devsy-sh/public/python.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/rider.svg b/sites/assets-devsy-sh/public/rider.svg new file mode 100644 index 000000000..801261d3f --- /dev/null +++ b/sites/assets-devsy-sh/public/rider.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/rstudio.svg b/sites/assets-devsy-sh/public/rstudio.svg new file mode 100644 index 000000000..c683d0ab4 --- /dev/null +++ b/sites/assets-devsy-sh/public/rstudio.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sites/assets-devsy-sh/public/ruby.svg b/sites/assets-devsy-sh/public/ruby.svg new file mode 100644 index 000000000..2282513d4 --- /dev/null +++ b/sites/assets-devsy-sh/public/ruby.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/rubymine.svg b/sites/assets-devsy-sh/public/rubymine.svg new file mode 100644 index 000000000..ba45b427c --- /dev/null +++ b/sites/assets-devsy-sh/public/rubymine.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/rust.svg b/sites/assets-devsy-sh/public/rust.svg new file mode 100644 index 000000000..98485f709 --- /dev/null +++ b/sites/assets-devsy-sh/public/rust.svg @@ -0,0 +1,3 @@ + + + diff --git a/sites/assets-devsy-sh/public/rust_dark.svg b/sites/assets-devsy-sh/public/rust_dark.svg new file mode 100644 index 000000000..6a60fdde8 --- /dev/null +++ b/sites/assets-devsy-sh/public/rust_dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/sites/assets-devsy-sh/public/rustrover.svg b/sites/assets-devsy-sh/public/rustrover.svg new file mode 100644 index 000000000..1cf29a3d0 --- /dev/null +++ b/sites/assets-devsy-sh/public/rustrover.svg @@ -0,0 +1 @@ + diff --git a/sites/assets-devsy-sh/public/ssh.svg b/sites/assets-devsy-sh/public/ssh.svg new file mode 100644 index 000000000..dbf0e5ade --- /dev/null +++ b/sites/assets-devsy-sh/public/ssh.svg @@ -0,0 +1,4 @@ + + + + diff --git a/sites/assets-devsy-sh/public/terraform.svg b/sites/assets-devsy-sh/public/terraform.svg new file mode 100644 index 000000000..2a62393df --- /dev/null +++ b/sites/assets-devsy-sh/public/terraform.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/sites/assets-devsy-sh/public/universal.svg b/sites/assets-devsy-sh/public/universal.svg new file mode 100644 index 000000000..e481d73a2 --- /dev/null +++ b/sites/assets-devsy-sh/public/universal.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sites/assets-devsy-sh/public/universal_dark.svg b/sites/assets-devsy-sh/public/universal_dark.svg new file mode 100644 index 000000000..6ebe43ca3 --- /dev/null +++ b/sites/assets-devsy-sh/public/universal_dark.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sites/assets-devsy-sh/public/vscode.svg b/sites/assets-devsy-sh/public/vscode.svg new file mode 100644 index 000000000..aca5762d1 --- /dev/null +++ b/sites/assets-devsy-sh/public/vscode.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/vscode_insiders.svg b/sites/assets-devsy-sh/public/vscode_insiders.svg new file mode 100644 index 000000000..2f1804980 --- /dev/null +++ b/sites/assets-devsy-sh/public/vscode_insiders.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/vscodebrowser.svg b/sites/assets-devsy-sh/public/vscodebrowser.svg new file mode 100644 index 000000000..b405f35f7 --- /dev/null +++ b/sites/assets-devsy-sh/public/vscodebrowser.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/webstorm.svg b/sites/assets-devsy-sh/public/webstorm.svg new file mode 100644 index 000000000..ac5c7672d --- /dev/null +++ b/sites/assets-devsy-sh/public/webstorm.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/windsurf.svg b/sites/assets-devsy-sh/public/windsurf.svg new file mode 100644 index 000000000..365ccb888 --- /dev/null +++ b/sites/assets-devsy-sh/public/windsurf.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/zed.svg b/sites/assets-devsy-sh/public/zed.svg new file mode 100644 index 000000000..f4bef5af1 --- /dev/null +++ b/sites/assets-devsy-sh/public/zed.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sites/assets-devsy-sh/public/zed_dark.svg b/sites/assets-devsy-sh/public/zed_dark.svg new file mode 100644 index 000000000..45821441c --- /dev/null +++ b/sites/assets-devsy-sh/public/zed_dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + From 4331effaa8782b587c52ad4b5132ca201f3fc900 Mon Sep 17 00:00:00 2001 From: Samuel K Date: Fri, 26 Jun 2026 16:21:06 -0500 Subject: [PATCH 2/2] feat(assets): add vscode-web icon to assets host The VS Code for the Web IDE (added in #532) references $WebsiteAssetsURL/vscode-web.svg; host the icon on assets.devsy.sh. --- sites/assets-devsy-sh/public/index.html | 1 + sites/assets-devsy-sh/public/vscode-web.svg | 37 +++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 sites/assets-devsy-sh/public/vscode-web.svg diff --git a/sites/assets-devsy-sh/public/index.html b/sites/assets-devsy-sh/public/index.html index 89e3cd865..e844b48ae 100644 --- a/sites/assets-devsy-sh/public/index.html +++ b/sites/assets-devsy-sh/public/index.html @@ -64,6 +64,7 @@

devsy static assets

  • universal_dark.svg
  • universal.svg
  • vscode_insiders.svg
  • +
  • vscode-web.svg
  • vscode.svg
  • vscodebrowser.svg
  • webstorm.svg
  • diff --git a/sites/assets-devsy-sh/public/vscode-web.svg b/sites/assets-devsy-sh/public/vscode-web.svg new file mode 100644 index 000000000..a9f83279a --- /dev/null +++ b/sites/assets-devsy-sh/public/vscode-web.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +