This commit is contained in:
rustdesk 2024-10-10 21:23:28 +08:00
parent 57a6f5e3c4
commit 515f1eb519
29 changed files with 400 additions and 399 deletions

134
v3/package-lock.json generated
View File

@ -1949,9 +1949,9 @@
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.0.tgz",
"integrity": "sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz",
"integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==",
"cpu": [
"arm"
],
@ -1961,9 +1961,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.0.tgz",
"integrity": "sha512-a1sR2zSK1B4eYkiZu17ZUZhmUQcKjk2/j9Me2IDjk1GHW7LB5Z35LEzj9iJch6gtUfsnvZs1ZNyDW2oZSThrkA==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz",
"integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==",
"cpu": [
"arm64"
],
@ -1973,9 +1973,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.0.tgz",
"integrity": "sha512-zOnKWLgDld/svhKO5PD9ozmL6roy5OQ5T4ThvdYZLpiOhEGY+dp2NwUmxK0Ld91LrbjrvtNAE0ERBwjqhZTRAA==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz",
"integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==",
"cpu": [
"arm64"
],
@ -1985,9 +1985,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.0.tgz",
"integrity": "sha512-7doS8br0xAkg48SKE2QNtMSFPFUlRdw9+votl27MvT46vo44ATBmdZdGysOevNELmZlfd+NEa0UYOA8f01WSrg==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz",
"integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==",
"cpu": [
"x64"
],
@ -1997,9 +1997,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.0.tgz",
"integrity": "sha512-pWJsfQjNWNGsoCq53KjMtwdJDmh/6NubwQcz52aEwLEuvx08bzcy6tOUuawAOncPnxz/3siRtd8hiQ32G1y8VA==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz",
"integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==",
"cpu": [
"arm"
],
@ -2009,9 +2009,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.0.tgz",
"integrity": "sha512-efRIANsz3UHZrnZXuEvxS9LoCOWMGD1rweciD6uJQIx2myN3a8Im1FafZBzh7zk1RJ6oKcR16dU3UPldaKd83w==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz",
"integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==",
"cpu": [
"arm"
],
@ -2021,9 +2021,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.0.tgz",
"integrity": "sha512-ZrPhydkTVhyeGTW94WJ8pnl1uroqVHM3j3hjdquwAcWnmivjAwOYjTEAuEDeJvGX7xv3Z9GAvrBkEzCgHq9U1w==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz",
"integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==",
"cpu": [
"arm64"
],
@ -2033,9 +2033,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.0.tgz",
"integrity": "sha512-cfaupqd+UEFeURmqNP2eEvXqgbSox/LHOyN9/d2pSdV8xTrjdg3NgOFJCtc1vQ/jEke1qD0IejbBfxleBPHnPw==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz",
"integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==",
"cpu": [
"arm64"
],
@ -2045,9 +2045,9 @@
]
},
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.0.tgz",
"integrity": "sha512-ZKPan1/RvAhrUylwBXC9t7B2hXdpb/ufeu22pG2psV7RN8roOfGurEghw1ySmX/CmDDHNTDDjY3lo9hRlgtaHg==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz",
"integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==",
"cpu": [
"ppc64"
],
@ -2057,9 +2057,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.0.tgz",
"integrity": "sha512-H1eRaCwd5E8eS8leiS+o/NqMdljkcb1d6r2h4fKSsCXQilLKArq6WS7XBLDu80Yz+nMqHVFDquwcVrQmGr28rg==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz",
"integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==",
"cpu": [
"riscv64"
],
@ -2069,9 +2069,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.0.tgz",
"integrity": "sha512-zJ4hA+3b5tu8u7L58CCSI0A9N1vkfwPhWd/puGXwtZlsB5bTkwDNW/+JCU84+3QYmKpLi+XvHdmrlwUwDA6kqw==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz",
"integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==",
"cpu": [
"s390x"
],
@ -2081,9 +2081,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.0.tgz",
"integrity": "sha512-e2hrvElFIh6kW/UNBQK/kzqMNY5mO+67YtEh9OA65RM5IJXYTWiXjX6fjIiPaqOkBthYF1EqgiZ6OXKcQsM0hg==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz",
"integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==",
"cpu": [
"x64"
],
@ -2093,9 +2093,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.0.tgz",
"integrity": "sha512-1vvmgDdUSebVGXWX2lIcgRebqfQSff0hMEkLJyakQ9JQUbLDkEaMsPTLOmyccyC6IJ/l3FZuJbmrBw/u0A0uCQ==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz",
"integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==",
"cpu": [
"x64"
],
@ -2105,9 +2105,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.0.tgz",
"integrity": "sha512-s5oFkZ/hFcrlAyBTONFY1TWndfyre1wOMwU+6KCpm/iatybvrRgmZVM+vCFwxmC5ZhdlgfE0N4XorsDpi7/4XQ==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz",
"integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==",
"cpu": [
"arm64"
],
@ -2117,9 +2117,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.0.tgz",
"integrity": "sha512-G9+TEqRnAA6nbpqyUqgTiopmnfgnMkR3kMukFBDsiyy23LZvUCpiUwjTRx6ezYCjJODXrh52rBR9oXvm+Fp5wg==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz",
"integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==",
"cpu": [
"ia32"
],
@ -2129,9 +2129,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.0.tgz",
"integrity": "sha512-2jsCDZwtQvRhejHLfZ1JY6w6kEuEtfF9nzYsZxzSlNVKDX+DpsDJ+Rbjkm74nvg2rdx0gwBS+IMdvwJuq3S9pQ==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz",
"integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==",
"cpu": [
"x64"
],
@ -8936,9 +8936,9 @@
}
},
"node_modules/rollup": {
"version": "4.21.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.0.tgz",
"integrity": "sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==",
"version": "4.22.4",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz",
"integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==",
"dependencies": {
"@types/estree": "1.0.5"
},
@ -8950,22 +8950,22 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.21.0",
"@rollup/rollup-android-arm64": "4.21.0",
"@rollup/rollup-darwin-arm64": "4.21.0",
"@rollup/rollup-darwin-x64": "4.21.0",
"@rollup/rollup-linux-arm-gnueabihf": "4.21.0",
"@rollup/rollup-linux-arm-musleabihf": "4.21.0",
"@rollup/rollup-linux-arm64-gnu": "4.21.0",
"@rollup/rollup-linux-arm64-musl": "4.21.0",
"@rollup/rollup-linux-powerpc64le-gnu": "4.21.0",
"@rollup/rollup-linux-riscv64-gnu": "4.21.0",
"@rollup/rollup-linux-s390x-gnu": "4.21.0",
"@rollup/rollup-linux-x64-gnu": "4.21.0",
"@rollup/rollup-linux-x64-musl": "4.21.0",
"@rollup/rollup-win32-arm64-msvc": "4.21.0",
"@rollup/rollup-win32-ia32-msvc": "4.21.0",
"@rollup/rollup-win32-x64-msvc": "4.21.0",
"@rollup/rollup-android-arm-eabi": "4.22.4",
"@rollup/rollup-android-arm64": "4.22.4",
"@rollup/rollup-darwin-arm64": "4.22.4",
"@rollup/rollup-darwin-x64": "4.22.4",
"@rollup/rollup-linux-arm-gnueabihf": "4.22.4",
"@rollup/rollup-linux-arm-musleabihf": "4.22.4",
"@rollup/rollup-linux-arm64-gnu": "4.22.4",
"@rollup/rollup-linux-arm64-musl": "4.22.4",
"@rollup/rollup-linux-powerpc64le-gnu": "4.22.4",
"@rollup/rollup-linux-riscv64-gnu": "4.22.4",
"@rollup/rollup-linux-s390x-gnu": "4.22.4",
"@rollup/rollup-linux-x64-gnu": "4.22.4",
"@rollup/rollup-linux-x64-musl": "4.22.4",
"@rollup/rollup-win32-arm64-msvc": "4.22.4",
"@rollup/rollup-win32-ia32-msvc": "4.22.4",
"@rollup/rollup-win32-x64-msvc": "4.22.4",
"fsevents": "~2.3.2"
}
},

