Removed baked-in images
Cleaned up JSON format
@ -4,3 +4,4 @@ node_modules
|
||||
dist
|
||||
dist-ssr
|
||||
compose.yml
|
||||
src/config.json
|
1
.gitignore
vendored
@ -2,3 +2,4 @@ node_modules
|
||||
.DS_Store
|
||||
dist
|
||||
dist-ssr
|
||||
src/config.json
|
8
compose.yml
Normal file
@ -0,0 +1,8 @@
|
||||
services:
|
||||
homepage:
|
||||
image: jordanroher/starbase-80
|
||||
ports:
|
||||
- 4173:4173
|
||||
volumes:
|
||||
- ./config.json:/app/src/config.json
|
||||
- ./icons:/app/public/icons # or wherever, JSON icon paths are relative to /app/public
|
@ -1,4 +1,4 @@
|
||||
FROM node
|
||||
FROM node18:alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@ -7,7 +7,7 @@ RUN npm i
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN npm run build
|
||||
ENV NODE_ENV production
|
||||
|
||||
EXPOSE 4173
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"build": "tsc && vite build",
|
||||
"start": "vite preview"
|
||||
"start": "npm run build && vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@types/react-dom": "^18.0.11",
|
||||
|
Before Width: | Height: | Size: 63 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 32 KiB |
@ -1,12 +0,0 @@
|
||||
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H256V256H0V0Z" fill="url(#paint0_linear)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M60.7921 75.0001C46.339 74.9589 26.9714 85.292 28.0426 111.19C29.7163 151.656 66.5827 155.41 81.3211 155.735C82.9381 163.325 100.279 189.504 113.117 190.884H169.365C203.092 188.359 228.349 76.1915 209.625 75.7653C178.663 77.4046 160.307 78.2293 144.568 78.3679V113.38L139.662 110.943L139.63 78.389C122.634 78.3826 107.561 77.5457 80.7054 76.0546L80.7014 76.0544C79.0119 75.9606 77.2757 75.8642 75.4894 75.7653C73.8441 75.7477 71.9167 75.6034 69.7976 75.4447C67.0518 75.239 63.9842 75.0092 60.7921 75.0001ZM64.5638 89.3204C66.6097 110.05 69.9472 122.179 76.703 140.709C59.4699 138.431 44.8043 132.8 42.1069 111.778C40.6672 100.558 45.7259 88.8146 64.5638 89.3204ZM133.366 110.539L165.771 126.284C169.894 128.288 171.612 133.254 169.609 137.378L153.864 169.782C151.86 173.905 146.894 175.624 142.77 173.62L110.366 157.875C106.242 155.872 104.524 150.905 106.527 146.782L122.273 114.377C124.276 110.254 129.243 108.536 133.366 110.539Z" fill="white"/>
|
||||
<path d="M142.897 115.105L139.261 113.33L135.027 122.001C134.401 121.988 133.762 122.088 133.137 122.312C130.404 123.296 128.985 126.31 129.969 129.043C130.176 129.618 130.473 130.134 130.837 130.582L123.595 145.415C123.015 145.419 122.425 145.52 121.848 145.728C119.114 146.712 117.696 149.725 118.68 152.459C119.664 155.192 122.677 156.61 125.411 155.626C128.144 154.643 129.563 151.629 128.579 148.896C128.307 148.14 127.88 147.485 127.347 146.954L134.405 132.498C135.158 132.573 135.94 132.485 136.7 132.211C137.333 131.983 137.896 131.647 138.375 131.23C138.699 131.383 139.015 131.533 139.323 131.678C141.612 132.76 143.442 133.625 144.933 134.455C147.461 135.862 148.23 136.777 148.465 137.665C148.738 138.694 148.497 140.358 147.071 143.785C146.036 146.271 144.519 149.382 142.527 153.467L142.527 153.468C142.48 153.563 142.433 153.659 142.386 153.755C141.734 153.731 141.066 153.829 140.414 154.064C137.681 155.048 136.263 158.062 137.246 160.795C138.23 163.528 141.244 164.947 143.977 163.963C146.711 162.979 148.129 159.965 147.145 157.232C146.901 156.553 146.531 155.955 146.072 155.455C146.089 155.421 146.105 155.387 146.122 155.352C148.137 151.22 149.731 147.951 150.817 145.344C152.224 141.964 153.048 139.12 152.387 136.626C151.69 133.992 149.53 132.369 146.906 130.909C145.32 130.026 143.277 129.06 140.856 127.914C140.631 127.807 140.402 127.699 140.17 127.589C140.214 126.894 140.119 126.178 139.868 125.48C139.613 124.771 139.22 124.149 138.732 123.636L142.897 115.105Z" fill="white"/>
|
||||
<defs>
|
||||
<linearGradient id="paint0_linear" x1="128" y1="0" x2="128" y2="256" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#8AB11A"/>
|
||||
<stop offset="1" stop-color="#609926"/>
|
||||
<stop offset="1" stop-color="#58921D"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 8.0 KiB |
@ -1,24 +0,0 @@
|
||||
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1958_8589)">
|
||||
<path d="M256 0H0V256H256V0Z" fill="url(#paint0_radial_1958_8589)"/>
|
||||
<path d="M127.511 106.047C119.826 106.047 95.0839 150.901 98.8591 158.474C102.634 166.047 152.433 165.965 156.163 158.474C159.893 150.984 135.197 106.051 127.511 106.047Z" fill="url(#paint1_linear_1958_8589)"/>
|
||||
<path d="M127.511 39C104.353 39 29.8043 174.15 41.1712 196.974C52.5381 219.798 202.609 219.535 213.851 196.974C225.094 174.414 150.666 39 127.511 39ZM184.094 177.17C176.728 191.958 78.404 192.124 70.9514 177.17C63.4988 162.216 112.35 73.6609 127.523 73.6609C142.695 73.6609 191.46 162.377 184.094 177.17Z" fill="url(#paint2_linear_1958_8589)"/>
|
||||
</g>
|
||||
<defs>
|
||||
<radialGradient id="paint0_radial_1958_8589" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(128 128) rotate(90) scale(128)">
|
||||
<stop stop-color="#1D3862"/>
|
||||
<stop offset="1" stop-color="#0D1117"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="paint1_linear_1958_8589" x1="70.6694" y1="110.439" x2="215.769" y2="194.211" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#AA5CC3"/>
|
||||
<stop offset="1" stop-color="#00A4DC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_1958_8589" x1="70.6694" y1="110.442" x2="215.769" y2="194.214" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#AA5CC3"/>
|
||||
<stop offset="1" stop-color="#00A4DC"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_1958_8589">
|
||||
<rect width="256" height="256" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 7.4 KiB |
@ -1,291 +0,0 @@
|
||||
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_340_2124)">
|
||||
<rect width="256" height="256" fill="#0E0E0E"/>
|
||||
<g filter="url(#filter0_d_340_2124)">
|
||||
<path d="M129.071 129.642C129.071 129.642 156.839 130.643 169.598 141.65C182.356 152.657 191.112 173.672 187.359 191.935C179.854 190.183 147.833 184.679 134.824 168.668C121.815 152.657 122.316 141.401 123.817 134.645C125.318 127.892 129.071 129.642 129.071 129.642Z" fill="#1C9CF3"/>
|
||||
<path d="M124.422 134.705C123.788 137.559 123.104 142.04 124.484 147.984C125.985 154.453 129.555 161.417 135.422 168.411C148.844 184.413 186.644 190.902 187.103 191.003C188.54 182.685 187.57 174.019 184.201 164.964C180.873 156.019 175.529 148.062 169.152 142.558C156.59 131.723 128.778 130.599 128.5 130.59L128.213 130.579L128.006 130.471C128.003 130.471 127.77 130.382 127.448 130.382C126.117 130.382 125.043 131.916 124.422 134.705Z" fill="url(#paint0_radial_340_2124)"/>
|
||||
<path d="M122.208 129.664C122.208 129.664 125.71 136.92 117.455 147.927C109.199 158.935 91.9381 176.696 48.9092 172.944C50.4102 162.687 57.9152 152.18 66.1701 144.675C74.4263 137.17 92.9388 129.415 105.196 129.164C117.455 128.915 122.208 129.664 122.208 129.664Z" fill="#04BBF3"/>
|
||||
<path d="M105.106 130.074C99.3876 130.19 91.7145 132.034 84.048 135.134C76.5803 138.152 69.9985 141.974 65.9905 145.618C56.9684 153.821 51.1605 163.519 49.4287 172.223C52.8924 172.491 59.3647 172.626 59.3647 172.626C74.7737 172.626 87.6437 169.801 98.2041 163.785C107.566 158.453 113.189 151.784 116.603 147.231C123.153 138.499 122.139 132.392 121.562 130.48C120.122 130.325 116.479 130.021 109.996 130.021C108.442 130.021 106.797 130.038 105.106 130.074Z" fill="url(#paint1_linear_340_2124)"/>
|
||||
<path d="M209.591 104.117C209.591 104.117 204.588 118.627 180.072 125.631C155.555 132.636 129.288 128.133 129.288 128.133C129.288 128.133 135.542 111.622 153.554 103.867C171.566 96.1115 203.338 103.116 209.591 104.117Z" fill="#02BEF3"/>
|
||||
<path d="M152.897 105.492C138.237 111.805 131.317 124.021 129.288 128.248C132.311 128.66 139.245 129.451 147.945 129.451C159.494 129.451 170.047 128.109 179.312 125.462C199.092 119.811 206.31 108.554 208.292 104.775C207.968 104.717 185.442 100.268 172.59 100.268C163.38 100.268 158.457 103.097 152.897 105.492Z" fill="url(#paint2_radial_340_2124)"/>
|
||||
<path d="M121.839 130.475C121.839 130.475 86.1615 128.795 65.2208 113.517C44.2787 98.2389 44.7617 93.2022 44.7617 93.2022C44.7617 93.2022 68.2428 93.1302 79.8332 97.309C91.425 101.489 109.635 113.25 121.839 130.475Z" fill="#02BEF3"/>
|
||||
<path d="M66.203 113.23C74.3004 119.138 84.0763 123.314 95.564 126.124C95.5667 126.125 95.5667 126.125 95.5694 126.125C107.776 127.59 117.898 129.849 120.331 130.057C114.973 122.768 108.303 116.175 101.144 110.687C94.2151 105.363 86.9022 101.157 80.8261 98.7564C79.6987 98.3067 78.5046 97.9038 77.2744 97.5355C66.5765 94.3374 48.6352 94.1279 45.876 94.0879C46.5551 95.3447 48.9434 100.638 66.203 113.23Z" fill="url(#paint3_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M121.846 133.926C125.017 134.332 126.729 141.425 125.664 149.757C124.6 158.088 121.16 164.523 117.987 164.117C114.816 163.713 113.104 156.619 114.169 148.288C115.233 139.956 118.673 133.521 121.846 133.926Z" fill="url(#paint4_radial_340_2124)"/>
|
||||
<path d="M126.537 129.46C115.92 131.458 130.928 178.986 147 186.204C177.895 200.081 195.023 173.381 195.023 163.71C195.023 154.038 152.482 124.583 126.537 129.46Z" fill="url(#paint5_radial_340_2124)"/>
|
||||
<path d="M111.536 143.045C107.674 150.065 138.709 173.953 152.588 171.286C166.466 168.618 184.971 154.569 183.531 146.933C182.092 139.296 156.853 118.136 136.658 125.702C123.411 130.664 115.399 136.026 111.536 143.045Z" fill="url(#paint6_radial_340_2124)"/>
|
||||
<path d="M124.779 146.15C121.874 153.618 142.231 174.882 155.637 170.409C169.043 165.937 185.536 149.573 183.103 142.193C180.67 134.813 152.864 117.161 133.842 127.322C121.365 133.985 127.684 138.683 124.779 146.15Z" fill="url(#paint7_radial_340_2124)"/>
|
||||
<path d="M122.663 142.738C120.189 149.037 137.448 166.942 148.835 163.157C160.223 159.372 174.243 145.557 172.186 139.337C170.128 133.117 146.54 118.266 130.379 126.853C119.779 132.484 125.138 136.439 122.663 142.738Z" fill="url(#paint8_radial_340_2124)"/>
|
||||
<path d="M126.429 142.069C124.325 148.464 100.848 174.886 84.6519 178.592C68.4544 182.3 52.5063 165.354 51.0133 157.531C49.5203 149.71 73.9647 127.415 99.0122 125.483C115.442 124.215 129.96 131.347 126.429 142.069Z" fill="url(#paint9_radial_340_2124)"/>
|
||||
<path d="M126.244 138.533C124.624 145.978 103.069 175.603 87.0746 178.759C71.0786 181.918 53.7349 160.516 51.6282 151.092C49.5228 141.669 72.3688 117.031 97.3989 116.672C113.815 116.436 128.961 126.046 126.244 138.533Z" fill="url(#paint10_radial_340_2124)"/>
|
||||
<path d="M114.363 143.111C112.073 147.25 93.2785 161.567 82.4993 161.144C71.7201 160.723 64.2097 145.698 64.4458 139.869C64.682 134.04 83.4653 122.833 99.5614 126.181C110.119 128.378 118.206 136.172 114.363 143.111Z" fill="url(#paint11_radial_340_2124)"/>
|
||||
<path d="M90.6715 136.152C85.9764 136.734 63.3438 129.956 57.3451 120.989C51.3451 112.024 59.0783 97.1126 63.9322 93.8744C68.7848 90.6376 88.8957 99.2353 95.6562 114.223C100.09 124.053 98.5435 135.177 90.6715 136.152Z" fill="url(#paint12_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M172.755 97.2328C193.077 94.5443 210.627 100.312 211.923 110.107C213.22 119.9 197.773 130.035 177.452 132.723C157.13 135.412 139.581 129.644 138.284 119.851C136.988 110.056 152.435 99.9226 172.755 97.2328Z" fill="url(#paint13_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M176.877 98.5575C195.204 100.448 209.288 109.686 208.31 119.174C207.33 128.662 191.656 134.83 173.329 132.938C155.001 131.047 140.916 121.809 141.896 112.321C142.875 102.834 158.548 96.6655 176.877 98.5575Z" fill="url(#paint14_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M163.81 101.631C179.262 99.7234 192.631 104.843 193.643 113.055C194.657 121.266 182.933 129.481 167.482 131.387C152.029 133.294 138.66 128.176 137.647 119.964C136.633 111.753 148.357 103.538 163.81 101.631Z" fill="url(#paint15_radial_340_2124)"/>
|
||||
<path d="M123.684 130.139C123.713 130.63 124.99 140.606 116.359 144.352C109.684 147.249 101.478 148.678 83.2822 140.42C65.0846 132.164 58.7617 120.168 58.7617 120.168C58.7617 120.168 68.9406 123.906 75.2621 124.375C81.5851 124.842 97.9307 127.178 102.095 127.957C106.258 128.736 113.66 128.113 116.436 127.49C119.212 126.866 123.376 125.153 123.684 130.139Z" fill="#B3C3CE"/>
|
||||
<path d="M83.2809 139.903C101.478 148.161 109.685 146.732 116.359 143.836C124.989 140.088 123.713 130.112 123.684 129.62C123.374 124.635 119.212 126.35 116.436 126.973C113.66 127.596 106.443 127.156 100.454 126.736C93.3236 126.235 81.8159 124.734 75.2635 123.856C68.9792 123.016 58.7617 119.649 58.7617 119.649C58.7617 119.649 65.086 131.645 83.2809 139.903Z" fill="url(#paint16_linear_340_2124)"/>
|
||||
<path d="M118.042 121.06C118.042 121.06 112.249 116.48 107.535 111.496C102.82 106.512 87.5974 92.0979 83.8255 88.1912C80.055 84.286 69.8161 70.949 68.4685 65.2905C65.3704 72.1618 63.3504 84.6889 67.1223 96.813C70.8928 108.937 79.6507 117.692 91.2345 122.542C102.82 127.391 112.922 127.123 115.751 127.123C118.581 127.123 122.487 125.236 118.042 121.06Z" fill="#F5F6F2"/>
|
||||
<path d="M67.6238 96.813C71.3957 108.936 80.1523 117.692 91.7374 122.541C103.321 127.392 113.424 127.46 116.254 127.46C117.851 127.46 122.91 127.257 123.161 126.508C123.699 124.892 120.591 123.695 118.658 121.879C113.524 117.82 113.62 117.399 108.036 111.496C103.321 106.512 88.0989 92.0979 84.3284 88.1912C80.5565 84.2846 70.3163 70.949 68.9701 65.2905C65.872 72.1605 63.8506 84.6889 67.6238 96.813Z" fill="url(#paint17_linear_340_2124)"/>
|
||||
<path d="M182.188 72.1107C177.184 76.6137 168.318 82.6018 159.813 88.1055C151.307 93.6091 145.803 102.866 139.299 112.622C132.794 122.379 126.29 127.132 126.29 127.132C126.29 127.132 136.546 128.633 146.303 128.633C161.322 128.633 178.325 116.124 184.579 109.37C190.833 102.615 195.036 91.6118 195.086 80.3509C195.143 67.1941 189.056 64.6177 189.056 64.6177C189.056 64.6177 187.191 67.6077 182.188 72.1107Z" fill="url(#paint18_linear_340_2124)"/>
|
||||
<path d="M182.891 71.0951C177.887 75.5981 167.817 82.6015 159.311 88.1052C150.806 93.6088 145.302 102.866 138.798 112.622C133.794 120.128 127.531 124.261 124.908 126.403C124.121 127.046 123.662 128.758 123.662 128.758C132.694 130.079 134.804 128.632 145.802 128.632C160.819 128.632 177.824 116.124 184.077 109.37C190.332 102.615 194.335 91.6075 194.584 80.3506C194.835 69.0924 189.081 64.5894 189.081 64.5894C189.081 64.5894 187.893 66.592 182.891 71.0951Z" fill="url(#paint19_linear_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M101.193 104.013C112.044 111.029 118.087 121.005 114.678 126.276C111.269 131.549 99.6916 130.132 88.8417 123.117C77.9904 116.1 71.9477 106.124 75.3566 100.853C78.7656 95.5811 90.3427 96.9967 101.193 104.013Z" fill="url(#paint20_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M100.152 103.271C110.461 111.063 116.251 120.801 113.073 125.006C109.895 129.21 98.9463 126.297 88.6381 118.507C78.3298 110.716 72.5406 100.976 75.7174 96.772C78.8955 92.5678 89.8442 95.4804 100.152 103.271Z" fill="url(#paint21_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M146.567 110.089C157.292 104.093 167.859 102.553 170.15 106.651C172.439 110.748 165.593 118.942 154.869 124.938C144.144 130.932 133.578 132.474 131.287 128.376C128.997 124.279 135.844 116.085 146.567 110.089Z" fill="url(#paint22_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M149.754 104.994C160.363 99.0633 171.022 97.9091 173.543 102.419C176.065 106.929 169.498 115.405 158.89 121.336C148.281 127.266 137.622 128.42 135.102 123.911C132.58 119.401 139.146 110.925 149.754 104.994Z" fill="url(#paint23_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M148.411 109.104C158.419 102.207 169.068 100.27 172.176 104.781C175.286 109.292 169.685 118.554 159.679 125.452C149.672 132.349 139.023 134.286 135.913 129.775C132.804 125.264 138.404 116.002 148.411 109.104Z" fill="url(#paint24_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M160.671 99.2982C164.512 90.6951 170.688 85.0766 174.457 86.7578C178.225 88.4402 178.166 96.7912 174.327 105.393C170.485 113.996 164.308 119.615 160.54 117.933C156.772 116.251 156.831 107.901 160.671 99.2982Z" fill="url(#paint25_radial_340_2124)"/>
|
||||
<path d="M77.2662 86.2453C76.1921 94.1212 78.048 102.227 81.7532 107.562C85.4597 112.902 96.1135 123.317 106.611 124.798C113.43 125.757 120.749 125.718 120.749 125.718C120.749 125.718 116.669 121.756 113.084 114.295C109.498 106.835 106.562 99.8237 101.16 95.1379C95.7559 90.4548 90.1468 85.3954 87.0928 81.7543C84.0401 78.1145 83.0314 75.8423 83.0314 75.8423C83.0314 75.8423 78.5217 77.0418 77.2662 86.2453Z" fill="url(#paint26_linear_340_2124)"/>
|
||||
<path d="M77.6218 86.2949C76.6879 94.1882 78.4024 102.276 82.1088 107.613C85.8153 112.95 96.4678 123.368 106.966 124.846C114.653 125.929 115.385 126.35 121.828 126.315C121.828 126.315 117.024 121.804 113.438 114.344C109.851 106.885 106.918 99.872 101.514 95.1875C96.1103 90.5044 89.762 84.6164 86.7079 80.9766C83.6539 77.3368 83.0201 75.8198 83.0201 75.8198C83.0201 75.8198 78.5545 78.4002 77.6218 86.2949Z" fill="url(#paint27_linear_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M118.884 131.356C120.298 135.449 115.098 140.966 107.28 143.666C99.4599 146.367 91.9642 145.236 90.5499 141.142C89.137 137.047 94.3365 131.532 102.155 128.831C109.974 126.131 117.471 127.262 118.884 131.356Z" fill="url(#paint28_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.534 134.105C115.693 137.977 109.96 141.363 102.736 141.66C95.5138 141.958 89.5218 139.056 89.3617 135.184C89.2016 131.311 94.9361 127.926 102.158 127.627C109.38 127.329 115.374 130.233 115.534 134.105Z" fill="url(#paint29_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M121.971 132.303C123.108 134.99 119.199 139.213 113.248 141.728C107.299 144.243 101.545 144.105 100.41 141.417C99.2746 138.73 103.184 134.507 109.133 131.992C115.084 129.477 120.836 129.617 121.971 132.303Z" fill="url(#paint30_radial_340_2124)"/>
|
||||
<path d="M86.3234 130.867C89.2133 135.045 93.5842 138.069 97.6336 138.987C101.683 139.908 111.2 140.224 116.79 136.397C120.422 133.908 123.855 130.734 123.855 130.734C123.855 130.734 120.222 130.626 115.315 128.652C110.406 126.679 105.997 124.638 101.429 124.758C96.8598 124.878 92.0325 124.911 89.0225 124.511C86.0111 124.112 84.5555 123.474 84.5555 123.474C84.5555 123.474 82.9478 125.985 86.3234 130.867Z" fill="url(#paint31_linear_340_2124)"/>
|
||||
<path d="M86.7529 130.725C89.7162 134.849 94.0124 137.924 98.0618 138.845C102.113 139.763 111.631 140.083 117.219 136.254C121.312 133.448 121.838 133.332 124.862 130.537C124.862 130.537 120.653 130.482 115.743 128.509C110.834 126.537 106.427 124.494 101.858 124.615C97.2893 124.737 91.7549 124.698 88.7449 124.298C85.7349 123.898 84.7822 123.455 84.7822 123.455C84.7822 123.455 83.7882 126.598 86.7529 130.725Z" fill="url(#paint32_linear_340_2124)"/>
|
||||
<path d="M176.302 129.417C171.802 131.312 151.787 130.247 144.446 129.417C137.104 128.589 129.518 128.717 128.102 128.589C123.037 128.132 123.958 129.772 123.602 134.865C122.773 148.958 128.102 151.8 132.01 152.393C135.919 152.985 139.472 151.091 139.472 151.091C139.472 151.091 178.197 133.563 181.75 131.667C182.412 128.032 182.252 126.882 181.441 126.882C180.507 126.882 178.709 128.405 176.302 129.417Z" fill="url(#paint33_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M140.135 134.043C146.737 138.727 150.298 145.063 148.084 148.183C145.869 151.304 138.713 150.032 132.112 145.346C125.51 140.662 121.949 134.326 124.163 131.205C126.378 128.085 133.535 129.357 140.135 134.043Z" fill="url(#paint34_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M138.646 134.031C143.714 137.628 146.031 143.081 143.817 146.201C141.602 149.32 135.69 148.932 130.623 145.335C125.554 141.738 123.238 136.285 125.452 133.165C127.666 130.046 133.578 130.434 138.646 134.031Z" fill="url(#paint35_radial_340_2124)"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M143.313 134.42C148.381 138.017 150.697 143.47 148.483 146.589C146.269 149.709 140.357 149.322 135.289 145.725C130.222 142.128 127.904 136.675 130.119 133.554C132.333 130.435 138.245 130.823 143.313 134.42Z" fill="url(#paint36_radial_340_2124)"/>
|
||||
<path d="M126.137 135.689C129.656 141.481 138.46 145.108 142.53 145.938C146.599 146.767 151.827 145.808 156.18 143.19C161.265 140.132 160.833 137.182 160.833 137.182C160.833 137.182 159.244 137.162 156.336 136.29C153.428 135.413 149.041 133.397 144.927 131.406C140.814 129.417 135.956 129.462 130.67 129.24C125.385 129.017 122.029 127.623 122.029 127.623C122.029 127.623 123.852 131.929 126.137 135.689Z" fill="url(#paint37_linear_340_2124)"/>
|
||||
<path d="M126.254 135.482C129.77 141.274 138.576 144.9 142.645 145.729C146.715 146.559 151.896 145.523 156.295 142.983C160.695 140.444 161.082 137.171 161.082 137.171C161.082 137.171 160.033 137.18 157.126 136.306C154.217 135.431 149.158 133.188 145.043 131.199C140.93 129.208 136.072 129.254 130.785 129.032C125.501 128.808 121.641 127.125 121.641 127.125C123.246 130.919 123.678 131.242 126.254 135.482Z" fill="url(#paint38_linear_340_2124)"/>
|
||||
<path d="M180.603 132.277C180.603 132.277 182.23 131.027 182.104 128.525C181.98 126.024 182.605 122.27 169.346 114.14C164.969 122.021 149.833 143.035 143.204 147.788C136.574 152.541 135.512 152.38 135.512 152.38C135.512 152.38 139.342 151.922 142.703 149.414C146.336 146.703 180.603 132.277 180.603 132.277Z" fill="#CBD3DD"/>
|
||||
<path d="M143.36 148.047C139.244 150.998 137.988 151.589 137.067 151.976C137.41 151.873 139.988 151.198 142.859 149.673C146.862 147.547 180.759 132.536 180.759 132.536C180.759 132.536 182.386 131.285 182.26 128.783C182.136 126.282 182.761 122.53 169.503 114.399C165.125 122.279 149.989 143.294 143.36 148.047Z" fill="url(#paint39_linear_340_2124)"/>
|
||||
<path d="M122.915 133.191C122.09 133.19 114.88 146.292 118.257 161.302C118.257 161.302 123.08 155.514 123.671 140.959C123.916 134.955 123.494 133.191 122.915 133.191Z" fill="url(#paint40_linear_340_2124)"/>
|
||||
<path d="M104.259 91.4935C105.956 89.8391 111.728 91.1626 113.085 92.9825C114.413 94.761 121.248 101.599 120.924 111.946C121.975 111.99 123.368 112.173 124.968 112.173C126.35 112.173 127.628 112.037 128.678 111.97C128.342 101.61 135.187 94.7624 136.514 92.9825C137.871 91.1626 143.643 89.8391 145.34 91.4935C147.039 93.148 142.625 92.9825 140.588 92.4862C133.995 93.9458 129.784 108.549 128.888 111.958C130.425 111.874 131.417 111.982 131.417 113C131.417 114.542 129.257 117.031 126.251 117.298C126.374 117.917 127.088 121.371 126.283 125.005C125.956 126.482 122.922 128.154 122.922 128.154C119.7 117.598 122.892 116.57 122.936 116.482C120.297 116.087 118.857 114.416 118.857 113C118.857 112.098 119.547 111.91 120.708 111.938C119.799 108.493 115.591 93.9432 109.013 92.4862C106.976 92.9825 102.562 93.148 104.259 91.4935Z" fill="#00C6F9"/>
|
||||
<path d="M136.514 93.4366C135.187 95.2178 128.342 102.062 128.678 112.425C127.628 112.491 126.349 112.627 124.968 112.627C123.368 112.627 121.975 112.445 120.924 112.4C121.248 102.053 114.413 95.2151 113.087 93.4366C111.728 91.6153 105.956 90.2931 104.259 91.9476C102.562 93.602 106.976 93.4366 109.013 92.9402C115.591 94.3972 119.799 108.947 120.708 112.392C119.547 112.365 118.857 112.552 118.857 113.454C118.857 114.87 119.906 116.643 122.544 117.035C122.5 117.123 120.331 118.694 122.922 128.608C122.922 128.608 127.061 128.219 126.429 119.75C126.357 118.772 126.255 117.99 126.131 117.371C129.136 117.103 131.417 114.995 131.417 113.454C131.417 112.437 130.425 112.329 128.886 112.412C129.786 109.003 133.995 94.3999 140.588 92.9402C142.625 93.4366 147.039 93.602 145.34 91.9476C144.796 91.4165 143.833 91.1924 142.73 91.1924C140.396 91.1924 137.436 92.1997 136.514 93.4366Z" fill="url(#paint41_radial_340_2124)"/>
|
||||
<path d="M108.37 75.4855C107.12 78.0072 111.529 78.3834 113.03 77.6269C117.88 79.8484 120.98 102.027 121.649 107.279C120.794 107.236 120.286 107.522 120.286 108.896C120.286 111.053 121.451 114.138 123.393 114.74C123.361 114.873 123.344 114.953 123.344 114.953C123.344 114.953 120.035 121.128 122.787 134.637C122.787 134.637 125.866 127.883 125.866 118.494C125.866 117.001 125.737 115.813 125.645 114.868C127.86 114.46 129.541 111.247 129.541 108.896C129.541 107.347 128.812 107.181 127.677 107.31C128.194 101.113 130.305 80.1112 136.301 77.6269C137.802 78.3834 142.019 78.0992 140.768 75.5775C139.517 73.0558 135.09 75.0665 133.335 77.4281C131.407 80.0192 126.754 91.6096 127.001 107.403C126.228 107.504 125.806 107.635 124.789 107.635C123.611 107.635 122.583 107.358 121.808 107.289C122.047 91.5162 116.902 81.1306 116.032 78.3834C115.21 75.7817 112.653 74.2446 110.659 74.2446C109.652 74.2446 108.79 74.6382 108.37 75.4855Z" fill="url(#paint42_linear_340_2124)"/>
|
||||
<path d="M108.37 75.9766C107.12 78.477 111.529 78.8505 113.03 78.0994C117.88 80.3035 120.98 102.305 121.649 107.515C120.794 107.474 120.286 107.757 120.286 109.12C120.286 111.26 121.451 114.32 123.393 114.916C123.361 115.048 123.344 115.128 123.344 115.128C123.344 115.128 117.613 134.92 121.383 147.881C121.383 147.881 126.33 131.447 125.866 118.641C125.812 117.162 125.737 115.981 125.645 115.043C127.86 114.64 129.541 111.452 129.541 109.12C129.541 107.582 128.812 107.419 127.677 107.544C128.194 101.399 130.305 80.565 136.301 78.0994C137.802 78.8505 142.019 78.569 140.768 76.0673C139.517 73.5657 135.09 75.5603 133.335 77.9032C131.407 80.473 126.754 91.9714 127.001 107.639C126.228 107.739 125.806 107.87 124.789 107.87C123.611 107.87 122.583 107.594 121.808 107.527C122.047 91.878 116.902 81.5777 116.032 78.8505C115.21 76.2701 112.653 74.7451 110.659 74.7451C109.653 74.7465 108.79 75.136 108.37 75.9766Z" fill="url(#paint43_linear_340_2124)"/>
|
||||
<path d="M130.081 121.146C130.081 121.146 135.075 117.196 139.142 112.899C143.207 108.6 156.333 96.1714 159.586 92.8012C162.839 89.4336 171.668 77.9325 172.83 73.0532C175.502 78.9785 177.243 89.7818 173.991 100.235C170.739 110.691 163.187 118.242 153.198 122.424C143.207 126.605 134.495 126.373 132.057 126.373C129.617 126.373 126.248 124.747 130.081 121.146Z" fill="#F5F6F2"/>
|
||||
<path d="M159.155 92.8012C155.9 96.1714 142.776 108.6 138.71 112.899C133.895 117.989 133.978 118.352 129.551 121.853C127.883 123.418 125.274 125.198 125.62 125.951C125.966 126.704 130.246 126.373 131.624 126.373C134.063 126.373 142.776 126.605 152.766 122.424C162.756 118.242 170.306 110.691 173.559 100.237C176.813 89.7818 175.069 78.9785 172.397 73.0532C171.236 77.9338 162.407 89.4336 159.155 92.8012Z" fill="url(#paint44_linear_340_2124)"/>
|
||||
</g>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_340_2124" x="1.76074" y="44.5894" width="253.238" height="213.345" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dy="23"/>
|
||||
<feGaussianBlur stdDeviation="21.5"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0.0941176 0 0 0 0 0.537255 0 0 0 0 0.803922 0 0 0 0.38 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_340_2124"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_340_2124" result="shape"/>
|
||||
</filter>
|
||||
<radialGradient id="paint0_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(125.138 128.525) rotate(180) scale(88.2442 88.2442)">
|
||||
<stop stop-color="#3D4EAD"/>
|
||||
<stop offset="1" stop-color="#00C0F3"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="paint1_linear_340_2124" x1="121.989" y1="151.436" x2="48.9593" y2="151.436" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#3F51B4"/>
|
||||
<stop offset="1" stop-color="#00C0F3"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="paint2_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(124.928 128.535) rotate(180) scale(88.2425 88.2425)">
|
||||
<stop stop-color="#3D4EAD"/>
|
||||
<stop offset="1" stop-color="#00C0F3"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint3_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(109.402 228.105) rotate(-116.066) scale(159.825 81.1964)">
|
||||
<stop stop-color="#0072E9"/>
|
||||
<stop offset="1" stop-color="#00FDFE"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint4_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(119.917 149.022) rotate(7.48971) scale(5.38984 15.2184)">
|
||||
<stop stop-color="#153E68" stop-opacity="0.34"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0.01"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint5_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(143.758 147.793) rotate(133.278) scale(20.1571 47.7181)">
|
||||
<stop stop-color="#00336F"/>
|
||||
<stop offset="1" stop-color="#00336F" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint6_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(141.378 140.296) rotate(119.753) scale(17.5285 38.0074)">
|
||||
<stop stop-color="#00336F" stop-opacity="0.5"/>
|
||||
<stop offset="1" stop-color="#00336F" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint7_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(140.443 141.166) rotate(112.184) scale(17.5285 38.0073)">
|
||||
<stop stop-color="#00336F" stop-opacity="0.5"/>
|
||||
<stop offset="1" stop-color="#00336F" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint8_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(135.968 138.519) rotate(112.377) scale(14.8071 32.2069)">
|
||||
<stop stop-color="#00336F"/>
|
||||
<stop offset="1" stop-color="#00336F" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint9_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(101.263 139.988) rotate(-134.26) scale(18.7139 48.2068)">
|
||||
<stop stop-color="#002D68"/>
|
||||
<stop offset="1" stop-color="#002D68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint10_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(100.784 134.106) rotate(-129.873) scale(22.099 48.5894)">
|
||||
<stop stop-color="#002D68"/>
|
||||
<stop offset="1" stop-color="#002D68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint11_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(98.7967 136.893) rotate(-117.475) scale(13.488 31.8328)">
|
||||
<stop stop-color="#002D68"/>
|
||||
<stop offset="1" stop-color="#002D68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint12_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(86.5433 119.905) rotate(-63.5041) scale(13.4881 31.8328)">
|
||||
<stop stop-color="#002D68"/>
|
||||
<stop offset="1" stop-color="#002D68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint13_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(138.272 119.756) rotate(-7.43763) scale(74.7612 21.4592)">
|
||||
<stop stop-color="#00326D"/>
|
||||
<stop offset="1" stop-color="#003B79" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint14_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(141.905 112.23) rotate(5.99865) scale(67.1984 20.7185)">
|
||||
<stop stop-color="#00326D"/>
|
||||
<stop offset="1" stop-color="#003B79" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint15_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(137.637 119.885) rotate(-6.92408) scale(56.7865 17.9725)">
|
||||
<stop stop-color="#00326D"/>
|
||||
<stop offset="1" stop-color="#003B79" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="paint16_linear_340_2124" x1="123.767" y1="132.878" x2="58.7621" y2="132.878" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#F5F7FA"/>
|
||||
<stop offset="0.53" stop-color="#F1F4F2"/>
|
||||
<stop offset="1" stop-color="#BAD7E9"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint17_linear_340_2124" x1="123.223" y1="96.2112" x2="65.5738" y2="96.2112" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FAFAFA"/>
|
||||
<stop offset="0.26" stop-color="#F1F6F8"/>
|
||||
<stop offset="0.73" stop-color="#DCE5EB"/>
|
||||
<stop offset="1" stop-color="#BBCFDA"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint18_linear_340_2124" x1="160.688" y1="128.633" x2="160.688" y2="64.6179" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDFDFF"/>
|
||||
<stop offset="0.26" stop-color="#F1F2F2"/>
|
||||
<stop offset="0.73" stop-color="#BFD2E0"/>
|
||||
<stop offset="1" stop-color="#AFC0CC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint19_linear_340_2124" x1="159.628" y1="128.705" x2="159.628" y2="64.5898" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#F1F6F6"/>
|
||||
<stop offset="0.41" stop-color="#FDFDFD"/>
|
||||
<stop offset="0.55" stop-color="#F5F8FA"/>
|
||||
<stop offset="0.89" stop-color="#D6E1E7"/>
|
||||
<stop offset="0.98" stop-color="#C3D3DD"/>
|
||||
<stop offset="1" stop-color="#C3D3DD"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="paint20_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(95.0172 113.565) rotate(32.8863) scale(23.4122 11.3745)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint21_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(94.3954 110.889) rotate(37.082) scale(23.4122 9.54853)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint22_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(150.718 117.513) rotate(-29.2076) scale(22.2613 8.50542)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint23_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(154.322 113.165) rotate(-29.2076) scale(22.021 9.36113)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint24_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(154.045 117.278) rotate(-34.5762) scale(22.0209 9.92716)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#1A426B" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint25_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(167.498 102.346) rotate(-65.9438) scale(17.0699 7.47678)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#1B436C" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="paint26_linear_340_2124" x1="96.5562" y1="123.38" x2="102.86" y2="78.6355" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDFDFF"/>
|
||||
<stop offset="0.26" stop-color="#F1F2F2"/>
|
||||
<stop offset="0.73" stop-color="#BFD2E0"/>
|
||||
<stop offset="1" stop-color="#AFC0CC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint27_linear_340_2124" x1="121.828" y1="101.069" x2="77.371" y2="101.068" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FAFAFA"/>
|
||||
<stop offset="0.26" stop-color="#F1F6F8"/>
|
||||
<stop offset="0.73" stop-color="#DCE5EB"/>
|
||||
<stop offset="1" stop-color="#BBCFDA"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="paint28_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(104.717 136.249) rotate(70.9455) scale(7.84751 14.9879)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint29_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(102.447 134.644) rotate(87.6395) scale(7.0225 13.097)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint30_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(111.191 136.86) rotate(67.0876) scale(5.28488 11.7042)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="paint31_linear_340_2124" x1="111.437" y1="140.064" x2="95.1135" y2="116.241" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDFDFF"/>
|
||||
<stop offset="0.26" stop-color="#F1F2F2"/>
|
||||
<stop offset="0.73" stop-color="#BFD2E0"/>
|
||||
<stop offset="1" stop-color="#AFC0CC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint32_linear_340_2124" x1="113.975" y1="118.629" x2="93.0063" y2="137.801" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FAFAFA"/>
|
||||
<stop offset="0.26" stop-color="#F1F6F8"/>
|
||||
<stop offset="0.73" stop-color="#DCE5EB"/>
|
||||
<stop offset="1" stop-color="#BBCFDA"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="paint33_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(152.839 139.695) rotate(180) scale(22.6273)">
|
||||
<stop stop-color="#F9F9FA"/>
|
||||
<stop offset="1" stop-color="#F5F7F7"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint34_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(136.123 139.694) rotate(35.3664) scale(14.6666 6.93126)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint35_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(134.634 139.683) rotate(35.3663) scale(11.2602 6.93126)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="paint36_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(139.301 140.072) rotate(35.3663) scale(11.2602 6.93126)">
|
||||
<stop stop-color="#153E68"/>
|
||||
<stop offset="1" stop-color="#153E68" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="paint37_linear_340_2124" x1="129.508" y1="141.237" x2="154.189" y2="126.243" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FDFDFF"/>
|
||||
<stop offset="0.26" stop-color="#F1F2F2"/>
|
||||
<stop offset="0.73" stop-color="#BFD2E0"/>
|
||||
<stop offset="1" stop-color="#AFC0CC"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint38_linear_340_2124" x1="136.464" y1="120.755" x2="147.684" y2="146.859" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FAFAFA"/>
|
||||
<stop offset="0.26" stop-color="#F1F6F8"/>
|
||||
<stop offset="0.73" stop-color="#DCE5EB"/>
|
||||
<stop offset="1" stop-color="#BBCFDA"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint39_linear_340_2124" x1="151.335" y1="122.785" x2="159.966" y2="141.923" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#AEBCD0"/>
|
||||
<stop offset="0.22" stop-color="#859BB9"/>
|
||||
<stop offset="0.53" stop-color="#A1B1C9"/>
|
||||
<stop offset="1" stop-color="#97A9C3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint40_linear_340_2124" x1="120.488" y1="161.301" x2="120.488" y2="133.19" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#C0CBDA"/>
|
||||
<stop offset="0.02" stop-color="#C0CBDA"/>
|
||||
<stop offset="0.11" stop-color="#D4DBE5"/>
|
||||
<stop offset="0.45" stop-color="#F5F6F9"/>
|
||||
<stop offset="0.59" stop-color="#FDFDFD"/>
|
||||
<stop offset="1" stop-color="#FCFDFD"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="paint41_radial_340_2124" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(124.8 109.901) rotate(180) scale(24.3075 16.6713)">
|
||||
<stop stop-color="#3F51B5"/>
|
||||
<stop offset="1" stop-color="#04BBF3"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="paint42_linear_340_2124" x1="124.573" y1="134.638" x2="124.573" y2="74.2454" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#AFC0CC"/>
|
||||
<stop offset="0.24" stop-color="#AFC0CC"/>
|
||||
<stop offset="0.74" stop-color="#F1F2F2"/>
|
||||
<stop offset="1" stop-color="#FDFDFF"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint43_linear_340_2124" x1="124.573" y1="136.822" x2="124.573" y2="74.7459" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#FAFAFA"/>
|
||||
<stop offset="0.26" stop-color="#F1F6F8"/>
|
||||
<stop offset="0.73" stop-color="#DCE5EB"/>
|
||||
<stop offset="1" stop-color="#BBCFDA"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint44_linear_340_2124" x1="150.471" y1="126.381" x2="150.471" y2="73.0538" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#F1F6F6"/>
|
||||
<stop offset="0.41" stop-color="#FDFDFD"/>
|
||||
<stop offset="0.55" stop-color="#F5F8FA"/>
|
||||
<stop offset="0.89" stop-color="#D6E1E7"/>
|
||||
<stop offset="0.98" stop-color="#C3D3DD"/>
|
||||
<stop offset="1" stop-color="#C3D3DD"/>
|
||||
</linearGradient>
|
||||
<clipPath id="clip0_340_2124">
|
||||
<rect width="256" height="256" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
Before Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 59 KiB |
75
readme.md
Normal file
@ -0,0 +1,75 @@
|
||||
# Starbase 80
|
||||
|
||||
A nice looking homepage for Docker containers or any other services and links.
|
||||
|
||||
No actual integration with Docker. Loads instantly.
|
||||
|
||||
If you make a change to the config JSON, restart this container and refresh.
|
||||
|
||||
Provide your own icons.
|
||||
|
||||
# Docker compose
|
||||
|
||||
```yaml
|
||||
services:
|
||||
homepage:
|
||||
image: jordanroher/starbase-80
|
||||
ports:
|
||||
- 4173:4173
|
||||
volumes:
|
||||
- ./config.json:/app/src/config.json
|
||||
- ./icons:/app/public/icons # or wherever, JSON icon paths are relative to /app/public
|
||||
```
|
||||
|
||||
# config.json format
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"category": "Services",
|
||||
"services": [
|
||||
{
|
||||
"name": "Archivebox",
|
||||
"uri": "https://archivebox.mywebsite.com",
|
||||
"description": "Backup webpages",
|
||||
"icon": "/icons/archivebox.jpg"
|
||||
},
|
||||
{
|
||||
"name": "Authelia",
|
||||
"uri": "https://auth.mywebsite.com",
|
||||
"description": "Authentication",
|
||||
"icon": "/icons/authelia.png"
|
||||
},
|
||||
{
|
||||
"name": "Calibre",
|
||||
"uri": "https://calibre.mywebsite.com",
|
||||
"description": "eBook library",
|
||||
"icon": "/icons/calibre.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"category": "Devices",
|
||||
"services": [
|
||||
{
|
||||
"name": "Router",
|
||||
"uri": "http://192.168.1.1/",
|
||||
"description": "Netgear Orbi",
|
||||
"icon": "/icons/router.png"
|
||||
},
|
||||
{
|
||||
"name": "Home Assistant",
|
||||
"uri": "http://homeassistant.local:8123/",
|
||||
"description": "Home automation",
|
||||
"icon": "/icons/home-assistant.svg"
|
||||
},
|
||||
{
|
||||
"name": "Synology",
|
||||
"uri": "http://synology:5000",
|
||||
"description": "Network storage",
|
||||
"icon": "/icons/synology.png"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
@ -1,6 +1,5 @@
|
||||
import React from "react";
|
||||
import { is } from "../shared/is";
|
||||
import { IIcon } from "../shared/types";
|
||||
|
||||
const iconColors = [
|
||||
"blue",
|
||||
@ -25,7 +24,7 @@ const getIconColor = (index: number) => `bg-${iconColors[iconColors.length % ind
|
||||
|
||||
interface IProps {
|
||||
index: number;
|
||||
icon?: IIcon;
|
||||
icon?: string;
|
||||
uri?: string;
|
||||
}
|
||||
|
||||
@ -45,12 +44,12 @@ export const Icon: React.FunctionComponent<IProps> = ({ uri, icon, index }) => {
|
||||
if (!is.null(uri)) {
|
||||
return (
|
||||
<a href={uri} target="_blank">
|
||||
<IconBase icon={icon as IIcon} index={index} />
|
||||
<IconBase icon={icon as string} />
|
||||
</a>
|
||||
);
|
||||
}
|
||||
|
||||
return <IconBase icon={icon as IIcon} index={index} />;
|
||||
return <IconBase icon={icon as string} />;
|
||||
};
|
||||
|
||||
interface IIconBlankProps {
|
||||
@ -68,18 +67,14 @@ const IconBlank: React.FunctionComponent<IIconBlankProps> = ({ index }) => {
|
||||
};
|
||||
|
||||
interface IIconBaseProps {
|
||||
icon: IIcon;
|
||||
index: number;
|
||||
icon: string;
|
||||
}
|
||||
|
||||
const IconBase: React.FunctionComponent<IIconBaseProps> = ({ icon, index }) => {
|
||||
const { href, alt, title } = icon;
|
||||
|
||||
const IconBase: React.FunctionComponent<IIconBaseProps> = ({ icon }) => {
|
||||
return (
|
||||
<img
|
||||
src={href}
|
||||
alt={alt}
|
||||
title={title}
|
||||
src={icon}
|
||||
alt=""
|
||||
className=" block w-16 h-16 rounded-2xl border border-black/5 shadow-sm overflow-hidden"
|
||||
/>
|
||||
);
|
||||
|
@ -1,180 +0,0 @@
|
||||
[
|
||||
{
|
||||
"category": "Services",
|
||||
"services": [
|
||||
{
|
||||
"name": "Archivebox",
|
||||
"uri": "https://archivebox.starbase80.dev",
|
||||
"description": "Backup webpages",
|
||||
"icon": {
|
||||
"href": "/icons/archivebox.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Authelia",
|
||||
"uri": "https://auth.starbase80.dev",
|
||||
"description": "Authentication",
|
||||
"icon": {
|
||||
"href": "/icons/authelia.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Calibre",
|
||||
"uri": "https://calibre.starbase80.dev",
|
||||
"description": "eBook library",
|
||||
"icon": {
|
||||
"href": "/icons/calibre.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gitea",
|
||||
"uri": "https://git.starbase80.dev",
|
||||
"description": "Code hosting",
|
||||
"icon": {
|
||||
"href": "/icons/gitea.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Jellyfin",
|
||||
"uri": "https://jellyfin.starbase80.dev",
|
||||
"description": "Media server",
|
||||
"icon": {
|
||||
"href": "/icons/jellyfin.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Mastodon",
|
||||
"uri": "https://notclickable.social",
|
||||
"description": "NotClickable.social",
|
||||
"icon": {
|
||||
"href": "/icons/mastodon.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Mealie",
|
||||
"uri": "https://mealie.starbase80.dev",
|
||||
"description": "Recipe manager",
|
||||
"icon": {
|
||||
"href": "/icons/mealie.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "N8N",
|
||||
"uri": "https://n8n.starbase80.dev",
|
||||
"description": "Workflow automation",
|
||||
"icon": {
|
||||
"href": "/icons/n8n.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "MeTube",
|
||||
"uri": "https://metube.starbase80.dev",
|
||||
"description": "Archive YouTube",
|
||||
"icon": {
|
||||
"href": "/icons/metube.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Miniflux",
|
||||
"uri": "https://miniflux.starbase80.dev",
|
||||
"description": "RSS server",
|
||||
"icon": {
|
||||
"href": "/icons/miniflux.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Portainer",
|
||||
"uri": "https://portainer.starbase80.dev",
|
||||
"description": "Docker management",
|
||||
"icon": {
|
||||
"href": "/icons/portainer.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Roher Twins",
|
||||
"uri": "https://rohertwins.starbase80.dev",
|
||||
"description": "Weekly newsletter",
|
||||
"icon": {
|
||||
"href": "/icons/ghost.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Roher Wiki",
|
||||
"uri": "https://roherwiki.starbase80.dev",
|
||||
"description": "Family wiki",
|
||||
"icon": {
|
||||
"href": "/icons/wikijs.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Standard Notes",
|
||||
"uri": "https://standardnotes.starbase80.dev",
|
||||
"description": "Knowledge base",
|
||||
"icon": {
|
||||
"href": "/icons/standardnotes.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Vaultwarden",
|
||||
"uri": "https://vaultwarden.starbase80.dev",
|
||||
"description": "Password manager",
|
||||
"icon": {
|
||||
"href": "/icons/vaultwarden.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Visual Studio Code",
|
||||
"uri": "https://vscode.starbase80.dev",
|
||||
"description": "Code editor",
|
||||
"icon": {
|
||||
"href": "/icons/vscode.jpg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Wallabag",
|
||||
"uri": "https://wallabag.starbase80.dev",
|
||||
"description": "Read later",
|
||||
"icon": {
|
||||
"href": "/icons/wallabag.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Woodpecker",
|
||||
"uri": "https://woodpecker.starbase80.dev",
|
||||
"description": "Continuous integration",
|
||||
"icon": {
|
||||
"href": "/icons/woodpecker.jpg"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"category": "Devices",
|
||||
"services": [
|
||||
{
|
||||
"name": "Router",
|
||||
"uri": "http://192.168.1.1/",
|
||||
"description": "Netgear Orbi",
|
||||
"icon": {
|
||||
"href": "/icons/router.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Home Assistant",
|
||||
"uri": "http://homeassistant.local:8123/",
|
||||
"description": "Home automation",
|
||||
"icon": {
|
||||
"href": "/icons/home-assistant.svg"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Synology",
|
||||
"uri": "http://synology:5000",
|
||||
"description": "Network storage",
|
||||
"icon": {
|
||||
"href": "/icons/synology.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
@ -5,6 +5,6 @@ import "./tailwind.css";
|
||||
|
||||
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
|
||||
<React.StrictMode>
|
||||
<IndexPage title="Starbase 80" icon="/starbase-80.png" />
|
||||
<IndexPage title="Starbase 80" icon="/logo.png" />
|
||||
</React.StrictMode>
|
||||
);
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React from "react";
|
||||
import { Header } from "../components/header";
|
||||
import { ServiceCatalogs } from "../components/service-catalogs";
|
||||
import userServices from "../config/services.json";
|
||||
import userServices from "../config.json";
|
||||
import { IServiceCatalog } from "../shared/types";
|
||||
|
||||
interface IProps {
|
||||
|
@ -8,11 +8,5 @@ export interface IService {
|
||||
uri: string;
|
||||
|
||||
description?: string;
|
||||
icon?: IIcon;
|
||||
}
|
||||
|
||||
export interface IIcon {
|
||||
href: string;
|
||||
title?: string;
|
||||
alt?: string;
|
||||
icon?: string;
|
||||
}
|
||||
|
@ -8,7 +8,7 @@ export default defineConfig({
|
||||
watch: {
|
||||
usePolling: true,
|
||||
},
|
||||
host: true, // needed for the Docker Container port mapping to work
|
||||
host: true,
|
||||
strictPort: true,
|
||||
port: 4173,
|
||||
},
|
||||
|