This commit is contained in:
prosety
2022-11-13 20:03:11 +01:00
parent 8d7ef80cc8
commit fc0803af46
22 changed files with 1102 additions and 321 deletions

View File

@@ -8,6 +8,10 @@
![basics](https://user-images.githubusercontent.com/4677417/186188965-73453154-fdec-4d6b-9c34-cb35c248ae5b.png) ![basics](https://user-images.githubusercontent.com/4677417/186188965-73453154-fdec-4d6b-9c34-cb35c248ae5b.png)
# Deploy :
node ./dist/server/entry.mjs
## 🚀 Project Structure ## 🚀 Project Structure
Inside of your Astro project, you'll see the following folders and files: Inside of your Astro project, you'll see the following folders and files:

View File

@@ -6,7 +6,14 @@ import vue from "@astrojs/vue";
// https://astro.build/config // https://astro.build/config
import tailwind from "@astrojs/tailwind"; import tailwind from "@astrojs/tailwind";
// https://astro.build/config
import node from "@astrojs/node";
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
integrations: [vue(), tailwind()] integrations: [vue(), tailwind()],
output: "server",
adapter: node({
mode: 'standalone'
}),
}); });

302
package-lock.json generated
View File

@@ -8,6 +8,7 @@
"name": "@example/basics", "name": "@example/basics",
"version": "0.0.1", "version": "0.0.1",
"dependencies": { "dependencies": {
"@astrojs/node": "^3.0.0",
"@astrojs/tailwind": "^2.1.2", "@astrojs/tailwind": "^2.1.2",
"@astrojs/vue": "^1.2.1", "@astrojs/vue": "^1.2.1",
"astro": "^1.6.7", "astro": "^1.6.7",
@@ -101,6 +102,18 @@
"vfile-message": "^3.0.0" "vfile-message": "^3.0.0"
} }
}, },
"node_modules/@astrojs/node": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@astrojs/node/-/node-3.0.0.tgz",
"integrity": "sha512-07l0D0iq3Bdd4fw8LPf2/DveL3X0Mn/ZuhEvWh2W+hxsrDfot9XGmdzExjmY/C2DtYOUUJKf8mg1cA5ZXOif8Q==",
"dependencies": {
"@astrojs/webapi": "^1.1.1",
"send": "^0.18.0"
},
"peerDependencies": {
"astro": "^1.6.4"
}
},
"node_modules/@astrojs/prism": { "node_modules/@astrojs/prism": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.2.tgz",
@@ -1882,6 +1895,14 @@
"url": "https://github.com/sponsors/ljharb" "url": "https://github.com/sponsors/ljharb"
} }
}, },
"node_modules/depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/dequal": { "node_modules/dequal": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
@@ -1890,6 +1911,15 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/detect-node": { "node_modules/detect-node": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
@@ -1942,6 +1972,11 @@
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
}, },
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.284", "version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@@ -1961,6 +1996,14 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
}, },
"node_modules/encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/es-module-lexer": { "node_modules/es-module-lexer": {
"version": "0.10.5", "version": "0.10.5",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.10.5.tgz", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.10.5.tgz",
@@ -2314,6 +2357,11 @@
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/escape-string-regexp": { "node_modules/escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -2361,6 +2409,14 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
}, },
"node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/events": { "node_modules/events": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
@@ -2510,6 +2566,14 @@
"url": "https://www.patreon.com/infusion" "url": "https://www.patreon.com/infusion"
} }
}, },
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fsevents": { "node_modules/fsevents": {
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@@ -2872,6 +2936,21 @@
"url": "https://github.com/sponsors/wooorm" "url": "https://github.com/sponsors/wooorm"
} }
}, },
"node_modules/http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/human-signals": { "node_modules/human-signals": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
@@ -4385,6 +4464,17 @@
"node": ">= 0.4" "node": ">= 0.4"
} }
}, },
"node_modules/on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dependencies": {
"ee-first": "1.1.1"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/onetime": { "node_modules/onetime": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
@@ -4880,6 +4970,14 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/read-cache": { "node_modules/read-cache": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -5309,6 +5407,58 @@
"resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
"integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="
}, },
"node_modules/send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dependencies": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
"on-finished": "2.4.1",
"range-parser": "~1.2.1",
"statuses": "2.0.1"
},
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/send/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/send/node_modules/debug/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/send/node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"bin": {
"mime": "cli.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/send/node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serialize-error": { "node_modules/serialize-error": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
@@ -5334,6 +5484,11 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/shebang-command": { "node_modules/shebang-command": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -5437,6 +5592,14 @@
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
}, },
"node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/string_decoder": { "node_modules/string_decoder": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -5665,6 +5828,14 @@
"node": ">=8.0" "node": ">=8.0"
} }
}, },
"node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/totalist": { "node_modules/totalist": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
@@ -6761,6 +6932,15 @@
"vfile-message": "^3.0.0" "vfile-message": "^3.0.0"
} }
}, },
"@astrojs/node": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@astrojs/node/-/node-3.0.0.tgz",
"integrity": "sha512-07l0D0iq3Bdd4fw8LPf2/DveL3X0Mn/ZuhEvWh2W+hxsrDfot9XGmdzExjmY/C2DtYOUUJKf8mg1cA5ZXOif8Q==",
"requires": {
"@astrojs/webapi": "^1.1.1",
"send": "^0.18.0"
}
},
"@astrojs/prism": { "@astrojs/prism": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-1.0.2.tgz",
@@ -8073,11 +8253,21 @@
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz",
"integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==" "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q=="
}, },
"depd": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"dequal": { "dequal": {
"version": "2.0.3", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
"integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
}, },
"destroy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"detect-node": { "detect-node": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
@@ -8118,6 +8308,11 @@
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
}, },
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.4.284", "version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@@ -8137,6 +8332,11 @@
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
}, },
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"es-module-lexer": { "es-module-lexer": {
"version": "0.10.5", "version": "0.10.5",
"resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.10.5.tgz", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.10.5.tgz",
@@ -8300,6 +8500,11 @@
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
}, },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"escape-string-regexp": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -8329,6 +8534,11 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
}, },
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"events": { "events": {
"version": "3.3.0", "version": "3.3.0",
"resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
@@ -8431,6 +8641,11 @@
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
"integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
}, },
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"fsevents": { "fsevents": {
"version": "2.3.2", "version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
@@ -8692,6 +8907,18 @@
"resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz",
"integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A=="
}, },
"http-errors": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"requires": {
"depd": "2.0.0",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": "2.0.1",
"toidentifier": "1.0.1"
}
},
"human-signals": { "human-signals": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz",
@@ -9616,6 +9843,14 @@
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
}, },
"on-finished": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"requires": {
"ee-first": "1.1.1"
}
},
"onetime": { "onetime": {
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
@@ -9920,6 +10155,11 @@
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
"integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
}, },
"range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"read-cache": { "read-cache": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -10221,6 +10461,53 @@
"resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
"integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow=="
}, },
"send": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
"integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"requires": {
"debug": "2.6.9",
"depd": "2.0.0",
"destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "2.0.0",
"mime": "1.6.0",
"ms": "2.1.3",
"on-finished": "2.4.1",
"range-parser": "~1.2.1",
"statuses": "2.0.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
},
"dependencies": {
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
"serialize-error": { "serialize-error": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz",
@@ -10236,6 +10523,11 @@
} }
} }
}, },
"setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"shebang-command": { "shebang-command": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -10316,6 +10608,11 @@
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
}, },
"statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"string_decoder": { "string_decoder": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -10484,6 +10781,11 @@
"is-number": "^7.0.0" "is-number": "^7.0.0"
} }
}, },
"toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"totalist": { "totalist": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",

View File

