Migrate
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
# TZ for container timezone
|
||||
TZ=America/New_York
|
||||
@@ -0,0 +1,3 @@
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,385 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Fira+Code&family=Orbitron:wght@500;700;900&family=Poppins:wght@300;400;500;600&family=Rajdhani:wght@500;600;700&display=swap');
|
||||
|
||||
/* APPLY STYLING AND THEME VARIABLES GLOBALLY & ON ACTIVE THEMES */
|
||||
:root, .dark, .theme-gray, .theme-slate, .theme-zinc {
|
||||
font-family: 'Poppins', sans-serif;
|
||||
|
||||
/* DRACULA & CYBERPUNK COLOR SYSTEM */
|
||||
--dracula-background: #181923;
|
||||
--dracula-background-dark: #0f1015;
|
||||
--dracula-foreground: #2d3142;
|
||||
--dracula-text: #f8f8f2;
|
||||
--dracula-slate: #6272a4;
|
||||
--dracula-cyan: #8be9fd;
|
||||
--dracula-green: #50fa7b;
|
||||
--dracula-orange: #ffb86c;
|
||||
--dracula-pink: #ff79c6;
|
||||
--dracula-purple: #bd93f9;
|
||||
--dracula-red: #ff5555;
|
||||
--dracula-yellow: #f1fa8c;
|
||||
|
||||
/* Theme preset colors (RGB values for Tailwind transparency support) */
|
||||
--color-50: 249 250 251;
|
||||
--color-100: 243 244 246;
|
||||
--color-200: 248 248 242; /* Text Color */
|
||||
--color-300: 209 213 219;
|
||||
--color-400: 156 163 175;
|
||||
--color-500: 107 114 128;
|
||||
--color-600: 75 85 99;
|
||||
--color-700: 45 49 66;
|
||||
--color-800: 24 25 35; /* Main container background */
|
||||
--color-900: 15 16 21; /* Core background */
|
||||
--color-logo-start: 189 147 249;
|
||||
--color-logo-stop: 139 233 253;
|
||||
|
||||
--standard-bg: rgba(45, 49, 66, 0.45);
|
||||
|
||||
/* INFO WIDGET COLORS */
|
||||
--info-widgets: var(--dracula-cyan);
|
||||
--resource-bar-bg: rgba(98, 114, 164, 0.2);
|
||||
--resource-bar-fg: var(--dracula-cyan);
|
||||
|
||||
--widget-border: rgba(139, 233, 253, 0.2);
|
||||
|
||||
/* SERVICES COLORS */
|
||||
--service-group: var(--dracula-purple);
|
||||
--service-name: var(--dracula-text);
|
||||
--service-description: #a9b1d6;
|
||||
|
||||
--service-block-bg: rgba(15, 16, 21, 0.7);
|
||||
--service-block-text: var(--dracula-pink);
|
||||
|
||||
/* BOOKMARKS COLORS */
|
||||
--bookmark-group: var(--dracula-purple);
|
||||
--bookmark-icon-bg: rgba(189, 147, 249, 0.15);
|
||||
--bookmark-icon: var(--dracula-purple);
|
||||
--bookmark-name: var(--dracula-text);
|
||||
|
||||
/* ALL CARD COLORS (GLASSMORPHISM DEFAULT) */
|
||||
--card-color: rgba(30, 32, 48, 0.55);
|
||||
--card-color-hover: rgba(40, 44, 68, 0.8);
|
||||
|
||||
/* FOOTER COLORS */
|
||||
--footer-items: var(--dracula-purple);
|
||||
--scrollbar-fg: var(--dracula-purple);
|
||||
--scrollbar-bg: var(--dracula-background-dark);
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
* FUTURISTIC SCIFI HUD OVERLAY
|
||||
* ========================================== */
|
||||
body {
|
||||
background-color: #0c0d12 !important;
|
||||
position: relative;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
body::before {
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0; left: 0; right: 0; bottom: 0;
|
||||
background:
|
||||
linear-gradient(rgba(12, 13, 18, 0.75), rgba(12, 13, 18, 0.85)),
|
||||
linear-gradient(90deg, rgba(139, 233, 253, 0.02) 1px, transparent 1px),
|
||||
linear-gradient(rgba(139, 233, 253, 0.02) 1px, transparent 1px);
|
||||
background-size: 100% 100%, 50px 50px, 50px 50px;
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
animation: gridPan 120s linear infinite;
|
||||
}
|
||||
|
||||
/* Add a neon scanline effect */
|
||||
body::after {
|
||||
content: "";
|
||||
position: fixed;
|
||||
top: 0; left: 0; width: 100%; height: 100%;
|
||||
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
|
||||
background-size: 100% 4px, 6px 100%;
|
||||
pointer-events: none;
|
||||
z-index: 9999;
|
||||
opacity: 0.15;
|
||||
}
|
||||
|
||||
@keyframes gridPan {
|
||||
from { background-position: 0 0, 0 0, 0 0; }
|
||||
to { background-position: 0 0, 1000px 1000px, 1000px 1000px; }
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
* TYPOGRAPHY & TITLE STYLES
|
||||
* ========================================== */
|
||||
.service-group-name, .bookmark-group-name, #widgets-title {
|
||||
font-family: 'Orbitron', sans-serif !important;
|
||||
font-weight: 700 !important;
|
||||
letter-spacing: 0.15em !important;
|
||||
text-transform: uppercase !important;
|
||||
text-shadow: 0 0 10px rgba(189, 147, 249, 0.6) !important;
|
||||
color: var(--dracula-purple) !important;
|
||||
}
|
||||
|
||||
.service-name {
|
||||
font-family: 'Rajdhani', sans-serif !important;
|
||||
font-weight: 700 !important;
|
||||
font-size: 1.15rem !important;
|
||||
letter-spacing: 0.03em !important;
|
||||
color: var(--dracula-text) !important;
|
||||
}
|
||||
|
||||
.service-description {
|
||||
font-family: 'Poppins', sans-serif !important;
|
||||
font-size: 0.8rem !important;
|
||||
color: #a9b1d6 !important;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
* GLASSMORPHISM CARDS & ANIMATIONS
|
||||
* ========================================== */
|
||||
.service-card, li.bookmark > a, #information-widgets, #dracula-calendar {
|
||||
background: var(--card-color) !important;
|
||||
backdrop-filter: blur(14px) !important;
|
||||
-webkit-backdrop-filter: blur(14px) !important;
|
||||
border: 1px solid rgba(255, 255, 255, 0.06) !important;
|
||||
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4) !important;
|
||||
transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Hover base styling */
|
||||
.service-card:hover, li.bookmark > a:hover {
|
||||
transform: translateY(-4px) scale(1.02);
|
||||
background: var(--card-color-hover) !important;
|
||||
border-color: rgba(139, 233, 253, 0.4) !important;
|
||||
box-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.6), 0 0 15px rgba(139, 233, 253, 0.2) !important;
|
||||
}
|
||||
|
||||
/* Subtle corner tech border lines for hover */
|
||||
.service-card::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0; left: 0; width: 4px; height: 4px;
|
||||
border-top: 2px solid transparent;
|
||||
border-left: 2px solid transparent;
|
||||
transition: all 0.3s;
|
||||
}
|
||||
|
||||
.service-card:hover::after {
|
||||
border-top-color: var(--dracula-cyan);
|
||||
border-left-color: var(--dracula-cyan);
|
||||
width: 15px; height: 15px;
|
||||
}
|
||||
|
||||
/* Service Images */
|
||||
.service img {
|
||||
border-radius: 20%;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
padding: 2px;
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
transition: all 0.4s;
|
||||
}
|
||||
|
||||
.service-card:hover img {
|
||||
transform: rotate(5deg) scale(1.05);
|
||||
border-color: rgba(139, 233, 253, 0.4);
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
* PULSING STATUS / ONLINE DOTS
|
||||
* ========================================== */
|
||||
.bg-green-500, .bg-emerald-500, .text-green-500, .text-emerald-500 {
|
||||
position: relative;
|
||||
background-color: var(--dracula-green) !important;
|
||||
box-shadow: 0 0 10px var(--dracula-green) !important;
|
||||
}
|
||||
|
||||
/* Create glowing animation rings */
|
||||
.bg-green-500::after, .bg-emerald-500::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -2px; left: -2px; right: -2px; bottom: -2px;
|
||||
border-radius: 50%;
|
||||
border: 1.5px solid var(--dracula-green);
|
||||
animation: statusPulse 2s infinite ease-out;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@keyframes statusPulse {
|
||||
0% { transform: scale(1); opacity: 0.8; }
|
||||
100% { transform: scale(2.4); opacity: 0; }
|
||||
}
|
||||
|
||||
.bg-red-500, .text-red-500 {
|
||||
position: relative;
|
||||
background-color: var(--dracula-red) !important;
|
||||
box-shadow: 0 0 10px var(--dracula-red) !important;
|
||||
}
|
||||
|
||||
.bg-red-500::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -2px; left: -2px; right: -2px; bottom: -2px;
|
||||
border-radius: 50%;
|
||||
border: 1.5px solid var(--dracula-red);
|
||||
animation: statusPulse 2s infinite ease-out;
|
||||
opacity: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
* WIDGET & SCROLLBAR CUSTOMS
|
||||
* ========================================== */
|
||||
#information-widgets {
|
||||
border-color: var(--widget-border) !important;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
#information-widgets * {
|
||||
font-family: 'Rajdhani', sans-serif !important;
|
||||
font-weight: 600;
|
||||
color: var(--info-widgets) !important;
|
||||
}
|
||||
|
||||
.resource-usage {
|
||||
background-color: var(--resource-bar-bg) !important;
|
||||
border: 1px solid rgba(255, 255, 255, 0.05);
|
||||
border-radius: 4px;
|
||||
height: 8px !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.resource-usage > div {
|
||||
background: linear-gradient(90deg, var(--dracula-cyan), var(--dracula-purple)) !important;
|
||||
box-shadow: 0 0 8px rgba(139, 233, 253, 0.6);
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.service-block {
|
||||
background: var(--service-block-bg) !important;
|
||||
border-radius: 6px;
|
||||
border: 1px solid rgba(255, 255, 255, 0.05) !important;
|
||||
}
|
||||
|
||||
.service-block .uppercase {
|
||||
color: var(--service-block-text) !important;
|
||||
font-family: 'Orbitron', sans-serif;
|
||||
font-size: 0.7rem;
|
||||
letter-spacing: 0.08em;
|
||||
}
|
||||
|
||||
.service-block .font-thin {
|
||||
color: var(--dracula-text) !important;
|
||||
font-family: 'Fira Code', monospace;
|
||||
}
|
||||
|
||||
/* Bookmarks styling */
|
||||
.bookmark-icon {
|
||||
background-color: var(--bookmark-icon-bg) !important;
|
||||
border: 1px solid rgba(189, 147, 249, 0.2);
|
||||
}
|
||||
|
||||
.bookmark-icon > div > div {
|
||||
background: var(--bookmark-icon) !important;
|
||||
}
|
||||
|
||||
.bookmark-name {
|
||||
font-family: 'Poppins', sans-serif !important;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* Calendar widget tweaks */
|
||||
#dracula-calendar .flex.justify-between.flex-wrap span {
|
||||
color: var(--dracula-purple) !important;
|
||||
font-family: 'Rajdhani', sans-serif;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
#footer svg {
|
||||
color: var(--footer-items) !important;
|
||||
filter: drop-shadow(0 0 5px rgba(189, 147, 249, 0.5));
|
||||
}
|
||||
|
||||
* {
|
||||
--scrollbar-thumb: var(--scrollbar-fg);
|
||||
--scrollbar-track: var(--scrollbar-bg);
|
||||
}
|
||||
|
||||
/* Custom styling for the search input widget */
|
||||
#search-input, .search-container input {
|
||||
background: rgba(15, 23, 42, 0.6) !important;
|
||||
border: 1px solid rgba(56, 189, 248, 0.3) !important;
|
||||
color: #e2e8f0 !important;
|
||||
font-family: 'Courier New', Courier, monospace !important;
|
||||
border-radius: 8px !important;
|
||||
backdrop-filter: blur(8px) !important;
|
||||
}
|
||||
|
||||
#search-input:focus, .search-container input:focus {
|
||||
border-color: rgba(56, 189, 248, 0.8) !important;
|
||||
box-shadow: 0 0 15px rgba(56, 189, 248, 0.4) !important;
|
||||
outline: none !important;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
* CUSTOM COLOR INTEGRATION BY ID
|
||||
* ========================================== */
|
||||
/* Setup distinct neon glow values on hover for individual service IDs */
|
||||
|
||||
#blue:hover .service-card { border-color: #6272a4 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(98, 114, 164, 0.45) !important; }
|
||||
#yellow:hover .service-card { border-color: #f1fa8c !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(241, 250, 140, 0.45) !important; }
|
||||
#red:hover .service-card { border-color: #ff5555 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 85, 85, 0.45) !important; }
|
||||
#cyan:hover .service-card { border-color: #8be9fd !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(139, 233, 253, 0.45) !important; }
|
||||
#purple:hover .service-card { border-color: #bd93f9 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(189, 147, 249, 0.45) !important; }
|
||||
#white:hover .service-card { border-color: #f8f8f2 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(248, 248, 242, 0.45) !important; }
|
||||
#gold:hover .service-card { border-color: #ffd700 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 215, 0, 0.45) !important; }
|
||||
#green:hover .service-card { border-color: #50fa7b !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(80, 250, 123, 0.45) !important; }
|
||||
#lime:hover .service-card { border-color: #a3e635 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(163, 230, 53, 0.45) !important; }
|
||||
#cobalt:hover .service-card { border-color: #3b82f6 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(59, 130, 246, 0.45) !important; }
|
||||
#gray:hover .service-card { border-color: #9ca3af !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(156, 163, 175, 0.45) !important; }
|
||||
#crimson:hover .service-card { border-color: #dc143c !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(220, 20, 60, 0.45) !important; }
|
||||
#lavender:hover .service-card { border-color: #e6e6fa !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(230, 230, 250, 0.45) !important; }
|
||||
#teal:hover .service-card { border-color: #008080 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 128, 128, 0.45) !important; }
|
||||
#violet:hover .service-card { border-color: #7c3aed !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(124, 58, 237, 0.45) !important; }
|
||||
#aqua:hover .service-card { border-color: #00ffff !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 255, 255, 0.45) !important; }
|
||||
#navy:hover .service-card { border-color: #000080 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 0, 128, 0.45) !important; }
|
||||
#beige:hover .service-card { border-color: #f5f5dc !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(245, 245, 220, 0.45) !important; }
|
||||
#slate:hover .service-card { border-color: #708090 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(112, 128, 144, 0.45) !important; }
|
||||
#burgundy:hover .service-card { border-color: #800020 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(128, 0, 32, 0.45) !important; }
|
||||
#emerald:hover .service-card { border-color: #50c878 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(80, 200, 120, 0.45) !important; }
|
||||
#salmon:hover .service-card { border-color: #fa8072 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(250, 128, 114, 0.45) !important; }
|
||||
#jade:hover .service-card { border-color: #00a86b !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 168, 107, 0.45) !important; }
|
||||
#indigo:hover .service-card { border-color: #4b0082 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(75, 0, 130, 0.45) !important; }
|
||||
#charcoal:hover .service-card { border-color: #36454f !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(54, 69, 79, 0.45) !important; }
|
||||
#cerulean:hover .service-card { border-color: #007ba7 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 123, 167, 0.45) !important; }
|
||||
#rose:hover .service-card { border-color: #ff007f !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 0, 127, 0.45) !important; }
|
||||
#coral:hover .service-card { border-color: #ff7f50 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 127, 80, 0.45) !important; }
|
||||
|
||||
/* Keep active indicators styled cleanly inside the cards */
|
||||
#blue:hover .service-card::after { border-top-color: #6272a4; border-left-color: #6272a4; }
|
||||
#yellow:hover .service-card::after { border-top-color: #f1fa8c; border-left-color: #f1fa8c; }
|
||||
#red:hover .service-card::after { border-top-color: #ff5555; border-left-color: #ff5555; }
|
||||
#cyan:hover .service-card::after { border-top-color: #8be9fd; border-left-color: #8be9fd; }
|
||||
#purple:hover .service-card::after { border-top-color: #bd93f9; border-left-color: #bd93f9; }
|
||||
#white:hover .service-card::after { border-top-color: #f8f8f2; border-left-color: #f8f8f2; }
|
||||
#gold:hover .service-card::after { border-top-color: #ffd700; border-left-color: #ffd700; }
|
||||
#green:hover .service-card::after { border-top-color: #50fa7b; border-left-color: #50fa7b; }
|
||||
#lime:hover .service-card::after { border-top-color: #a3e635; border-left-color: #a3e635; }
|
||||
#cobalt:hover .service-card::after { border-top-color: #3b82f6; border-left-color: #3b82f6; }
|
||||
#gray:hover .service-card::after { border-top-color: #9ca3af; border-left-color: #9ca3af; }
|
||||
#crimson:hover .service-card::after { border-top-color: #dc143c; border-left-color: #dc143c; }
|
||||
#lavender:hover .service-card::after { border-top-color: #e6e6fa; border-left-color: #e6e6fa; }
|
||||
#teal:hover .service-card::after { border-top-color: #008080; border-left-color: #008080; }
|
||||
#violet:hover .service-card::after { border-top-color: #7c3aed; border-left-color: #7c3aed; }
|
||||
#aqua:hover .service-card::after { border-top-color: #00ffff; border-left-color: #00ffff; }
|
||||
#navy:hover .service-card::after { border-top-color: #000080; border-left-color: #000080; }
|
||||
#beige:hover .service-card::after { border-top-color: #f5f5dc; border-left-color: #f5f5dc; }
|
||||
#slate:hover .service-card::after { border-top-color: #708090; border-left-color: #708090; }
|
||||
#burgundy:hover .service-card::after { border-top-color: #800020; border-left-color: #800020; }
|
||||
#emerald:hover .service-card::after { border-top-color: #50c878; border-left-color: #50c878; }
|
||||
#salmon:hover .service-card::after { border-top-color: #fa8072; border-left-color: #fa8072; }
|
||||
#jade:hover .service-card::after { border-top-color: #00a86b; border-left-color: #00a86b; }
|
||||
#indigo:hover .service-card::after { border-top-color: #4b0082; border-left-color: #4b0082; }
|
||||
#charcoal:hover .service-card::after { border-top-color: #36454f; border-left-color: #36454f; }
|
||||
#cerulean:hover .service-card::after { border-top-color: #007ba7; border-left-color: #007ba7; }
|
||||
#rose:hover .service-card::after { border-top-color: #ff007f; border-left-color: #ff007f; }
|
||||
#coral:hover .service-card::after { border-top-color: #ff7f50; border-left-color: #ff7f50; }
|
||||
Binary file not shown.
@@ -0,0 +1,10 @@
|
||||
---
|
||||
# For configuration options and examples, please see:
|
||||
# https://gethomepage.dev/configs/docker/
|
||||
|
||||
# my-docker:
|
||||
# host: 127.0.0.1
|
||||
# port: 2375
|
||||
|
||||
# my-docker:
|
||||
# socket: /var/run/docker.sock
|
||||
@@ -0,0 +1,2 @@
|
||||
---
|
||||
# sample kubernetes config
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
# pve:
|
||||
# url: https://proxmox.host.or.ip:8006
|
||||
# token: username@pam!Token ID
|
||||
# secret: secret
|
||||
@@ -0,0 +1,392 @@
|
||||
---
|
||||
######################################### HOME TAB SERVICES ######################################################################
|
||||
- Infrastructure:
|
||||
- Proxmox 1: # Main Virt Server
|
||||
id: blue
|
||||
tab: Home
|
||||
href: https://192.168.2.1:8006
|
||||
icon: proxmox.png
|
||||
description: Virtual Server 1
|
||||
widget:
|
||||
type: proxmox
|
||||
url: https://192.168.2.1:8006
|
||||
username: api@pam!homepage
|
||||
password: faca2bd5-e6df-4192-85ce-928fccde4623
|
||||
node: pve
|
||||
fields: ["vms", "lxc", "resources.cpu", "resources.mem"]
|
||||
|
||||
- Proxmox 2:
|
||||
id: yellow
|
||||
tab: Home
|
||||
href: https://192.168.2.2:8006
|
||||
icon: proxmox.png
|
||||
description: Virtual Server 2
|
||||
widget:
|
||||
type: proxmox
|
||||
url: https://192.168.2.2:8006
|
||||
username: api@pam!homepage
|
||||
password: 1b2fa246-a994-4f93-ab4d-1c91a4aea614
|
||||
node: pve
|
||||
fields: ["vms", "lxc", "resources.cpu", "resources.mem"]
|
||||
|
||||
- Authentik:
|
||||
id: red
|
||||
tab: Home
|
||||
href: https://auth.mikemcfetridge.com
|
||||
icon: authentik.png
|
||||
description: Authentik SSO
|
||||
widget:
|
||||
type: authentik
|
||||
url: https://192.168.2.6:9543
|
||||
key: NW5ldUK8qDRY91ny67dE6ckWCMXThF9nwj6EZw7pKbS5FzXx5wouAo4sC19n
|
||||
version: 2
|
||||
|
||||
- Dockhand:
|
||||
id: cyan
|
||||
tab: Home
|
||||
href: http://192.168.2.6:3200
|
||||
icon: dockhand.png
|
||||
description: Dockhand
|
||||
widget:
|
||||
type: dockhand
|
||||
url: http://192.168.2.6:3200
|
||||
username: mmcfetridge
|
||||
password: "!Sucyetat123"
|
||||
fields: ["running", "total", "pending_updates", "paused"]
|
||||
|
||||
- Mailcow:
|
||||
id: cyan
|
||||
tab: Home
|
||||
href: https://216.144.227.142/admin
|
||||
icon: mailcow.png
|
||||
description: mailcow
|
||||
widget:
|
||||
type: mailcow
|
||||
url: https://mail.mmcfetridge.net
|
||||
key: 2C3DAF-9DA97F-22FF12-851295-2A7E37
|
||||
|
||||
############################################## APPS TAB Services ###########################################################
|
||||
- Applications:
|
||||
- Immich:
|
||||
id: white
|
||||
tab: Home
|
||||
href: https://immich.mikemcfetridge.com
|
||||
icon: immich.png
|
||||
description: Photos Server
|
||||
widget:
|
||||
type: immich
|
||||
url: http://192.168.2.6:2283
|
||||
key: "MLbcal27A67J6FZV1PIb3AdMsRf8xZC1uruOLB7js"
|
||||
fields: ["users", "photos", "storage"]
|
||||
version: 2
|
||||
|
||||
- MySpeed:
|
||||
id: lime
|
||||
tab: Home
|
||||
icon: myspeed.png
|
||||
href: http://192.168.2.6:5216
|
||||
widget:
|
||||
type: myspeed
|
||||
url: http://192.168.2.6:5216
|
||||
password: "!Sucyetat123" # only required if password is set
|
||||
|
||||
- mealie:
|
||||
id: cobalt
|
||||
tab: Home
|
||||
icon: mealie.png
|
||||
href: http://192.168.2.7:9200/
|
||||
widget:
|
||||
type: mealie
|
||||
url: http://192.168.2.7:9200
|
||||
key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb25nX3Rva2VuIjp0cnVlLCJpZCI6ImVhNDAxMTIzLTg1ZGItNDZhMi04Y2M1LTEzYmVmNGM2ZjgxMCIsIm5hbWUiOiJIb21lcGFnZSIsImludGVncmF0aW9uX2lkIjoiZ2VuZXJpYyIsImV4cCI6MTk0MDE1NTE4NX0.NgpovwuA-FGjt6f6q5kInmmIUadjXRCEpoowfRnYhHE
|
||||
version: 2 # only required if version > 1, defaults to 1
|
||||
|
||||
- Nextcloud:
|
||||
id: gold
|
||||
tab: Home
|
||||
href: https://next.mcfetridge.us
|
||||
icon: nextcloud.png
|
||||
description: Nextcloud Server
|
||||
widget:
|
||||
type: nextcloud
|
||||
url: https://next.mcfetridge.us
|
||||
username: mmcfetridge
|
||||
password: "!Sucyetat123"
|
||||
|
||||
- MyGitea:
|
||||
id: navy
|
||||
tab: Home
|
||||
icon: gitea.png
|
||||
href: https://mygitea.mikemcfetridge.com/
|
||||
widget:
|
||||
type: gitea
|
||||
url: https://mygitea.mikemcfetridge.com/
|
||||
key: 1ba8eac5698e4e1ea9461b814635e5220b707767
|
||||
|
||||
- Gitea:
|
||||
id: navy
|
||||
tab: Home
|
||||
icon: gitea.png
|
||||
href: https://gitea.mikemcfetridge.com/
|
||||
widget:
|
||||
type: gitea
|
||||
url: https://gitea.mikemcfetridge.com/
|
||||
key: 10db6351209bc8cd900f6b03064e5a4f3f971eb3
|
||||
|
||||
|
||||
- BookStack:
|
||||
id: slate
|
||||
tab: Home
|
||||
icon: bookstack.png
|
||||
href: https://book.mikemcfetridge.com/
|
||||
|
||||
|
||||
############################################## MEDIA TAB Services ###########################################################
|
||||
- Media downloader:
|
||||
- Calendar:
|
||||
id: gray
|
||||
tab: Media
|
||||
name: Calendar
|
||||
widget:
|
||||
type: calendar
|
||||
view: agenda
|
||||
maxEvents: 6
|
||||
firstDayInWeek: sunday
|
||||
integrations:
|
||||
- type: sonarr
|
||||
service_group: Media downloader
|
||||
service_name: Sonarr
|
||||
- type: radarr
|
||||
service_group: Media downloader
|
||||
service_name: Radarr
|
||||
|
||||
- Gluetun:
|
||||
id: jade
|
||||
tab: System
|
||||
href: http://192.168.2.8:8000
|
||||
icon: gluetun.png
|
||||
description: Media VPN Server
|
||||
widget:
|
||||
type: gluetun
|
||||
url: http://192.168.2.8:8000
|
||||
fields: ["public_ip", "region", "country"]
|
||||
version: 2 # optional, default is 1
|
||||
|
||||
- Sonarr:
|
||||
id: crimson
|
||||
tab: Media
|
||||
href: http://192.168.2.8:8989
|
||||
icon: sonarr.png
|
||||
description: TV Show Service
|
||||
widget:
|
||||
type: sonarr
|
||||
url: http://192.168.2.8:8989
|
||||
key: b4227fd07fd046f094d620b88d92e494
|
||||
fields: ["wanted", "queued", "series"]
|
||||
|
||||
- Radarr:
|
||||
id: lavender
|
||||
tab: Media
|
||||
href: http://192.168.2.8:7878
|
||||
icon: radarr.png
|
||||
description: Movie Service
|
||||
widget:
|
||||
type: radarr
|
||||
url: http://192.168.2.8:7878
|
||||
key: 9b0e1202f7b94907ba92a1ea23304fa4
|
||||
fields: ["wanted", "missing", "queued", "movies"]
|
||||
|
||||
- Qbittorrent:
|
||||
id: teal
|
||||
tab: Media
|
||||
href: http://192.168.2.8:8080
|
||||
icon: qbittorrent.png
|
||||
description: Download Client
|
||||
widget:
|
||||
type: qbittorrent
|
||||
url: http://192.168.2.8:8080
|
||||
username: admin
|
||||
password: "!Sucyetat123"
|
||||
|
||||
- Media Apps:
|
||||
- Jellyfin:
|
||||
id: violet
|
||||
tab: Media
|
||||
href: http://192.168.2.8:8096
|
||||
icon: jellyfin.png
|
||||
description: Movies & TV Shows
|
||||
widget:
|
||||
type: jellyfin
|
||||
url: http://192.168.2.8:8096
|
||||
key: ffe8e2b31fd24464ac779121e920ac25
|
||||
enableBlocks: true
|
||||
enableNowPlaying: true
|
||||
|
||||
- Jellyseerr:
|
||||
id: aqua
|
||||
tab: Media
|
||||
href: http://192.168.2.8:5055
|
||||
icon: jellyseerr.png
|
||||
description: Movie/show Database
|
||||
widget:
|
||||
type: jellyseerr
|
||||
url: http://192.168.2.8:5055
|
||||
key: MTc4MzM0NDc0OTI1OWY1YzJkYWJkLTA0OWEtNDY0NS05ZTMwLTI3NjFkZjYxNjdhZQ==
|
||||
fields: ["pending", "approved", "available"]
|
||||
|
||||
- Navidrome:
|
||||
id: navy
|
||||
tab: Media
|
||||
icon: navidrome.png
|
||||
href: http://192.168.2.8:4533
|
||||
widget:
|
||||
type: navidrome
|
||||
url: http://192.168.2.8:4533
|
||||
user: mmcfetridge
|
||||
token: 05dee16046666bb05d98291b9c6e39d3
|
||||
salt: 50c05a
|
||||
|
||||
- AudioBookShelf:
|
||||
id: beige
|
||||
tab: Media
|
||||
href: http://192.168.2.8:13378
|
||||
icon: audiobookshelf.png
|
||||
description: Index Server
|
||||
widget:
|
||||
type: audiobookshelf
|
||||
url: http://192.168.2.8:13378
|
||||
key: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXlJZCI6IjU1MzViZDFiLTI3NGUtNGNjOC1iMWZkLTNiZWFiNjg0NDQ1YiIsIm5hbWUiOiJob21lcGFnZSIsInR5cGUiOiJhcGkiLCJpYXQiOjE3ODM0NjE1NjJ9.BYvicD24tA3lEx_ktwmf6Igme6dpLj1SUrc0Y9ISBMs"
|
||||
fields: ["podcasts", "books"]
|
||||
|
||||
##################################### Network & System TAB Services ##############################################################
|
||||
- Network:
|
||||
- Pi-hole:
|
||||
id: slate
|
||||
tab: Network
|
||||
href: http://192.168.2.5/admin/login
|
||||
icon: pi-hole.png
|
||||
widget:
|
||||
type: pihole
|
||||
url: http://192.168.2.5
|
||||
version: 6
|
||||
key: "!Sucyetat123"
|
||||
fields: ["queries", "blocked", "blocked_percent", "gravity"]
|
||||
|
||||
- Nginx Proxy Manager:
|
||||
id: emerald
|
||||
tab: Network
|
||||
href: http://192.168.2.12:81
|
||||
icon: nginx-proxy-manager.png
|
||||
description: Nginx Proxy Manager
|
||||
widget:
|
||||
type: npm
|
||||
url: http://192.168.2.12:81
|
||||
username: mmcfetridg@aol.com
|
||||
password: "!Sucyetat123"
|
||||
fields: ["enabled", "disabled", "total"]
|
||||
|
||||
- Pangolin:
|
||||
id: salmon
|
||||
tab: Network
|
||||
icon: pangolin.png
|
||||
href: https://app.pangolin.net
|
||||
description: External network
|
||||
widget:
|
||||
type: pangolin
|
||||
url: https://api.pangolin.net
|
||||
key: "w3f8ong2hz7a3da.dappsg2veyo36my5ibsmrmnzd2c2626lyrok7inn"
|
||||
org: org_lsxd0ocafwikxgs
|
||||
fields: ["sites", "resources", "targets"]
|
||||
|
||||
######################################## System TAB Services ######################################################################
|
||||
- Systems:
|
||||
|
||||
- Public IP:
|
||||
icon: mdi-web
|
||||
href: https://whatismyipaddress.com/
|
||||
widget:
|
||||
type: customapi
|
||||
url: https://api.ipify.org?format=json
|
||||
refreshInterval: 3600000 # Refreshes once an hour (in milliseconds)
|
||||
method: GET
|
||||
mappings:
|
||||
- field: ip
|
||||
label: WAN IP
|
||||
format: text
|
||||
|
||||
- Technitium:
|
||||
id: burgundy
|
||||
tab: Network
|
||||
href: http://192.168.2.3:5380
|
||||
icon: technitium.png
|
||||
description: Technitium DNS Server
|
||||
widget:
|
||||
type: technitium
|
||||
url: http://192.168.2.3:5380
|
||||
key: 03348d06cd472fbd091d8232b1c13321ff70a8628dad7b0c23dd4512a18fb34b
|
||||
range: LastDay
|
||||
fields: ["totalQueries", "totalAuthoritative", "totalCached", "totalServerFailure"]
|
||||
|
||||
- PatchMon:
|
||||
id: cyan
|
||||
tab: Network
|
||||
href: https://patch.mikemcfetridge.com
|
||||
description: PatchMon Statistics
|
||||
icon: https://patch.mikemcfetridge.com/assets/logo_square_default.svg
|
||||
widget:
|
||||
type: customapi
|
||||
url: https://patch.mikemcfetridge.com/api/v1/gethomepage/stats
|
||||
headers:
|
||||
Authorization: Basic cGF0Y2htb25fYWVfYzJlZGUxODcyNzI4NDU0MTM1ZWI5ZWE3ZThkYmY1MTY6MzdlMDdlNjM4YjFiMjUzYjIyYWFjMWQ3ODA0ZTdhODExZTM0ZTMzNGM0MDczMjI5YWQwN2EwYjIzODU2NDhhOQ==
|
||||
mappings:
|
||||
- field: total_hosts
|
||||
label: Total Hosts
|
||||
- field: hosts_needing_updates
|
||||
label: Needs Updates
|
||||
- field: security_updates
|
||||
label: Security Updates
|
||||
############################################## Bookmark TAB Services #############################################################
|
||||
|
||||
- Bookmarks:
|
||||
- Github:
|
||||
id: indigo
|
||||
tab: Bookmarks
|
||||
abbr: GH
|
||||
href: https://github.com
|
||||
icon: github-light.png
|
||||
description: GitHub
|
||||
|
||||
- Linkwarden:
|
||||
id: charcoal
|
||||
tab: Bookmarks
|
||||
href: https://lw.mikemcfetridge.com
|
||||
icon: linkwarden.png
|
||||
description: Web Bookmarker
|
||||
widget:
|
||||
type: linkwarden
|
||||
url: http://192.168.2.10:3000
|
||||
key: "eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZLJgig_ol-n3i1tv.vhWCnMSHVd81bdidL85-imXKpxGC0U3mHlvmkQyIJqJvcFRRJVBAasw9C0cmfSXVPq08HT-B-3zUAmftnPRymPHMJCkfo8pv_XBbEPneIFH-n59_dg26.qcXSK2REP3M_Vdgp0aOqcA"
|
||||
fields: ["links", "collections"]
|
||||
|
||||
- Semaphore:
|
||||
id: cerulean
|
||||
tab: Bookmarks
|
||||
icon: semaphore.png
|
||||
href: http://192.168.2.7:3020
|
||||
description: CI/CD Automation
|
||||
|
||||
- Wg-Easy:
|
||||
id: rose
|
||||
tab: Bookmarks
|
||||
icon: wireguard.png
|
||||
href: http://192.168.2.7:10086
|
||||
description: Wireguard VPN
|
||||
|
||||
- YouTube:
|
||||
id: coral
|
||||
tab: Bookmarks
|
||||
icon: youtube.png
|
||||
href: https://youtube.com/
|
||||
description: Video Platform
|
||||
|
||||
#
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
title: Miker's Homepage
|
||||
description: Here is my awesome homepage
|
||||
|
||||
|
||||
background:
|
||||
image: https://backiee.com/static/wallpapers/1000x563/412861.webp
|
||||
blur: sm
|
||||
saturate: 50
|
||||
brightness: 75
|
||||
opacity: 75
|
||||
|
||||
theme: dark
|
||||
color: slate
|
||||
|
||||
layout:
|
||||
Infrastructure:
|
||||
icon: mdi-folder-network
|
||||
tab: Home
|
||||
header: true
|
||||
columns: 3
|
||||
Applications:
|
||||
icon: mdi-application
|
||||
tab: Home
|
||||
header: true
|
||||
columns: 3
|
||||
Media downloader:
|
||||
icon: mdi-multimedia
|
||||
tab: Media
|
||||
header: true
|
||||
columns: 3
|
||||
Media Apps:
|
||||
icon: mdi-movie
|
||||
tab: Media
|
||||
header: true
|
||||
columns: 3
|
||||
Network:
|
||||
tab: System
|
||||
icon: mdi-switch
|
||||
header: true
|
||||
columns: 3
|
||||
Systems:
|
||||
tab: System
|
||||
icon: mdi-television
|
||||
header: true
|
||||
columns: 3
|
||||
Bookmarks:
|
||||
tab: Bookmarks
|
||||
icon: mdi-baby
|
||||
style: row
|
||||
columns: 4
|
||||
|
||||
fiveColumns: true
|
||||
useEqualHeights: true
|
||||
showStats: true
|
||||
@@ -0,0 +1,42 @@
|
||||
# Homepage Widgets Configuration
|
||||
# Organized by System, Environment, and Search
|
||||
- logo:
|
||||
icon: wireguard.svg # optional
|
||||
|
||||
- resources:
|
||||
cpu: true
|
||||
memory: true
|
||||
disk: /
|
||||
cputemp: true
|
||||
tempmin: 0
|
||||
tempmax: 100
|
||||
uptime: true
|
||||
units: imperial
|
||||
refresh: 3000
|
||||
diskUnits: bytes
|
||||
network: true
|
||||
|
||||
- openmeteo:
|
||||
label: Bealeton
|
||||
latitude: 38.5718
|
||||
longitude: -77.7639
|
||||
timezone: America/New_York
|
||||
units: imperial
|
||||
cache: 5
|
||||
format:
|
||||
maximumFractionDigits: 1
|
||||
|
||||
- datetime:
|
||||
text_size: sm
|
||||
format:
|
||||
dateStyle: short
|
||||
timeStyle: short
|
||||
hour12: true
|
||||
timeZone: 'America/New_York'
|
||||
|
||||
# /config/widgets.yaml
|
||||
- search:
|
||||
provider: google # google, duckduckgo, bing, baidu, brave or custom
|
||||
focus: true # Optional, will set focus to the search bar on page load
|
||||
showSearchSuggestions: true # Optional, will show search suggestions. Defaults to false
|
||||
target: _blank # One of _self, _blank, _parent or _top
|
||||
@@ -0,0 +1,30 @@
|
||||
services:
|
||||
|
||||
homepage:
|
||||
image: ghcr.io/gethomepage/homepage:latest
|
||||
container_name: homepage
|
||||
environment:
|
||||
HOMEPAGE_ALLOWED_HOSTS: "*" # required, may need port.
|
||||
PUID: 1000
|
||||
PGID: 1000
|
||||
DOCKER_HOST: tcp://socket-proxy:2375
|
||||
ports:
|
||||
- 3100:3000
|
||||
volumes:
|
||||
- /opt/Docker-Deployments/Homepage/config:/app/config # Make sure your local config directory exists
|
||||
- /opt/Docker-Deployments/Homepage/images:/app/public/images
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
|
||||
networks:
|
||||
- external
|
||||
restart: unless-stopped
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:3000"]
|
||||
interval: 10s
|
||||
retries: 3
|
||||
timeout: 10s
|
||||
start_period: 30s
|
||||
|
||||
networks:
|
||||
external:
|
||||
external: true # Tells Compose not to create this network
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 MiB |
Reference in New Issue
Block a user