Compare commits

...

66 Commits

Author SHA1 Message Date
fce3320fec Merge pull request 'chore(deps): update dependency prettier to v3.7.4' (#25) from renovate/prettier-3.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m0s
2025-12-06 05:05:37 +00:00
c1f7ef6007 chore(deps): update dependency prettier to v3.7.4
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Build Docker Image / Build-Docker-Image (push) Successful in 1m15s
2025-12-06 05:02:04 +00:00
acf37126c2 feat: rename to dashboard
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m18s
2025-12-04 23:01:53 +01:00
6fbbff4787 Merge pull request 'chore(deps): update dependency prettier-plugin-tailwindcss to v0.7.2' (#24) from renovate/prettier-plugin-tailwindcss-0.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m31s
Reviewed-on: #24
2025-12-04 19:34:17 +00:00
dbd8e20bfe chore(deps): update dependency prettier-plugin-tailwindcss to v0.7.2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Build Docker Image / Build-Docker-Image (push) Successful in 1m15s
2025-12-04 16:02:29 +00:00
fa74a93b6a Merge pull request 'chore(deps): update actions/checkout action to v6' (#14) from renovate/actions-checkout-6.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m48s
Reviewed-on: #14
2025-12-02 22:46:18 +00:00
889e4c9da3 Merge pull request 'chore(deps): update dependency prettier to v3.7.3' (#23) from renovate/prettier-3.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m27s
2025-12-02 18:03:45 +00:00
0de1c1e674 chore(deps): update dependency prettier to v3.7.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Build Docker Image / Build-Docker-Image (push) Successful in 1m12s
2025-12-02 18:02:23 +00:00
3a3925c245 chore(deps): update actions/checkout action to v6
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m19s
2025-12-02 17:02:56 +00:00
e8d89f7723 Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to 0df5caa' (#22) from renovate/eclipse-temurin-25.0.1_8-jre-ubi10-minimal into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m24s
2025-12-02 05:05:25 +00:00
fe78c4869e Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to 53a0814' (#21) from renovate/eclipse-temurin-25.0.1_8-jdk-ubi10-minimal into prod
Some checks failed
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Has been cancelled
2025-12-02 05:03:59 +00:00
7f6e59de02 chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to 0df5caa
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m21s
2025-12-02 05:02:34 +00:00
4f0643a139 chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to 53a0814
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m21s
2025-12-02 05:02:29 +00:00
39ebf8efba Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to f5d094c' (#20) from renovate/eclipse-temurin-25.0.1_8-jre-ubi10-minimal into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m52s
2025-12-02 03:08:06 +00:00
24f6264ad8 Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to d87cd28' (#19) from renovate/eclipse-temurin-25.0.1_8-jdk-ubi10-minimal into prod
Some checks failed
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Has been cancelled
2025-12-02 03:05:58 +00:00
daca0833ed chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to f5d094c
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 2m2s
2025-12-02 03:03:43 +00:00
b083da60f8 chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to d87cd28
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 2m13s
2025-12-02 03:03:32 +00:00
b743b527a6 Merge pull request 'chore(deps): update dependency prettier to v3.7.2' (#18) from renovate/prettier-3.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m28s
2025-12-01 21:05:13 +00:00
dab551486e chore(deps): update dependency prettier to v3.7.2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Build Docker Image / Build-Docker-Image (push) Successful in 2m53s
2025-12-01 21:02:08 +00:00
86b2595c1d Merge pull request 'chore(deps): update dependency prettier to v3.7.1' (#17) from renovate/prettier-3.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m14s
2025-11-30 12:03:02 +00:00
23e310f1e5 chore(deps): update dependency prettier to v3.7.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Build Docker Image / Build-Docker-Image (push) Successful in 1m7s
2025-11-30 12:01:45 +00:00
e0c855bb31 Merge pull request 'chore(deps): update dependency prettier to v3.7.0' (#16) from renovate/prettier-3.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m21s
2025-11-30 09:04:04 +00:00
72d8364a32 chore(deps): update dependency prettier to v3.7.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
Build Docker Image / Build-Docker-Image (push) Successful in 2m10s
2025-11-30 09:01:45 +00:00
2d1bc93ce8 Merge pull request 'chore(deps): update plugin org.springframework.boot to v4' (#15) from renovate/major-spring-boot into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m10s
Reviewed-on: #15
2025-11-23 20:33:32 +00:00
ce93459c69 chore(deps): update plugin org.springframework.boot to v4
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m12s
2025-11-20 20:02:05 +00:00
e1a67087d5 Merge pull request 'chore(deps): update plugin org.springframework.boot to v3.5.8' (#13) from renovate/spring-boot into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 5m54s
2025-11-20 16:04:08 +00:00
4a4aa54192 chore(deps): update plugin org.springframework.boot to v3.5.8
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m54s
2025-11-20 16:02:04 +00:00
cc97af7ff7 Merge pull request 'chore(deps): update node.js to aa648b3' (#12) from renovate/node-24.11.1 into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m27s
2025-11-18 17:06:47 +00:00
dc92e275f9 chore(deps): update node.js to aa648b3
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 3m59s
2025-11-18 17:02:36 +00:00
8ef0ed8f1d Merge pull request 'chore(deps): update node.js to d5a23e0' (#11) from renovate/node-24.11.1 into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 2m2s
2025-11-18 15:01:02 +00:00
a18f63ba21 chore(deps): update node.js to d5a23e0
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 58m37s
2025-11-18 14:02:18 +00:00
face7c48c5 Merge pull request 'chore(deps): update node.js to c5453ea' (#10) from renovate/node-24.11.1 into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 3m33s
2025-11-18 11:05:23 +00:00
245dc9c625 chore(deps): update node.js to c5453ea
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 2m56s
2025-11-18 11:02:16 +00:00
710daba4e1 Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to 7126e16' (#8) from renovate/eclipse-temurin-25.0.1_8-jdk-ubi10-minimal into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m50s
2025-11-18 04:03:49 +00:00
c56d8445fb chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to 7126e16
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m39s
2025-11-18 04:01:57 +00:00
4753392824 Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to f2dfad3' (#9) from renovate/eclipse-temurin-25.0.1_8-jre-ubi10-minimal into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 2m9s
2025-11-18 03:14:59 +00:00
e8f4830282 chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to f2dfad3
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 15m53s
2025-11-18 02:52:22 +00:00
d5373e2a13 Merge pull request 'chore(deps): update actions/checkout digest to 93cb6ef' (#7) from renovate/actions-checkout-digest into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m28s
2025-11-17 18:11:47 +00:00
f77e20ed9f chore(deps): update actions/checkout digest to 93cb6ef
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 7m27s
2025-11-17 18:02:40 +00:00
0aa045d49d Merge pull request 'chore(deps): update gradle to v9.2.1' (#6) from renovate/gradle-9.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 59m27s
2025-11-17 15:05:40 +00:00
0c97b5e1f9 chore(deps): update gradle to v9.2.1
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 2m22s
2025-11-17 15:03:08 +00:00
48cccefb31 Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to 3bee096' (#5) from renovate/eclipse-temurin-25.0.1_8-jre-ubi10-minimal into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m17s
2025-11-14 05:06:19 +00:00
5c5d909d33 Merge pull request 'chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to 3f62c5f' (#4) from renovate/eclipse-temurin-25.0.1_8-jdk-ubi10-minimal into prod
Some checks failed
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Has been cancelled
2025-11-14 05:04:57 +00:00
4e8f8cbe9f chore(deps): update eclipse-temurin:25.0.1_8-jre-ubi10-minimal docker digest to 3bee096
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m21s
2025-11-14 05:01:43 +00:00
efc6b7b512 chore(deps): update eclipse-temurin:25.0.1_8-jdk-ubi10-minimal docker digest to 3f62c5f
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m30s
2025-11-14 05:01:36 +00:00
9088b28bf2 Merge pull request 'chore(deps): update node.js to v24.11.1' (#3) from renovate/node-24.x into prod
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m8s
2025-11-13 20:39:08 +00:00
396936839a chore(deps): update node.js to v24.11.1
All checks were successful
Build Docker Image / Build-Docker-Image (push) Successful in 1m11s
2025-11-13 20:38:51 +00:00
c25022ad29 fix copy file correctly
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m10s
2025-11-13 21:35:26 +01:00
d70f24ba12 feat: add traefik and add styles to dockerbuild
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m17s
2025-11-13 21:31:13 +01:00
87d14baccb feat: add proxmox
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m11s
2025-11-13 21:12:34 +01:00
6e208ea635 feat: add pipeline
All checks were successful
Build and Push Docker Image / Build-And-Push-Docker-Image (push) Successful in 1m59s
2025-11-13 21:00:46 +01:00
d9ea7c060c fix: dockerbuild 2025-11-13 20:56:17 +01:00
75773e26c0 Merge pull request 'chore(deps): pin dependencies' (#2) from renovate/pin-dependencies into prod 2025-11-13 08:01:36 +00:00
473568c98b chore(deps): pin dependencies 2025-11-13 08:01:31 +00:00
8ebe53244a feat: begin dockerfile 2025-11-13 08:42:10 +01:00
fb414c39f4 feat: implement dashboard 2025-11-13 08:29:47 +01:00
65d373b59d feat: rename to dashboard 2025-11-12 20:30:06 +01:00
cf7644b330 feat: add projekt view 2025-11-12 20:23:57 +01:00
cfd73d17b7 feat: add gradient 2025-11-12 09:02:29 +01:00
e6f0e61908 fix: stopping dev environment 2025-11-11 22:00:30 +01:00
9b8f3ee904 feat: add tailwindcss sorter for prettier 2025-11-11 21:44:31 +01:00
69928655e0 feat: add prettier for formatting html and json 2025-11-11 21:42:30 +01:00
d2570339a3 feat: fix tailwindcss in dev.sh and update index.html 2025-11-11 21:36:54 +01:00
fd5b5e05e6 feat: rename home to index 2025-11-08 13:06:27 +01:00
8f39655da2 feat: simple dev.sh script to launch development environment 2025-11-08 12:49:03 +01:00
5a7beabc9d feat: basic dev setup 2025-11-07 22:21:31 +01:00
28 changed files with 2054 additions and 20 deletions

View File

@@ -0,0 +1,15 @@
name: Build Docker Image
on:
push:
branches:
- '**' # matches every branch
- '!prod'
jobs:
Build-Docker-Image:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- run: docker build . -t dashboard-test
- run: docker rmi dashboard-test

View File

@@ -0,0 +1,18 @@
name: Build and Push Docker Image
on:
push:
branches:
- prod
jobs:
Build-And-Push-Docker-Image:
runs-on: ubuntu-latest
steps:
- name: Check out repository code
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
- run: docker login git.wundenbergs.de -u tim -p ${{ secrets.DOCKER_GITEA_TOKEN }}
- run: docker build . -t git.wundenbergs.de/x/dashboard:latest -t git.wundenbergs.de/x/dashboard:$GITHUB_SHA
- run: docker push git.wundenbergs.de/x/dashboard:latest
- run: docker push git.wundenbergs.de/x/dashboard:$GITHUB_SHA
- run: docker rmi git.wundenbergs.de/x/dashboard:latest git.wundenbergs.de/x/dashboard:$GITHUB_SHA

3
.gitignore vendored
View File

@@ -35,3 +35,6 @@ out/
### VS Code ###
.vscode/
node_modules/
src/main/resources/static/styles.css

9
.prettierrc Normal file
View File

@@ -0,0 +1,9 @@
{
"plugins": ["prettier-plugin-tailwindcss"],
"overrides": [
{
"files": "*.svg",
"options": { "parser": "html" }
}
]
}

18
Dockerfile Normal file
View File

@@ -0,0 +1,18 @@
FROM node:24.11.1@sha256:aa648b387728c25f81ff811799bbf8de39df66d7e2d9b3ab55cc6300cb9175d9 AS builder_node
WORKDIR /dashboard
COPY package.json package-lock.json ./
RUN npm clean-install
COPY . ./
RUN npm run build
FROM eclipse-temurin:25.0.1_8-jdk-ubi10-minimal@sha256:53a08146a9ac0b9b1fc894a370eb77298efc899355d0a2d077d06cb08c8a8a1d AS builder_java
WORKDIR /dashboard/
COPY . .
COPY --from=builder_node /dashboard/src/main/resources/static/styles.css ./src/main/resources/static/styles.css
RUN ./gradlew build bootJar
FROM eclipse-temurin:25.0.1_8-jre-ubi10-minimal@sha256:0df5caab80e3a3141685e3254301a951f1ae845ab788bb489bc063e6b085c301
WORKDIR /opt/app/
ENV TZ=Europe/Berlin
COPY --from=builder_java /dashboard/build/libs/dashboard-0.0.1-SNAPSHOT.jar ./
ENTRYPOINT ["java", "-jar", "dashboard-0.0.1-SNAPSHOT.jar"]

View File

@@ -1,12 +1,12 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.7'
id 'org.springframework.boot' version '4.0.0'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'de.wundenbergs'
version = '0.0.1-SNAPSHOT'
description = 'Simple Projektverwaltung'
description = 'Simple Dashboard'
java {
toolchain {
@@ -25,17 +25,13 @@ repositories {
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-actuator'
// implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'io.github.wimdeblauwe:htmx-spring-boot-thymeleaf:4.0.1'
// implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
// testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
developmentOnly("org.springframework.boot:spring-boot-devtools")
}
tasks.named('test') {

23
dev.sh Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/bash
trap ctrl_c INT
function ctrl_c() {
stop
exit 0
}
function stop() {
kill %2
kill %1
./gradlew --stop
wait
}
./gradlew classes --continuous &
./gradlew bootRun &
npm run watch
stop

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

1
input.css Normal file
View File

@@ -0,0 +1 @@
@import "tailwindcss";

1289
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

18
package.json Normal file
View File

@@ -0,0 +1,18 @@
{
"name": "dashboard",
"version": "1.0.0",
"description": "",
"license": "ISC",
"author": "",
"type": "commonjs",
"scripts": {
"watch": "npx @tailwindcss/cli -i ./input.css -o ./src/main/resources/static/styles.css --watch",
"build": "npx @tailwindcss/cli -i ./input.css -o ./src/main/resources/static/styles.css --minify"
},
"devDependencies": {
"@tailwindcss/cli": "4.1.17",
"prettier": "3.7.4",
"prettier-plugin-tailwindcss": "0.7.2",
"tailwindcss": "4.1.17"
}
}

View File

@@ -1,6 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>x/renovate-config"
]
"extends": ["local>x/renovate-config"]
}

View File

@@ -1 +1 @@
rootProject.name = 'projektverwaltung'
rootProject.name = 'dashboard'

View File

@@ -1,13 +1,13 @@
package de.wundenbergs.projektverwaltung;
package de.wundenbergs.dashboard;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ProjektverwaltungApplication {
public class Application {
public static void main(String[] args) {
SpringApplication.run(ProjektverwaltungApplication.class, args);
SpringApplication.run(Application.class, args);
}
}

View File

@@ -0,0 +1,30 @@
package de.wundenbergs.dashboard;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
private record Item(String url, String name, String logoFilename) {
};
private static final List<Item> items = List.of(
new Item("https://home.wundenbergs.de", "Homeassistant", "assets/homeassistant.svg"),
new Item("https://git.wundenbergs.de", "Gitea", "assets/gitea.svg"),
new Item("https://next.wundenbergs.de", "Nextcloud", "assets/nextcloud.svg"),
new Item("https://pihole.wundenbergs.de/admin", "Pihole", "assets/pihole.png"),
new Item("https://spend-sparrow.de", "Spend-Sparrow", "assets/spend-sparrow.svg"),
new Item("https://jellyfin.wundenbergs.de", "Jellyfin", "assets/jellyfin.svg"),
new Item("https://traefik.wundenbergs.de", "Traefik", "assets/traefik.svg"),
new Item("https://192.168.188.102:8006/", "Proxmox", "assets/proxmox.svg"));
@GetMapping("/")
public String home(Model model) {
model.addAttribute("items", items);
return "index";
}
}

View File

@@ -1,3 +1,3 @@
spring:
application:
name: projektverwaltung
name: dashboard

View File

@@ -0,0 +1,45 @@
<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
viewBox="5.67 143.05 628.65 387.55"
>
<g>
<path
id="teabag"
style="fill: #ffffff"
d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8
c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4
c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"
></path>
<g>
<g>
<path
style="fill: #609926"
d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2
c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5
c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5
c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3
c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1
C633.2,157.9,624.7,151.8,622.7,149.8z
M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4
c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7
S142.5,359.9,125.6,353.9z
M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55
c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8
l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"
></path>
<path
style="fill: #609926"
d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4
c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1
c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9
c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3
c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3
c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29
c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8
C343.2,346.5,335,363.3,326.8,380.1z"
></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,10 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<path
d="M5.114,27.944V18.427H2.66a.668.668,0,0,1-.47-1.134L15.41,3.748h0a.819.819,0,0,1,1.166-.008l.007.007,6.9,7.037v-1.3h0a.553.553,0,0,1,.55-.556h2.292a.553.553,0,0,1,.549.556v4.78L29.812,17.3h0a.671.671,0,0,1-.01.942.657.657,0,0,1-.462.19H26.876v9.517a.553.553,0,0,1-.549.556H5.664A.553.553,0,0,1,5.114,27.944Z"
style="fill: #3dbcf3; fill-rule: evenodd"
/>
<path
d="M21.718,15.07a2.841,2.841,0,0,0-2.826,2.857,2.876,2.876,0,0,0,.224,1.116l-2.061,2.083V14.791a2.826,2.826,0,1,0-2.12,0v6.335l-2.061-2.083a2.876,2.876,0,0,0,.224-1.116,2.826,2.826,0,1,0-2.826,2.858,2.791,2.791,0,0,0,1.1-.227l3.559,3.6V28.5h2.12V24.157l3.56-3.6a2.782,2.782,0,0,0,1.1.227,2.858,2.858,0,0,0,0-5.715Zm-11.446,4a1.143,1.143,0,1,1,1.13-1.143A1.136,1.136,0,0,1,10.272,19.07ZM16,13.284a1.143,1.143,0,1,1,1.131-1.143A1.136,1.136,0,0,1,16,13.284Zm5.723,5.786a1.143,1.143,0,1,1,1.131-1.143A1.136,1.136,0,0,1,21.718,19.07Z"
style="fill: #fff"
/>
</svg>

After

Width:  |  Height:  |  Size: 1012 B

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
aria-label="Jellyfin" role="img"
viewBox="0 0 512 512"><rect
width="512" height="512"
rx="15%"
fill="#ffffff"/><defs><path d="M190.56 329.07c8.63 17.3 122.4 17.12 130.93 0 8.52-17.1-47.9-119.78-65.46-119.8-17.57 0-74.1 102.5-65.47 119.8z" id="A"/><linearGradient id="B" gradientUnits="userSpaceOnUse" x1="126.15" y1="219.32" x2="457.68" y2="410.73"><stop offset="0%" stop-color="#aa5cc3"/><stop offset="100%" stop-color="#00a4dc"/></linearGradient><path d="M58.75 417.03c25.97 52.15 368.86 51.55 394.55 0S308.93 56.08 256.03 56.08c-52.92 0-223.25 308.8-197.28 360.95zm68.04-45.25c-17.02-34.17 94.6-236.5 129.26-236.5 34.67 0 146.1 202.7 129.26 236.5-16.83 33.8-241.5 34.17-258.52 0z" id="C"/></defs><use xlink:href="#A" fill="url(#B)"/><use xlink:href="#A" fill-opacity="0" stroke="#000000" stroke-opacity="0"/><use xlink:href="#C" fill="url(#B)"/><use xlink:href="#C" fill-opacity="0" stroke="#000000" stroke-opacity="0"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,41 @@
<svg
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
id="Layer_1"
inkscape:export-xdpi="299.75104"
x="0px"
y="0px"
viewBox="0 0 127.6 62.9"
style="enable-background: new 0 0 127.6 62.9"
xml:space="preserve"
>
<style type="text/css">
.st0 {
fill: #0082c9;
}
</style>
<path
id="path1052"
inkscape:connector-curvature="0"
inkscape:export-filename="Nextcloud Hub logo variants.png"
inkscape:export-xdpi="300"
inkscape:export-ydpi="300"
class="st0"
d="
M63.8,3.8c-12.6,0-23.3,8.5-26.6,20.1c-2.8-6.1-9-10.4-16.2-10.4c-9.9,0-18,8.1-18,18s8.1,18,18,18c7.2,0,13.4-4.3,16.3-10.4
c3.3,11.6,14,20.1,26.6,20.1c12.5,0,23.1-8.4,26.5-19.8c2.9,6,9.1,10.2,16.2,10.2c9.9,0,18-8.1,18-18s-8.1-18-18-18
c-7.1,0-13.2,4.2-16.2,10.2C87,12.2,76.3,3.8,63.8,3.8z
M63.8,14.4c9.5,0,17.1,7.6,17.1,17.1s-7.6,17.1-17.1,17.1S46.7,41,46.7,31.5
C46.7,21.9,54.3,14.4,63.8,14.4z
M21,24c4.2,0,7.4,3.3,7.4,7.4c0,4.2-3.3,7.4-7.4,7.4c-4.2,0-7.4-3.3-7.4-7.4
C13.6,27.3,16.8,24,21,24z
M106.5,24c4.2,0,7.4,3.3,7.4,7.4c0,4.2-3.3,7.4-7.4,7.4c-4.2,0-7.4-3.3-7.4-7.4S102.3,24,106.5,24z"
></path>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="379.41956"
height="328.82227"
viewBox="0 0 100.38809 87.000888"
version="1.1"
id="svg924"
inkscape:export-filename="proxmox.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
sodipodi:docname="proxmox.svg"
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"
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/">
<defs
id="defs918" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.56863113"
inkscape:cx="195.84872"
inkscape:cy="189.70435"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:pagecheckerboard="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1720"
inkscape:window-height="1343"
inkscape:window-x="1720"
inkscape:window-y="27"
inkscape:window-maximized="0"
units="px"
inkscape:showpageshadow="2"
inkscape:deskcolor="#d1d1d1">
<inkscape:page
x="-4.5850859e-14"
y="0"
width="100.38809"
height="87.000885"
id="page2"
margin="0"
bleed="0" />
</sodipodi:namedview>
<metadata
id="metadata921">
<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(-66.921863,-73.385094)">
<g
id="g1898"
transform="matrix(1.3463334,0,0,1.3463334,375.33156,-1215.5059)">
<g
id="g1882">
<path
inkscape:connector-curvature="0"
id="path1290"
style="fill:#e57000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.542875"
d="m -173.38497,989.64514 18.87524,20.74226 c -2.0743,2.1432 -4.97814,3.4575 -8.1594,3.4575 -3.38754,0 -6.36035,-1.4522 -8.4347,-3.7339 l -10.44002,-11.47689 -8.1589,-8.98897 8.1589,-8.91944 10.44002,-11.47749 c 2.07435,-2.28114 5.04716,-3.7339 8.4347,-3.7339 3.18126,0 6.0851,1.31376 8.1594,3.38811 z"
sodipodi:nodetypes="ccscccccscc" />
<path
inkscape:connector-curvature="0"
id="path1292"
style="fill:#e57000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.542875"
d="m -210.19854,989.64491 -18.87525,20.74229 c 2.0743,2.1432 4.97814,3.4575 8.15941,3.4575 3.38753,0 6.36034,-1.4522 8.43469,-3.7339 l 10.44002,-11.47692 8.15888,-8.98897 -8.15888,-8.91944 -10.44002,-11.47749 c -2.07435,-2.28117 -5.04716,-3.7339 -8.43469,-3.7339 -3.18127,0 -6.08511,1.31376 -8.15941,3.38811 z"
sodipodi:nodetypes="ccscccccscc" />
<path
inkscape:connector-curvature="0"
id="path1294"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.495509"
d="m -184.35429,999.92973 -7.44678,-8.20441 -7.44712,8.20441 -17.22853,18.93277 c 1.89315,1.8933 4.54432,3.0923 7.44626,3.0923 3.09254,0 5.68045,-1.2625 7.63638,-3.4079 l 9.59301,-10.4759 9.52871,10.4759 c 1.89351,2.0819 4.60672,3.4079 7.69878,3.4079 2.90352,0 5.55411,-1.199 7.44728,-3.0923 z"
sodipodi:nodetypes="ccccscccscc" />
<path
inkscape:connector-curvature="0"
id="path1296"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.495509"
d="m -184.35475,979.35922 -7.44678,8.20441 -7.44712,-8.20441 -17.22852,-18.93276 c 1.89317,-1.89324 4.54431,-3.09227 7.44627,-3.09227 3.09255,0 5.68044,1.26249 7.63636,3.40788 l 9.59301,10.47593 9.52871,-10.47593 c 1.89354,-2.08195 4.60674,-3.40788 7.69878,-3.40788 2.90352,0 5.55414,1.19903 7.44729,3.09227 z"
sodipodi:nodetypes="ccccscccscc" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="28.384802mm"
height="31.749905mm"
viewBox="0 0 28.384802 31.749905"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-37.253301,-88.598061)">
<path
d="m 59.240389,97.978247 c 1.775354,-0.394229 4.087813,-2.156354 4.439709,-3.024187 0.206375,-0.508 -0.822855,-1.30175 -1.098021,-1.621896 -0.629709,-0.73025 -0.375709,-1.090083 -0.132292,-1.960562 0.277813,-0.989542 -0.381,-2.082271 -1.314979,-2.510896 -0.933979,-0.428625 -2.050521,-0.293688 -2.989792,0.124354 -0.939271,0.418042 -1.740958,1.090083 -2.526771,1.751542 -0.574145,-0.36248 -1.489604,-1.963209 -2.97127,-0.923396 -1.023938,0.717021 -1.116542,2.278062 -0.98425,3.52425 0.309562,2.876021 1.018645,4.368271 2.354791,4.770437 1.688042,0.508 3.556,0.240771 5.222875,-0.129646"
style="fill:#ffca28;stroke-width:0.264583"
id="path1-3" />
<path
d="m 62.124348,89.704727 c -0.224896,3.876145 -4.005792,6.447895 -5.799667,7.580312 l 1.164167,1.000125 c 0,0 0.738187,0.01588 1.748895,-0.306917 1.733021,-0.550333 4.265084,-2.106083 4.439709,-3.024187 0.256646,-1.336146 -1.113896,-1.045104 -1.423459,-2.100792 -0.161395,-0.558271 0.785813,-1.613958 -0.129645,-3.148541 m -6.503459,1.03452 c 0,0 -0.674687,-0.690562 -1.17475,-1.005416 -0.248708,0.468312 -0.425979,0.976312 -0.513291,1.500187 -0.156105,0.92075 0,2.227792 0.36777,3.201459 0.05821,0.150812 0.275167,0.127 0.29898,-0.03175 0.3175,-2.092855 1.021291,-3.66448 1.021291,-3.66448"
style="fill:#e2a610;stroke-width:0.264583"
id="path2-6" />
<path
d="m 50.906014,97.636935 c 0,0 -8.252354,0.891646 -11.975042,8.056565 -3.722687,7.16492 -0.558271,11.50937 2.791354,13.09158 3.349626,1.58221 11.789834,2.14048 17.279938,0.83873 5.490104,-1.30175 6.863292,-4.0005 6.606646,-6.60664 -0.373062,-3.80471 -3.907896,-6.14363 -3.907896,-6.14363 0,0 0.140229,-4.699 -3.505729,-7.749647 -3.235854,-2.709333 -7.289271,-1.486958 -7.289271,-1.486958"
style="fill:#ffca28;stroke-width:0.264583"
id="path3-0" />
<path
d="m 56.120952,95.996518 c 2.233083,0.727604 2.727854,2.746375 2.566458,3.296709 -0.193146,0.645583 -2.667,-1.867959 -6.344708,-1.717146 -1.285875,0.05292 -0.912813,-0.735542 -0.3175,-1.190625 0.785812,-0.600604 2.106083,-1.034521 4.09575,-0.388938"
style="fill:#6d4c41;stroke-width:0.264583"
id="path6-6" />
<path
d="m 56.120952,95.996518 c 2.233083,0.727604 2.727854,2.746375 2.566458,3.296709 -0.193146,0.645583 -2.667,-1.867959 -6.344708,-1.717146 -1.285875,0.05292 -0.912813,-0.735542 -0.3175,-1.190625 0.785812,-0.600604 2.106083,-1.034521 4.09575,-0.388938"
style="fill:#6b4b46;stroke-width:0.264583"
id="path7-2" />
<path
d="m 60.042077,103.11381 c 0.280458,-0.19314 1.222375,0.14023 1.486958,1.98438 0.129646,0.90223 0.169333,1.77535 0.169333,1.77535 0,0 -1.11125,-0.99748 -1.47902,-1.69862 -0.463021,-0.88636 -0.642938,-1.74361 -0.177271,-2.06111"
style="fill:#e2a610;stroke-width:0.264583"
id="path8-6" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19.7556px;font-family:'Pirata One';-inkscape-font-specification:'Pirata One, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;text-align:start;letter-spacing:-0.529167px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;stroke-width:0.264583"
x="82.355011"
y="90.66716"
id="text4-9"
transform="rotate(20.578693)"><tspan
id="tspan4-2"
style="font-size:19.7556px;fill:#4d4d4d;stroke-width:0.264583"
x="82.355011"
y="90.66716">$</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -0,0 +1,316 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Calque_1"
x="0px"
y="0px"
width="340"
height="456.33044"
viewBox="0 0 339.99998 456.33045"
enable-background="new 0 0 595.28 841.89"
xml:space="preserve"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
sodipodi:docname="traefik.svg"
inkscape:export-filename="/home/emile/dev/traefik.website/static/traefik.logo.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90"
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"
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/"><metadata
id="metadata3280"><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><defs
id="defs3278" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2252"
inkscape:window-height="1447"
id="namedview3276"
showgrid="false"
fit-margin-top="20"
fit-margin-left="20"
fit-margin-right="20"
fit-margin-bottom="20"
inkscape:zoom="0.39643468"
inkscape:cx="-7.567451"
inkscape:cy="-158.91647"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="Calque_1"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1" /><path
d="m 65.412121,155.07154 c 0,0 24.66784,-21.47409 97.677319,-21.47409 66.97804,0 85.80047,15.19398 104.91761,21.47409 L 168.27066,203.80696 65.412121,155.07154 z"
id="path3156"
inkscape:connector-curvature="0"
style="fill:#c9781f" /><g
id="g3158"
transform="matrix(0.63926204,0,0,0.63926204,-21.039129,-84.874827)"><path
d="m 118.946,476.458 c 0.707,14.572 15.264,7.83 21.858,3.274 6.259,-4.325 8.089,-0.73 8.638,-9.266 0.36,-5.61 1.007,-11.22 0.688,-16.853 -9.464,-0.858 -19.759,1.396 -27.518,7.033 -3.996,2.905 -11.49,12.174 -3.666,15.812"
id="path3160"
inkscape:connector-curvature="0"
style="fill:#f6d2a2" /><path
d="m 118.946,476.458 c 2.119,-0.788 4.364,-1.348 5.802,-3.264"
id="path3162"
inkscape:connector-curvature="0"
style="fill:#c6b198" /><path
d="M 152.588,302.861 C 96.804,287.174 138.284,216.207 183.08,245.397 l -30.492,57.464 z"
id="path3164"
inkscape:connector-curvature="0"
style="fill:#37abc8" /><path
d="m 400.436,240.071 c 44.155,-31.014 84.056,38.959 32.74,56.565 l -32.74,-56.565 z"
id="path3166"
inkscape:connector-curvature="0"
style="fill:#37abc8" /><path
d="m 409.934,655.8 c 11.216,6.94 31.716,27.923 14.891,38.098 -16.166,14.802 -25.214,-16.247 -39.403,-20.549 6.111,-8.298 13.856,-15.865 24.512,-17.549 z"
id="path3168"
inkscape:connector-curvature="0"
style="fill:#f6d2a2" /><path
d="m 424.825,693.897 c -2.494,-4.96 -3.332,-10.748 -7.496,-14.746"
id="path3170"
inkscape:connector-curvature="0"
style="fill:none" /><path
d="m 209.561,679.514 c -13.164,2.037 -20.574,13.914 -31.548,19.945 -10.341,6.166 -14.297,-1.974 -15.229,-3.627 -1.621,-0.739 -1.485,0.688 -3.987,-1.831 -9.587,-15.13 9.989,-26.189 20.182,-33.705 14.198,-2.871 23.096,9.438 30.582,19.218 z"
id="path3172"
inkscape:connector-curvature="0"
style="fill:#f6d2a2" /><path
d="m 162.785,695.831 c 0.501,-5.766 5.074,-9.628 7.251,-14.504"
id="path3174"
inkscape:connector-curvature="0"
style="fill:none" /><path
d="m 154.916,283.26 c -7.36,-3.893 -12.759,-9.18 -8.257,-17.693 4.168,-7.88 11.911,-7.025 19.271,-3.132 l -11.014,20.825 z"
id="path3176"
inkscape:connector-curvature="0"
style="fill:#077e91" /><path
d="m 421.549,275.859 c 7.36,-3.893 12.759,-9.18 8.257,-17.693 -4.168,-7.881 -11.91,-7.025 -19.271,-3.132 l 11.014,20.825 z"
id="path3178"
inkscape:connector-curvature="0"
style="fill:#077e91" /><path
d="m 472.21,474.607 c -0.707,14.572 -15.264,7.83 -21.858,3.274 -6.259,-4.325 -8.089,-0.73 -8.638,-9.265 -0.36,-5.61 -1.007,-11.22 -0.688,-16.853 9.464,-0.858 19.759,1.396 27.518,7.033 3.996,2.904 11.49,12.174 3.666,15.811"
id="path3180"
inkscape:connector-curvature="0"
style="fill:#f6d2a2" /><path
d="m 472.21,474.607 c -2.119,-0.788 -4.364,-1.348 -5.802,-3.264"
id="path3182"
inkscape:connector-curvature="0"
style="fill:#c6b198" /><g
id="g3184"><path
d="m 289.988,210.595 c 55.847,0 108.2,7.987 135.492,61.642 24.496,60.141 15.785,124.993 19.521,188.553 3.208,54.577 10.322,117.629 -14.997,168.205 -26.635,53.21 -93.191,66.595 -148.026,64.634 -43.071,-1.541 -95.101,-15.593 -119.409,-54.944 -28.519,-46.165 -15.017,-114.81 -12.946,-166.179 2.454,-60.849 -16.482,-121.882 3.508,-181.425 20.737,-61.765 76.665,-75.724 136.857,-80.486"
id="path3186"
inkscape:connector-curvature="0"
style="fill:#37abc8" /></g><path
d="m 299.847,285.567 c 10.027,58.288 105.304,42.877 91.619,-15.91 -12.271,-52.716 -94.951,-38.124 -91.619,15.91"
id="path3188"
inkscape:connector-curvature="0"
style="fill:#ffffff" /><path
d="m 185.992,294.994 c 12.996,50.745 94.24,37.753 91.178,-13.149 -3.669,-60.964 -103.603,-49.2 -91.178,13.149"
id="path3190"
inkscape:connector-curvature="0"
style="fill:#ffffff" /><path
d="m 318.343,353.511 c 0.044,7.79 1.843,15.403 0.289,24.148 -1.935,3.656 -5.729,4.043 -9.001,5.52 -4.524,-0.71 -8.328,-3.68 -10.143,-7.912 -1.161,-9.202 0.433,-18.111 0.726,-27.316 l 18.129,5.56 z"
id="path3192"
inkscape:connector-curvature="0"
style="fill:#ffffff" /><g
id="g3194"><ellipse
cx="208.39999"
cy="286.71799"
rx="13.719"
ry="14.86"
id="ellipse3196"
sodipodi:cx="208.39999"
sodipodi:cy="286.71799"
sodipodi:rx="13.719"
sodipodi:ry="14.86"
d="m 222.11899,286.71799 c 0,8.20695 -6.1422,14.86 -13.719,14.86 -7.57679,0 -13.719,-6.65305 -13.719,-14.86 0,-8.20695 6.14221,-14.86 13.719,-14.86 7.5768,0 13.719,6.65305 13.719,14.86 z" /><ellipse
cx="214.64"
cy="290.07101"
rx="3.234"
ry="3.777"
id="ellipse3198"
sodipodi:cx="214.64"
sodipodi:cy="290.07101"
sodipodi:rx="3.234"
sodipodi:ry="3.777"
style="fill:#ffffff"
d="m 217.874,290.07101 c 0,2.08598 -1.44791,3.777 -3.234,3.777 -1.78609,0 -3.234,-1.69102 -3.234,-3.777 0,-2.08598 1.44791,-3.777 3.234,-3.777 1.78609,0 3.234,1.69102 3.234,3.777 z" /></g><g
id="g3200"><ellipse
cx="323.34799"
cy="283.017"
rx="13.491"
ry="14.86"
id="ellipse3202"
sodipodi:cx="323.34799"
sodipodi:cy="283.017"
sodipodi:rx="13.491"
sodipodi:ry="14.86"
d="m 336.83899,283.017 c 0,8.20695 -6.04012,14.86 -13.491,14.86 -7.45087,0 -13.491,-6.65305 -13.491,-14.86 0,-8.20695 6.04013,-14.86 13.491,-14.86 7.45088,0 13.491,6.65305 13.491,14.86 z" /><ellipse
cx="329.48499"
cy="286.371"
rx="3.181"
ry="3.777"
id="ellipse3204"
sodipodi:cx="329.48499"
sodipodi:cy="286.371"
sodipodi:rx="3.181"
sodipodi:ry="3.777"
style="fill:#ffffff"
d="m 332.66599,286.371 c 0,2.08598 -1.42419,3.777 -3.181,3.777 -1.75682,0 -3.181,-1.69102 -3.181,-3.777 0,-2.08598 1.42418,-3.777 3.181,-3.777 1.75681,0 3.181,1.69102 3.181,3.777 z" /></g><path
d="m 279.137,354.685 c -5.986,14.507 3.338,43.515 19.579,22.119 -1.161,-9.202 0.433,-18.111 0.726,-27.316 l -20.305,5.197 z"
id="path3206"
inkscape:connector-curvature="0"
style="fill:#ffffff" /><g
id="g3208"><path
d="m 278.185,326.748 c -11.156,0.951 -20.276,14.216 -14.475,24.71 7.682,13.9 24.828,-1.23 35.507,0.188 12.291,0.252 22.361,12.996 32.233,2.304 10.979,-11.892 -4.727,-23.474 -17.002,-28.652 l -36.263,1.45 z"
id="path3210"
inkscape:connector-curvature="0"
style="fill:#f6d2a2" /></g></g><g
id="g3212"
transform="matrix(0.63926204,0,0,0.63926204,-21.039129,-84.874827)"><path
d="m 135.236,375.349 c 0,0 3.532,38.261 3.29,54.754 -0.242,16.492 15.56,6.079 16.38,32.016 0.82,25.937 -9.572,21.018 -15.047,33.713 -5.475,12.694 -9.196,72.145 -9.196,72.145 0,0 5.618,11.108 23.166,21.11 17.548,10.002 45.765,15.62 70.198,14.513 24.433,-1.107 41.885,-6.341 46.249,-9.236 4.363,-2.894 11.605,-12.05 14.329,-19.131 2.724,-7.081 8.415,-65.402 8.018,-98.775 -0.397,-33.373 -5.911,-64.166 -5.911,-64.166 L 135.236,375.349 z"
id="path3214"
inkscape:connector-curvature="0"
style="fill:#ef9325" /><path
d="m 290.007,537.841 c -71.952,8.032 -155.439,-14.172 -155.439,-14.172 0,0 1.226,-22.521 6.626,-30.447 74.833,23.185 150.329,15.834 150.329,15.834 1.12,10.514 0.331,18.872 -1.516,28.785 z"
id="path3216"
inkscape:connector-curvature="0"
style="fill:#e5e5e5" /><path
d="m 280.95,582.228 c -71.952,8.032 -150.287,-15.064 -150.287,-15.064 0,0 -0.251,-21.631 2.607,-31.13 74.833,23.185 154.763,17.407 154.763,17.407 -0.673,11.413 -2.278,22.646 -7.083,28.787 z"
id="path3218"
inkscape:connector-curvature="0"
style="fill:#e5e5e5" /></g><g
id="g3220"
transform="matrix(0.63926204,0,0,0.63926204,-21.039129,-84.874827)"><path
d="m 452.156,375.349 c 0,0 -0.488,38.261 -0.243,54.754 0.245,16.492 -9.578,6.079 -10.409,32.016 -0.831,25.937 9.692,21.018 15.236,33.713 5.544,12.694 9.312,72.145 9.312,72.145 0,0 -5.689,11.108 -23.457,21.11 -17.768,10.002 -46.34,15.62 -71.08,14.513 -24.74,-1.107 -42.411,-6.341 -46.83,-9.236 -4.419,-2.895 -11.751,-12.05 -14.509,-19.131 -2.758,-7.081 -8.521,-65.402 -8.119,-98.775 0.402,-33.373 5.985,-64.166 5.985,-64.166 l 144.114,-36.943 z"
id="path3222"
inkscape:connector-curvature="0"
style="fill:#ef9325" /><path
d="m 304.706,537.841 c 72.856,8.032 157.392,-14.172 157.392,-14.172 0,0 -1.242,-22.521 -6.709,-30.447 -75.774,23.185 -152.218,15.834 -152.218,15.834 -1.134,10.514 -0.335,18.872 1.535,28.785 z"
id="path3224"
inkscape:connector-curvature="0"
style="fill:#e5e5e5" /><path
d="m 313.876,582.228 c 72.856,8.032 152.175,-15.064 152.175,-15.064 0,0 0.254,-21.631 -2.64,-31.13 -75.774,23.185 -156.707,17.407 -156.707,17.407 0.682,11.413 2.307,22.646 7.172,28.787 z"
id="path3226"
inkscape:connector-curvature="0"
style="fill:#e5e5e5" /></g><g
id="g3228"
transform="matrix(0.63926204,0,0,0.63926204,-21.039129,-84.874827)"><path
d="m 481.221,445.525 c -2.264,4.272 -6.745,6.334 -10.009,4.604 l -2.615,-1.385 c -3.264,-1.729 -4.076,-6.595 -1.812,-10.867 l 50.985,-96.234 c 2.263,-4.272 6.745,-6.334 10.009,-4.604 l 2.615,1.385 c 3.264,1.729 4.076,6.595 1.812,10.867 l -50.985,96.234 z"
id="path3230"
inkscape:connector-curvature="0"
style="fill:#d2e261" /><path
d="m 457.143,490.972 c -1.319,2.489 -5.034,3.105 -8.298,1.375 l -2.615,-1.385 c -3.264,-1.729 -4.842,-5.149 -3.523,-7.638 l 23.92,-45.149 c 1.319,-2.489 5.034,-3.105 8.298,-1.375 l 2.615,1.385 c 3.264,1.729 4.842,5.149 3.523,7.638 l -23.92,45.149 z"
id="path3232"
inkscape:connector-curvature="0" /><path
d="m 478.411,436.54 -2.615,-1.385 c -3.264,-1.729 -6.604,-1.823 -7.459,-0.21 l -1.529,2.886 c 0.855,-1.614 4.194,-1.52 7.459,0.21 l 2.615,1.385 c 3.264,1.729 5.218,4.44 4.363,6.053 l 1.529,-2.886 c 0.855,-1.613 -1.099,-4.323 -4.363,-6.053 z"
id="path3234"
inkscape:connector-curvature="0"
style="fill:#9b9b9b" /></g><ellipse
transform="matrix(0.59911638,0.2229746,-0.2229746,0.59911638,100.48325,-168.1724)"
cx="456.83801"
cy="462.66101"
rx="11.224"
ry="8.6829996"
id="ellipse3236"
sodipodi:cx="456.83801"
sodipodi:cy="462.66101"
sodipodi:rx="11.224"
sodipodi:ry="8.6829996"
style="fill:#f6d2a2" /><g
id="g3238"
transform="matrix(0.63926204,0,0,0.63926204,-21.039129,-84.874827)"><path
d="m 111.779,447.078 c 2.065,4.372 6.447,6.637 9.787,5.059 l 2.675,-1.264 c 3.34,-1.578 4.374,-6.401 2.309,-10.773 L 80.032,341.629 c -2.065,-4.372 -6.447,-6.637 -9.787,-5.059 l -2.675,1.264 c -3.34,1.578 -4.374,6.401 -2.309,10.773 l 46.518,98.471 z"
id="path3240"
inkscape:connector-curvature="0"
style="fill:#d2e261" /><path
d="m 133.748,493.582 c 1.203,2.547 4.886,3.332 8.227,1.755 l 2.675,-1.264 c 3.34,-1.578 5.073,-4.922 3.869,-7.469 l -21.825,-46.199 c -1.203,-2.547 -4.886,-3.332 -8.227,-1.755 l -2.675,1.264 c -3.34,1.578 -5.073,4.922 -3.869,7.469 l 21.825,46.199 z"
id="path3242"
inkscape:connector-curvature="0" /><path
d="m 114.998,438.232 2.675,-1.264 c 3.34,-1.578 6.68,-1.519 7.46,0.132 l 1.395,2.954 c -0.78,-1.651 -4.12,-1.71 -7.46,-0.133 l -2.675,1.264 c -3.34,1.578 -5.416,4.196 -4.636,5.847 l -1.395,-2.954 c -0.779,-1.65 1.296,-4.268 4.636,-5.846 z"
id="path3244"
inkscape:connector-curvature="0"
style="fill:#9b9b9b" /></g><ellipse
transform="matrix(-0.59911638,0.2229746,-0.2229746,-0.59911638,252.76813,458.95304)"
cx="137.56"
cy="463.922"
rx="11.224"
ry="8.6829996"
id="ellipse3246"
sodipodi:cx="137.56"
sodipodi:cy="463.922"
sodipodi:rx="11.224"
sodipodi:ry="8.6829996"
style="fill:#f6d2a2" /><g
id="g3248"
transform="matrix(0.63926204,0,0,0.63926204,-21.039129,-84.874827)"><g
id="g3250"><path
d="m 159.132,324.732 c -2.218,4.033 -7.45,5.414 -11.687,3.084 l -4.873,-2.679 c -4.237,-2.33 -5.873,-7.488 -3.656,-11.521 l 50.714,-92.23 c 2.218,-4.033 7.45,-5.414 11.687,-3.084 l 4.873,2.679 c 4.237,2.33 5.33,6.689 3.656,11.521 -17.765,51.258 -50.714,92.23 -50.714,92.23 z"
id="path3252"
inkscape:connector-curvature="0"
style="fill:#960000" /><path
d="m 172.547,272.051 c 15.422,-28.047 25.555,-52.169 23.141,-54.905 l 0.057,-0.103 c -0.066,-0.036 -0.136,-0.06 -0.202,-0.096 -0.008,-0.005 -0.01,-0.021 -0.019,-0.026 l -0.007,0.014 c -23.699,-12.841 -55.583,-0.124 -71.334,28.522 -15.751,28.646 -9.41,62.381 14.128,75.514 l -0.007,0.014 c 0.009,0.005 0.023,-0.002 0.032,0.002 0.066,0.037 0.123,0.083 0.189,0.119 l 0.057,-0.103 c 3.602,0.573 18.543,-20.905 33.965,-48.952 z"
id="path3254"
inkscape:connector-curvature="0"
style="fill:#595959" /></g><g
id="g3256"><path
d="m 426.693,324.925 c 2.1,4.095 7.291,5.627 11.593,3.42 l 4.948,-2.538 c 4.302,-2.206 6.087,-7.315 3.987,-11.41 L 399.19,220.742 c -2.1,-4.095 -7.291,-5.627 -11.593,-3.42 l -4.948,2.538 c -4.302,2.206 -5.521,6.533 -3.987,11.41 16.279,51.749 48.031,93.655 48.031,93.655 z"
id="path3258"
inkscape:connector-curvature="0"
style="fill:#960000" /><path
d="m 414.804,271.879 c -14.606,-28.48 -24.039,-52.885 -21.547,-55.55 l -0.054,-0.105 c 0.067,-0.034 0.138,-0.056 0.205,-0.09 0.009,-0.005 0.011,-0.021 0.02,-0.025 l 0.007,0.014 c 24.059,-12.152 55.563,1.48 70.481,30.569 14.918,29.089 7.606,62.627 -16.301,75.075 l 0.007,0.014 c -0.009,0.004 -0.023,-0.003 -0.032,10e-4 -0.067,0.035 -0.125,0.08 -0.192,0.114 l -0.054,-0.105 c -3.618,0.468 -17.934,-21.432 -32.54,-49.912 z"
id="path3260"
inkscape:connector-curvature="0"
style="fill:#595959" /></g><path
d="m 462.36,259.869 c 0,0 -17.746,-44.446 -38.326,-67.945 -20.58,-23.498 -221.937,-31.512 -255.003,0 -33.066,31.512 -45.533,67.945 -45.533,67.945 v -9.844 c 0,0 15.295,-43.268 45.533,-67.945 30.238,-24.677 228.946,-23.378 254.582,0 25.635,23.378 38.747,67.945 38.747,67.945 v 9.844 z"
id="path3262"
inkscape:connector-curvature="0"
style="fill:#353535" /><ellipse
transform="matrix(-0.8898,0.4563,-0.4563,-0.8898,986.5333,258.1984)"
cx="462.09201"
cy="248.211"
rx="6.9489999"
ry="16.975"
id="ellipse3264"
sodipodi:cx="462.09201"
sodipodi:cy="248.211"
sodipodi:rx="6.9489999"
sodipodi:ry="16.975"
style="fill:#960000"
d="m 469.04101,248.211 c 0,9.37503 -3.11117,16.975 -6.949,16.975 -3.83783,0 -6.949,-7.59997 -6.949,-16.975 0,-9.37504 3.11117,-16.975 6.949,-16.975 3.83783,0 6.949,7.59996 6.949,16.975 z" /><ellipse
transform="matrix(0.8763,0.4818,-0.4818,0.8763,134.6121,-30.1261)"
cx="125.962"
cy="247.02901"
rx="6.9489999"
ry="16.975"
id="ellipse3266"
sodipodi:cx="125.962"
sodipodi:cy="247.02901"
sodipodi:rx="6.9489999"
sodipodi:ry="16.975"
style="fill:#960000"
d="m 132.911,247.02901 c 0,9.37503 -3.11118,16.975 -6.949,16.975 -3.83783,0 -6.949,-7.59997 -6.949,-16.975 0,-9.37504 3.11117,-16.975 6.949,-16.975 3.83782,0 6.949,7.59996 6.949,16.975 z" /></g><g
id="g3268"
transform="matrix(0.63926204,0,0,0.63926204,-21.039129,-84.874827)"><path
d="M 386.49,250.492 H 349.285 319.791 274.555 249 198.68 c -33.72,0 -33.604,89.606 -1.945,94.771 l 65.466,-4.21 c 7.915,0 23.719,-30.655 26.684,-33.065 2.965,-2.41 12.729,-2.704 16.575,0 3.846,2.704 12.593,29.976 20.507,29.976 l 65.466,7.298 c 30.579,-14.072 22.87,-94.77 -4.943,-94.77 z"
id="path3270"
inkscape:connector-curvature="0"
style="opacity:0.6;fill:#ffffff" /><path
d="m 248.545,269.019 c -20.685,-0.462 -53.05,-0.274 -70.729,-0.13 -2.964,9.719 -6.269,22.024 -4.63,33.972 16.056,0 50.96,0.078 75.782,0.078 14.946,0 27.512,2.82 39.198,5.875 0.288,-0.368 0.53,-0.639 0.719,-0.792 2.965,-2.41 12.729,-2.704 16.575,0 0.995,0.7 2.323,3.058 3.874,6.149 5.967,1.258 11.943,2.127 18.153,2.205 16.915,0.214 56.557,0.146 82.066,0.074 3.249,-10.857 0.853,-22.495 0.125,-33.432 -24.906,0 -64.487,-0.562 -83.463,-0.562 -26.738,-0.001 -50.083,-12.821 -77.67,-13.437 z"
id="path3272"
inkscape:connector-curvature="0"
style="opacity:0.5;fill:#ffffff" /></g><path
d="m 155.89646,123.63135 c -0.52803,-12.35565 23.02878,-13.90011 25.81085,-3.55813 2.77504,10.31833 -24.65122,12.71492 -25.81085,3.55813 -0.92565,-7.31124 0,0 0,0 z"
id="path3274"
inkscape:connector-curvature="0" /></svg>

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8 5.00005C7.01165 5.00082 6.49359 5.01338 6.09202 5.21799C5.71569 5.40973 5.40973 5.71569 5.21799 6.09202C5 6.51984 5 7.07989 5 8.2V17.8C5 18.9201 5 19.4802 5.21799 19.908C5.40973 20.2843 5.71569 20.5903 6.09202 20.782C6.51984 21 7.07989 21 8.2 21H15.8C16.9201 21 17.4802 21 17.908 20.782C18.2843 20.5903 18.5903 20.2843 18.782 19.908C19 19.4802 19 18.9201 19 17.8V8.2C19 7.07989 19 6.51984 18.782 6.09202C18.5903 5.71569 18.2843 5.40973 17.908 5.21799C17.5064 5.01338 16.9884 5.00082 16 5.00005M8 5.00005V7H16V5.00005M8 5.00005V4.70711C8 4.25435 8.17986 3.82014 8.5 3.5C8.82014 3.17986 9.25435 3 9.70711 3H14.2929C14.7456 3 15.1799 3.17986 15.5 3.5C15.8201 3.82014 16 4.25435 16 4.70711V5.00005M16 11H14M16 16H14M8 11L9 12L11 10M8 16L9 17L11 15" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,34 @@
<!doctype html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Dashboard</title>
<link href="styles.css" rel="stylesheet" />
</head>
<body
class="flex h-screen flex-col items-center gap-20 bg-linear-to-tl from-neutral-950 via-blue-900 to-slate-950 p-20 text-gray-700"
>
<h1
class="bg-linear-to-r from-yellow-500 to-red-500 bg-clip-text text-6xl text-transparent"
>
Home-Lab Dashboard
</h1>
<div class="flex flex-wrap gap-10">
<a
th:each="item : ${items}"
th:href="${item.url}"
target="_blank"
class="flex h-50 w-50 flex-col items-center justify-between rounded-xl bg-gray-50 p-5"
>
<h2 class="text-xl font-bold" th:text="${item.name}">
Placeholder Caption
</h2>
<img
th:src="${item.logoFilename}"
th:alt="|Logo f&uuml;r ${item.name}|"
class="h-30 w-30"
/>
</a>
</div>
</body>
</html>

View File

@@ -1,13 +1,11 @@
package de.wundenbergs.projektverwaltung;
package de.wundenbergs.dashboard;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ProjektverwaltungApplicationTests {
class ApplicationTests {
@Test
void shouldLoadContext() {
}
}