21
v3/public/oss.yml Normal file
View File

@ -0,0 +1,21 @@
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped

21
v3/public/pro.yml Normal file
View File

@ -0,0 +1,21 @@
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server-pro:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server-pro:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 97 KiB

View File

@ -1,9 +1,106 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 128 128">
<path d="M50.4 78.5a75.1 75.1 0 0 0-28.5 6.9l24.2-65.7c.7-2 1.9-3.2 3.4-3.2h29c1.5 0 2.7 1.2 3.4 3.2l24.2 65.7s-11.6-7-28.5-7L67 45.5c-.4-1.7-1.6-2.8-2.9-2.8-1.3 0-2.5 1.1-2.9 2.7L50.4 78.5Zm-1.1 28.2Zm-4.2-20.2c-2 6.6-.6 15.8 4.2 20.2a17.5 17.5 0 0 1 .2-.7 5.5 5.5 0 0 1 5.7-4.5c2.8.1 4.3 1.5 4.7 4.7.2 1.1.2 2.3.2 3.5v.4c0 2.7.7 5.2 2.2 7.4a13 13 0 0 0 5.7 4.9v-.3l-.2-.3c-1.8-5.6-.5-9.5 4.4-12.8l1.5-1a73 73 0 0 0 3.2-2.2 16 16 0 0 0 6.8-11.4c.3-2 .1-4-.6-6l-.8.6-1.6 1a37 37 0 0 1-22.4 2.7c-5-.7-9.7-2-13.2-6.2Z" />
<style>
path { fill: #000; }
@media (prefers-color-scheme: dark) {
path { fill: #FFF; }
}
</style>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128mm"
height="128mm"
viewBox="0 0 128 128"
version="1.1"
id="svg1"
inkscape:version="1.3.2 (091e20e, 2023-11-25)"
sodipodi:docname="216333102-4d10c195-be66-4fa0-97ca-70a71756b25e.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.2102413"
inkscape:cx="394.78447"
inkscape:cy="561.25984"
inkscape:window-width="1472"
inkscape:window-height="891"
inkscape:window-x="0"
inkscape:window-y="37"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<linearGradient
inkscape:collect="always"
xlink:href="#a"
id="linearGradient342"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(26.000475,0,0,25.999358,17.984526,891.74869)"
x1="0.14773831"
y1="0.85134232"
x2="0.84543866"
y2="0.15443686" />
<linearGradient
id="a"
x1="0.14773831"
x2="0.84543866"
y1="0.85134232"
y2="0.15443686"
gradientTransform="matrix(26.301,0,0,26.331,90.673535,911.7572)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#004ba6"
id="stop4"
style="stop-color:#0071ff;stop-opacity:1;" />
<stop
offset="1"
stop-color="#00bfe1"
id="stop6"
style="stop-color:#00bfe1;stop-opacity:1;" />
</linearGradient>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g340"
inkscape:export-filename="../../Desktop/path9.png"
inkscape:export-xdpi="2496"
inkscape:export-ydpi="2496"
transform="matrix(4,0,0,4,-51.500408,-3534.2824)"
style="isolation:isolate">
<g
id="g369"
inkscape:export-filename="./g369.png"
inkscape:export-xdpi="3733.2917"
inkscape:export-ydpi="3733.2917"
transform="translate(-2.1094037,-5.1776263)">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
id="rect336"
width="32"
height="32"
x="14.984506"
y="888.74823"
rx="7"
ry="7" />
<path
fill="url(#a)"
d="m 40.309479,897.8163 -2.13532,2.12189 c -0.37566,0.3367 -0.557321,0.87878 -0.34675,1.33694 1.422559,2.97602 0.882559,6.52382 -1.45146,8.85602 -2.33502,2.33131 -5.88696,2.8707 -8.866524,1.44881 -0.43892,-0.1965 -0.953964,-0.03 -1.292057,0.31269 l -2.169919,2.16641 c -0.255052,0.2498 -0.3806,0.6023 -0.34007,0.95579 0.04054,0.3545 0.243189,0.6695 0.54767,0.8541 5.1129,3.09451 11.678999,2.30561 15.911089,-1.9116 4.232081,-4.2162 5.03876,-10.77258 1.9554,-15.88729 -0.17696,-0.31103 -0.48935,-0.52234 -0.84425,-0.5717 -0.35489,-0.0503 -0.71276,0.0681 -0.967809,0.31794 z M 21.84293,895.5107 c -4.252844,4.20042 -5.086212,10.75775 -2.019657,15.88535 0.176955,0.312 0.488356,0.5233 0.843254,0.5727 0.354897,0.05 0.712761,-0.0679 0.968802,-0.319 l 2.123457,-2.1091 c 0.384554,-0.3367 0.572151,-0.8847 0.358619,-1.3488 -1.422557,-2.976 -0.883552,-6.52373 1.451458,-8.85593 2.334022,-2.33127 5.886947,-2.87085 8.865525,-1.44997 0.433981,0.19451 0.94211,0.033 1.281191,-0.29971 l 2.181779,-2.1792 c 0.255051,-0.24884 0.380601,-0.60134 0.340071,-0.95581 -0.04149,-0.35349 -0.24319,-0.66847 -0.54767,-0.85411 -5.121801,-3.06787 -11.678015,-2.25523 -15.893292,1.97185 z"
id="path338"
inkscape:export-filename="../../Desktop/path9.png"
inkscape:export-xdpi="2599.3848"
inkscape:export-ydpi="2599.3848"
style="fill:url(#linearGradient342);stroke-width:0.987991"
sodipodi:nodetypes="ccccccccccccccccccccccccccc" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 749 B

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 539 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="26" height="26" style="isolation:isolate" viewBox="66.993 897.484 26 26"><defs><linearGradient xlink:href="#a" id="b" x1=".148" x2=".845" y1=".851" y2=".154" gradientTransform="matrix(26.00048 0 0 25.99935 66.993 897.485)" gradientUnits="userSpaceOnUse"/></defs><linearGradient id="a" x1=".148" x2=".845" y1=".851" y2=".154" gradientTransform="matrix(26.301 0 0 26.331 90.674 911.757)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#004ba6" style="stop-color:#0071ff;stop-opacity:1"/><stop offset="1" stop-color="#00bfe1" style="stop-color:#00bfe1;stop-opacity:1"/></linearGradient><path fill="url(#a)" d="m89.318 903.552-2.135 2.122c-.376.337-.558.879-.347 1.337 1.422 2.976.882 6.524-1.452 8.856-2.335 2.331-5.887 2.87-8.866 1.449-.439-.197-.954-.03-1.292.312l-2.17 2.167a1.154 1.154 0 0 0 .208 1.81 13.005 13.005 0 0 0 15.91-1.912 12.97 12.97 0 0 0 1.956-15.887 1.154 1.154 0 0 0-1.812-.254zm-18.467-2.305a12.969 12.969 0 0 0-2.02 15.885 1.154 1.154 0 0 0 1.812.254l2.124-2.11c.385-.336.572-.884.359-1.348-1.423-2.976-.884-6.524 1.451-8.856 2.334-2.332 5.887-2.871 8.866-1.45.434.194.942.033 1.281-.3l2.182-2.18a1.152 1.152 0 0 0-.208-1.81 13.009 13.009 0 0 0-15.893 1.973z" style="fill:url(#b);stroke-width:.987988"/></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
v3/src/assets/images/qs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -1,9 +1,11 @@
---
import { SITE } from 'astrowind:config';
import logo from '~/assets/images/logo.svg';
---
<span
class="self-center ml-2 rtl:ml-0 rtl:mr-2 text-2xl md:text-xl font-bold text-gray-900 whitespace-nowrap dark:text-white"
class="flex items-center self-center ml-2 rtl:ml-0 rtl:mr-2 text-2xl md:text-xl font-bold text-gray-900 whitespace-nowrap dark:text-white"
>
🚀 {SITE?.name}
<img src={logo.src} loading="lazy" alt="RustDesk Logo" class="h-8 w-8 mr-2" />
{SITE?.name?.toLowerCase()}
</span>

View File

@ -9,15 +9,15 @@
class="dark:bg-slate-700 bg-white/40 dark:text-slate-300 font-semibold px-1 py-0.5 text-xs mr-0.5 rtl:mr-0 rtl:ml-0.5 inline-block"
>NEW</span
>
<a href="https://astro.build/blog/astro-4150/" class="text-muted hover:underline dark:text-slate-400 font-medium"
>Astro 4.15 is now available! »</a
<a href="https://rustdesk.com/blog/rustdesk-1.3.1/" class="text-muted hover:underline dark:text-slate-400 font-medium"
>RustDesk 1.3.1 is now available! »</a
>
<a
target="_blank"
rel="noopener"
class="ltr:ml-auto rtl:mr-auto w-[5.6rem] h-[1.25rem] ml-auto bg-contain inline-block bg-[url(https://img.shields.io/github/stars/onwidget/astrowind.svg?style=social&label=Stars&maxAge=86400)]"
title="If you like AstroWind, give us a star."
href="https://github.com/onwidget/astrowind"
class="ltr:ml-auto rtl:mr-auto w-[5.6rem] h-[1.25rem] ml-auto bg-contain inline-block bg-[url(https://img.shields.io/github/stars/rustdesk/rustdesk.svg?style=social&label=Stars&maxAge=86400)]"
title="If you like RustDesk, give us a star."
href="https://github.com/rustdesk/rustdesk"
>
</a>
</div>

View File

@ -1,22 +1,22 @@
site:
name: AstroWind
site: 'https://astrowind.vercel.app'
name: RustDesk
site: 'https://rustdesk.com'
base: '/'
trailingSlash: false
googleSiteVerificationId: orcPxI47GSa-cRvY11tUe6iGg2IO_RPvnA1q95iEM3M
googleSiteVerificationId: 5yBdiwrwe7-V4TqfqMjX320dHpSE9-jrP4iQIUdCjK4
# Default SEO metadata
metadata:
title:
default: AstroWind
template: '%s — AstroWind'
description: "\U0001F680 Suitable for Startups, Small Business, Sass Websites, Professional Portfolios, Marketing Websites, Landing Pages & Blogs."
default: RustDesk
template: '%s — RustDesk'
description: "RustDesk offers an open-source remote desktop solution with self-hosted server options. Perfect TeamViewer alternative for secure, private, and customizable remote access. Explore our professional on-premise licenses."
robots:
index: true
follow: true
openGraph:
site_name: AstroWind
site_name: RustDesk
images:
- url: '~/assets/images/default.png'
width: 1200
@ -66,7 +66,7 @@ apps:
analytics:
vendors:
googleAnalytics:
id: null # or "G-XXXXXXXXXX"
id: "UA-178912857-1"
ui:
theme: 'system' # Values: "system" | "light" | "dark" | "light:only" | "dark:only"

View File

@ -1,6 +1,6 @@
---
publishDate: 2023-07-17T00:00:00Z
title: AstroWind template in depth
title: RustDesk template in depth
excerpt: While easy to get started, Astrowind is quite complex internally. This page provides documentation on some of the more intricate parts.
image: https://images.unsplash.com/photo-1534307671554-9a6d81f4d629?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1651&q=80
category: Documentation
@ -17,13 +17,13 @@ import ToggleTheme from '~/components/common/ToggleTheme.astro';
## Overview
It can be a somewhat daunting task trying to get a handle on _AstroWind_ internals, and particularly various points of usage.
It can be a somewhat daunting task trying to get a handle on _RustDesk_ internals, and particularly various points of usage.
This page outlines and clarifies some of the techniques found in _AstroWind_. Use it as a guide for further modification, or an instructional for techniques to use in your own endeavors.
This page outlines and clarifies some of the techniques found in _RustDesk_. Use it as a guide for further modification, or an instructional for techniques to use in your own endeavors.
## Styling
As the name suggests, _AstroWind_ relies on _TailWind_ for styling. Furthermore, _AstroWind_ defines custom low level style settings which are incorporated into _TailWind_ seamlessly, and which provides consistency for higher level styling constructs, as well as enabling dark mode.
As the name suggests, _RustDesk_ relies on _TailWind_ for styling. Furthermore, _RustDesk_ defines custom low level style settings which are incorporated into _TailWind_ seamlessly, and which provides consistency for higher level styling constructs, as well as enabling dark mode.
The styling mechanism consists of the following files (all paths are prefixed with `/src/` ):
@ -37,7 +37,7 @@ The styling mechanism consists of the following files (all paths are prefixed wi
header section. See next.
</DListItem>
<DListItem dt="layouts/Layout.astro">
This layout is used for all of the pages rendered by _AstroWind_. The contents of _tailwind.css_ and
This layout is used for all of the pages rendered by _RustDesk_. The contents of _tailwind.css_ and
_CustomStyles.astro_ component, described above, is injected into the html header.
</DListItem>
@ -135,7 +135,7 @@ This allows a great deal of flexibility in component design.
### Yet Another Step
Now, we get to the techniques used in _AstroWind_, we'll use the _pages/index.astro_ file to illustrate.
Now, we get to the techniques used in _RustDesk_, we'll use the _pages/index.astro_ file to illustrate.
You'll note that the index file imports a lot of components, each one roughly analagous to a panel in the index page. Each of these components, in turn, is instantiated sequentially throughout the page. But, you'll notice that some of them use this kind of construct (we'll use the last section, _CallToAction_, as it is most illustrative of the technique):

View File

@ -1,8 +1,8 @@
---
publishDate: 2023-08-12T00:00:00Z
author: John Smith
title: Get started with AstroWind to create a website using Astro and Tailwind CSS
excerpt: Start your web journey with AstroWind harness Astro and Tailwind CSS for a stunning site. Explore our guide now.
title: Get started with RustDesk to create a website using Astro and Tailwind CSS
excerpt: Start your web journey with RustDesk harness Astro and Tailwind CSS for a stunning site. Explore our guide now.
image: https://images.unsplash.com/photo-1516996087931-5ae405802f9f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80
category: Tutorials
tags:

View File

@ -1,7 +1,7 @@
---
publishDate: 2023-08-06T00:00:00Z
title: How to customize AstroWind template to suit your branding
excerpt: Personalize AstroWind template for your brand. Our guide unlocks seamless customization steps for a unique online presence.
title: How to customize RustDesk template to suit your branding
excerpt: Personalize RustDesk template for your brand. Our guide unlocks seamless customization steps for a unique online presence.
image: https://images.unsplash.com/photo-1546984575-757f4f7c13cf?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80
tags:
- astro

View File

@ -11,7 +11,7 @@ metadata:
canonical: https://astrowind.vercel.app/landing
---
In the vast digital landscape, standing out is more than a desire—it's a necessity. Enter the world of Landing Pages, the unsung heroes of digital marketing. With the power of the AstroWind template, developed using Astro and Tailwind CSS, crafting these pages becomes even more intuitive. Let's dive deep into understanding, creating, and optimizing them.
In the vast digital landscape, standing out is more than a desire—it's a necessity. Enter the world of Landing Pages, the unsung heroes of digital marketing. With the power of the RustDesk template, developed using Astro and Tailwind CSS, crafting these pages becomes even more intuitive. Let's dive deep into understanding, creating, and optimizing them.
## Landing Pages Unveiled
@ -45,7 +45,7 @@ Every element of your Landing Page should resonate with its core objective. Here
- **Engaging Imagery**: Visuals that complement and enhance the content.
- **Compelling Copy**: Clear, concise, and persuasive text that speaks directly to the visitor's needs.
- **Clear Call-to-Action (CTA)**: A standout button or link urging the visitor to take action.
- **Minimalist Design**: A clutter-free layout that emphasizes the offer. For example, using a Tailwind CSS web template like AstroWind.
- **Minimalist Design**: A clutter-free layout that emphasizes the offer. For example, using a Tailwind CSS web template like RustDesk.
- **Trust Indicators**: Endorsements, reviews, and badges that bolster credibility.
Imagine browsing online for a writing course. You land on a page with a captivating headline: "Unlock the Writer Within." Below, there's an engaging image of a person writing, followed by persuasive text and a bright "Enroll Now" button. This Landing Page has effectively used its elements to entice you to sign up.

View File

@ -139,7 +139,7 @@ export const footerData = {
{ text: 'Partners', href: '#' },
{ text: 'Atom', href: '#' },
{ text: 'Electron', href: '#' },
{ text: 'AstroWind Desktop', href: '#' },
{ text: 'RustDesk Desktop', href: '#' },
],
},
{

View File

@ -38,7 +38,7 @@ const metadata = {
<Layout metadata={metadata}>
<section class="px-6 sm:px-6 py-12 sm:py-16 lg:py-20 mx-auto max-w-4xl">
<Headline
subtitle="A statically generated blog example with news, tutorials, resources and other interesting content related to AstroWind"
subtitle="A statically generated blog example with news, tutorials, resources and other interesting content related to RustDesk"
>
The Blog
</Headline>

View File

@ -52,11 +52,11 @@ const metadata = {
tagline="Mobile App Web Demo"
image={{
src: 'https://images.unsplash.com/photo-1535303311164-664fc9ec6532?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=987&q=80',
alt: 'AstroWind Hero Image',
alt: 'RustDesk Hero Image',
}}
>
<Fragment slot="title">
<span class="text-accent dark:text-white highlight">AstroWind App</span>: <br /> professional websites <span
<span class="text-accent dark:text-white highlight">RustDesk App</span>: <br /> professional websites <span
class="hidden xl:inline">made easy</span
>
</Fragment>

View File

@ -47,7 +47,7 @@ const metadata = {
]}
image={{
src: 'https://images.unsplash.com/photo-1580481072645-022f9a6dbf27?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'AstroWind Hero Image',
alt: 'RustDesk Hero Image',
}}
>
<Fragment slot="title">
@ -58,7 +58,7 @@ const metadata = {
<Fragment slot="subtitle">
<span class="hidden sm:inline">
Elevate your website creation process with <span class="font-semibold">AstroWind</span>'s SaaS solutions.</span
Elevate your website creation process with <span class="font-semibold">RustDesk</span>'s SaaS solutions.</span
>
Seamlessly blend the power of Astro 4.0 and Tailwind CSS to craft websites that resonate with your brand and audience.
</Fragment>
@ -68,8 +68,8 @@ const metadata = {
<Features
id="features"
title="Why choose AstroWind?"
subtitle="Each of the following features enhances AstroWind's value proposition."
title="Why choose RustDesk?"
subtitle="Each of the following features enhances RustDesk's value proposition."
columns={2}
items={[
{
@ -80,7 +80,7 @@ const metadata = {
},
{
title: 'Versatile design for startups, small businesses, and more',
description: `Easily customize AstroWind to harmonize with the unique branding and identity of your venture. AstroWind's versatile design adapts to suit your needs.`,
description: `Easily customize RustDesk to harmonize with the unique branding and identity of your venture. RustDesk's versatile design adapts to suit your needs.`,
icon: 'tabler:artboard',
},
{
@ -101,7 +101,7 @@ const metadata = {
},
{
title: 'SEO-optimized structure for enhanced visibility',
description: `Follows SEO best practices with clean code, semantic HTML markup, and fast loading, enhancing search engine rankings. AstroWind's SEO structure ensures visibility to potential customers and clients.`,
description: `Follows SEO best practices with clean code, semantic HTML markup, and fast loading, enhancing search engine rankings. RustDesk's SEO structure ensures visibility to potential customers and clients.`,
icon: 'tabler:eyeglass',
},
]}
@ -111,13 +111,13 @@ const metadata = {
<Content
title="Use cases"
subtitle="Discover how AstroWind's versatile template serves as the ideal solution for various use cases, providing tailored solutions to drive success."
subtitle="Discover how RustDesk's versatile template serves as the ideal solution for various use cases, providing tailored solutions to drive success."
isReversed
items={[
{
title: 'Description:',
description:
'Are you a startup with big dreams? AstroWind propels your success. Our template forges a seamless online presence, attracting investors and customers from day one. Astro 4.0 and Tailwind CSS ensure striking, responsive sites, leaving lasting impressions. Countless startups leverage AstroWind to kickstart their journey and resonate with audiences.',
'Are you a startup with big dreams? RustDesk propels your success. Our template forges a seamless online presence, attracting investors and customers from day one. Astro 4.0 and Tailwind CSS ensure striking, responsive sites, leaving lasting impressions. Countless startups leverage RustDesk to kickstart their journey and resonate with audiences.',
},
{
title: 'Benefits:',
@ -131,7 +131,7 @@ const metadata = {
>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">
Startup success stories: <br /><span class="text-2xl">Launching with AstroWind</span>
Startup success stories: <br /><span class="text-2xl">Launching with RustDesk</span>
</h3>
</Fragment>
@ -147,7 +147,7 @@ const metadata = {
items={[
{
title: 'Description:',
description: `For SaaS businesses, user experience is key. AstroWind enhances showcasing SaaS solutions intuitively. The template's Astro 4.0 and Tailwind CSS integration guarantees user-friendly experience, mirroring your software's efficiency. Customize pages to communicate SaaS value and solutions for your audience.`,
description: `For SaaS businesses, user experience is key. RustDesk enhances showcasing SaaS solutions intuitively. The template's Astro 4.0 and Tailwind CSS integration guarantees user-friendly experience, mirroring your software's efficiency. Customize pages to communicate SaaS value and solutions for your audience.`,
},
{
title: 'Benefits:',
@ -178,7 +178,7 @@ const metadata = {
items={[
{
title: 'Description:',
description: `Your portfolio is your masterpiece, and AstroWind is your canvas. Whether you're a designer, photographer, artist, or any other creative professional, AstroWind empowers you to showcase your work with elegance and sophistication. Tailored to highlight your creative projects, AstroWind's templates offer a visually immersive experience that lets your portfolio shine.`,
description: `Your portfolio is your masterpiece, and RustDesk is your canvas. Whether you're a designer, photographer, artist, or any other creative professional, RustDesk empowers you to showcase your work with elegance and sophistication. Tailored to highlight your creative projects, RustDesk's templates offer a visually immersive experience that lets your portfolio shine.`,
},
{
title: 'Benefits:',
@ -207,7 +207,7 @@ const metadata = {
items={[
{
title: 'Description:',
description: `For small businesses, a well-crafted website can be a game-changer. AstroWind empowers small businesses to not only establish a credible online presence but also convert visitors into loyal customers. The template's thoughtful design and optimization features ensure that your website doesn't just attract attention but also guides visitors through a seamless journey, ultimately leading to conversions.`,
description: `For small businesses, a well-crafted website can be a game-changer. RustDesk empowers small businesses to not only establish a credible online presence but also convert visitors into loyal customers. The template's thoughtful design and optimization features ensure that your website doesn't just attract attention but also guides visitors through a seamless journey, ultimately leading to conversions.`,
},
{
title: 'Benefits:',
@ -279,24 +279,24 @@ const metadata = {
title="Frequently Asked Questions"
items={[
{
title: 'Is AstroWind compatible with the latest versions of Astro and Tailwind CSS?',
title: 'Is RustDesk compatible with the latest versions of Astro and Tailwind CSS?',
description:
'Yes, AstroWind is designed to be compatible with the latest versions of both Astro and Tailwind CSS. This ensures that you can harness the full capabilities of these technologies while benefiting from the features offered by AstroWind.',
'Yes, RustDesk is designed to be compatible with the latest versions of both Astro and Tailwind CSS. This ensures that you can harness the full capabilities of these technologies while benefiting from the features offered by RustDesk.',
icon: 'tabler:chevrons-right',
},
{
title: 'Can I use AstroWind for both personal and commercial projects?',
description: `Certainly! AstroWind is versatile and can be used for a wide range of projects, including both personal and commercial endeavors. Whether you're building a professional portfolio, launching a startup, or creating a marketing website, AstroWind has you covered.`,
title: 'Can I use RustDesk for both personal and commercial projects?',
description: `Certainly! RustDesk is versatile and can be used for a wide range of projects, including both personal and commercial endeavors. Whether you're building a professional portfolio, launching a startup, or creating a marketing website, RustDesk has you covered.`,
icon: 'tabler:chevrons-right',
},
{
title: 'What level of coding knowledge is required to use AstroWind?',
title: 'What level of coding knowledge is required to use RustDesk?',
description:
'While some familiarity with HTML, CSS, and web development concepts is helpful, the user-friendly interface and customization options allow those with limited coding experience to create impressive websites. For more advanced users, AstroWind offers extensive customization capabilities.',
'While some familiarity with HTML, CSS, and web development concepts is helpful, the user-friendly interface and customization options allow those with limited coding experience to create impressive websites. For more advanced users, RustDesk offers extensive customization capabilities.',
icon: 'tabler:chevrons-right',
},
{
title: 'Is customer support available for AstroWind users seeking guidance?',
title: 'Is customer support available for RustDesk users seeking guidance?',
description: `Absolutely, our dedicated customer support team is here to assist you with any questions or challenges you may encounter. Feel free to reach out to us through our support channels, and we'll be happy to provide the help you need.`,
icon: 'tabler:chevrons-right',
},
@ -339,8 +339,8 @@ const metadata = {
<BlogLatestPosts
id="blog"
title="Stay informed with AstroWind's blog"
information={`Explore our collection of articles, guides, and tutorials on web development, design trends, and using AstroWind effectively for your projects.`}
title="Stay informed with RustDesk's blog"
information={`Explore our collection of articles, guides, and tutorials on web development, design trends, and using RustDesk effectively for your projects.`}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>

View File

@ -2,18 +2,14 @@
import Layout from '~/layouts/PageLayout.astro';
import Hero from '~/components/widgets/Hero.astro';
import Note from '~/components/widgets/Note.astro';
import Features from '~/components/widgets/Features.astro';
import Features2 from '~/components/widgets/Features2.astro';
import Steps from '~/components/widgets/Steps.astro';
import Content from '~/components/widgets/Content.astro';
import BlogLatestPosts from '~/components/widgets/BlogLatestPosts.astro';
import FAQs from '~/components/widgets/FAQs.astro';
import Stats from '~/components/widgets/Stats.astro';
import CallToAction from '~/components/widgets/CallToAction.astro';
const metadata = {
title: 'AstroWind — Free template for creating websites with Astro + Tailwind CSS',
title: 'RustDesk: Open-Source Remote Desktop with Self-Hosted Server Solutions',
ignoreTitleTemplate: true,
};
---
@ -25,113 +21,64 @@ const metadata = {
actions={[
{
variant: 'primary',
text: 'Get template',
href: 'https://github.com/onwidget/astrowind',
text: 'Download',
href: 'https://rustdesk.com/download',
target: '_blank',
icon: 'tabler:download',
},
{ text: 'Learn more', href: '#features' },
{ text: 'Self-Hosting', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]}
image={{ src: '~/assets/images/hero-image.png', alt: 'AstroWind Hero Image' }}
image={{ src: '~/assets/images/console.png', alt: 'RustDesk Web Console Image', class: "rounded-lg border border-gray-700" }}
>
<Fragment slot="title">
Free template for <span class="hidden xl:inline">creating websites with</span>
<span class="text-accent dark:text-white highlight"> Astro 4.0</span> + Tailwind CSS
The Fast Open-Source Remote Access and Support Software
</Fragment>
<Fragment slot="subtitle">
<span class="hidden sm:inline">
<span class="font-semibold">AstroWind</span> is a free, customizable and production-ready template for Astro 4.0
+ Tailwind CSS.</span
>
<span class="block mb-1 sm:hidden font-bold text-blue-600">AstroWind: Production-ready.</span>
Suitable for Startups, Small Business, SaaS websites, Professional Portfolios, Marketing websites, Landing Pages &
Blogs.
Switch from TeamViewer, AnyDesk, and Splashtop to RustDesk for a secure and reliable remote desktop experience with your own self-hosted servers.
</Fragment>
</Hero>
<!-- Note Widget ******************* -->
<Note />
<!-- Features Widget *************** -->
<Features
id="features"
tagline="Features"
title="What you get with AstroWind"
subtitle="One of the most professional and comprehensive templates currently on the market. Most starred & forked Astro theme in 2022."
items={[
{
title: 'Astro + Tailwind CSS Integration',
description:
'A seamless integration between two great frameworks that offer high productivity, performance and versatility.',
icon: 'tabler:brand-tailwind',
},
{
title: 'Ready-to-use Components',
description:
'Widgets made with Tailwind CSS ready to be used in Marketing Websites, SaaS, Blogs, Personal Profiles, Small Business...',
icon: 'tabler:components',
},
{
title: 'Best Practices',
description:
'Creating secure, efficient, and user-friendly websites that deliver exceptional experiences and lasting value.',
icon: 'tabler:list-check',
},
{
title: 'Excellent Page Speed',
description:
'Having a good page speed impacts organic search ranking, improves user experience (UI/UX) and increase conversion rates.',
icon: 'tabler:rocket',
},
{
title: 'Search Engine Optimization (SEO)',
description:
"SEO lies in its ability to enhance a website's visibility, driving organic traffic and enabling it to reach a wider audience.",
icon: 'tabler:arrows-right-left',
},
{
title: 'Open to new ideas and contributions',
description:
'Embracing a culture that is open to new ideas and contributions is integral fostering innovation, collaboration, and a dynamic user experience.',
icon: 'tabler:bulb',
},
]}
/>
<!-- <Note /> -->
<!-- Content Widget **************** -->
<Content
isReversed
tagline="Inside template"
title="AstroWind's Blueprint: Fun Meets Functionality!"
tagline="Inside Self-Hosting"
title="Empower your remote access with self-hosted servers"
items={[
{
title: 'Built on top of Astro 4.0',
title: 'Data sovereignty',
description:
'Benefiting from the performance and developer-friendly features of this modern static site generator.',
'Regulatory compliance made easy: self-hosted RustDesk ensures data sovereignty.',
},
{
title: 'Styled using Tailwind CSS',
title: 'Enhanced security',
description:
'Facilitating rapid design and consistent styling with this highly popular utility-first CSS framework.',
'Fortify your security: on-premise deployment keeps your data under your control.',
},
{
title: 'Cross-browser compatibility',
title: 'Performance and reliability',
description:
'Ensure your website looks and functions consistently across various web browsers, delivering a seamless experience to all users.',
'Guaranteed uptime: on-premise deployment ensures optimal performance and minimal downtime.',
},
{
title: 'Flexibility and customization',
description:
'Tailor RustDesk on-premise to fit your unique requirements.',
},
]}
image={{
src: 'https://images.unsplash.com/photo-1519389950473-47ba0277781c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Colorful Image',
src: '~/assets/images/hosting.jpg',
alt: 'Hosting Image',
}}
>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Building on modern foundations</h3>
Gain a competitive advantage by incorporating industry leading practices
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Why self-hosting?</h3>
Are you frustrated with SaaS platforms due to their unstable performance, lack of transparency, and uncertain data security risks?
</Fragment>
<Fragment slot="bg">
@ -145,69 +92,36 @@ const metadata = {
isAfterContent
items={[
{
title: 'High level of customization',
description: `Tailor the template effortlessly to match your brand's identity and requirements, making your website distinct and saving you time.`,
title: 'Your brand, your way',
description: `Personalize RustDesk client with your name, icon, logo.`,
},
{
title: 'Multiple layout possibilities',
description:
'Explore various layout options to find the structure that best presents your content, enhancing user engagement and navigation.',
title: 'Easy deployment',
description: `Built-in network configuration and server setup make deploying RustDesk on-premise a breeze.`,
},
{
title: 'Fully responsive design',
description:
"Ensure your website's optimal performance on various devices and screen sizes, providing a consistent and enjoyable user experience.",
title: 'Advanced configuration options',
description: 'More than 90 options can be configured to meet your specific needs.',
},
{
title: 'Integration of media',
description:
'Seamlessly incorporate images, videos, and multimedia elements that enhance your content and engage visitors effectively.',
title: 'Multi-platform support',
description: 'Windows, macOS, Linux, Android.',
},
{
title: 'Web client',
description: 'Host the web client on your server with your domain name to make remote access even easier.',
},
]}
image={{
src: 'https://images.unsplash.com/photo-1600132806370-bf17e65e942f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2194&q=80',
alt: 'Blueprint Image',
src: '~/assets/images/qs.png',
alt: 'QuickSupport Image',
class: 'bg-transparent',
}}
>
<Fragment slot="content">Ensure your online presence truly represents you.</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
<Fragment slot="content">
<h3 class="text-2xl font-bold tracking-tight dark:text-white sm:text-3xl mb-2">Custom Client</h3>
Customize your client with your brand and make it truly yours.
</Fragment>
</Content>
<!-- Content Widget **************** -->
<Content
isReversed
isAfterContent
items={[
{
title: 'Enhanced user engagement',
description:
'Captivate your audience with interactive elements, intuitive navigation, and visually appealing layouts, encouraging longer visits.',
},
{
title: 'Continuous improvement',
description:
'Ensure your website stays aligned with the latest trends and technologies through regular updates and enhancements.',
},
{
title: 'Time and resource efficiency',
description:
'Skip the time-consuming process of building a website from scratch and launch your online presence sooner with AstroWind.',
},
{
title: 'Community support',
description: `Join the growing AstroWind community for insights, resources, and assistance, ensuring you're never alone on your web development journey.`,
},
]}
image={{
src: 'https://images.unsplash.com/photo-1611462985358-60d3498e0364?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80',
alt: 'Astronauts Image',
}}
>
<Fragment slot="content">Designed to foster growth and success.</Fragment>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
@ -217,25 +131,24 @@ const metadata = {
<!-- Steps Widget ****************** -->
<Steps
title="Get your dream website up and running in no time with AstroWind."
isReversed
title="Simple self-hosting installation"
items={[
{
title: 'Step 1: <span class="font-medium">Download</span>',
title: 'Step 1: Install Docker',
description:
"Kickstart with GitHub! Either fork the AstroWind template or simply click 'Use this template'. Your canvas awaits, ready for your digital masterpiece. In just a few clicks, you've already set the foundation.",
"<code>sudo apt install -y docker.io</code>",
icon: 'tabler:package',
},
{
title: 'Step 2: <span class="font-medium">Add content</span>',
description:
"Pour your vision into it. Add images, text, and all that jazz to breathe life into your digital space. Remember, it's the content that tells your story, so make it captivating.",
icon: 'tabler:letter-case',
title: 'Step 2: Download compose.yml',
description: '<code>wget rustdesk.com/oss.yml -O compose.yml<br>or<br>wget rustdesk.com/pro.yml -O compose.yml</code>',
icon: 'tabler:download',
},
{
title: 'Step 3: <span class="font-medium">Customize styles</span>',
description:
'Give it your personal touch. Tailor colors, fonts, and layouts until it feels just right. Your unique flair, amplified by AstroWind! Precision in design ensures a seamless user experience.',
icon: 'tabler:paint',
title: `Step 3: Compose`,
description: "<code>docker compose up -d</code>",
icon: 'tabler:hammer',
},
{
title: 'Ready!',
@ -243,157 +156,90 @@ const metadata = {
},
]}
image={{
src: 'https://images.unsplash.com/photo-1616198814651-e71f960c3180?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=987&q=80',
src: '~/assets/images/steps.jpg',
alt: 'Steps image',
}}
/>
<!-- Features2 Widget ************** -->
<!-- Stats Widget ****************** -->
<Stats
tagline="Scenarios"
title="Who are using self-hosting?"
subtitle='The data below is from our online survey covering over 1,000 self-hosting users.'
stats={[
{ title: 'IT Support', amount: '37%' },
{ title: 'IT Administration', amount: '25%' },
{ title: 'Remote Work', amount: '29%' },
{ title: 'Industrial and others', amount: '9%' },
]}
/>
<Features2
title="Most used widgets"
subtitle="Provides frequently used components for building websites using Tailwind CSS"
tagline="Components"
items={[
<!-- HighlightedPosts Widget ******* -->
<BlogLatestPosts
title="Find out more content in our Blog"
/>
<Stats
tagline="Open Source"
title="Built in public with a vibrant community"
subtitle='Join a community driven solution that has millions of downloads and used by thousands of organisations.'
stats={[
{ title: 'Client downloads', amount: '10M+' },
{ title: 'Docker downloads', amount: '1M+' },
{ title: 'Alive devices', amount: '3M+' },
{ title: 'Stars', amount: '74K+' },
{ title: 'Forks', amount: '9K+' },
{ title: 'Community members', amount: '22K+' },
{ title: 'Languages', amount: '45' },
]}
/>
<Hero
actions={[
{
title: 'Headers',
description: "Ever tried driving without GPS? Boom! That's why websites need headers for direction.",
icon: 'flat-color-icons:template',
text: 'GitHub',
href: 'https://github.com/rustdesk/rustdesk/discussions',
target: '_blank',
icon: 'tabler:message-circle',
},
{
title: 'Heros',
description:
"Picture a superhero landing epic, right? That's the job of a Hero section, making grand entrances!",
icon: 'flat-color-icons:gallery',
text: 'Discord',
href: 'https://discord.gg/nDceKgxnkV',
target: '_blank',
icon: 'tabler:message-circle',
},
{
title: 'Features',
description:
'Where websites strut their stuff and show off superpowers. No holding back on the bragging rights here!',
icon: 'flat-color-icons:approval',
},
{
title: 'Content',
description:
"Dive into the meat and potatoes of a site; without it, you'd just be window shopping. Content is king.",
icon: 'flat-color-icons:document',
},
{
title: 'Call-to-Action',
description:
'That enthusiastic friend who\'s always urging, "Do it! Do it!"? Yeah, that\'s this button nudging you towards adventure.',
icon: 'flat-color-icons:advertising',
},
{
title: 'Pricing',
description: 'Behold the dessert menu of the website world. Tempting choices await, can you resist?',
icon: 'flat-color-icons:currency-exchange',
},
{
title: 'Testimonial',
description: 'Step into the gossip corner! Here, other visitors spill the beans and share the juicy details.',
icon: 'flat-color-icons:voice-presentation',
},
{
title: 'Contact',
description:
'Like a digital mailbox, but faster! Drop a line, ask a question, or send a virtual high-five. Ding! Message in.',
icon: 'flat-color-icons:business-contact',
},
{
title: 'Footers',
description: "The footer's like the credits of a movie but sprinkled with easter eggs. Time to hunt!",
icon: 'flat-color-icons:database',
text: 'Reddit',
href: 'https://www.reddit.com/r/rustdesk/',
target: '_blank',
icon: 'tabler:message-circle',
},
]}
>
<Fragment slot="bg">
<div class="absolute inset-0 bg-blue-50 dark:bg-transparent"></div>
<Fragment slot="title">
Join the community
</Fragment>
</Features2>
<!-- HighlightedPosts Widget ******* -->
<BlogLatestPosts
title="Find out more content in our Blog"
information={`The blog is used to display AstroWind documentation.
Each new article will be an important step that you will need to know to be an expert in creating a website using Astro + Tailwind CSS.
Astro is a very interesting technology. Thanks.
`}
/>
<!-- FAQs Widget ******************* -->
<FAQs
title="Frequently Asked Questions"
subtitle="Dive into the following questions to gain insights into the powerful features that AstroWind offers and how it can elevate your web development journey."
tagline="FAQs"
classes={{ container: 'max-w-6xl' }}
items={[
{
title: 'Why AstroWind?',
description:
"Michael Knight a young loner on a crusade to champion the cause of the innocent. The helpless. The powerless in a world of criminals who operate above the law. Here he comes Here comes Speed Racer. He's a demon on wheels.",
},
{
title: 'What do I need to start?',
description:
'Space, the final frontier. These are the voyages of the Starship Enterprise. Its five-year mission: to explore strange new worlds. Many say exploration is part of our destiny, but its actually our duty to future generations.',
},
{
title: 'How to install the Astro + Tailwind CSS template?',
description:
"Well, the way they make shows is, they make one show. That show's called a pilot. Then they show that show to the people who make shows, and on the strength of that one show they decide if they're going to make more shows.",
},
{
title: "What's something that you don't understand?",
description:
"A flower in my garden, a mystery in my panties. Heart attack never stopped old Big Bear. I didn't even know we were calling him Big Bear.",
},
{
title: 'What is something that you would like to try again?',
description:
"A business big enough that it could be listed on the NASDAQ goes belly up. Disappears! It ceases to exist without me. No, you clearly don't know who you're talking to, so let me clue you in.",
},
{
title: 'If you could only ask one question to each person you meet, what would that question be?',
description:
"This is not about revenge. This is about justice. A lot of things can change in twelve years, Admiral. Well, that's certainly good to know. About four years. I got tired of hearing how young I looked.",
},
]}
/>
<!-- Stats Widget ****************** -->
<Stats
stats={[
{ title: 'Downloads', amount: '132K' },
{ title: 'Stars', amount: '24.8K' },
{ title: 'Forks', amount: '10.3K' },
{ title: 'Users', amount: '48.4K' },
]}
/>
<!-- CallToAction Widget *********** -->
<Fragment slot="subtitle">
Discover what our community has to say about their RustDesk experience.
</Fragment>
</Hero>
<CallToAction
actions={[
{
variant: 'primary',
text: 'Get template',
href: 'https://github.com/onwidget/astrowind',
text: 'Download',
href: 'https://rustdesk.com/download',
target: '_blank',
icon: 'tabler:download',
},
{ text: 'Self-Hosting', href: 'https://rustdesk.com/docs/en/self-host/', target: '_blank', icon: 'tabler:book' },
]}
>
<Fragment slot="title">
Astro&nbsp;+&nbsp;<br class="block sm:hidden" /><span class="sm:whitespace-nowrap">Tailwind CSS</span>
</Fragment>
<Fragment slot="subtitle">
Be very surprised by these huge fake numbers you are seeing on this page. <br class="hidden md:inline" />Don't
waste more time! :P
Experience RustDesk for yourself
</Fragment>
</CallToAction>
</Layout>

View File

@ -20,7 +20,7 @@ The words of which the initial letter is capitalized have meanings defined under
For the purposes of this Privacy Policy:
- **Account** means a unique account created for You to access our Service or parts of our Service.
- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to AstroWind LLC, 1 Cupertino, CA 95014.
- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to RustDesk LLC, 1 Cupertino, CA 95014.
- **Cookies** are small files that are placed on Your computer, mobile device or any other device by a website, containing the details of Your browsing history on that website among its many uses.
- **Country** refers to: California, United States
- **Device** means any device that can access the Service such as a computer, a cellphone or a digital tablet.
@ -28,7 +28,7 @@ For the purposes of this Privacy Policy:
- **Service** refers to the Website.
- **Service Provider** means any natural or legal person who processes the data on behalf of the Company. It refers to third-party companies or individuals employed by the Company to facilitate the Service, to provide the Service on behalf of the Company, to perform services related to the Service or to assist the Company in analyzing how the Service is used.
- **Usage Data** refers to data collected automatically, either generated by the use of the Service or from the Service infrastructure itself (for example, the duration of a page visit).
- **Website** refers to AstroWind, accessible from [https://astrowind.vercel.app](https://astrowind.vercel.app)
- **Website** refers to RustDesk, accessible from [https://astrowind.vercel.app](https://astrowind.vercel.app)
- **You** means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.
## Collecting and Using Your Personal Data

View File

@ -21,7 +21,7 @@ const metadata = {
actions={[{ variant: 'primary', target: '_blank', text: 'Start exploring', href: '/' }]}
image={{
src: 'https://images.unsplash.com/photo-1519389950473-47ba0277781c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1740&q=80',
alt: 'AstroWind Hero Image',
alt: 'RustDesk Hero Image',
}}
/>

View File

@ -21,7 +21,7 @@ For the purposes of these Terms and Conditions:
- **Country** refers to: California, United States
- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to AstroWind LLC, 1 Cupertino, CA 95014.
- **Company** (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to RustDesk LLC, 1 Cupertino, CA 95014.
- **Device** means any device that can access the Service such as a computer, a cellphone or a digital tablet.
@ -31,7 +31,7 @@ For the purposes of these Terms and Conditions:
- **Third-party Social Media Service** means any services or content (including data, information, products or services) provided by a third-party that may be displayed, included or made available by the Service.
- **Website** refers to AstroWind, accessible from [https://astrowind.vercel.app](https://astrowind.vercel.app)
- **Website** refers to RustDesk, accessible from [https://astrowind.vercel.app](https://astrowind.vercel.app)
- **You** means the individual accessing or using the Service, or the company, or other legal entity on behalf of which such individual is accessing or using the Service, as applicable.

View File

@ -21,6 +21,7 @@ export interface ImageProps extends Omit<HTMLAttributes<'img'>, 'src'> {
layout?: Layout;
widths?: number[] | null;
aspectRatio?: string | number | null;
objectPosition?: string;
}
export type ImagesOptimizer = (
@ -259,7 +260,18 @@ export const unpicOptimizer: ImagesOptimizer = async (image, breakpoints, width,
/* ** */
export async function getImagesOptimized(
image: ImageMetadata | string,
{ src: _, width, height, sizes, aspectRatio, widths, layout = 'constrained', style = '', ...rest }: ImageProps,
{
src: _,
width,
height,
sizes,
aspectRatio,
objectPosition,
widths,
layout = 'constrained',
style = '',
...rest
}: ImageProps,
transform: ImagesOptimizer = () => Promise.resolve([])
): Promise<{ src: string; attributes: HTMLAttributes<'img'> }> {
if (typeof image !== 'string') {
@ -315,6 +327,7 @@ export async function getImagesOptimized(
width: width,
height: height,
aspectRatio: aspectRatio,
objectPosition: objectPosition,
layout: layout,
})}${style ?? ''}`,
...rest,

View File

@ -95,7 +95,7 @@ export default ({ config: _themeConfig = 'src/config.yaml' } = {}): AstroIntegra
const pattern = /^Sitemap:(.*)$/m;
if (!pattern.test(robotsTxt)) {
fs.appendFileSync(robotsTxtFileInOut, `${os.EOL}${os.EOL}Sitemap: ${sitemapUrl}`, {
fs.writeFileSync(robotsTxtFileInOut, `${robotsTxt}${os.EOL}${os.EOL}Sitemap: ${sitemapUrl}`, {
encoding: 'utf8',
flag: 'w',
});