@@ -11,6 +11,7 @@
"astro": "astro" "astro": "astro"
}, },
"dependencies": { "dependencies": {
"@astrojs/node": "^3.0.0",
"@astrojs/tailwind": "^2.1.2", "@astrojs/tailwind": "^2.1.2",
"@astrojs/vue": "^1.2.1", "@astrojs/vue": "^1.2.1",
"astro": "^1.6.7", "astro": "^1.6.7",

652
public/cli.pegaz.sh Executable file
View File

@@ -0,0 +1,652 @@
#!/bin/bash
source /opt/pegaz/env.sh
SERVICES=$(find $PATH_PEGAZ_SERVICES -mindepth 1 -maxdepth 1 -not -name '.*' -type d -printf ' %f\n' | sort | sed '/^$/d')
SERVICES_FLAT=$(echo $SERVICES | tr '\n' ' ')
IS_PEGAZDEV="false" && [[ $0 == "cli.pegaz.sh" ]] && IS_PEGAZDEV="true"
PATH_COMPAT="$(dirname $0)" # pegazdev compatibility (used for create/drop services)
# HELPERS
EXECUTE() {
TEST_CONFIG
SETUP_NETWORK
if [[ -d $PATH_PEGAZ_SERVICES/$2 ]]
then
cd $PATH_PEGAZ_SERVICES/$2
[[ -f "$PATH_PEGAZ/config.sh" ]] && source "$PATH_PEGAZ/config.sh"
[[ -f "config.sh" ]] && source "config.sh"
[[ -f ".env" ]] && source ".env"
docker-compose $1 2>&1 | grep -v "error while removing network"
else
echo "[x] $2 folder doesn't exist"
fi
# echo $1 $2
local ACT=("stop","down","pause","unpause")
[[ "${ACT[*]}" =~ "${1}" ]] && UPDATE_DASHBOARD $2
}
# CHECK_DEPS() {
# sed >= 4.7
# }
REMOVE_LINE() {
sed -i "/.*$1.*/d" $2 &> /dev/null
}
INSERT_LINE_AFTER() {
sed -i "0,/${1//\//\\/}/s//${1//\//\\/}\n${2//\//\\/}/" $3
}
SERVICE_INFOS() {
if [[ -f $PATH_PEGAZ_SERVICES/$1/config.sh ]]
then
if [[ $1 == "proxy" ]]
then
echo -e "[√] $1 is up"
else
SOURCE_SERVICE $1
echo -e "[√] $1 is up (use pegaz logs $1 to know when the service is ready) \nhttp://$DOMAIN"
if [[ $IS_PEGAZDEV == "true" ]]
then
echo "http://127.0.0.1:$PORT"
fi
fi
fi
}
SETUP_NETWORK() {
if ! echo $(docker network ls) | grep -q pegaz
then
echo "[*] create NETWORK"
docker network create pegaz
fi
}
SETUP_REDIRECTIONS() {
unset REDIRECTIONS
SOURCE_SERVICE $1
if [[ $REDIRECTIONS != "" ]]
then
PATH_FILE_REDIRECTION="$PATH_PEGAZ_SERVICES/proxy/$FILENAME_REDIRECTION"
touch "$PATH_PEGAZ_SERVICES/$1/$FILENAME_NGINX" $PATH_FILE_REDIRECTION
REMOVE_LINE $AUTO_GENERATED_STAMP "$PATH_PEGAZ_SERVICES/$1/$FILENAME_NGINX"
REMOVE_LINE $AUTO_GENERATED_STAMP $PATH_FILE_REDIRECTION
for REDIRECTION in $REDIRECTIONS
do
local FROM=${REDIRECTION%->*}
local TO=${REDIRECTION#*->}
if [[ $FROM == /* ]]; then # same domain
echo "rewrite ^$FROM$ http://$DOMAIN$TO permanent; $AUTO_GENERATED_STAMP" >> "$PATH_PEGAZ_SERVICES/$1/$FILENAME_NGINX"
elif [[ $TO != "" ]] # sub-domain
then
echo "server {" >> $PATH_FILE_REDIRECTION
echo " server_name $FROM.$MAIN_DOMAIN;" >> $PATH_FILE_REDIRECTION
echo " return 301 http://$DOMAIN$TO;" >> $PATH_FILE_REDIRECTION
echo "}" >> $PATH_FILE_REDIRECTION
fi
done
fi
}
SETUP_NGINX() {
if [[ $DOMAIN != *localhost:* ]]
then
if [[ -f "$PATH_PEGAZ_SERVICES/$1/$FILENAME_NGINX" ]]
then
if [[ -s "$PATH_PEGAZ_SERVICES/$1/$FILENAME_NGINX" ]]
then
local NEW_LINE=" - $PATH_PEGAZ_SERVICES/$1/$FILENAME_NGINX:/etc/nginx/vhost.d/${DOMAIN}_location"
INSERT_LINE_AFTER "docker.sock:ro" "$NEW_LINE" "$PATH_PROXY_COMPOSE"
fi
fi
fi
}
SETUP_PROXY() {
[[ -f "$PATH_PEGAZ/$FILENAME_CONFIG" ]] && source "$PATH_PEGAZ/$FILENAME_CONFIG" || echo "[x] no pegaz main config file"
PATH_PROXY_COMPOSE="$PATH_PEGAZ_SERVICES/proxy/docker-compose.yml"
rm -rf "$PATH_PEGAZ_SERVICES/proxy/$FILENAME_REDIRECTION" # delete old redirections
sed -i "\|$PATH_PEGAZ_SERVICES|d" "$PATH_PROXY_COMPOSE" # delete old vhosts
for PATH_SERVICE in $PATH_PEGAZ_SERVICES/*
do
local NAME_SERVICE=$(basename $PATH_SERVICE)
NAME_SERVICE=$(echo $NAME_SERVICE | sed "s%/%%g")
[[ -f "$PATH_SERVICE/$FILENAME_CONFIG" ]] && source "$PATH_SERVICE/$FILENAME_CONFIG"
SETUP_REDIRECTIONS $NAME_SERVICE
SETUP_NGINX $NAME_SERVICE
done
local NEW_LINE=" - $PATH_PEGAZ_SERVICES/proxy/$FILENAME_REDIRECTION:/etc/nginx/conf.d/$FILENAME_REDIRECTION"
INSERT_LINE_AFTER "docker.sock:ro" "$NEW_LINE" "$PATH_PROXY_COMPOSE"
EXECUTE "up -d" "proxy"
}
SOURCE_SERVICE() {
[[ -f "$PATH_PEGAZ_SERVICES/$1/$FILENAME_CONFIG" ]] && source "$PATH_PEGAZ_SERVICES/$1/$FILENAME_CONFIG"
[[ -f "$PATH_PEGAZ_SERVICES/$1/$FILENAME_ENV" ]] && source "$PATH_PEGAZ_SERVICES/$1/$FILENAME_ENV"
}
PRE_INSTALL() {
SOURCE_SERVICE $1
local PATH_SCRIPT="$PATH_PEGAZ_SERVICES/$1/$FILENAME_PREINSTALL"
if [[ -f $PATH_SCRIPT ]]
then
echo "[*] pre-install"
bash $PATH_SCRIPT $1 $IS_PEGAZDEV
fi
}
POST_INSTALL() {
local POST_INSTALL_TEST_CMD=""
SOURCE_SERVICE $1
local PATH_SCRIPT="$PATH_PEGAZ_SERVICES/$1/$FILENAME_POSTINSTALL"
if [[ -f $PATH_SCRIPT ]]
then
echo "[*] post-install: wait for $1 up"
if [[ -n $POST_INSTALL_TEST_CMD ]]
then
while :
do
$POST_INSTALL_TEST_CMD >> /dev/null
if [[ $? -eq 0 ]]
then
echo "[*] $POST_INSTALL_TEST_CMD is enable, launch post-install.sh"
bash $PATH_SCRIPT $1
break
else
continue
fi
done
else
while :
do
HTTP_CODE=$(curl -ILs $DOMAIN | head -n 1 | cut -d$' ' -f2)
if [[ $HTTP_CODE < "400" ]]
then
echo "[*] $DOMAIN http status code is $HTTP_CODE, launch post-install.sh"
bash $PATH_SCRIPT $1 &&\
break
else
continue
fi
done
fi
fi
}
ADD_TO_HOSTS() {
if [[ $IS_PEGAZDEV == "true" ]]
then
local PATH_HOSTFILE="/etc/hosts"
SOURCE_SERVICE $1
if [[ $DOMAIN == *$MAIN_DOMAIN* && -f $PATH_HOSTFILE ]]
then
if ! grep -q "$DOMAIN" $PATH_HOSTFILE
then
echo "127.0.0.1 $DOMAIN" | sudo tee -a $PATH_HOSTFILE >> /dev/null
fi
fi
fi
}
SET_ALIAS() {
if [[ $1 == "-h" ]] || [[ $1 == "--help" ]]
then
HELP
elif [[ $1 == "-v" ]] || [[ $1 == "--version" ]]
then
VERSION
elif [[ $1 == "ps" ]]
then
PS
fi
}
MANAGE_BACKUP() {
mkdir -p $PATH_PEGAZ_BACKUP
case $2 in
backup) EXECUTE "pause" $1;;
restore) EXECUTE "stop" $1;;
esac
echo "[*] $1 $2"
for VOLUME in $(EXECUTE "config --volumes" $1)
do
local VOLUME=($(docker volume inspect --format "{{.Name}} {{.Mountpoint}}" "$1_$VOLUME" 2> /dev/null))
local NAME_VOLUME=${VOLUME[0]}
local PATH_VOLUME=${VOLUME[1]}
if [[ -n $NAME_VOLUME ]]
then
local PATH_TARBALL="$PATH_PEGAZ_BACKUP/$NAME_VOLUME.tar.gz"
case $2 in
backup)
docker run --rm -v $NAME_VOLUME:/$NAME_VOLUME -v $PATH_PEGAZ_BACKUP:/backup busybox tar czvf /backup/$NAME_VOLUME.tar.gz /$NAME_VOLUME;;
restore)
docker run --rm -v $NAME_VOLUME:/$NAME_VOLUME -v $PATH_PEGAZ_BACKUP:/backup busybox sh -c "cd /$NAME_VOLUME && tar xvf /backup/$NAME_VOLUME.tar.gz --strip 1";;
esac
fi
done
case $2 in
backup) EXECUTE "unpause" $1;;
restore) EXECUTE "start" $1;;
esac
echo "[√] $1 $2 done"
}
STORJ() {
if ! command -v "unzip" 1>/dev/null
then
sudo apt install unzip
fi
if ! command -v "uplink" 1>/dev/null
then
echo "[*] install uplink"
curl -L https://github.com/storj/storj/releases/latest/download/uplink_linux_amd64.zip -o uplink_linux_amd64.zip
unzip -o uplink_linux_amd64.zip
sudo install uplink /usr/local/bin/uplink
rm uplink_linux_amd64.zip
uplink setup
fi
echo "what's your bucket name ?"
read BUCKET_NAME
if [[ -z $1 ]] || [[ $1 == "backup" ]]
then
uplink cp -r --progress /opt/pegaz/backup sj://$BUCKET_NAME
elif [[ $1 == "restore" ]]
then
mkdir -p $PATH_PEGAZ_BACKUP
uplink cp -r --progress sj://$BUCKET_NAME /opt/pegaz/backup
fi
}
GET_LAST_PORT() {
local THE_LAST_PORT="0"
for PATH_SERVICE in $PATH_PEGAZ_SERVICES/*
do
[[ $PATH_SERVICE == "$PATH_PEGAZ_SERVICES/deluge" ]] && continue
if [[ -f "$PATH_SERVICE/$FILENAME_CONFIG" || -f "$PATH_SERVICE/$FILENAME_ENV" ]]
then
if [[ -f "$PATH_SERVICE/$FILENAME_CONFIG" ]]
then
SED_PREFIX="export PORT" && FILENAME=$FILENAME_CONFIG
else
SED_PREFIX="PORT" && FILENAME=$FILENAME_ENV
fi
local CURRENT_PORT=`sed -n "s/^$SED_PREFIX\(.*\)/\1/p" < "$PATH_SERVICE/$FILENAME"`
CURRENT_PORT=$(echo $CURRENT_PORT | tr ' ' '\n' | grep -v '_EXPOSED=' | grep -o -E '[0-9]+' | sort -nr | head -n1)
fi
if [[ $CURRENT_PORT ]]
then
CURRENT_PORT=`sed -e 's/^"//' -e 's/"$//' <<<"$CURRENT_PORT"`
if [ "${CURRENT_PORT}" -gt "${THE_LAST_PORT}" ]
then
THE_LAST_PORT=$CURRENT_PORT
fi
fi
done
echo $THE_LAST_PORT
}
GET_STATE() {
local RESTARTING="$(docker ps -a --format "{{.Names}} {{.State}}" | grep "$1" | grep "restarting")"
if [[ -n $RESTARTING ]]
then
echo "restarting"
else
local STARTING="$(docker ps -a --format "{{.Names}} {{.Status}}" | grep "$1" | grep "starting")"
if [[ -n $STARTING ]]
then
echo "starting"
else
local STATE="$(docker ps -a --format "{{.Names}} {{.State}}" | grep "$1 ")"
if [[ -n $STATE ]]
then
STATE=${STATE/$1 /}
STATE=${STATE/running/up}
STATE=${STATE/exited/stopped}
if [[ $STATE == "up" ]]
then
SOURCE_SERVICE $1
if [[ -n $DOMAIN ]]
then
STATE="http://$DOMAIN"
fi
fi
echo $STATE
fi
fi
fi
}
UPDATE_DASHBOARD() {
[[ $1 != "dashboard" && -n $(GET_STATE "dashboard") ]] && bash "$PATH_PEGAZ_SERVICES/dashboard/$FILENAME_POSTINSTALL" "dashboard"
}
TEST_CONFIG() {
source $PATH_PEGAZ/config.sh
[[ -z $MAIN_DOMAIN || -z $USERNAME || -z $PASSWORD ]] && echo "[!] config pegaz first" && CONFIG
[[ $MAIN_DOMAIN == "domain.com" && $IS_PEGAZDEV == "false" ]] && echo "[!] please configure pegaz first" && CONFIG
}
# CORE COMMANDS
CONFIG() {
source $PATH_COMPAT/config.sh
[[ -n $MAIN_DOMAIN ]] && echo "[?] Domain [$MAIN_DOMAIN]:" || echo "[?] Domain:"
read NEW_MAIN_DOMAIN
[[ -n $NEW_MAIN_DOMAIN ]] && sed -i "s|MAIN_DOMAIN=.*|MAIN_DOMAIN=\"$NEW_MAIN_DOMAIN\"|g" $PATH_COMPAT/config.sh;
[[ -n $USERNAME ]] && echo "[?] Username [$USERNAME]:" || echo "[?] Username:"
read NEW_USERNAME
[[ -n $NEW_USERNAME ]] && sed -i "s|USERNAME=.*|USERNAME=\"$NEW_USERNAME\"|g" $PATH_COMPAT/config.sh
echo "[?] Password:"
read -s PASSWORD
[[ -n $PASSWORD ]] && sed -i "s|PASSWORD=.*|PASSWORD=\"$PASSWORD\"|g" $PATH_COMPAT/config.sh
[[ $EMAIL == "user@domain.com" && -n $NEW_USERNAME && -n $NEW_MAIN_DOMAIN ]] && EMAIL="$NEW_USERNAME@$NEW_MAIN_DOMAIN"
[[ -n $EMAIL ]] && echo "[?] Email [$EMAIL]:" || echo "[?] Email:"
read NEW_EMAIL
if [[ -n $NEW_EMAIL ]]
then
sed -i "s|EMAIL=.*|EMAIL=\"$NEW_EMAIL\"|g" $PATH_COMPAT/config.sh
else
sed -i "s|EMAIL=.*|EMAIL=\"$EMAIL\"|g" $PATH_COMPAT/config.sh
fi
echo -e "[?] Media Path [$MEDIA_DIR]:"
read MEDIA_DIR
[[ -n $MEDIA_DIR ]] && {
[[ -d $MEDIA_DIR ]] && sed -i "s|MEDIA_DIR=.*|MEDIA_DIR=\"$MEDIA_DIR\"|g" $PATH_COMPAT/config.sh || echo "[x] $MEDIA_DIR doesn't exist"
}
echo "[?] ZeroSSL API key:"
read ZEROSSL_API_KEY
[[ -n $ZEROSSL_API_KEY ]] && sed -i "s|ZEROSSL_API_KEY=.*|ZEROSSL_API_KEY=\"$ZEROSSL_API_KEY\"|g" $PATH_COMPAT/config.sh
[[ $IS_PEGAZDEV == "true" ]] && cp $PATH_COMPAT/config.sh $PATH_PEGAZ
}
UPGRADE() {
echo "[i] All custom configurations in default pegaz services will be overwritten"
echo "[?] Are you sure to upgrade pegaz (Y/n)"
read ANSWER
if [[ $ANSWER == "Y" || $ANSWER == "y" ]]
then
rm -rf /tmp/pegaz
git clone $GITHUB_PEGAZ /tmp/pegaz
chmod -R 750 /tmp/pegaz
rm $PATH_PEGAZ/env.sh $PATH_PEGAZ/completion.sh $PATH_PEGAZ/cli.pegaz.sh
mv /tmp/pegaz/env.sh $PATH_PEGAZ
mv /tmp/pegaz/completion.sh $PATH_PEGAZ
mv /tmp/pegaz/cli.pegaz.sh $PATH_PEGAZ
rsync -av --exclude "$PATH_PEGAZ_SERVICES/dashboard/web/index.html" --exclude "*config.sh" /tmp/pegaz/services/* $PATH_PEGAZ_SERVICES
source $PATH_PEGAZ/env.sh
echo "[√] pegaz is now upgraded (v$PEGAZ_VERSION)"
fi
}
UNINSTALL() {
echo "[?] Are you sure to uninstall pegaz (Y/n)"
read ANSWER
if [[ $ANSWER == "Y" || $ANSWER == "y" ]]
then
sudo sed -i "\|$PATH_PEGAZ|d" $PATH_BASHRC
if [[ -n $SUDO_USER ]]
then
sudo sed -i "\|$PATH_PEGAZ|d" "/home/$SUDO_USER/.bashrc"
elif [[ -f "/home/$USER/.bashrc" ]]
then
sudo sed -i "\|$PATH_PEGAZ|d" "/home/$USER/.bashrc"
fi
sudo rm -rf $PATH_PEGAZ/services $PATH_PEGAZ/docs
sudo rm $PATH_PEGAZ/* 2> /dev/null # no -rf to delete only file & keep backup & media folder is exist
echo "[√] pegaz successfully uninstalled"
fi
}
HELP() {
echo "Core Commands:
usage: pegaz <command>
help -h Print help
version -v Print version
upgrade Upgrade pegaz
uninstall Uninstall pegaz
config Assistant to edit configurations stored in $FILENAME_CONFIG (main configurations or specific configurations if service named is passed)
Service Commands:
usage: pegaz <command> <service>
up launch or update a web service with configuration set in $FILENAME_CONFIG and proxy settings set in $FILENAME_NGINX then execute $FILENAME_POSTINSTALL
create create a service based on service/example (pegaz create <service_name> <dockerhub_image_name>)
drop down a service and remove its config folder
backup archive volume(s) mounted on the service in $PATH_PEGAZ_BACKUP
restore replace volume(s) mounted on the service by backed up archive in $PATH_PEGAZ_BACKUP
storj copy backup to a distant bucket with storj (vice-versa if 'pegaz storj restore')
reset down a service and prune containers, images and volumes not linked to up & running containers (useful for dev & test)
* down restart stop rm logs pull, any docker-compose commands are compatible
Services:
$SERVICES"
}
VERSION() {
echo $PEGAZ_VERSION
}
PS() {
docker ps
}
PORT() {
echo "the last port used is $(GET_LAST_PORT)"
}
# SERVICE COMMANDS
STATE() {
local STATE_SERVICE=$(GET_STATE $1)
if [[ -n $STATE_SERVICE ]]
then
printf "%-20s %-20s\n" $1 $STATE_SERVICE
fi
}
CREATE() {
if test $2
then
local NAME=$1
local IMAGE=$2
elif test $1
then
local NAME=$1
local IMAGE=$(docker search $1 --limit 1 --format "{{.Name}}")
else
while [[ !" ${SERVICES_FLAT} " =~ " $NAME " || ! $NAME ]]
do
echo "[?] Name"
read NAME
done
local DELIMITER=") "
local MAX_RESULT=7
local LINE=0
local RESULTS=$(docker search $NAME --limit $MAX_RESULT --format "{{.Name}}" | nl -w2 -s "$DELIMITER")
while [[ $LINE -lt 1 || $LINE -gt $MAX_RESULT ]]
do
printf "$RESULTS\n"
read LINE
done
IMAGE=$(sed -n ${LINE}p <<< "$RESULTS" 2> /dev/null)
IMAGE=${IMAGE/ $LINE$DELIMITER/}
fi
[[ " ${SERVICES_FLAT} " =~ " $NAME " ]] && echo "[x] service $NAME already exist" && exit 1
#ports setup
local PORT=$(GET_LAST_PORT)
PORT=$(($PORT + 5))
docker pull $IMAGE
[[ $? != 0 ]] && echo "[x] cant pull $IMAGE" && exit 1
local PORT_EXPOSED=$(docker inspect --format='{{.Config.ExposedPorts}}' $IMAGE | grep -o -E '[0-9]+' | head -1 | sed -e 's/^0\+//')
if [[ $PORT_EXPOSED == "" ]]
then
PORT_EXPOSED="80"
fi
#clean name
NAME=${NAME//[^a-zA-Z0-9_]/}
NAME=${NAME,,}
echo $NAME
#compose setup
mkdir -p "$PATH_COMPAT/services/$NAME"
cp "$PATH_COMPAT/docs/pegaz.svg" "$PATH_COMPAT/services/$NAME/logo.svg"
cp "$PATH_COMPAT/services/example/config.sh" "$PATH_COMPAT/services/example/docker-compose.yml" "$PATH_COMPAT/services/$NAME/"
sed -i "s/example/$NAME/" "$PATH_COMPAT/services/$NAME/docker-compose.yml"
sed -i "s|image:.*|image: $IMAGE|g" "$PATH_COMPAT/services/$NAME/docker-compose.yml"
sed -i "s|DOMAIN=.*|DOMAIN=\"$NAME.$MAIN_DOMAIN\"|g" "$PATH_COMPAT/services/$NAME/config.sh"
sed -i "s|PORT=.*|PORT=\"$PORT\"|g" "$PATH_COMPAT/services/$NAME/config.sh"
sed -i "s|PORT_EXPOSED=.*|PORT_EXPOSED=\"$PORT_EXPOSED\"|g" "$PATH_COMPAT/services/$NAME/config.sh"
sed -i "s|REDIRECTIONS=.*|REDIRECTIONS=\"\"|g" "$PATH_COMPAT/services/$NAME/config.sh"
if [[ $IS_PEGAZDEV == "true" ]]
then
cp -R "$PATH_COMPAT/services/$NAME" $PATH_PEGAZ_SERVICES
fi
SERVICES=$(find $PATH_PEGAZ_SERVICES -mindepth 1 -maxdepth 1 -not -name '.*' -type d -printf ' %f\n' | sort | sed '/^$/d') # update services list
UP $NAME
[[ $? != 0 ]] && echo "[x] create fail" && exit 1
}
BACKUP() {
[[ -n $(GET_STATE $1) ]] && MANAGE_BACKUP $1 "backup" || echo "$1 is not initialized"
}
RESTORE() {
[[ -n $(GET_STATE $1) ]] && MANAGE_BACKUP $1 "restore" || echo "$1 is not initialized"
}
DROP() {
echo "[?] Are you sure to drop $1 (Y/n)"
read ANSWER
if [[ $ANSWER == "Y" || $ANSWER == "y" ]]
then
EXECUTE "down" $1
rm -rf "$PATH_COMPAT/services/$1" "$PATH_PEGAZ_SERVICES/$1"
fi
}
UP() {
ADD_TO_HOSTS $1
PRE_INSTALL $1
EXECUTE "pull" $1
EXECUTE "build" $1
EXECUTE "up -d" $1
POST_INSTALL $1
SETUP_PROXY
UPDATE_DASHBOARD $1
SERVICE_INFOS $1
}
START() {
[[ -z $(GET_STATE $1) ]] && UP $1 || EXECUTE "start" $1
}
UPDATE() {
EXECUTE "build --pull" $1
EXECUTE "up -d" $1
SETUP_PROXY
UPDATE_DASHBOARD $1
SERVICE_INFOS $1
}
RESET() {
EXECUTE "stop" $1
EXECUTE "rm -f" $1
}
LOGS() {
[[ -n $(GET_STATE $1) ]] && EXECUTE "logs -f" $1 || echo "$1 is not initialized"
}
# MAIN SCRIPT
source $PATH_PEGAZ/config.sh
# DEFAULT command
if ! test $1
then
HELP
# ALIAS commands
elif [[ $1 = -* ]] || [[ $1 == "ps" ]]
then
if ! test $2
then
SET_ALIAS $1
elif [[ $1 == "ps" ]]
then
EXECUTE $1 $2
else
echo "[x] $1 command doesn't need param, try to run 'pegaz $1'"
fi
elif [[ " ${COMMANDS[*]} " =~ " $1 " ]]
then
# CORE commands
if [[ " ${COMMANDS_CORE[*]} " =~ " $1 " ]]
then
if ! test $2
then
${1^^}
elif [[ $1 == "create" || $1 == "storj" ]]
then
${1^^} $2 $3
else
echo "[x] $1 command doesn't need param, try to run 'pegaz $1'"
fi
# SERVICE commands
elif [[ " ${COMMANDS_SERVICE[*]} " =~ " $1 " ]]
then
if test $2
then
if [[ " ${SERVICES_FLAT[*]} " =~ " $2 " ]]
then
${1^^} $2
elif [[ $1 == "backup" && $2 == "ls" ]]
then
echo -e "$(ls -lt $PATH_PEGAZ_BACKUP)"
else
echo "[x] $2 is not on the list, $1 a service listed below :
$SERVICES"
fi
else
for SERVICE in $SERVICES
do
${1^^} $SERVICE
done
fi
# DOCKER-COMPOSE commands
else
if test $2
then
EXECUTE $1 $2
else
for SERVICE in $SERVICES
do
EXECUTE $1 $SERVICE
done
fi
fi
else
echo "[x] No such command: $1"
HELP
fi

View File

@@ -1,13 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 36 36">
<path fill="#000" d="M22.25 4h-8.5a1 1 0 0 0-.96.73l-5.54 19.4a.5.5 0 0 0 .62.62l5.05-1.44a2 2 0 0 0 1.38-1.4l3.22-11.66a.5.5 0 0 1 .96 0l3.22 11.67a2 2 0 0 0 1.38 1.39l5.05 1.44a.5.5 0 0 0 .62-.62l-5.54-19.4a1 1 0 0 0-.96-.73Z"/>
<path fill="url(#gradient)" d="M18 28a7.63 7.63 0 0 1-5-2c-1.4 2.1-.35 4.35.6 5.55.14.17.41.07.47-.15.44-1.8 2.93-1.22 2.93.6 0 2.28.87 3.4 1.72 3.81.34.16.59-.2.49-.56-.31-1.05-.29-2.46 1.29-3.25 3-1.5 3.17-4.83 2.5-6-.67.67-2.6 2-5 2Z"/>
<defs>
<linearGradient id="gradient" x1="16" x2="16" y1="32" y2="24" gradientUnits="userSpaceOnUse">
<stop stop-color="#000"/>
<stop offset="1" stop-color="#000" stop-opacity="0"/>
</linearGradient>
</defs>
<style>
@media (prefers-color-scheme:dark){:root{filter:invert(100%)}}
</style>
</svg>

Before

Width:  |  Height:  |  Size: 873 B

View File

@@ -1,62 +0,0 @@
---
export interface Props {
title: string;
body: string;
href: string;
}
const { href, title, body } = Astro.props;
---
<li class="link-card">
<a href={href}>
<h2>
{title}
<span>&rarr;</span>
</h2>
<p>
{body}
</p>
</a>
</li>
<style>
.link-card {
list-style: none;
display: flex;
padding: 0.15rem;
background-color: white;
background-image: var(--accent-gradient);
background-size: 400%;
border-radius: 0.5rem;
background-position: 100%;
transition: background-position 0.6s cubic-bezier(0.22, 1, 0.36, 1);
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
}
.link-card > a {
width: 100%;
text-decoration: none;
line-height: 1.4;
padding: 1rem 1.3rem;
border-radius: 0.35rem;
color: #111;
background-color: white;
opacity: 0.8;
}
h2 {
margin: 0;
font-size: 1.25rem;
transition: color 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
p {
margin-top: 0.5rem;
margin-bottom: 0;
color: #444;
}
.link-card:is(:hover, :focus-within) {
background-position: 0;
}
.link-card:is(:hover, :focus-within) h2 {
color: rgb(var(--accent));
}
</style>

View File

@@ -1,6 +1,13 @@
<script>
import Nextcloud from '../svg/apps/nextcloud.vue'
export default {
components: { Nextcloud },
}
</script>
<template> <template>
<section> <section class="flex flex-col md:flex-row items-center justify-center mb-28">
<div class="bg-slate-900 rounded-xl w-72 h-56"> <div class="bg-slate-900 rounded-xl w-4/5 md:w-96 h-56 md:z-10 -mb-8 md:-mb-0 max-w-full">
<div class="p-3 flex justify-between w-20"> <div class="p-3 flex justify-between w-20">
<div class="bg-green-400 h-4 w-4 r-1 rounded-full"></div> <div class="bg-green-400 h-4 w-4 r-1 rounded-full"></div>
<div class="bg-yellow-300 h-4 w-4 r-1 rounded-full"></div> <div class="bg-yellow-300 h-4 w-4 r-1 rounded-full"></div>
@@ -8,10 +15,19 @@
</div> </div>
<div class="text-white font-mono p-4 pt-0"> <div class="text-white font-mono p-4 pt-0">
$: pegaz up nextcloud $: pegaz up nextcloud
<span class="w-2 h-4 bg-white inline-block animate-blink relative" />
</div> </div>
</div> </div>
<div class="bg-slate-400 rounded-2xl w-96 h-80"> <div class="bg-slate-400 flex flex-col items-center rounded-2xl w-full md:w-2/4 md:min-w-fit h-80 md:-ml-8 md:z-0">
<div class="bg-white"></div> <div class="bg-white inline-block rounded-2xl px-4 py-1 m-4 w-4/6">
<span class="text-gray-400">
https://
</span>
domain.com
</div>
<div class="bg-white w-full h-full flex justify-center items-center group">
<Nextcloud class="w-20 bg-black bg-opacity-10 inline-block rounded-xl p-4 cursor-pointer scale-0 group-hover:scale-100 transition-transform" />
</div>
</div> </div>
</section> </section>
</template> </template>

View File

@@ -0,0 +1,36 @@
<script>
import ClipBoard from '../svg/clipboard.vue'
export default {
components: { ClipBoard },
data: () => {
return {
isClicked: false,
}
},
methods: {
copyToClipBoard() {
navigator.clipboard.writeText('curl -sL get.pegaz.io | sudo bash').then(() => {
this.isClicked = true
setTimeout(() => {
this.isClicked = false
}, 600);
})
},
},
}
</script>
<template>
<section class="py-4 sm:flex justify-center items-center">
<a href="https://github.com/valerebron/pegaz" target="_blank"
class="py-4 px-6 h-14 leading-6 flex justify-center bg-purple-500 text-black text-lg capitalize font-semibold mb-4 sm:mb-0 rounded-xl shadow-md hover:bg-purple-400 focus:outline-none focus:text-white focus:ring-2 focus:ring-purple-300 focus:ring-opacity-75">
get started
</a>
<div class="font-mono bg-neutral-900 text-neutral-50 rounded-md flex justify-between pl-3 pr-4 py-3 sm:ml-4 border border-transparent text-base shadow-primary-700 relative">
<span class="select-all">
curl -sL get.pegaz.io | sudo bash
</span>
<ClipBoard class="inline ml-3 cursor-pointer" :class="{ 'animate-ping': isClicked }" @click="copyToClipBoard" />
</div>
</section>
</template>

View File

@@ -0,0 +1,25 @@
<script setup>
import Logo from '../svg/logo.vue'
</script>
<template>
<section>
<div class="flex justify-center -ml-24 animate-slide">
<div class="py-4 mr-3 animate-fadeout opacity-0">
<div class="bg-gray-400 h-px w-16 my-3 block"></div>
<div class="bg-gray-400 h-px w-16 my-3 translate-x-3 block"></div>
<div class="bg-gray-400 h-px w-16 my-3 translate-x-1 block"></div>
<div class="bg-gray-400 h-px w-16 my-3 translate-x-6 block"></div>
</div>
<Logo />
</div>
<div class="text-center py-4">
<h1 class="text-5xl font-bold leading-relaxed">
Pegaz
</h1>
<h2 class="text-3xl text-center">
Deploy stack on the go
</h2>
</div>
</section>
</template>

View File

@@ -11,14 +11,14 @@ const { title } = Astro.props;
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" /> <link rel="icon" type="image/svg+xml" href="https://raw.githubusercontent.com/valerebron/pegaz/master/docs/pegaz.svg" />
<meta name="generator" content={Astro.generator} /> <meta name="generator" content={Astro.generator} />
<title>{title}</title> <title>{title}</title>
<meta name="description" content=""> <meta name="description" content="pegaz, deploy stack on the go with docker-compose">
<link rel="canonical" href=""> <link rel="canonical" href="https://pegaz.io">
<meta property="og:title" content=""> <meta property="og:title" content="pegaz, deploy stack on the go">
<meta property="og:image" content=""> <meta property="og:image" content="https://raw.githubusercontent.com/valerebron/pegaz/master/docs/pegaz.svg">
<meta property="og:site_name" content=""> <meta property="og:site_name" content="pegaz">
</head> </head>
<body> <body>
<slot /> <slot />

View File

@@ -1,57 +1,27 @@
--- ---
import Layout from '../layouts/Layout.astro' import Layout from "../layouts/Layout.astro";
import Card from '../components/Card.astro' import Github from "../svg/github.vue";
import Logo from '../svg/logo.vue' import HeroTitle from "../components/hero-title.vue";
import Github from '../svg/github.vue' import HeroButtons from "../components/hero-buttons.vue";
import ClipBoard from '../svg/clipboard.vue' import Demo from "../components/demo.vue";
import Demo from '../components/demo.vue'
--- ---
<Layout title="Welcome to Astro."> <Layout title="Welcome to Pegaz.io.">
<div class="mx-6">
<header class="h-screen flex flex-col justify-center"> <header class="h-screen flex flex-col justify-center">
<nav class="fixed right-0 top-0 p-2"> <nav class="fixed right-0 top-0 p-2">
<a title="Go to Pegaz GitHub repo" href="https://github.com/valerebron/pegaz"> <a
<Github/> title="Go to Pegaz GitHub repo"
href="https://github.com/valerebron/pegaz"
>
<Github class="bg-white rounded-full hover:scale-105" />
</a> </a>
</nav> </nav>
<section> <HeroTitle client:visible />
<div class="flex justify-center"> <HeroButtons client:visible />
<div class="py-4 mr-3">
<div class="bg-gray-400 h-1px w-16 my-3 block"></div>
<div class="bg-gray-400 h-1px w-16 my-3 translate-x-3 block"></div>
<div class="bg-gray-400 h-1px w-16 my-3 translate-x-1 block"></div>
<div class="bg-gray-400 h-1px w-16 my-3 translate-x-6 block"></div>
</div>
<Logo/>
</div>
<div class="text-center py-4">
<h1 class="text-5xl font-bold leading-relaxed">
Pegaz
</h1>
<h2 class="text-3xl text-center">
Deploy stack on the go
</h2>
</div>
</section>
<section class="py-4 sm:flex sm:justify-center lg:justify-start">
<a
href="https://github.com/valerebron/pegaz"
target="_blank"
class="py-4 px-6 h-14 flex justify-center bg-purple-500 text-black text-lg capitalize font-semibold rounded-xl shadow-md hover:bg-purple-700 focus:outline-none focus:ring-2 focus:ring-purple-400 focus:ring-opacity-75"
>
get started
</a>
<div class="font-mono bg-neutral-900 text-neutral-50 rounded-md flex justify-items-center pl-3 pr-4 py-3 border border-transparent md:text-lg shadow-primary-700">
<span class="select-all">
curl -sL get.pegaz.io | sudo bash
</span>
<ClipBoard class="inline ml-3 h-6" />
</div>
</section>
</header> </header>
<main class="-mt-10"> <main class="-mt-20">
<Demo/> <Demo />
</main> </main>
</div>
</Layout> </Layout>

View File

@@ -5,22 +5,6 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="main_outline" x="0px" y="0px" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="main_outline" x="0px" y="0px"
viewBox="0 0 628.63165 387.52499" xml:space="preserve" sodipodi:docname="logo.svg" width="628.63165" viewBox="0 0 628.63165 387.52499" xml:space="preserve" sodipodi:docname="logo.svg" width="628.63165"
height="387.52499" inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"> height="387.52499" inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata id="metadata1818">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs1816" />
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
inkscape:window-width="1920" inkscape:window-height="1048" id="namedview1814" showgrid="false"
fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:zoom="0.36875"
inkscape:cx="314.33168" inkscape:cy="210.6" inkscape:window-x="0" inkscape:window-y="-4"
inkscape:window-maximized="1" inkscape:current-layer="main_outline" />
<g id="g1811" transform="translate(-5.6683205,-143.075)"> <g id="g1811" transform="translate(-5.6683205,-143.075)">
<path id="teabag" style="fill:#ffffff" <path id="teabag" style="fill:#ffffff"
d="M 395.9,484.2 269,423.2 c -12.5,-6 -17.9,-21.2 -11.8,-33.8 l 61,-126.9 c 6,-12.5 21.2,-17.9 33.8,-11.8 17.2,8.3 27.1,13 27.1,13 l -0.1,-109.2 16.7,-0.1 0.1,117.1 c 0,0 57.4,24.2 83.1,40.1 3.7,2.3 10.2,6.8 12.9,14.4 2.1,6.1 2,13.1 -1,19.3 l -61,126.9 c -6.2,12.7 -21.4,18.1 -33.9,12 z" d="M 395.9,484.2 269,423.2 c -12.5,-6 -17.9,-21.2 -11.8,-33.8 l 61,-126.9 c 6,-12.5 21.2,-17.9 33.8,-11.8 17.2,8.3 27.1,13 27.1,13 l -0.1,-109.2 16.7,-0.1 0.1,117.1 c 0,0 57.4,24.2 83.1,40.1 3.7,2.3 10.2,6.8 12.9,14.4 2.1,6.1 2,13.1 -1,19.3 l -61,126.9 c -6.2,12.7 -21.4,18.1 -33.9,12 z"

View File

@@ -6,21 +6,6 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="logo" width="30.903151pt" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="logo" width="30.903151pt"
height="30.903004pt" viewBox="0 0 465.36509 465.36288" class="svg replaced-svg" sodipodi:docname="logo.svg" height="30.903004pt" viewBox="0 0 465.36509 465.36288" class="svg replaced-svg" sodipodi:docname="logo.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"> inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata id="metadata2439">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
inkscape:window-width="1920" inkscape:window-height="1048" id="namedview2437" showgrid="false"
fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:zoom="5.2058824"
inkscape:cx="20.604506" inkscape:cy="20.600358" inkscape:window-x="0" inkscape:window-y="-4"
inkscape:window-maximized="1" inkscape:current-layer="logo" />
<defs id="defs2431"> <defs id="defs2431">
<linearGradient id="linear-gradient" gradientUnits="userSpaceOnUse" x1="110.25" y1="213.3" x2="496.14001" <linearGradient id="linear-gradient" gradientUnits="userSpaceOnUse" x1="110.25" y1="213.3" x2="496.14001"
y2="436.09"> y2="436.09">

View File

@@ -6,29 +6,12 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata20">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs18"> <defs id="defs18">
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8812"> <clipPath clipPathUnits="userSpaceOnUse" id="clipPath8812">
<circle id="circle8814" cx="95.669289" cy="95.669296" r="79.724197" <circle id="circle8814" cx="95.669289" cy="95.669296" r="79.724197"
style="fill:#00080d;fill-opacity:1;stroke-width:1" /> style="fill:#00080d;fill-opacity:1;stroke-width:1" />
</clipPath> </clipPath>
</defs> </defs>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
inkscape:window-width="1680" inkscape:window-height="1018" id="namedview16" showgrid="false"
inkscape:zoom="2.8284271" inkscape:cx="7.2478446" inkscape:cy="-0.1767767" inkscape:current-layer="Layer_1"
fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-x="1920"
inkscape:window-y="-4" inkscape:window-maximized="1" units="px" inkscape:snap-bbox="true"
inkscape:bbox-paths="true" inkscape:bbox-nodes="true" inkscape:snap-bbox-edge-midpoints="true"
inkscape:snap-bbox-midpoints="true" inkscape:snap-page="true" inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" />
<path inkscape:connector-curvature="0" id="path1052" <path inkscape:connector-curvature="0" id="path1052"
d="M 75.114322,0 C 59.566367,0 46.388185,10.540419 42.303829,24.821495 38.754097,17.246596 31.061705,11.939743 22.201404,11.939743 10.016394,11.939743 0,21.956074 0,34.140997 c 0,12.184907 10.016394,22.20581 22.201404,22.20581 8.860301,0 16.552693,-5.310098 20.102426,-12.886328 4.084356,14.282163 17.262537,24.826085 32.810492,24.826085 15.432969,0 28.543958,-10.384898 32.732778,-24.505971 3.61531,7.404235 11.21249,12.566214 19.94694,12.566214 12.18501,0 22.20596,-10.020903 22.20596,-22.20581 0,-12.184923 -10.02095,-22.201254 -22.20596,-22.201254 -8.73445,0 -16.33163,5.158746 -19.94694,12.561653 C 103.65828,10.381427 90.547291,0 75.114322,0 Z m 0,13.032657 c 11.736953,0 21.113057,9.371502 21.113057,21.10834 0,11.736818 -9.376104,21.112902 -21.113057,21.112902 -11.73688,0 -21.108446,-9.376084 -21.108446,-21.112902 0,-11.736838 9.371565,-21.108337 21.108446,-21.10834 z M 22.201404,24.972401 c 5.142206,0 9.173215,4.026397 9.173215,9.168596 0,5.142179 -4.031009,9.173153 -9.173215,9.173153 -5.142218,0 -9.168684,-4.030974 -9.168684,-9.173153 0,-5.142199 4.026466,-9.168596 9.168684,-9.168596 z m 105.592636,0 c 5.14226,0 9.17323,4.026397 9.17323,9.168596 0,5.142179 -4.031,9.173153 -9.17323,9.173153 -5.14218,0 -9.16864,-4.030974 -9.16864,-9.173153 0,-5.142199 4.02648,-9.168596 9.16864,-9.168596 z" d="M 75.114322,0 C 59.566367,0 46.388185,10.540419 42.303829,24.821495 38.754097,17.246596 31.061705,11.939743 22.201404,11.939743 10.016394,11.939743 0,21.956074 0,34.140997 c 0,12.184907 10.016394,22.20581 22.201404,22.20581 8.860301,0 16.552693,-5.310098 20.102426,-12.886328 4.084356,14.282163 17.262537,24.826085 32.810492,24.826085 15.432969,0 28.543958,-10.384898 32.732778,-24.505971 3.61531,7.404235 11.21249,12.566214 19.94694,12.566214 12.18501,0 22.20596,-10.020903 22.20596,-22.20581 0,-12.184923 -10.02095,-22.201254 -22.20596,-22.201254 -8.73445,0 -16.33163,5.158746 -19.94694,12.561653 C 103.65828,10.381427 90.547291,0 75.114322,0 Z m 0,13.032657 c 11.736953,0 21.113057,9.371502 21.113057,21.10834 0,11.736818 -9.376104,21.112902 -21.113057,21.112902 -11.73688,0 -21.108446,-9.376084 -21.108446,-21.112902 0,-11.736838 9.371565,-21.108337 21.108446,-21.10834 z M 22.201404,24.972401 c 5.142206,0 9.173215,4.026397 9.173215,9.168596 0,5.142179 -4.031009,9.173153 -9.173215,9.173153 -5.142218,0 -9.168684,-4.030974 -9.168684,-9.173153 0,-5.142199 4.026466,-9.168596 9.168684,-9.168596 z m 105.592636,0 c 5.14226,0 9.17323,4.026397 9.17323,9.168596 0,5.142179 -4.031,9.173153 -9.17323,9.173153 -5.14218,0 -9.16864,-4.030974 -9.16864,-9.173153 0,-5.142199 4.02648,-9.168596 9.16864,-9.168596 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0082c9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.33046;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#0082c9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:7.33046;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"

View File

@@ -15,24 +15,6 @@
x1="37.362221" y1="294.65009" x2="19.9897" y2="279.14844" gradientUnits="userSpaceOnUse" x1="37.362221" y1="294.65009" x2="19.9897" y2="279.14844" gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.7795276,0,0,3.7795276,18.897638,-1009.3508)" /> gradientTransform="matrix(3.7795276,0,0,3.7795276,18.897638,-1009.3508)" />
</defs> </defs>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="2" inkscape:cx="61.470446"
inkscape:cy="-7.789637" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false"
fit-margin-top="5" fit-margin-left="5" fit-margin-right="5" fit-margin-bottom="5" inkscape:window-width="1920"
inkscape:window-height="1048" inkscape:window-x="0" inkscape:window-y="-4" inkscape:window-maximized="1"
showguides="true" inkscape:guide-bbox="true">
<sodipodi:guide position="35.172669,28.437477" orientation="1,0" id="guide952" inkscape:locked="false" />
<sodipodi:guide position="38.820898,24.134438" orientation="0,1" id="guide954" inkscape:locked="false" />
</sodipodi:namedview>
<metadata id="metadata5804">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(5,-267.05741)"> <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(5,-267.05741)">
<path style="display:inline;fill:url(#linearGradient5892);fill-opacity:1;stroke-width:0.99665797" <path style="display:inline;fill:url(#linearGradient5892);fill-opacity:1;stroke-width:0.99665797"
d="m 135.29297,18.898438 c -15.90988,0.449723 -22.89844,21.96289 -22.89844,21.96289 -4.74107,-8.737181 -16.406391,-9.600018 -19.919921,-9.662109 l -59.322265,-0.002 c -4.8e-4,0.0038 -9.09e-4,0.0081 -0.002,0.01563 l -14.199219,-0.03711 c -0.02646,0.250205 -0.04434,0.501031 -0.05273,0.751953 0.0079,7.377147 7.711797,13.530744 17.759765,14.185547 l 31.982422,0.0625 v -0.0039 l 14.494141,0.02539 c 1.363124,0.02268 2.456124,1.13466 2.457031,2.498046 0,1.377638 -1.11455,2.495694 -2.492188,2.5 v 0.002 H 68.640625 v -0.02148 H 37.486328 c -0.606153,0 -0.256172,3.8e-5 -0.822266,0 v 0.002 c 0.0093,7.37642 7.74982,14.323771 17.796876,14.978516 0,0 1.558206,0.0032 1.628906,0.0039 0.544082,0.0038 2.013817,0.01758 12.535156,0.01758 0.01247,7.56e-4 0.02464,0.0032 0.03711,0.0039 0,0 1.917481,0.01953 14.4375,0.01953 1.377676,0.0038 2.492188,1.122324 2.492188,2.5 0,1.294601 -0.988167,2.347277 -2.25,2.474609 h -12.701172 -2 -14.195313 v 0.01563 c 0.0068,6.466999 5.958335,12.601876 14.195313,14.458985 l 2,0.490234 c 5.267465,0.03335 10.535418,0.004 15.802734,0.05859 -16.81854,0.0076 11.125029,0.002 14.15625,0.002 l 3.25,0.210937 9.2832,8.482422 c 16.74585,9.688082 31.23828,11.119142 31.23828,11.119142 0,0 11.90291,15.36174 29.47461,1.06836 1.55626,-1.26588 0.0137,-2.98828 0.0137,-2.98828 L 127.49414,40.861328 Z M 36.664062,51.177734 c -8.319917,0 -13.595359,-9.23e-4 -14.050781,-0.002 v 0.002 c -0.430261,-5.67e-4 4.377264,-3.4e-4 14.050781,0 z M 141.93945,29.009766 c -5.87501,2.187477 -8.125,11.9375 -8.125,11.9375 l 3.8125,5.125 z" d="m 135.29297,18.898438 c -15.90988,0.449723 -22.89844,21.96289 -22.89844,21.96289 -4.74107,-8.737181 -16.406391,-9.600018 -19.919921,-9.662109 l -59.322265,-0.002 c -4.8e-4,0.0038 -9.09e-4,0.0081 -0.002,0.01563 l -14.199219,-0.03711 c -0.02646,0.250205 -0.04434,0.501031 -0.05273,0.751953 0.0079,7.377147 7.711797,13.530744 17.759765,14.185547 l 31.982422,0.0625 v -0.0039 l 14.494141,0.02539 c 1.363124,0.02268 2.456124,1.13466 2.457031,2.498046 0,1.377638 -1.11455,2.495694 -2.492188,2.5 v 0.002 H 68.640625 v -0.02148 H 37.486328 c -0.606153,0 -0.256172,3.8e-5 -0.822266,0 v 0.002 c 0.0093,7.37642 7.74982,14.323771 17.796876,14.978516 0,0 1.558206,0.0032 1.628906,0.0039 0.544082,0.0038 2.013817,0.01758 12.535156,0.01758 0.01247,7.56e-4 0.02464,0.0032 0.03711,0.0039 0,0 1.917481,0.01953 14.4375,0.01953 1.377676,0.0038 2.492188,1.122324 2.492188,2.5 0,1.294601 -0.988167,2.347277 -2.25,2.474609 h -12.701172 -2 -14.195313 v 0.01563 c 0.0068,6.466999 5.958335,12.601876 14.195313,14.458985 l 2,0.490234 c 5.267465,0.03335 10.535418,0.004 15.802734,0.05859 -16.81854,0.0076 11.125029,0.002 14.15625,0.002 l 3.25,0.210937 9.2832,8.482422 c 16.74585,9.688082 31.23828,11.119142 31.23828,11.119142 0,0 11.90291,15.36174 29.47461,1.06836 1.55626,-1.26588 0.0137,-2.98828 0.0137,-2.98828 L 127.49414,40.861328 Z M 36.664062,51.177734 c -8.319917,0 -13.595359,-9.23e-4 -14.050781,-0.002 v 0.002 c -0.430261,-5.67e-4 4.377264,-3.4e-4 14.050781,0 z M 141.93945,29.009766 c -5.87501,2.187477 -8.125,11.9375 -8.125,11.9375 l 3.8125,5.125 z"

View File

@@ -5,22 +5,6 @@
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata6759">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
inkscape:window-width="1680" inkscape:window-height="1018" id="namedview6757" showgrid="false"
fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:zoom="1.6909388"
inkscape:cx="47.60669" inkscape:cy="190.72246" inkscape:window-x="1920" inkscape:window-y="-4"
inkscape:window-maximized="1" inkscape:current-layer="svg6755" inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" />
<defs id="defs6751" /> <defs id="defs6751" />
<path style="fill:#ffffff;stroke-width:0.9375;fill-opacity:1" <path style="fill:#ffffff;stroke-width:0.9375;fill-opacity:1"
d="M 9.3448306,100.99152 35.913127,87.972678 37.245724,50.655062 67.542451,16.28108 100.72365,57.405625 125.75631,39.37409 l 15.22518,1.834775 14.84036,21.063668 31.87425,-38.730634 13.74071,0.372539 20.9012,30.130237 3.73859,35.563734 31.46306,12.965961 -3.5426,181.37087 L 132.06548,337.18752 5.4171538,277.0129 Z" d="M 9.3448306,100.99152 35.913127,87.972678 37.245724,50.655062 67.542451,16.28108 100.72365,57.405625 125.75631,39.37409 l 15.22518,1.834775 14.84036,21.063668 31.87425,-38.730634 13.74071,0.372539 20.9012,30.130237 3.73859,35.563734 31.46306,12.965961 -3.5426,181.37087 L 132.06548,337.18752 5.4171538,277.0129 Z"

View File

@@ -5,32 +5,6 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="746.89825" height="996.75226" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="746.89825" height="996.75226"
viewBox="0 0 746.89825 996.75226" version="1.1" id="svg999" sodipodi:docname="logo.svg" viewBox="0 0 746.89825 996.75226" version="1.1" id="svg999" sodipodi:docname="logo.svg"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"> inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)">
<metadata id="metadata1003">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Artboard</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
inkscape:window-width="1920" inkscape:window-height="1048" id="namedview1001" showgrid="false" fit-margin-top="0"
fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:zoom="0.848" inkscape:cx="373.44913"
inkscape:cy="782.25253" inkscape:window-x="0" inkscape:window-y="-4" inkscape:window-maximized="1"
inkscape:current-layer="Group-3" />
<!-- Generator: Sketch 64 (93537) - https://sketch.com --> <!-- Generator: Sketch 64 (93537) - https://sketch.com -->
<title id="title975">Artboard</title> <title id="title975">Artboard</title>

View File

@@ -6,15 +6,6 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="svg919" width="834.39722" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="svg919" width="834.39722"
height="730.48706" viewBox="0 0 834.39722 730.48706" sodipodi:docname="radio.svg" height="730.48706" viewBox="0 0 834.39722 730.48706" sodipodi:docname="radio.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"> inkscape:version="0.92.4 (5da689c313, 2019-01-14)">
<metadata id="metadata925">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs923"> <defs id="defs923">
<linearGradient inkscape:collect="always" id="linearGradient1563"> <linearGradient inkscape:collect="always" id="linearGradient1563">
<stop style="stop-color:#d50500;stop-opacity:1" offset="0" id="stop1559" /> <stop style="stop-color:#d50500;stop-opacity:1" offset="0" id="stop1559" />
@@ -23,12 +14,6 @@
<linearGradient inkscape:collect="always" xlink:href="#linearGradient1563" id="linearGradient1565" <linearGradient inkscape:collect="always" xlink:href="#linearGradient1563" id="linearGradient1565"
x1="90.683296" y1="690.62628" x2="767.32019" y2="225.25154" gradientUnits="userSpaceOnUse" /> x1="90.683296" y1="690.62628" x2="767.32019" y2="225.25154" gradientUnits="userSpaceOnUse" />
</defs> </defs>
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10"
gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2"
inkscape:window-width="1920" inkscape:window-height="1053" id="namedview921" showgrid="false"
fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:zoom="1.0034924"
inkscape:cx="430.96172" inkscape:cy="429.5" inkscape:window-x="0" inkscape:window-y="27"
inkscape:window-maximized="1" inkscape:current-layer="svg919" />
<path style="fill:url(#linearGradient1565);fill-opacity:1" <path style="fill:url(#linearGradient1565);fill-opacity:1"
d="M 94.50247,730.25079 C 77.117356,727.71405 65.427746,724.2075 54.618466,718.28673 28.893936,704.19615 10.662156,680.93363 2.6616063,651.99329 l -2.65913978,-9.61888 v -197 c 0,-214.09526 -0.29603,-202.52243 5.59812978,-218.84753 5.9199797,-16.39658 14.1859497,-28.9754 27.0974097,-41.23574 11.62637,-11.04006 22.82393,-17.81421 38.00471,-22.99161 16.7009,-5.69583 3.53919,-5.42367 263.180744,-5.44197 232.58777,-0.0164 239.03707,-0.0671 236.11901,-1.85632 -1.65,-1.01171 -26.85,-15.02377 -56,-31.1379 C 353.66179,35.226934 368.85438,44.037404 364.99429,37.450664 356.9973,23.804834 364.1962,6.0125243 379.56052,1.4498143 c 10.34373,-3.07175 13.77778,-2.05749005 36.94195,10.9109797 19.01034,10.64295 97.1136,54.21233 138,76.98237 14.025,7.81066 47.00125,26.200456 73.28056,40.866226 l 47.78056,26.66502 h 30.89708 c 16.99339,0 34.39858,0.48701 38.6782,1.08225 14.20305,1.97547 32.37619,9.03994 44.28611,17.21541 6.21634,4.26716 18.53026,16.14867 23.71094,22.87832 8.16272,10.60329 15.46557,26.16114 19.11287,40.71774 1.5055,6.0088 1.6867,24.06134 2.0033,199.60628 0.3618,200.57325 0.3582,200.77432 -3.837,216.39503 -8.34326,31.06582 -34.33414,58.98896 -64.82161,69.64064 -18.31727,6.39967 12.31571,5.86253 -344.59101,6.0423 -178.2,0.0898 -325.125,-9.6e-4 -326.5,-0.20159 z m 463.5,-130.36273 c 22.57197,-1.76998 39.46342,-6.37844 59,-16.09687 15.81513,-7.8672 28.75425,-17.16261 41,-29.45425 21.41719,-21.49743 36.53683,-49.15408 42.50461,-77.74886 10.24379,-49.08335 -2.70354,-98.53261 -35.67275,-136.24359 -19.93605,-22.80332 -48.49533,-40.49778 -77.49171,-48.0115 -37.24965,-9.65236 -77.34154,-5.22028 -111.58857,12.33589 -20.88648,10.70711 -43.3649,30.29648 -56.46236,49.20553 -42.43451,61.26347 -36.68664,142.39143 13.96448,197.10068 25.35051,27.38158 63.83544,45.85088 101.7463,48.82906 5.5,0.43206 10.225,0.83942 10.5,0.90523 0.275,0.0658 5.9,-0.30379 12.5,-0.82132 z M 531.42186,546.9284 c -29.24511,-5.36131 -54.27731,-21.21641 -70.14873,-44.43138 -5.93182,-8.67642 -12.41142,-23.03069 -14.97884,-33.18267 -3.07438,-12.15653 -3.28412,-38.00354 -0.40119,-49.43994 10.22955,-40.58004 40.67752,-69.95214 81.05008,-78.1862 13.00955,-2.65332 34.81951,-2.1438 46.68477,1.09065 36.91805,10.06379 65.4177,38.78128 75.0221,75.59555 3.09496,11.86318 3.38066,36.76342 0.55537,48.40426 -9.34166,38.48986 -37.01321,67.19032 -74.89653,77.68141 -7.52303,2.08336 -12.08506,2.64726 -23.80642,2.94265 -7.975,0.20097 -16.56127,-0.0125 -19.08061,-0.47433 z m -234.25133,25.00962 c 17.1098,-7.76851 20.54111,-31.16909 6.35142,-43.31494 -8.21303,-7.03005 -4.25978,-6.74929 -94.94762,-6.74309 -52.43388,0.004 -82.88542,0.37041 -85.24917,1.02693 -15.36872,4.26859 -23.73524,22.18807 -16.92644,36.25318 2.62173,5.41577 9.5535,11.93059 14.31881,13.45754 2.18411,0.69986 31.60206,1.07945 87.78494,1.13272 80.85911,0.0767 84.67959,-10e-4 88.66806,-1.81234 z m 0.90015,-104.74119 c 19.10488,-10.22623 19.00946,-37.37206 -0.16481,-46.88568 -3.75492,-1.86307 -7.12808,-1.94688 -88.67948,-2.20332 -84.65121,-0.26619 -84.78339,-0.26343 -89.74164,1.86955 -13.55452,5.831 -19.26922,21.67758 -12.66759,35.12662 1.54684,3.15128 4.47133,7.10366 6.49887,8.78307 7.29246,6.04035 4.71464,5.88894 96.68644,5.67904 l 84,-0.1917 z m 0.0515,-104.52326 c 11.55775,-6.09711 16.84264,-18.39274 13.33465,-31.0239 -1.54521,-5.56396 -6.77189,-11.68576 -12.95436,-15.17298 l -5.5,-3.10228 h -84 c -69.20471,0 -84.69473,0.24512 -87.94431,1.39168 -5.56198,1.96245 -13.09728,9.34113 -15.22261,14.90621 -3.61657,9.46987 -1.72895,19.64759 4.99734,26.94475 4.47853,4.85863 7.67996,6.81477 13.38708,8.17981 2.1274,0.50884 39.88196,0.83313 86.2825,0.74113 l 82.5,-0.16358 5.11974,-2.70084 z" d="M 94.50247,730.25079 C 77.117356,727.71405 65.427746,724.2075 54.618466,718.28673 28.893936,704.19615 10.662156,680.93363 2.6616063,651.99329 l -2.65913978,-9.61888 v -197 c 0,-214.09526 -0.29603,-202.52243 5.59812978,-218.84753 5.9199797,-16.39658 14.1859497,-28.9754 27.0974097,-41.23574 11.62637,-11.04006 22.82393,-17.81421 38.00471,-22.99161 16.7009,-5.69583 3.53919,-5.42367 263.180744,-5.44197 232.58777,-0.0164 239.03707,-0.0671 236.11901,-1.85632 -1.65,-1.01171 -26.85,-15.02377 -56,-31.1379 C 353.66179,35.226934 368.85438,44.037404 364.99429,37.450664 356.9973,23.804834 364.1962,6.0125243 379.56052,1.4498143 c 10.34373,-3.07175 13.77778,-2.05749005 36.94195,10.9109797 19.01034,10.64295 97.1136,54.21233 138,76.98237 14.025,7.81066 47.00125,26.200456 73.28056,40.866226 l 47.78056,26.66502 h 30.89708 c 16.99339,0 34.39858,0.48701 38.6782,1.08225 14.20305,1.97547 32.37619,9.03994 44.28611,17.21541 6.21634,4.26716 18.53026,16.14867 23.71094,22.87832 8.16272,10.60329 15.46557,26.16114 19.11287,40.71774 1.5055,6.0088 1.6867,24.06134 2.0033,199.60628 0.3618,200.57325 0.3582,200.77432 -3.837,216.39503 -8.34326,31.06582 -34.33414,58.98896 -64.82161,69.64064 -18.31727,6.39967 12.31571,5.86253 -344.59101,6.0423 -178.2,0.0898 -325.125,-9.6e-4 -326.5,-0.20159 z m 463.5,-130.36273 c 22.57197,-1.76998 39.46342,-6.37844 59,-16.09687 15.81513,-7.8672 28.75425,-17.16261 41,-29.45425 21.41719,-21.49743 36.53683,-49.15408 42.50461,-77.74886 10.24379,-49.08335 -2.70354,-98.53261 -35.67275,-136.24359 -19.93605,-22.80332 -48.49533,-40.49778 -77.49171,-48.0115 -37.24965,-9.65236 -77.34154,-5.22028 -111.58857,12.33589 -20.88648,10.70711 -43.3649,30.29648 -56.46236,49.20553 -42.43451,61.26347 -36.68664,142.39143 13.96448,197.10068 25.35051,27.38158 63.83544,45.85088 101.7463,48.82906 5.5,0.43206 10.225,0.83942 10.5,0.90523 0.275,0.0658 5.9,-0.30379 12.5,-0.82132 z M 531.42186,546.9284 c -29.24511,-5.36131 -54.27731,-21.21641 -70.14873,-44.43138 -5.93182,-8.67642 -12.41142,-23.03069 -14.97884,-33.18267 -3.07438,-12.15653 -3.28412,-38.00354 -0.40119,-49.43994 10.22955,-40.58004 40.67752,-69.95214 81.05008,-78.1862 13.00955,-2.65332 34.81951,-2.1438 46.68477,1.09065 36.91805,10.06379 65.4177,38.78128 75.0221,75.59555 3.09496,11.86318 3.38066,36.76342 0.55537,48.40426 -9.34166,38.48986 -37.01321,67.19032 -74.89653,77.68141 -7.52303,2.08336 -12.08506,2.64726 -23.80642,2.94265 -7.975,0.20097 -16.56127,-0.0125 -19.08061,-0.47433 z m -234.25133,25.00962 c 17.1098,-7.76851 20.54111,-31.16909 6.35142,-43.31494 -8.21303,-7.03005 -4.25978,-6.74929 -94.94762,-6.74309 -52.43388,0.004 -82.88542,0.37041 -85.24917,1.02693 -15.36872,4.26859 -23.73524,22.18807 -16.92644,36.25318 2.62173,5.41577 9.5535,11.93059 14.31881,13.45754 2.18411,0.69986 31.60206,1.07945 87.78494,1.13272 80.85911,0.0767 84.67959,-10e-4 88.66806,-1.81234 z m 0.90015,-104.74119 c 19.10488,-10.22623 19.00946,-37.37206 -0.16481,-46.88568 -3.75492,-1.86307 -7.12808,-1.94688 -88.67948,-2.20332 -84.65121,-0.26619 -84.78339,-0.26343 -89.74164,1.86955 -13.55452,5.831 -19.26922,21.67758 -12.66759,35.12662 1.54684,3.15128 4.47133,7.10366 6.49887,8.78307 7.29246,6.04035 4.71464,5.88894 96.68644,5.67904 l 84,-0.1917 z m 0.0515,-104.52326 c 11.55775,-6.09711 16.84264,-18.39274 13.33465,-31.0239 -1.54521,-5.56396 -6.77189,-11.68576 -12.95436,-15.17298 l -5.5,-3.10228 h -84 c -69.20471,0 -84.69473,0.24512 -87.94431,1.39168 -5.56198,1.96245 -13.09728,9.34113 -15.22261,14.90621 -3.61657,9.46987 -1.72895,19.64759 4.99734,26.94475 4.47853,4.85863 7.67996,6.81477 13.38708,8.17981 2.1274,0.50884 39.88196,0.83313 86.2825,0.74113 l 82.5,-0.16358 5.11974,-2.70084 z"
id="path1028" inkscape:connector-curvature="0" /> id="path1028" inkscape:connector-curvature="0" />

View File

@@ -1,51 +1,3 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="30" height="23" viewBox="1084 1315 30 23" style="-webkit-print-color-adjust:exact" fill="none" xmlns="http://www.w3.org/2000/svg">
<svg <path d="M1110.225 1338h-22.45c-2.085 0-3.775-1.621-3.775-3.621v-15.758c0-2 1.69-3.621 3.775-3.621h7.956c1.817 0 3.376 1.242 3.71 2.955l.063.321a.747.747 0 0 0 .742.591h9.979c2.085 0 3.775 1.621 3.775 3.621v11.891c0 2-1.69 3.621-3.775 3.621Zm-22.45-21.552c-1.251 0-2.265.973-2.265 2.173v15.758c0 1.2 1.014 2.173 2.265 2.173h22.45c1.251 0 2.265-.973 2.265-2.173v-11.891c0-1.2-1.014-2.173-2.265-2.173h-9.979c-1.091 0-2.026-.746-2.226-1.774l-.063-.32c-.201-1.027-1.136-1.772-2.226-1.773Z" style="fill:#000"/>
width="30"
height="23"
id="screenshot-a0339a93-5b93-11ed-963d-5f59412bd802"
viewBox="1084 1315 30 23"
style="-webkit-print-color-adjust: exact;"
fill="none"
version="1.1"
sodipodi:docname="svg-path-85.svg"
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs197" />
<sodipodi:namedview
id="namedview195"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="37.869565"
inkscape:cx="12.754305"
inkscape:cy="11.5"
inkscape:window-width="1920"
inkscape:window-height="1048"
inkscape:window-x="0"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="screenshot-a0339a93-5b93-11ed-963d-5f59412bd802" />
<g
id="shape-a0339a93-5b93-11ed-963d-5f59412bd802"
style="fill:#000000">
<g
id="fills-a0339a93-5b93-11ed-963d-5f59412bd802"
style="fill:#000000">
<path
rx="0"
ry="0"
d="M1110.225,1338L1087.775,1338C1085.69,1338,1084,1336.379,1084,1334.379L1084,1318.621C1084,1316.621,1085.69,1315,1087.775,1315L1095.731,1315C1097.548,1315,1099.107,1316.242,1099.441,1317.955L1099.504,1318.276C1099.571,1318.619,1099.883,1318.867,1100.246,1318.867L1110.225,1318.867C1112.31,1318.867,1114,1320.488,1114,1322.488L1114,1334.379C1114,1336.379,1112.31,1338,1110.225,1338ZZM1087.775,1316.448C1086.524,1316.448,1085.51,1317.421,1085.51,1318.621L1085.51,1334.379C1085.51,1335.579,1086.524,1336.552,1087.775,1336.552L1110.225,1336.552C1111.476,1336.552,1112.49,1335.579,1112.49,1334.379L1112.49,1322.488C1112.49,1321.288,1111.476,1320.315,1110.225,1320.315L1100.246,1320.315C1099.155,1320.315,1098.22,1319.569,1098.02,1318.541L1097.957,1318.221C1097.756,1317.194,1096.821,1316.449,1095.731,1316.448Z"
id="path190"
style="fill:#000000" />
</g>
</g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 659 B

View File

@@ -4,12 +4,6 @@
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"> xmlns:svg="http://www.w3.org/2000/svg">
<defs id="defs9" />
<sodipodi:namedview id="namedview7" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25"
inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1"
showgrid="false" inkscape:zoom="20.255814" inkscape:cx="17.822044" inkscape:cy="23.376005"
inkscape:window-width="1920" inkscape:window-height="1048" inkscape:window-x="0" inkscape:window-y="-4"
inkscape:window-maximized="1" inkscape:current-layer="screenshot-e1abaae4-8d9a-80ff-8001-956afa1f32eb" />
<g id="shape-e1abaae4-8d9a-80ff-8001-956afa1f32eb" style="fill:#000000"> <g id="shape-e1abaae4-8d9a-80ff-8001-956afa1f32eb" style="fill:#000000">
<g id="fills-e1abaae4-8d9a-80ff-8001-956afa1f32eb" style="fill:#000000"> <g id="fills-e1abaae4-8d9a-80ff-8001-956afa1f32eb" style="fill:#000000">
<path fill-rule="evenodd" rx="0" ry="0" <path fill-rule="evenodd" rx="0" ry="0"

View File

@@ -3,8 +3,28 @@ module.exports = {
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'],
theme: { theme: {
extend: { extend: {
height: { keyframes: {
'1px': '1px', blink: {
'0%': { opacity: '0' },
'100%': { opacity: '100'},
},
slide: {
'0%': { transform: 'translateX(-40px)' },
'100%': { transform: 'translateX(0px)' },
},
fadeout: {
'0%': { opacity: '1' },
'100%': { opacity: '0' },
},
popin: {
'0%': { opacity: '1' },
'100%': { opacity: '0' },
},
},
animation: {
blink: 'blink .6s infinite',
slide: 'slide .3s',
fadeout: 'fadeout .6s',
}, },
}, },
}, },