Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5c5cbd8f3a | ||
|
|
7cfb7fd5ac | ||
|
|
467dae14a2 | ||
|
|
44fe30a781 | ||
|
|
4f250eb1c2 | ||
|
|
661f81eec9 | ||
|
|
3f21baa13d | ||
|
|
fdb3f11e47 | ||
|
|
e217d1a97f | ||
|
|
b6ed4118d1 | ||
|
|
728e2ec270 | ||
|
|
1eb73a957b | ||
|
|
9582ea0198 | ||
|
|
a5d773d9f3 | ||
|
|
2f09345ad3 | ||
|
|
9806427b16 | ||
|
|
33690b30a3 | ||
|
|
2c1a8ae9b5 | ||
|
|
920b1da4b0 |
@@ -3,7 +3,10 @@ name: Deploy Static Site
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- master
|
||||||
|
paths:
|
||||||
|
- "component-library/**"
|
||||||
|
- ".gitea/workflows/deploy.yml"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
@@ -15,34 +18,38 @@ jobs:
|
|||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 20
|
node-version: 22
|
||||||
cache: npm
|
cache: npm
|
||||||
|
cache-dependency-path: component-library/package-lock.json
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
working-directory: component-library
|
||||||
run: npm ci
|
run: npm ci
|
||||||
|
|
||||||
- name: Build static site
|
- name: Build static site
|
||||||
|
working-directory: component-library
|
||||||
run: npm run build
|
run: npm run build
|
||||||
|
|
||||||
- name: Setup SSH key
|
- name: Setup SSH key
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
|
chmod 700 ~/.ssh
|
||||||
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_ed25519
|
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_ed25519
|
||||||
chmod 600 ~/.ssh/id_ed25519
|
chmod 600 ~/.ssh/id_ed25519
|
||||||
|
|
||||||
- name: Deploy static files to server
|
- name: Deploy static files to server
|
||||||
env:
|
env:
|
||||||
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
|
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
|
||||||
REMOTE_DIR: /home/deploy/projects/ge-bos/static
|
REMOTE_DIR: /home/deploy/projects/solenos/static
|
||||||
run: |
|
run: |
|
||||||
SSH="ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new"
|
SSH="ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new"
|
||||||
# Recreate the target dir so removed files don't linger (rsync --delete equivalent)
|
# Recreate the target dir so removed files don't linger (rsync --delete equivalent)
|
||||||
$SSH deploy@"$DEPLOY_HOST" "rm -rf '$REMOTE_DIR' && mkdir -p '$REMOTE_DIR'"
|
$SSH deploy@"$DEPLOY_HOST" "rm -rf '$REMOTE_DIR' && mkdir -p '$REMOTE_DIR'"
|
||||||
# Stream the build output over ssh and extract it on the server
|
# Stream the build output over ssh and extract it on the server
|
||||||
tar -czf - -C out . | $SSH deploy@"$DEPLOY_HOST" "tar -xzf - -C '$REMOTE_DIR'"
|
tar -czf - -C component-library/dist . | $SSH deploy@"$DEPLOY_HOST" "tar -xzf - -C '$REMOTE_DIR'"
|
||||||
|
|
||||||
- name: Run deployment script
|
- name: Run deployment script
|
||||||
run: |
|
run: |
|
||||||
ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new \
|
ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=accept-new \
|
||||||
deploy@${{ secrets.DEPLOY_HOST }} \
|
deploy@${{ secrets.DEPLOY_HOST }} \
|
||||||
"cd /home/deploy/projects/ge-bos && ./deploy.sh"
|
"cd /home/deploy/projects/solenos && ./deploy.sh"
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>SolenOS – Messdienstleistungen einfach gemacht</title>
|
||||||
|
<link rel="icon" href="/favicon.ico" sizes="48x48" />
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
|
||||||
|
<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png" />
|
||||||
|
<meta
|
||||||
|
name="description"
|
||||||
|
content="SolenOS Component Library – shadcn-basierte Komponenten für die SolenOS Landing Pages."
|
||||||
|
/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="root"></div>
|
||||||
|
<script type="module" src="/src/main.tsx"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "gebos-component-library",
|
"name": "solenos-component-library",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "gebos-component-library",
|
"name": "solenos-component-library",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource-variable/inter": "^5.2.5",
|
"@fontsource-variable/inter": "^5.2.5",
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "gebos-component-library",
|
"name": "solenos-component-library",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 15 KiB |
@@ -1,8 +1,8 @@
|
|||||||
import { useEffect } from "react"
|
import { useEffect } from "react"
|
||||||
import { BrowserRouter, Route, Routes, useLocation } from "react-router-dom"
|
import { BrowserRouter, Route, Routes, useLocation } from "react-router-dom"
|
||||||
|
|
||||||
import { SiteFooter } from "@/components/gebos/site-footer"
|
import { SiteFooter } from "@/components/solenos/site-footer"
|
||||||
import { SiteHeader } from "@/components/gebos/site-header"
|
import { SiteHeader } from "@/components/solenos/site-header"
|
||||||
import HauseigentuemerPage from "@/pages/audiences/hauseigentuemer"
|
import HauseigentuemerPage from "@/pages/audiences/hauseigentuemer"
|
||||||
import HausverwaltungenPage from "@/pages/audiences/hausverwaltungen"
|
import HausverwaltungenPage from "@/pages/audiences/hausverwaltungen"
|
||||||
import InstallateurePage from "@/pages/audiences/installateure"
|
import InstallateurePage from "@/pages/audiences/installateure"
|
||||||
@@ -13,7 +13,14 @@ import HomePage from "@/pages/home"
|
|||||||
import HowItWorksPage from "@/pages/how-it-works"
|
import HowItWorksPage from "@/pages/how-it-works"
|
||||||
import KlarpreisPage from "@/pages/klarpreis"
|
import KlarpreisPage from "@/pages/klarpreis"
|
||||||
import { SimplePage } from "@/pages/placeholder"
|
import { SimplePage } from "@/pages/placeholder"
|
||||||
import SolutionsPage from "@/pages/solutions"
|
import HeizkostenabrechnungProductPage from "@/pages/products/heizkostenabrechnung"
|
||||||
|
import MesstechnikProductPage from "@/pages/products/messtechnik-infrastruktur"
|
||||||
|
import ProductsPage from "@/pages/products"
|
||||||
|
import RauchwarnmelderProductPage from "@/pages/products/rauchwarnmelder"
|
||||||
|
import UviProductPage from "@/pages/products/uvi"
|
||||||
|
import WissenPage from "@/pages/wissen"
|
||||||
|
import DatenschutzSicherheitPage from "@/pages/wissen/datenschutz-sicherheit"
|
||||||
|
import GesetzlicheAnforderungenPage from "@/pages/wissen/gesetzliche-anforderungen"
|
||||||
|
|
||||||
function ScrollToTop() {
|
function ScrollToTop() {
|
||||||
const { pathname } = useLocation()
|
const { pathname } = useLocation()
|
||||||
@@ -35,7 +42,20 @@ export default function App() {
|
|||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/" element={<HomePage />} />
|
<Route path="/" element={<HomePage />} />
|
||||||
<Route path="/so-funktionierts" element={<HowItWorksPage />} />
|
<Route path="/so-funktionierts" element={<HowItWorksPage />} />
|
||||||
<Route path="/loesungen" element={<SolutionsPage />} />
|
<Route path="/produkte" element={<ProductsPage />} />
|
||||||
|
<Route path="/produkte/uvi" element={<UviProductPage />} />
|
||||||
|
<Route
|
||||||
|
path="/produkte/heizkostenabrechnung"
|
||||||
|
element={<HeizkostenabrechnungProductPage />}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
path="/produkte/rauchwarnmelder"
|
||||||
|
element={<RauchwarnmelderProductPage />}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
path="/produkte/messtechnik-infrastruktur"
|
||||||
|
element={<MesstechnikProductPage />}
|
||||||
|
/>
|
||||||
<Route path="/fuer-wen" element={<ForWhomPage />} />
|
<Route path="/fuer-wen" element={<ForWhomPage />} />
|
||||||
<Route
|
<Route
|
||||||
path="/fuer-wen/hauseigentuemer"
|
path="/fuer-wen/hauseigentuemer"
|
||||||
@@ -55,6 +75,15 @@ export default function App() {
|
|||||||
/>
|
/>
|
||||||
<Route path="/konfigurator" element={<ConfiguratorPage />} />
|
<Route path="/konfigurator" element={<ConfiguratorPage />} />
|
||||||
<Route path="/klarpreis" element={<KlarpreisPage />} />
|
<Route path="/klarpreis" element={<KlarpreisPage />} />
|
||||||
|
<Route path="/wissen" element={<WissenPage />} />
|
||||||
|
<Route
|
||||||
|
path="/wissen/gesetzliche-anforderungen"
|
||||||
|
element={<GesetzlicheAnforderungenPage />}
|
||||||
|
/>
|
||||||
|
<Route
|
||||||
|
path="/wissen/datenschutz-sicherheit"
|
||||||
|
element={<DatenschutzSicherheitPage />}
|
||||||
|
/>
|
||||||
<Route
|
<Route
|
||||||
path="/unternehmen"
|
path="/unternehmen"
|
||||||
element={
|
element={
|
||||||
@@ -64,7 +93,7 @@ export default function App() {
|
|||||||
{ label: "Unternehmen" },
|
{ label: "Unternehmen" },
|
||||||
]}
|
]}
|
||||||
title="Unternehmen"
|
title="Unternehmen"
|
||||||
lead="GebOS verbindet Messtechnik, Datenerfassung und Software zu einem durchgängigen System für Wohngebäude."
|
lead="SolenOS verbindet Messtechnik, Datenerfassung und Software zu einem durchgängigen System für Wohngebäude."
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 194 KiB After Width: | Height: | Size: 194 KiB |
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 111 KiB |
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 83 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 908 B After Width: | Height: | Size: 908 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1,5 +1,5 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 560" role="img" aria-labelledby="title desc">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 560" role="img" aria-labelledby="title desc">
|
||||||
<title id="title">GebOS segmented consumption ring</title>
|
<title id="title">SolenOS segmented consumption ring</title>
|
||||||
<desc id="desc">A substantial eight-part white, teal and translucent cyan ring in three-quarter perspective.</desc>
|
<desc id="desc">A substantial eight-part white, teal and translucent cyan ring in three-quarter perspective.</desc>
|
||||||
<defs>
|
<defs>
|
||||||
<linearGradient id="whiteTop" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#ffffff"/><stop offset=".58" stop-color="#f1f5f6"/><stop offset="1" stop-color="#d9e2e5"/></linearGradient>
|
<linearGradient id="whiteTop" x1="0" y1="0" x2="1" y2="1"><stop stop-color="#ffffff"/><stop offset=".58" stop-color="#f1f5f6"/><stop offset="1" stop-color="#d9e2e5"/></linearGradient>
|
||||||
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 130 KiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 177 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 239 KiB After Width: | Height: | Size: 239 KiB |
|
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 146 KiB |
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 145 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 153 KiB |
|
After Width: | Height: | Size: 157 KiB |
|
After Width: | Height: | Size: 178 KiB |
|
After Width: | Height: | Size: 119 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 145 KiB |
|
After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 178 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
Before Width: | Height: | Size: 195 KiB After Width: | Height: | Size: 195 KiB |
|
Before Width: | Height: | Size: 181 KiB After Width: | Height: | Size: 181 KiB |
|
Before Width: | Height: | Size: 528 B After Width: | Height: | Size: 528 B |
|
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 357 B |
|
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 381 B |
|
Before Width: | Height: | Size: 414 B After Width: | Height: | Size: 414 B |
|
Before Width: | Height: | Size: 335 B After Width: | Height: | Size: 335 B |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 177 KiB After Width: | Height: | Size: 177 KiB |