Compare commits

...

11 Commits

Author SHA1 Message Date
70f6e6d43b Merge branch 'dev' into senpai 2023-08-06 14:22:47 +02:00
de60d59ef1 npm audit 2023-08-06 14:09:25 +02:00
172d163f2a Bump C# skills 2023-04-19 17:14:53 +02:00
630c7fe53c Add custom loading animation 2023-04-13 19:54:49 +02:00
9e9afa9970 npm audit 2023-03-17 12:14:29 +01:00
440f4812de CVE-2022-46175 2023-01-04 20:06:41 +01:00
f64c484660 Escape string 2022-12-29 18:28:47 +01:00
5bd9dd4e2b Merge branch 'senpai' into dev 2022-12-29 18:17:30 +01:00
08d1a18b25 Remove unsafe traefik entrypoint 2022-12-29 18:15:18 +01:00
cc1250be00 Add www domain 2022-12-08 19:43:43 +01:00
90881aa085 Minor improvements 2022-11-15 13:41:51 +01:00
7 changed files with 58 additions and 63 deletions

View File

@ -1,6 +1,6 @@
# Frontpage # Frontpage
[![Read the blog entry at c0ntroller.de](https://c0ntroller.de/img/read-blog.svg)](https://c0ntroller.de/#/project/homepage) [![Read the blog entry at c0ntroller.de](https://c0ntroller.de/img/read-blog.svg)](https://c0ntroller.de/blog/project/terminal)
| Stable | Dev | Stable | Dev
| ------ | --- | ------ | ---

View File

@ -78,7 +78,7 @@ export const skills = (sizeCardIcons?: string, sizeBadgeIcons?: string): SkillSe
}, { }, {
name: "C#", name: "C#",
icon: <Icon path={mdiLanguageCsharp} size={sizeCardIcons} id="mdi_skills_prog_cs" />, icon: <Icon path={mdiLanguageCsharp} size={sizeCardIcons} id="mdi_skills_prog_cs" />,
pct: 40 pct: 70
}], }],
additional: [{ additional: [{
name: "SQL Languages", name: "SQL Languages",

View File

@ -13,15 +13,12 @@ services:
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.docker.network=traefik" - "traefik.docker.network=traefik"
- "traefik.http.routers.website-dev.entrypoints=web" - "traefik.http.routers.website-dev.entrypoints=websecure"
- "traefik.http.routers.website-dev.rule=Host(`dev.c0ntroller.de`)" - "traefik.http.routers.website-dev.rule=Host(`dev.c0ntroller.de`)"
- "traefik.http.routers.website-dev.middlewares=http-to-https@file" - "traefik.http.routers.website-dev.middlewares=secHeaders@file"
- "traefik.http.routers.website-dev-secure.entrypoints=websecure" - "traefik.http.routers.website-dev.tls=true"
- "traefik.http.routers.website-dev-secure.rule=Host(`dev.c0ntroller.de`)" - "traefik.http.routers.website-dev.tls.certresolver=le"
- "traefik.http.routers.website-dev-secure.middlewares=secHeaders@file" - "traefik.http.routers.website-dev.service=website-dev"
- "traefik.http.routers.website-dev-secure.tls=true"
- "traefik.http.routers.website-dev-secure.tls.certresolver=le"
- "traefik.http.routers.website-dev-secure.service=website-dev"
- "traefik.http.services.website-dev.loadbalancer.server.port=3000" - "traefik.http.services.website-dev.loadbalancer.server.port=3000"
environment: environment:
- IS_DEV_ENV=true - IS_DEV_ENV=true

View File

@ -13,15 +13,12 @@ services:
labels: labels:
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.docker.network=traefik" - "traefik.docker.network=traefik"
- "traefik.http.routers.website-stable.entrypoints=web" - "traefik.http.routers.website-stable.entrypoints=websecure"
- "traefik.http.routers.website-stable.rule=Host(`c0ntroller.de`)" - "traefik.http.routers.website-stable.rule=Host(`c0ntroller.de`) || Host(`www.c0ntroller.de`)"
- "traefik.http.routers.website-stable.middlewares=http-to-https@file" - "traefik.http.routers.website-stable.middlewares=secHeaders@file"
- "traefik.http.routers.website-stable-secure.entrypoints=websecure" - "traefik.http.routers.website-stable.tls=true"
- "traefik.http.routers.website-stable-secure.rule=Host(`c0ntroller.de`)" - "traefik.http.routers.website-stable.tls.certresolver=le"
- "traefik.http.routers.website-stable-secure.middlewares=secHeaders@file" - "traefik.http.routers.website-stable.service=website-stable"
- "traefik.http.routers.website-stable-secure.tls=true"
- "traefik.http.routers.website-stable-secure.tls.certresolver=le"
- "traefik.http.routers.website-stable-secure.service=website-stable"
- "traefik.http.services.website-stable.loadbalancer.server.port=3000" - "traefik.http.services.website-stable.loadbalancer.server.port=3000"
environment: environment:
- IS_DEV_ENV=true - IS_DEV_ENV=true
@ -30,4 +27,4 @@ networks:
traefik: traefik:
external: true external: true
volumes: volumes:
git_mask: git_mask:

84
package-lock.json generated
View File

@ -2280,9 +2280,9 @@
} }
}, },
"node_modules/eslint-plugin-react/node_modules/semver": { "node_modules/eslint-plugin-react/node_modules/semver": {
"version": "6.3.0", "version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true, "dev": true,
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
@ -3304,9 +3304,9 @@
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
}, },
"node_modules/json5": { "node_modules/json5": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"minimist": "^1.2.0" "minimist": "^1.2.0"
@ -3381,9 +3381,9 @@
} }
}, },
"node_modules/loader-utils/node_modules/json5": { "node_modules/loader-utils/node_modules/json5": {
"version": "2.2.1", "version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true, "dev": true,
"bin": { "bin": {
"json5": "lib/cli.js" "json5": "lib/cli.js"
@ -4373,9 +4373,9 @@
} }
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "7.3.8", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"dependencies": { "dependencies": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
}, },
@ -4875,9 +4875,9 @@
} }
}, },
"node_modules/tough-cookie": { "node_modules/tough-cookie": {
"version": "4.1.2", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
"integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
"dependencies": { "dependencies": {
"psl": "^1.1.33", "psl": "^1.1.33",
"punycode": "^2.1.1", "punycode": "^2.1.1",
@ -5105,9 +5105,9 @@
} }
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.74.0", "version": "5.76.2",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz",
"integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"dependencies": { "dependencies": {
@ -5248,9 +5248,9 @@
} }
}, },
"node_modules/word-wrap": { "node_modules/word-wrap": {
"version": "1.2.3", "version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@ -7019,9 +7019,9 @@
} }
}, },
"semver": { "semver": {
"version": "6.3.0", "version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true "dev": true
} }
} }
@ -7769,9 +7769,9 @@
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
}, },
"json5": { "json5": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true, "dev": true,
"requires": { "requires": {
"minimist": "^1.2.0" "minimist": "^1.2.0"
@ -7831,9 +7831,9 @@
}, },
"dependencies": { "dependencies": {
"json5": { "json5": {
"version": "2.2.1", "version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true "dev": true
} }
} }
@ -8512,9 +8512,9 @@
} }
}, },
"semver": { "semver": {
"version": "7.3.8", "version": "7.5.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
"requires": { "requires": {
"lru-cache": "^6.0.0" "lru-cache": "^6.0.0"
} }
@ -8860,9 +8860,9 @@
} }
}, },
"tough-cookie": { "tough-cookie": {
"version": "4.1.2", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
"integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
"requires": { "requires": {
"psl": "^1.1.33", "psl": "^1.1.33",
"punycode": "^2.1.1", "punycode": "^2.1.1",
@ -9025,9 +9025,9 @@
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==" "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
}, },
"webpack": { "webpack": {
"version": "5.74.0", "version": "5.76.2",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.2.tgz",
"integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "integrity": "sha512-Th05ggRm23rVzEOlX8y67NkYCHa9nTNcwHPBhdg+lKG+mtiW7XgggjAeeLnADAe7mLjJ6LUNfgHAuRRh+Z6J7w==",
"dev": true, "dev": true,
"peer": true, "peer": true,
"requires": { "requires": {
@ -9126,9 +9126,9 @@
} }
}, },
"word-wrap": { "word-wrap": {
"version": "1.2.3", "version": "1.2.5",
"resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="
}, },
"wrap-ansi": { "wrap-ansi": {
"version": "7.0.0", "version": "7.0.0",

View File

@ -108,7 +108,7 @@ const Me: NextPage = () => {
</div> </div>
<h2>Social Media</h2> <h2>Social Media</h2>
<div className={styles.socials}> <div className={styles.socials}>
{socials("2em").map((social, i) => {socials("2em").filter((social) => social.name !== "PGP Key").map((social, i) =>
<a key={i} href={social.url} target="_blank" rel="noreferrer" className="nocolor"> <a key={i} href={social.url} target="_blank" rel="noreferrer" className="nocolor">
{social.icon} {social.icon}
</a> </a>

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" width="350" height="135" viewBox="-25 -5 350 135" xmlns="http://www.w3.org/2000/svg"><style>path{fill:none;}#b{fill:#1b1b1b;}#t,#l{stroke:#000;stroke-width:5px;stroke-dasharray:395.335;stroke-dashoffset:395.335;}#e{stroke:#a90000;stroke-width:15px;stroke-dasharray:318.656;stroke-dashoffset:318.656;stroke-linecap:square;}#d{fill:#a90000;}#d,#b,#c{fill-opacity:0;}#e,#d,#c{clip-path:path("M50 0H250V125H50Z");}#e,#d,#c{animation:e 5s linear infinite;}#b,#t,#l{animation:l 5s linear infinite;}@keyframes l{30%,60%{stroke-dashoffset:0;fill-opacity:0;}40%,50%{fill-opacity:1;}90%,100%{stroke-dashoffset:-395.335;fill-opacity:0;}}@keyframes e{30%{stroke-dashoffset:318.656;fill-opacity:0;}35%{fill-opacity:0;}45%{fill-opacity:0.7;}55%{fill-opacity:0.7;}60%,100%{fill-opacity:0;stroke-dashoffset:-318.656;}}</style><path d="M 0 0 H 200 C 250 0 250 0 300 125 H 100 C 50 125 50 125 0 0 Z" id="b" /><path d="M 208.76 0.03 C 243 49 210 114 150 115 C 95 115 55 53 91.26 0 Z" id="d" /><path d="M 208.76 0.03 C 243 49 210 114 150 115 C 95 115 55 53 91.26 0" id="e" /><circle cx="150" cy="40" r="40" id="c" fill="#000" /><path d="M -20 0 H 200 C 250 0 250 0 300 125" id="t" /><path d="M 320 125 H 100 C 50 125 50 125 0 0" id="l" /></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB