aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--public/assets/tools/adminer.pngbin0 -> 220 bytes
-rw-r--r--public/assets/tools/buildbot.png0
-rw-r--r--public/assets/tools/buildbot.svg13
-rw-r--r--public/assets/tools/commento.svg10
-rw-r--r--public/assets/tools/diaspora.pngbin0 -> 1666 bytes
-rw-r--r--public/assets/tools/dokuwiki.pngbin0 -> 3744 bytes
-rw-r--r--public/assets/tools/etherpad.icobin0 -> 4286 bytes
-rw-r--r--public/assets/tools/games_codenames.pngbin0 -> 998 bytes
-rw-r--r--public/assets/tools/games_terraforming_mars.icobin0 -> 3654 bytes
-rw-r--r--public/assets/tools/gitweb.pngbin0 -> 1125 bytes
-rw-r--r--public/assets/tools/grocy.pngbin0 -> 3823 bytes
-rw-r--r--public/assets/tools/kanboard.pngbin0 -> 2673 bytes
-rw-r--r--public/assets/tools/mantisbt.pngbin0 -> 10861 bytes
-rw-r--r--public/assets/tools/mastodon.pngbin0 -> 4880 bytes
-rw-r--r--public/assets/tools/mgoblin.icobin0 -> 318 bytes
-rw-r--r--public/assets/tools/nextcloud.pngbin0 -> 2918 bytes
-rw-r--r--public/assets/tools/peertube.pngbin0 -> 746 bytes
-rw-r--r--public/assets/tools/phpbb.icobin0 -> 24038 bytes
-rw-r--r--public/assets/tools/rainloop.pngbin0 -> 832 bytes
-rw-r--r--public/assets/tools/rompr.pngbin0 -> 44454 bytes
-rw-r--r--public/assets/tools/roundcube.svg15
-rw-r--r--public/assets/tools/shaarli.pngbin0 -> 18276 bytes
-rw-r--r--public/assets/tools/statusengine.pngbin0 -> 2067 bytes
-rw-r--r--public/assets/tools/ttrss.pngbin0 -> 2774 bytes
-rw-r--r--public/assets/tools/wallabag.svg1
-rw-r--r--public/config.yml343
-rw-r--r--src/App.vue20
-rw-r--r--src/assets/app.scss68
-rw-r--r--src/assets/defaults.yml6
-rw-r--r--src/components/Navbar.vue20
-rw-r--r--src/components/Service.vue35
-rw-r--r--src/components/Subcard.vue12
33 files changed, 522 insertions, 24 deletions
diff --git a/.gitignore b/.gitignore
index 26547c2..a0dddc6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,3 @@ yarn-error.log*
19*.njsproj 19*.njsproj
20*.sln 20*.sln
21*.sw? 21*.sw?
22
23# App configuration
24public/config.yml
diff --git a/public/assets/tools/adminer.png b/public/assets/tools/adminer.png
new file mode 100644
index 0000000..f5923d8
--- /dev/null
+++ b/public/assets/tools/adminer.png
Binary files differ
diff --git a/public/assets/tools/buildbot.png b/public/assets/tools/buildbot.png
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/public/assets/tools/buildbot.png
diff --git a/public/assets/tools/buildbot.svg b/public/assets/tools/buildbot.svg
new file mode 100644
index 0000000..4972a11
--- /dev/null
+++ b/public/assets/tools/buildbot.svg
@@ -0,0 +1,13 @@
1<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" fill-rule="evenodd" aria-label="Nut" stroke-width="5" stroke="#000" stroke-linejoin="round">
2 <defs>
3 <linearGradient id="a" x1="61.3" x2="61.3" y1="31.7" y2="194.3" gradientTransform="matrix(1.28514 0 0 .76264 1.5 .5)" gradientUnits="userSpaceOnUse">
4 <stop offset="0%" stop-color="#8da6d8"/>
5 <stop offset="100%" stop-color="#2e5cb8"/>
6 </linearGradient>
7 </defs>
8 <path d="M10.7 205.4v-43l101.9 91.5v42.5z" fill="#24478f" stroke-width="4.9"/>
9 <path d="M112.7 254l139-33.7v43.2l-139 33.5v-43z" fill="#2e5cb8" stroke-width="4.9"/>
10 <path d="M251.8 220.3v43.2l37.2-125v-43z" fill="#193366" stroke-width="4.9"/>
11 <path d="M187.2 4L289 95.5l-37.2 124.8-139.2 33.5-101.8-91.4L48 37.5zm-3.5 72.6c32 16.7 43 53.6 24.4 82.5-18.4 28.8-59.6 38.7-91.8 22-32-16.5-43-53.6-24.4-82.4 18.3-28.9 59.4-38.9 91.7-22.2z" fill="#8da6d8" stroke-width="4.9"/>
12 <path d="M85.5 146a54.8 54.8 0 0 1 6-47.3c18.8-28.9 60-38.8 92-22 27.5 14.3 39.6 43.4 30.7 69.5a61.8 61.8 0 0 0-30.6-35c-32.2-16.6-73.4-6.7-92 22.2a57.4 57.4 0 0 0-6 12.8z" fill="url(#a)" stroke-width="4.9"/>
13</svg> \ No newline at end of file
diff --git a/public/assets/tools/commento.svg b/public/assets/tools/commento.svg
new file mode 100644
index 0000000..39da47a
--- /dev/null
+++ b/public/assets/tools/commento.svg
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<svg viewBox="0 0 105.65 105.65" xmlns="http://www.w3.org/2000/svg">
3<g transform="translate(0) scale(2.113)" fill="#1e2127" name="monogram_container" rel="inversefill" xmlns:name="monogram_container_inversefill">
4<title xmlns="http://www.w3.org/2000/svg">assets</title>
5<circle cx="25" cy="25" r="25" xmlns="http://www.w3.org/2000/svg"/>
6</g>
7<g transform="translate(26.5 5.65)" fill="#fff" name="monogram" rel="symbolfill" xmlns:name="monogram_symbolfill">
8<path d="m13.95 46.575v0.225c-0.075 0.15-0.075 0.3-0.075 0.45 0 0.225 0.075 0.375 0.075 0.525v0.525s0 0.3 0.075 0.525c0 0.15 0 0.3 0.075 0.525 0 0.15 0 0.3 0.075 0.375 0 0.225 0.075 0.375 0.075 0.525s0.075 0.3 0.15 0.45c0.075 0.3 0.15 0.6 0.225 0.975l0.225 0.45c0 0.15 0.075 0.225 0.15 0.375 0.075 0.3 0.225 0.6 0.375 0.9 0.075 0.15 0.15 0.3 0.3 0.525 0.075 0.15 0.15 0.3 0.225 0.375 0.15 0.3 0.375 0.6 0.525 0.9l0.3 0.3c0.075 0.15 0.15 0.3 0.225 0.375 0.225 0.225 0.45 0.525 0.675 0.75l0.675 0.675c0.3 0.3 0.525 0.45 0.825 0.675 0.225 0.225 0.45 0.45 0.75 0.6 0.525 0.375 1.05 0.75 1.65 0.975 0.15 0.075 0.3 0.15 0.375 0.225 0.225 0.075 0.375 0.15 0.6 0.225 0.15 0.075 0.225 0.075 0.375 0.15s0.3 0.15 0.45 0.15c0.375 0.15 0.675 0.225 0.975 0.3s0.675 0.15 0.975 0.225 0.675 0.075 0.975 0.15c0.3 0 0.6 0.075 0.9 0.075h1.05c0.3 0 0.675 0 1.05-0.075 0.6-0.075 1.275-0.15 1.875-0.3s1.2-0.375 1.8-0.6c0.15-0.075 0.3-0.075 0.45-0.15s0.3-0.15 0.525-0.225h4.95c-0.075 0-0.15 0.075-0.15 0.15-0.075 0-0.15 0.075-0.225 0.15-0.45 0.375-0.975 0.75-1.5 1.125-0.225 0.15-0.525 0.3-0.825 0.45-0.3 0.225-0.6 0.375-0.9 0.525-0.075 0.075-0.225 0.075-0.375 0.15l-0.45 0.225c-0.3 0.15-0.6 0.225-0.9 0.375-0.3 0.075-0.6 0.225-0.9 0.3-0.225 0.075-0.375 0.075-0.525 0.15-0.15 0-0.3 0.075-0.45 0.075-0.15 0.075-0.3 0.075-0.525 0.15h-0.15c-0.15 0.075-0.225 0.075-0.375 0.075-0.3 0.075-0.6 0.075-0.975 0.15-0.6 0.075-1.275 0.075-1.95 0.075h-0.45-0.45c-0.3 0-0.675-0.075-0.975-0.075-0.375-0.075-0.675-0.15-1.05-0.15l-0.9-0.225c-0.375-0.075-0.675-0.225-1.05-0.3-0.225-0.075-0.525-0.225-0.825-0.3-0.6-0.225-1.2-0.525-1.8-0.75-0.3-0.15-0.6-0.3-0.825-0.525-0.3-0.15-0.6-0.3-0.825-0.525-0.15-0.075-0.3-0.15-0.375-0.225-0.15-0.075-0.3-0.225-0.375-0.3-0.15-0.075-0.225-0.15-0.375-0.225l-0.375-0.375c-0.525-0.375-0.975-0.825-1.425-1.35-0.075-0.075-0.225-0.225-0.3-0.375-0.15-0.075-0.225-0.225-0.375-0.375-0.225-0.225-0.375-0.525-0.6-0.75-0.075-0.15-0.225-0.3-0.3-0.45s-0.15-0.225-0.225-0.375c-0.075-0.075-0.15-0.225-0.225-0.375-0.15-0.15-0.225-0.3-0.3-0.45-0.15-0.3-0.3-0.525-0.45-0.825s-0.3-0.6-0.375-0.9c-0.15-0.375-0.3-0.675-0.375-0.975-0.075-0.15-0.15-0.3-0.15-0.45-0.075-0.15-0.075-0.3-0.15-0.45-0.075-0.3-0.15-0.6-0.225-0.975l-0.225-0.9c0-0.15 0-0.3-0.075-0.45v-0.3s-0.075-0.15-0.075-0.225v-0.45-0.525c-0.075-0.675-0.075-1.35 0-2.025s0.15-1.275 0.225-1.95l0.225-0.9s0.225-0.675 0.3-0.975c0-0.15 0.075-0.225 0.15-0.375 0.075-0.225 0.075-0.375 0.15-0.525 0.15-0.3 0.225-0.6 0.375-0.825l0.45-0.9c0.075-0.15 0.15-0.375 0.225-0.525s0.15-0.3 0.3-0.375l0.225-0.45s0.15-0.225 0.225-0.375 0.225-0.3 0.3-0.45c0.15-0.075 0.225-0.225 0.3-0.375 0.375-0.525 0.825-0.975 1.275-1.425 0.225-0.225 0.45-0.525 0.75-0.675 0.225-0.225 0.45-0.45 0.75-0.675 0.075-0.075 0.225-0.15 0.375-0.3 0.075-0.075 0.225-0.15 0.3-0.225 0.15-0.075 0.3-0.225 0.45-0.3 0.075-0.075 0.225-0.15 0.375-0.225 0.525-0.375 1.125-0.675 1.725-0.975l0.45-0.225c0.075 0 0.225-0.075 0.375-0.15 0.3-0.15 0.675-0.225 0.975-0.375 0.3-0.075 0.6-0.225 0.975-0.3 0.15 0 0.3-0.075 0.45-0.075 0.15-0.075 0.3-0.075 0.45-0.15 0.3-0.075 0.6-0.15 0.975-0.15 0.15 0 0.3-0.075 0.45-0.075 0.225 0 0.375-0.075 0.525-0.075 0.675-0.075 1.275-0.075 1.95-0.075 0.375 0 0.675 0.075 1.05 0.075 0.3 0 0.675 0.075 0.975 0.15 0.3 0 0.6 0.075 0.9 0.15 0.225 0 0.375 0.075 0.525 0.075 0.15 0.075 0.3 0.075 0.45 0.075 0.6 0.225 1.2 0.375 1.8 0.6 0.15 0.075 0.375 0.15 0.525 0.225l0.45 0.225s0.3 0.15 0.375 0.225l1.35 0.675c0.225 0.15 0.525 0.375 0.75 0.525 0.15 0.075 0.3 0.225 0.375 0.3 0.075 0 0.15 0.075 0.225 0.15 0.075 0 0.15 0.075 0.15 0.15 0.15 0.075 0.3 0.15 0.375 0.225 0.15 0.15 0.3 0.225 0.375 0.375h-4.875c-0.075 0-0.075 0-0.15-0.075-0.3-0.075-0.6-0.225-0.9-0.375-0.15-0.075-0.3-0.15-0.525-0.15-0.15-0.075-0.3-0.15-0.45-0.15-0.3-0.15-0.6-0.225-0.9-0.3s-0.675-0.075-0.975-0.15c-0.675-0.15-1.35-0.15-2.025-0.225-0.6 0-1.275 0-1.875 0.15-0.675 0.075-1.35 0.15-1.95 0.375-0.375 0.075-0.675 0.15-0.975 0.3-0.15 0-0.3 0.075-0.45 0.15-0.15 0-0.225 0.075-0.375 0.15-0.225 0.075-0.375 0.15-0.6 0.225-0.075 0.075-0.225 0.15-0.375 0.225-0.3 0.15-0.6 0.3-0.9 0.525-0.225 0.15-0.525 0.3-0.75 0.45-0.225 0.225-0.525 0.375-0.75 0.6-0.15 0.075-0.225 0.225-0.375 0.3-0.15 0.15-0.3 0.225-0.375 0.375-0.3 0.225-0.525 0.45-0.75 0.75-0.225 0.225-0.375 0.45-0.6 0.675-0.075 0.15-0.15 0.225-0.3 0.375-0.075 0.15-0.15 0.225-0.3 0.375l-0.225 0.45c-0.075 0.075-0.15 0.225-0.225 0.375s-0.225 0.225-0.3 0.375c-0.075 0.225-0.15 0.375-0.225 0.6-0.075 0.075-0.15 0.225-0.15 0.3-0.075 0.15-0.225 0.3-0.225 0.525-0.15 0.3-0.3 0.6-0.375 0.9s-0.225 0.6-0.3 0.975c0 0.15-0.075 0.225-0.075 0.375-0.075 0.15-0.075 0.375-0.075 0.525-0.075 0.15-0.075 0.3-0.075 0.45-0.075 0.225-0.075 0.375-0.075 0.525-0.075 0.3-0.075 0.675-0.075 0.975zm28.8 13.125h9.9s-0.075 0.15-0.075 0.225c-0.15 0.225-0.3 0.525-0.45 0.75-0.15 0.3-0.3 0.6-0.45 0.825-0.075 0.15-0.225 0.3-0.3 0.45-0.075 0.075-0.15 0.225-0.225 0.375s-0.15 0.225-0.225 0.375c-0.15 0.15-0.225 0.225-0.3 0.375s-0.15 0.3-0.3 0.375c0 0.075-0.075 0.15-0.075 0.225-0.075 0-0.075 0.075-0.075 0.075l-0.075 0.075c0 0.075-0.075 0.075-0.075 0.075 0 0.075-0.075 0.075-0.075 0.15l-0.15 0.15c-0.075 0.15-0.225 0.3-0.3 0.45-0.45 0.45-0.825 0.975-1.275 1.425-0.225 0.225-0.45 0.45-0.6 0.675-0.3 0.225-0.525 0.45-0.825 0.75-0.45 0.375-0.9 0.825-1.425 1.2-0.45 0.375-0.975 0.825-1.5 1.125-0.15 0.15-0.375 0.3-0.525 0.45-0.075 0-0.225 0.075-0.3 0.15-0.3 0.225-0.6 0.375-0.9 0.6-0.6 0.3-1.2 0.675-1.8 0.975s-1.2 0.525-1.8 0.825c-0.525 0.225-1.125 0.45-1.725 0.675-0.6 0.15-1.275 0.375-1.875 0.525-0.375 0.075-0.675 0.15-1.05 0.3-0.15 0-0.3 0.075-0.45 0.075-0.225 0-0.375 0.075-0.6 0.075-0.6 0.15-1.275 0.225-1.95 0.3-0.6 0.075-1.275 0.15-1.875 0.15-0.675 0.075-1.275 0.075-1.95 0.075-0.3-0.075-0.675-0.075-0.975-0.075-0.375 0-0.75-0.075-1.125-0.075-0.15 0-0.3-0.075-0.45-0.075s-0.375-0.075-0.525-0.075c-0.375 0-0.675-0.075-1.05-0.15-0.6-0.075-1.275-0.225-1.875-0.375s-1.2-0.375-1.8-0.525c-0.3-0.15-0.6-0.225-0.9-0.3-0.375-0.15-0.675-0.3-0.975-0.375-0.3-0.15-0.675-0.3-0.975-0.45-0.15-0.075-0.3-0.075-0.375-0.15-0.225-0.15-0.375-0.225-0.6-0.3-0.6-0.3-1.125-0.6-1.725-0.9-0.525-0.375-1.05-0.675-1.575-1.05l-1.575-1.125c-0.225-0.225-0.525-0.45-0.825-0.675-0.225-0.225-0.45-0.45-0.75-0.675-0.225-0.225-0.525-0.45-0.75-0.75-0.225-0.15-0.375-0.375-0.6-0.6-0.45-0.45-0.9-0.975-1.275-1.425-0.225-0.3-0.45-0.525-0.6-0.75-0.225-0.225-0.375-0.525-0.6-0.75-0.15-0.225-0.3-0.525-0.525-0.825-0.075-0.075-0.15-0.225-0.225-0.375s-0.225-0.3-0.3-0.45c-0.15-0.225-0.3-0.45-0.45-0.75-0.075-0.15-0.15-0.225-0.225-0.375s-0.15-0.3-0.225-0.375c-0.3-0.6-0.6-1.2-0.825-1.725l-0.225-0.45c0-0.15-0.15-0.375-0.15-0.525l-0.225-0.45c0-0.15-0.075-0.3-0.15-0.45-0.225-0.6-0.375-1.2-0.6-1.8l-0.225-0.9c-0.075-0.375-0.15-0.675-0.225-0.975s-0.15-0.675-0.225-1.05c0-0.3-0.075-0.6-0.15-0.9-0.075-0.675-0.15-1.35-0.15-2.025-0.075-0.6-0.075-1.275-0.075-1.875 0-0.675 0-1.35 0.075-2.025 0-0.3 0.075-0.675 0.075-0.975 0.075-0.3 0.075-0.675 0.15-0.975s0.075-0.675 0.15-0.975c0-0.15 0.075-0.225 0.075-0.375 0-0.225 0.075-0.375 0.075-0.525 0.075-0.075 0.075-0.15 0.075-0.225s0.075-0.15 0.075-0.3 0.075-0.3 0.075-0.375c0.075-0.375 0.225-0.675 0.3-0.975 0.15-0.675 0.375-1.35 0.6-1.95s0.45-1.2 0.75-1.725l0.225-0.45c0-0.075 0.075-0.15 0.075-0.3 0.075 0 0.075 0 0.075-0.075l0.075-0.075v-0.15s0.075 0 0.075-0.075 0.075-0.15 0.15-0.225c0.075-0.15 0.075-0.3 0.15-0.375 0.15-0.3 0.3-0.525 0.45-0.825s0.375-0.525 0.525-0.825c0.075-0.15 0.15-0.225 0.225-0.375 0.15-0.15 0.225-0.3 0.3-0.45s0.225-0.225 0.3-0.375 0.15-0.225 0.225-0.375c0.225-0.225 0.375-0.525 0.6-0.75 0.15-0.225 0.375-0.45 0.6-0.75 0.15-0.225 0.375-0.45 0.6-0.675 0.225-0.3 0.45-0.525 0.675-0.75l0.3-0.3c0.075-0.15 0.225-0.225 0.3-0.3 0.225-0.225 0.45-0.45 0.75-0.675l1.575-1.35c0.225-0.225 0.525-0.375 0.825-0.6 0.225-0.225 0.525-0.375 0.825-0.6 0.525-0.375 1.125-0.675 1.65-0.975 0.525-0.375 1.125-0.6 1.65-0.9 0.3-0.15 0.6-0.3 0.9-0.375 0.3-0.15 0.6-0.3 0.975-0.45 0.3-0.15 0.6-0.225 0.975-0.375 0.3-0.075 0.6-0.225 0.975-0.3 0.6-0.225 1.275-0.375 1.95-0.525 0.6-0.15 1.2-0.3 1.8-0.375 0.675-0.15 1.275-0.225 1.95-0.3 0.3 0 0.675-0.075 1.05-0.075h0.975 1.05 1.05c0.3 0.075 0.6 0.075 0.975 0.075 0.3 0.075 0.6 0.075 0.9 0.15 0.6 0.075 1.275 0.15 1.875 0.3 0.675 0.075 1.35 0.225 2.025 0.45 0.15 0 0.3 0.075 0.45 0.075 0.15 0.075 0.3 0.15 0.45 0.15 0.375 0.15 0.75 0.225 1.05 0.375 0.075 0 0.225 0.075 0.3 0.075l0.675 0.225c0.3 0.15 0.525 0.3 0.825 0.375 0.6 0.3 1.125 0.525 1.725 0.825 0.525 0.3 1.125 0.6 1.725 0.975 0.3 0.15 0.6 0.375 0.9 0.6 0.225 0.15 0.525 0.375 0.825 0.525 0.075 0.075 0.225 0.15 0.3 0.225 0.225 0.15 0.375 0.3 0.525 0.45 0.3 0.15 0.525 0.375 0.75 0.6 0.525 0.375 0.975 0.825 1.425 1.2 0.15 0.15 0.3 0.3 0.375 0.45 0.15 0.075 0.225 0.15 0.3 0.3 0.225 0.15 0.45 0.375 0.675 0.6 0.225 0.3 0.45 0.525 0.6 0.75 0.225 0.3 0.45 0.525 0.675 0.825 0.15 0.225 0.375 0.45 0.525 0.675 0.225 0.3 0.375 0.525 0.6 0.75 0.3 0.6 0.675 1.125 0.975 1.65 0.15 0.3 0.375 0.525 0.45 0.825 0.075 0.15 0.15 0.225 0.225 0.375 0.075 0.075 0.075 0.15 0.15 0.225 0 0.075 0.075 0.15 0.075 0.225h-9.9l-0.3-0.3c-0.075-0.15-0.15-0.225-0.3-0.375-0.15-0.225-0.375-0.45-0.6-0.675-0.45-0.375-0.975-0.825-1.425-1.275-0.15-0.075-0.225-0.15-0.375-0.3-0.15-0.075-0.225-0.15-0.375-0.225-0.3-0.225-0.525-0.375-0.825-0.6-0.15-0.075-0.225-0.15-0.375-0.225s-0.225-0.15-0.375-0.225c-0.3-0.15-0.6-0.375-0.9-0.525-0.6-0.3-1.125-0.6-1.725-0.825-0.3-0.075-0.6-0.225-0.9-0.3-0.375-0.15-0.675-0.225-0.975-0.3-0.3-0.15-0.6-0.225-0.975-0.3-0.3-0.075-0.675-0.15-0.975-0.225l-2.025-0.225s-1.35-0.075-1.95-0.075c-0.375 0-0.675 0.075-0.975 0.075s-0.6 0.075-0.975 0.075c-0.6 0.075-1.275 0.15-1.875 0.3s-1.275 0.3-1.875 0.525-1.275 0.45-1.875 0.75l-1.8 0.9c-0.075 0.075-0.15 0.075-0.225 0.15 0 0-0.075 0.075-0.15 0.075-0.075 0.075-0.225 0.15-0.375 0.3-0.15 0.075-0.3 0.15-0.375 0.225-0.15 0.075-0.3 0.15-0.375 0.3-0.525 0.375-1.05 0.75-1.575 1.2-0.45 0.375-0.9 0.825-1.275 1.275-0.45 0.45-0.9 0.975-1.275 1.5-0.375 0.45-0.75 0.975-1.05 1.5-0.375 0.6-0.75 1.2-0.975 1.8l-0.45 0.9c-0.075 0.15-0.15 0.3-0.15 0.45l-0.225 0.45c-0.15 0.6-0.375 1.125-0.525 1.8-0.15 0.6-0.3 1.275-0.45 1.95-0.075 0.6-0.15 1.275-0.15 1.95-0.075 0.375-0.075 0.675-0.075 0.975s0 0.6 0.075 0.975c0 0.6 0.075 1.275 0.15 1.95s0.225 1.275 0.375 1.95 0.375 1.275 0.6 1.875c0.075 0.15 0.15 0.3 0.15 0.45l0.225 0.45c0.075 0.3 0.225 0.6 0.375 0.9l0.225 0.45s0.15 0.225 0.225 0.375c0.15 0.3 0.3 0.6 0.45 0.825 0.375 0.6 0.75 1.125 1.125 1.65s0.825 0.975 1.275 1.425c0.15 0.225 0.375 0.45 0.6 0.675l0.3 0.3c0.15 0.15 0.3 0.225 0.375 0.375 0.225 0.225 0.525 0.375 0.75 0.6s0.525 0.375 0.75 0.6c0.525 0.3 0.975 0.675 1.5 0.975 0.6 0.3 1.2 0.675 1.8 0.9 0.6 0.3 1.2 0.525 1.875 0.75 0.6 0.225 1.2 0.375 1.875 0.525 0.3 0.15 0.675 0.15 1.05 0.225 0.3 0.075 0.6 0.15 0.9 0.15 0.375 0.075 0.675 0.075 0.975 0.15h0.45 0.45 2.025c0.3-0.075 0.675-0.075 0.975-0.15 0.3 0 0.6-0.075 0.975-0.075 0.6-0.15 1.275-0.3 1.875-0.45 0.375-0.15 0.675-0.225 0.975-0.3 0.15-0.075 0.375-0.15 0.525-0.225 0.15 0 0.3-0.075 0.45-0.15 0.3-0.15 0.6-0.225 0.9-0.375l0.9-0.45c0.6-0.3 1.125-0.6 1.65-0.975 0.3-0.15 0.525-0.375 0.825-0.525 0.075-0.075 0.225-0.225 0.375-0.3 0.075-0.075 0.225-0.225 0.375-0.3 0.45-0.375 0.975-0.825 1.425-1.275s0.825-0.9 1.275-1.35z"/>
9</g>
10</svg>
diff --git a/public/assets/tools/diaspora.png b/public/assets/tools/diaspora.png
new file mode 100644
index 0000000..7b23d5d
--- /dev/null
+++ b/public/assets/tools/diaspora.png
Binary files differ
diff --git a/public/assets/tools/dokuwiki.png b/public/assets/tools/dokuwiki.png
new file mode 100644
index 0000000..a1f4995
--- /dev/null
+++ b/public/assets/tools/dokuwiki.png
Binary files differ
diff --git a/public/assets/tools/etherpad.ico b/public/assets/tools/etherpad.ico
new file mode 100644
index 0000000..938e955
--- /dev/null
+++ b/public/assets/tools/etherpad.ico
Binary files differ
diff --git a/public/assets/tools/games_codenames.png b/public/assets/tools/games_codenames.png
new file mode 100644
index 0000000..0b2729e
--- /dev/null
+++ b/public/assets/tools/games_codenames.png
Binary files differ
diff --git a/public/assets/tools/games_terraforming_mars.ico b/public/assets/tools/games_terraforming_mars.ico
new file mode 100644
index 0000000..733acb2
--- /dev/null
+++ b/public/assets/tools/games_terraforming_mars.ico
Binary files differ
diff --git a/public/assets/tools/gitweb.png b/public/assets/tools/gitweb.png
new file mode 100644
index 0000000..4fa44bb
--- /dev/null
+++ b/public/assets/tools/gitweb.png
Binary files differ
diff --git a/public/assets/tools/grocy.png b/public/assets/tools/grocy.png
new file mode 100644
index 0000000..40be557
--- /dev/null
+++ b/public/assets/tools/grocy.png
Binary files differ
diff --git a/public/assets/tools/kanboard.png b/public/assets/tools/kanboard.png
new file mode 100644
index 0000000..51702e7
--- /dev/null
+++ b/public/assets/tools/kanboard.png
Binary files differ
diff --git a/public/assets/tools/mantisbt.png b/public/assets/tools/mantisbt.png
new file mode 100644
index 0000000..729e3ea
--- /dev/null
+++ b/public/assets/tools/mantisbt.png
Binary files differ
diff --git a/public/assets/tools/mastodon.png b/public/assets/tools/mastodon.png
new file mode 100644
index 0000000..b12aa55
--- /dev/null
+++ b/public/assets/tools/mastodon.png
Binary files differ
diff --git a/public/assets/tools/mgoblin.ico b/public/assets/tools/mgoblin.ico
new file mode 100644
index 0000000..ae5a1b1
--- /dev/null
+++ b/public/assets/tools/mgoblin.ico
Binary files differ
diff --git a/public/assets/tools/nextcloud.png b/public/assets/tools/nextcloud.png
new file mode 100644
index 0000000..6358068
--- /dev/null
+++ b/public/assets/tools/nextcloud.png
Binary files differ
diff --git a/public/assets/tools/peertube.png b/public/assets/tools/peertube.png
new file mode 100644
index 0000000..a42fce3
--- /dev/null
+++ b/public/assets/tools/peertube.png
Binary files differ
diff --git a/public/assets/tools/phpbb.ico b/public/assets/tools/phpbb.ico
new file mode 100644
index 0000000..bb61b89
--- /dev/null
+++ b/public/assets/tools/phpbb.ico
Binary files differ
diff --git a/public/assets/tools/rainloop.png b/public/assets/tools/rainloop.png
new file mode 100644
index 0000000..ce1dd1a
--- /dev/null
+++ b/public/assets/tools/rainloop.png
Binary files differ
diff --git a/public/assets/tools/rompr.png b/public/assets/tools/rompr.png
new file mode 100644
index 0000000..d7b63b1
--- /dev/null
+++ b/public/assets/tools/rompr.png
Binary files differ
diff --git a/public/assets/tools/roundcube.svg b/public/assets/tools/roundcube.svg
new file mode 100644
index 0000000..1f50dd8
--- /dev/null
+++ b/public/assets/tools/roundcube.svg
@@ -0,0 +1,15 @@
1<?xml version="1.0" encoding="utf-8"?>
2<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="9.14 141.8 573.65 573.65">
3<style type="text/css">
4.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#404F54;}
5.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#E5E5E5;}
6.st2{fill-rule:evenodd;clip-rule:evenodd;fill:#CCCCCC;}
7.st3{fill-rule:evenodd;clip-rule:evenodd;fill:#37BEFF;}
8</style>
9<polygon class="st3" points="582.79,549.77 295.96,384.1 295.96,207.27 582.79,372.95 "/>
10<polygon class="st0" points="9.14,549.77 295.96,384.1 295.96,207.27 9.14,372.95 "/>
11<path class="st2" d="M295.96,141.8c109.56,0,198.41,88.85,198.41,198.41c0,109.56-88.85,198.41-198.41,198.41 c-109.56,0-198.41-88.85-198.41-198.41C97.55,230.65,186.4,141.8,295.96,141.8"/>
12<path class="st1" d="M295.96,141.8c109.6,0,198.48,88.85,198.48,198.41c0,109.56-88.88,198.41-198.48,198.41 c-62.91-42.34-88.94-127.64-88.94-198.3S233.05,184.22,295.96,141.8"/>
13<polygon class="st3" points="582.79,372.95 295.96,538.62 295.96,715.45 582.79,549.77 "/>
14<polygon class="st0" points="9.14,372.95 295.96,538.62 295.96,715.45 9.14,549.77 "/>
15</svg>
diff --git a/public/assets/tools/shaarli.png b/public/assets/tools/shaarli.png
new file mode 100644
index 0000000..f29210c
--- /dev/null
+++ b/public/assets/tools/shaarli.png
Binary files differ
diff --git a/public/assets/tools/statusengine.png b/public/assets/tools/statusengine.png
new file mode 100644
index 0000000..97f05da
--- /dev/null
+++ b/public/assets/tools/statusengine.png
Binary files differ
diff --git a/public/assets/tools/ttrss.png b/public/assets/tools/ttrss.png
new file mode 100644
index 0000000..97437d2
--- /dev/null
+++ b/public/assets/tools/ttrss.png
Binary files differ
diff --git a/public/assets/tools/wallabag.svg b/public/assets/tools/wallabag.svg
new file mode 100644
index 0000000..7b87fed
--- /dev/null
+++ b/public/assets/tools/wallabag.svg
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path fill="none" d="M0 0h200v200H0z"/><path d="M75.899 72.438c1.597-.981 10.207-5.556 24.098.178 14.289 5.897 23.154.776 24.253.079-3.454-5.678-7.562-10.62-12.104-13.943.303-.083.612-.167.939-.263 6.023-1.742 7.553-6.842 7.875-11.21.364-4.954.616-5.03 1.692-9.487 1.032-4.281-.119-5.137-1.181-4.273-.572.465-5.552 1.616-8.505 3.919-4.768 3.72-7.707 10.794-9.039 14.706-.025.06-.205.604-.265.792-.621 1.498-1.857 1.494-1.857 1.494v.001c-.6-.065-1.202-.1-1.809-.1-.54 0-1.079.029-1.616.081-.012.002-.019 0-.031.001-1.581.233-2.45-1.697-2.632-2.157-1.847-5.304-6.816-15.763-17.984-18.577 0 0-2.028-1.554-1.41 1.074.588 2.511 1.804 5.049 1.534 8.741-.124 1.704-1.181 10.442 6.85 14.99.763.432 1.441.795 2.051 1.101-4.042 3.235-7.716 7.74-10.859 12.853zM128.626 152.353c-9.842-6.098-13.153-8.242-12.946-10.575 0 0 .002-.379.099-.957.239-1.236.995-3.348 3.407-4.552.079-.039.146-.084.208-.129 7.668-4.45 13.27-11.614 15.246-20.56-1.99 4.941-16.735 8.78-34.645 8.78-17.903 0-32.651-3.839-34.641-8.78.442 2.008 1.073 3.923 1.864 5.742.666 3.745 1.562 12.563-2.673 20.282-3.731 6.8-22.15 16.069-49.485 10.748 0 0-1.096-.766-1.428-.136-.491.932 1.517 1.685 3.583 2.229 19.031 5.04 47.756 2.989 56.777-4.443 4.116-3.388 5.704-7.953 6.107-12.865l.003.008s.11-1.287 1.719-.32c.461.277 2.125 1.36 2.39 2.585.232 1.743.248 3.883-.652 5.382-1.287 2.144-1.301 2.452.393 3.662 1.04.742 5.287 3.864 11.198 7.415.015.01.023.019.038.027 1.25.753 2.987 2.597 2.987 2.597 2.662 3.079 8.452 9.275 10.972 8.108 1.19-.551-.051-3.032-.051-3.032s1.98 2.571 3.043 1.694c.809-.668-.473-3.229-.473-3.229s1.729 1.499 2.757.944c1.258-.679-.187-4.614-10.079-10.627-9.896-6.018-12.578-6.94-12.814-9.626 0 0-.004-.135.004-.366.077-.593.414-1.847 1.852-1.712 2.141.346 4.348.531 6.608.531 2.587 0 5.107-.237 7.536-.69l.001.003s.127-.025.164-.031c.284-.036.838-.018.84.671-.09.873-.331 1.751-.845 2.519-1.447 2.168-.972 2.466.54 3.859.933.859 5.211 4.622 11.07 8.264.012.009.017.016.031.023 1.249.752 3.41 2.816 3.41 2.816v-.001c2.428 2.466 6.894 6.596 9.327 6.347 1.646-.168.306-3.002.306-3.002s2.078 2.006 3.099 1.416c1.142-.659-.474-2.755-.474-2.755s1.338.708 2.283.473c.948-.236 1.185-2.644-8.656-8.737z"/><path d="M117.631 83.452c-1.181 0-2.161.355-2.912 1.057-.76.71-1.144 1.531-1.144 2.438v16.056c0 2.154-.382 3.742-1.135 4.721-.728.946-1.892 1.406-3.556 1.406-1.703 0-2.863-.457-3.549-1.396-.716-.979-1.078-2.571-1.078-4.731V86.884c0-1.098-.5-1.996-1.448-2.596-1.289-.812-2.57-1.105-4.129-.587-.476.159-.924.366-1.333.615-.435.265-.802.597-1.093.985-.322.432-.486.901-.486 1.396v16.307c0 2.158-.363 3.75-1.079 4.73-.688.939-1.849 1.396-3.548 1.396-1.705 0-2.877-.459-3.584-1.401-.734-.979-1.107-2.57-1.107-4.726V86.947c0-.908-.384-1.728-1.145-2.438-.751-.702-1.751-1.057-2.973-1.057-1.258 0-2.296.352-3.085 1.045-.811.71-1.222 1.535-1.222 2.45v15.806c0 1.988.194 3.869.575 5.588.393 1.758 1.077 3.3 2.035 4.586.968 1.299 2.282 2.323 3.906 3.05 1.607.716 3.617 1.079 5.975 1.079 2.457 0 4.515-.455 6.115-1.354 1.342-.754 2.473-1.744 3.371-2.951.866 1.207 1.971 2.197 3.294 2.95 1.58.899 3.669 1.354 6.211 1.354 2.357 0 4.359-.364 5.947-1.081 1.601-.726 2.902-1.751 3.872-3.048.96-1.29 1.645-2.833 2.034-4.586.381-1.719.575-3.6.575-5.588V86.947c0-.911-.398-1.733-1.184-2.445-.767-.697-1.818-1.05-3.12-1.05z"/></svg>
diff --git a/public/config.yml b/public/config.yml
new file mode 100644
index 0000000..0b67af5
--- /dev/null
+++ b/public/config.yml
@@ -0,0 +1,343 @@
1---
2# Homepage configuration
3# See https://fontawesome.com/icons for icons options
4
5title: "Websites dashboard"
6subtitle: "Immae"
7footer: '<p>Created with <span class="has-text-danger">❤️</span> with <a href="https://bulma.io/">bulma</a>, <a href="https://vuejs.org/">vuejs</a> & <a href="https://fontawesome.com/">font awesome</a> // Fork me on <a href="https://github.com/bastienwirtz/homer"><i class="fab fa-github-alt"></i></a></p>' # set false if you want to hide it.
8
9# Optional navbar
10# links: [] # Allows for navbar (dark mode, layout, and search) without any links
11links:
12 - name: "status"
13 icon: "fas fa-desktop"
14 url: "https://status.immae.eu"
15 - name: "Change password"
16 url: "https://tools.immae.eu/ldap_password.php"
17 - name: "Get your IP"
18 url: "https://tools.immae.eu/myip.php"
19
20# Services
21# First level array represent a group.
22# Leave only a "items" key if not using group (group name, icon & tagstyle are optional, section separation will not be displayed).
23services:
24 - name: "Tools"
25 icon: "fas fa-tools"
26 items:
27 - name: "Nextcloud"
28 logo: "assets/tools/nextcloud.png"
29 url: "https://cloud.immae.eu"
30 links:
31 - url: "https://nextcloud.com/"
32 name: "Project page"
33 - name: "Etherpad"
34 logo: "assets/tools/etherpad.ico"
35 url: "https://ether.immae.eu"
36 links:
37 - url: "https://etherpad.org/"
38 name: "Project page"
39 - name: "Taskweb"
40 icon: "fas fa-tasks"
41 url: "https://task.immae.eu/taskweb"
42 links:
43 - url: "http://theunraveler.github.io/taskwarrior-web/"
44 name: "Project page"
45 - name: "Agenda"
46 icon: "fas fa-calendar-alt"
47 url: "https://dav.immae.eu/caldavzap"
48 links:
49 - url: "https://www.inf-it.com/open-source/clients/"
50 name: "CalDavZAP"
51 - name: "Contacts"
52 icon: "fas fa-address-book"
53 url: "https://dav.immae.eu/carddavmate"
54 links:
55 - url: "https://www.inf-it.com/open-source/clients/"
56 name: "CardDavMATE"
57 - name: "Kanboard"
58 logo: "assets/tools/kanboard.png"
59 url: "https://tools.immae.eu/kanboard"
60 links:
61 - url: "https://kanboard.org/"
62 name: "Project page"
63 - name: "Dokuwiki"
64 logo: "assets/tools/dokuwiki.png"
65 url: "https://tools.immae.eu/dokuwiki"
66 links:
67 - url: "https://www.dokuwiki.org/dokuwiki"
68 name: "Project page"
69 - name: "RompR (MPD)"
70 logo: "assets/tools/rompr.png"
71 url: "https://tools.immae.eu/rompr"
72 links:
73 - url: "https://fatg3erman.github.io/RompR/"
74 name: "Project page"
75 - name: "Ympd (MPD)"
76 icon: "far fa-play-circle"
77 url: "https://tools.immae.eu/mpd"
78 links:
79 - url: "https://www.ympd.org/"
80 name: "Project page"
81 - name: "Shaarli"
82 logo: "assets/tools/shaarli.png"
83 url: "https://tools.immae.eu/Shaarli"
84 links:
85 - url: "https://shaarli.readthedocs.io"
86 name: "Project page"
87 - name: "TT-RSS"
88 logo: "assets/tools/ttrss.png"
89 url: "https://tools.immae.eu/ttrss"
90 links:
91 - url: "https://tt-rss.org/"
92 name: "Project page"
93 - name: "Wallabag"
94 logo: "assets/tools/wallabag.svg"
95 url: "https://tools.immae.eu/wallabag"
96 links:
97 - url: "https://www.wallabag.it/en"
98 name: "Project page"
99 - name: "Grocy"
100 logo: "assets/tools/grocy.png"
101 url: "https://tools.immae.eu/grocy"
102 links:
103 - url: "https://grocy.info/"
104 name: "Project page"
105 - name: "BIP39"
106 icon: "fab fa-bitcoin"
107 url: "https://tools.immae.eu/BIP39"
108 links:
109 - url: "https://github.com/iancoleman/bip39"
110 name: "Source"
111 - name: "Status Engine"
112 logo: "assets/tools/statusengine.png"
113 url: "https://performance.immae.eu"
114 links:
115 - url: "https://statusengine.org/"
116 name: "Project page"
117 - name: "Social"
118 icon: "fas fa-users"
119 items:
120 - name: "Commento"
121 logo: "assets/tools/commento.svg"
122 url: "https://commento.immae.eu"
123 links:
124 - url: "https://www.commento.io/"
125 name: "Project page"
126 - name: "Diaspora"
127 logo: "assets/tools/diaspora.png"
128 url: "https://diaspora.immae.eu"
129 links:
130 - url: "https://diasporafoundation.org/"
131 name: "Project page"
132 - name: "Mastodon"
133 logo: "assets/tools/mastodon.png"
134 url: "https://mastodon.immae.eu"
135 links:
136 - url: "https://joinmastodon.org/"
137 name: "Project page"
138 - name: "PhpBB"
139 logo: "assets/tools/phpbb.ico"
140 url: "https://tools.immae.eu/forum"
141 links:
142 - url: "https://www.phpbb.com/"
143 name: "Project page"
144 - name: "Instant messaging (converse)"
145 icon: "fas fa-comment"
146 url: "https://im.immae.fr/converse"
147 links:
148 - url: "https://conversejs.org/"
149 name: "Project page"
150 - name: "Mail (roundcube)"
151 logo: "assets/tools/roundcube.svg"
152 url: "https://mail.immae.eu/roundcube"
153 links:
154 - url: "https://roundcube.net/"
155 name: "Project page"
156 - name: "Mail (rainloop)"
157 logo: "assets/tools/rainloop.png"
158 url: "https://mail.immae.eu/rainloop"
159 links:
160 - url: "http://www.rainloop.net/"
161 name: "Project page"
162 - name: "Video"
163 icon: "fas fa-video"
164 items:
165 - name: "Peertube"
166 logo: "assets/tools/peertube.png"
167 url: "https://peertube.immae.eu"
168 links:
169 - url: "https://joinpeertube.org/fr/"
170 name: "Project page"
171 - name: "Mediagoblin"
172 logo: "assets/tools/mgoblin.ico"
173 url: "https://mgoblin.immae.eu"
174 links:
175 - url: "https://mediagoblin.org/"
176 name: "Project page"
177 - name: "Games"
178 icon: "fas fa-gamepad"
179 items:
180 - name: "Codenames"
181 logo: "assets/tools/games_codenames.png"
182 url: "https://codenames.games.immae.eu/"
183 links:
184 - url: "https://github.com/jbowens/codenamesgreen"
185 name: "Source"
186 - name: "Terraforming mars"
187 logo: "assets/tools/games_terraforming_mars.ico"
188 url: "https://terraforming-mars.games.immae.eu/"
189 links:
190 - url: "https://github.com/bafolts/terraforming-mars"
191 name: "Source"
192 - name: "Development"
193 icon: "fas fa-code-branch"
194 items:
195 - name: "Gitweb"
196 logo: "assets/tools/gitweb.png"
197 url: "https://git.immae.eu"
198 links:
199 - url: "https://git-scm.com/"
200 name: "Project page"
201 - name: "Mantisbt"
202 logo: "assets/tools/mantisbt.png"
203 url: "https://git.immae.eu/mantisbt"
204 links:
205 - url: "https://mantisbt.org/"
206 name: "Project page"
207 - name: "Buildbot"
208 logo: "assets/tools/buildbot.svg"
209 url: "https://git.immae.eu/buildbot/immaeEu/"
210 links:
211 - url: "https://buildbot.net/"
212 name: "Project page"
213 - name: "Adminer"
214 logo: "assets/tools/adminer.png"
215 url: "https://tools.immae.eu/adminer"
216 links:
217 - url: "https://www.adminer.org/"
218 name: "Project page"
219 - name: "Release"
220 icon: "fas fa-running"
221 url: "https://release.immae.eu"
222 links:
223 - url: "https://oupala.github.io/apaxy/"
224 name: "Theme by Apaxy"
225 - name: "Immae"
226 icon: "fas fa-edit"
227 items:
228 - name: "Page principale"
229 icon: "fas fa-user"
230 url: "https://www.immae.eu"
231 links:
232 - url: "https://blog.getpelican.com/"
233 name: "Built with Pelican"
234 - name: "Historique infrastructure / Changelog"
235 icon: "fas fa-history"
236 url: "https://www.immae.eu/history"
237 links:
238 - url: "https://www.changelog.site/"
239 name: "Built with ChangeLog"
240 - name: "Atelier d’écriture"
241 icon: "fas fa-pen"
242 url: "https://www.immae.eu/atelier"
243 - name: "Blog"
244 icon: "fas fa-blog"
245 url: "https://www.immae.eu/blog"
246 links:
247 - url: "https://blog.getpelican.com/"
248 name: "Built with Pelican"
249 - name: "Recherche"
250 icon: "fas fa-search"
251 url: "https://www.immae.eu/recherche"
252 - name: "Cours"
253 icon: "fas fa-school"
254 url: "https://www.immae.eu/cours"
255 links:
256 - url: "https://melusine.eu.org/syracuse/immae/"
257 name: "Miroir (Mélusine)"
258 - name: "Recettes"
259 icon: "fas fa-utensils"
260 url: "https://www.immae.eu/recettes"
261 links:
262 - url: "https://jekyllrb.com/"
263 name: "Built with Jekyll"
264 - name: "Chapeaux de Hamming"
265 icon: "fas fa-hat-cowboy-side"
266 url: "https://www.immae.eu/chapeaux"
267 - name: "Configuration / System"
268 icon: "fas fa-cog"
269 items:
270 - name: "Instant messaging"
271 url: "https://im.immae.fr"
272 links:
273 - url: "https://www.ejabberd.im/"
274 name: "Ejabberd"
275 - name: "E-mail"
276 url: "https://mail.immae.eu"
277 links:
278 - url: "http://www.postfix.org/"
279 name: "Postfix"
280 - url: "https://www.dovecot.org/"
281 name: "Dovecot"
282 - url: "https://www.rspamd.com/"
283 name: "Rspamd"
284 - url: "http://www.opendkim.org/"
285 name: "OpenDKIM"
286 - url: "http://www.trusteddomain.org/opendmarc/"
287 name: "OpenDMARC"
288 - url: "https://github.com/trusteddomainproject/OpenARC"
289 name: "OpenARC"
290 - name: "Mailing-List"
291 url: "https://mail.immae.eu/sympa"
292 links:
293 - url: "https://www.sympa.org/"
294 name: "SYMPA"
295 - name: "VPN"
296 url: "https://vpn.immae.eu"
297 links:
298 - url: "https://tinc-vpn.org/"
299 name: "Tinc"
300 - name: "Taskwarrior"
301 url: "https://task.immae.eu"
302 links:
303 - url: "http://theunraveler.github.io/taskwarrior-web/"
304 name: "Project page"
305 - name: "Dav"
306 url: "https://dav.immae.eu"
307 - name: "Dav acount"
308 url: "https://dav.immae.eu/davical"
309 links:
310 - url: "https://www.davical.org/"
311 name: "Davical"
312 - name: "Paste"
313 url: "https://tools.immae.eu/paste"
314 links:
315 - url: "http://termbin.com/"
316 name: "Termbin"
317 - name: "LDAP"
318 url: "https://tools.immae.eu/ldap"
319 links:
320 - url: "http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page"
321 name: "phpLDAPAdmin"
322 - name: "Yourls"
323 url: "https://tools.immae.eu/url/admin/"
324 links:
325 - url: "http://yourls.org/"
326 name: "Project page"
327 - name: "Change password"
328 url: "https://tools.immae.eu/ldap_password.php"
329 links:
330 - url: "https://gist.github.com/mattrude/657334"
331 name: "Source"
332 - name: "temp.immae.eu"
333 url: "https://temp.immae.eu"
334 links:
335 - url: "https://git.cloudron.io/cloudron/surfer"
336 name: "Surfer"
337 - name: "DMARC report status"
338 url: "https://tools.immae.eu/dmarc-reports"
339 links:
340 - url: "https://git.immae.eu/?p=perso/Immae/Config/Nix.git;a=tree;f=modules/private/websites/tools/tools/dmarc_reports;hb=HEAD"
341 name: "Source code"
342 - url: "https://github.com/techsneeze/dmarcts-report-viewer"
343 name: "Inspiration work"
diff --git a/src/App.vue b/src/App.vue
index 17c3214..747d279 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -10,7 +10,7 @@
10 > 10 >
11 <DynamicTheme :themes="config.colors" /> 11 <DynamicTheme :themes="config.colors" />
12 <div id="bighead"> 12 <div id="bighead">
13 <section v-if="config.header" class="first-line"> 13 <section v-if="config.header" class="first-line is-hidden-touch">
14 <div v-cloak class="container"> 14 <div v-cloak class="container">
15 <div class="logo"> 15 <div class="logo">
16 <img v-if="config.logo" :src="config.logo" alt="dashboard logo" /> 16 <img v-if="config.logo" :src="config.logo" alt="dashboard logo" />
@@ -27,6 +27,8 @@
27 :open="showMenu" 27 :open="showMenu"
28 :links="config.links" 28 :links="config.links"
29 @navbar:toggle="showMenu = !showMenu" 29 @navbar:toggle="showMenu = !showMenu"
30 :navigateToFirstService="navigateToFirstService"
31 :filterServices="filterServices"
30 > 32 >
31 <DarkMode @updated="isDark = $event" /> 33 <DarkMode @updated="isDark = $event" />
32 34
@@ -36,14 +38,6 @@
36 icon="fa-list" 38 icon="fa-list"
37 iconAlt="fa-columns" 39 iconAlt="fa-columns"
38 /> 40 />
39
40 <SearchInput
41 class="navbar-item is-inline-block-mobile"
42 @input="filterServices"
43 @search:focus="showMenu = true"
44 @search:open="navigateToFirstService"
45 @search:cancel="filterServices"
46 />
47 </Navbar> 41 </Navbar>
48 </div> 42 </div>
49 43
@@ -68,7 +62,7 @@
68 v-for="item in group.items" 62 v-for="item in group.items"
69 :key="item.name" 63 :key="item.name"
70 v-bind:item="item" 64 v-bind:item="item"
71 :class="['column', `is-${12 / config.columns}`]" 65 class="column is-half-tablet is-one-third-widescreen is-half-desktop"
72 /> 66 />
73 </template> 67 </template>
74 </div> 68 </div>
@@ -79,7 +73,7 @@
79 class="columns is-multiline layout-vertical" 73 class="columns is-multiline layout-vertical"
80 > 74 >
81 <div 75 <div
82 :class="['column', `is-${12 / config.columns}`]" 76 class="column is-half-tablet is-one-third-widescreen is-half-desktop"
83 v-for="group in services" 77 v-for="group in services"
84 :key="group.name" 78 :key="group.name"
85 > 79 >
@@ -118,7 +112,6 @@ import Navbar from "./components/Navbar.vue";
118import ConnectivityChecker from "./components/ConnectivityChecker.vue"; 112import ConnectivityChecker from "./components/ConnectivityChecker.vue";
119import Service from "./components/Service.vue"; 113import Service from "./components/Service.vue";
120import Message from "./components/Message.vue"; 114import Message from "./components/Message.vue";
121import SearchInput from "./components/SearchInput.vue";
122import SettingToggle from "./components/SettingToggle.vue"; 115import SettingToggle from "./components/SettingToggle.vue";
123import DarkMode from "./components/DarkMode.vue"; 116import DarkMode from "./components/DarkMode.vue";
124import DynamicTheme from "./components/DynamicTheme.vue"; 117import DynamicTheme from "./components/DynamicTheme.vue";
@@ -132,7 +125,6 @@ export default {
132 ConnectivityChecker, 125 ConnectivityChecker,
133 Service, 126 Service,
134 Message, 127 Message,
135 SearchInput,
136 SettingToggle, 128 SettingToggle,
137 DarkMode, 129 DarkMode,
138 DynamicTheme, 130 DynamicTheme,
@@ -143,7 +135,7 @@ export default {
143 services: null, 135 services: null,
144 offline: false, 136 offline: false,
145 filter: "", 137 filter: "",
146 vlayout: true, 138 vlayout: false,
147 isDark: null, 139 isDark: null,
148 showMenu: false, 140 showMenu: false,
149 }; 141 };
diff --git a/src/assets/app.scss b/src/assets/app.scss
index ab067e6..2408d60 100644
--- a/src/assets/app.scss
+++ b/src/assets/app.scss
@@ -55,6 +55,23 @@ body {
55 } 55 }
56 } 56 }
57 57
58 .subcard {
59 background-color: var(--subcard-background);
60 color: var(--subcard-a);
61
62 a {
63 color: var(--subcard-a);
64 &:hover {
65 color: var(--subcard-a-hover);
66 }
67 }
68 }
69
70 a.card-arrow {
71 color: var(--subcard-a);
72 background-color: var(--subcard-background);
73 }
74
58 .footer { 75 .footer {
59 background-color: var(--card-background); 76 background-color: var(--card-background);
60 box-shadow: 0 2px 15px 0 var(--card-shadow); 77 box-shadow: 0 2px 15px 0 var(--card-shadow);
@@ -214,8 +231,7 @@ body {
214 } 231 }
215 } 232 }
216 233
217 .card { 234 .card, .card-arrow {
218 border-radius: 5px;
219 border: none; 235 border: none;
220 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1); 236 box-shadow: 0 2px 15px 0 rgba(0, 0, 0, 0.1);
221 transition: cubic-bezier(0.165, 0.84, 0.44, 1) 300ms; 237 transition: cubic-bezier(0.165, 0.84, 0.44, 1) 300ms;
@@ -225,6 +241,32 @@ body {
225 } 241 }
226 } 242 }
227 243
244 .card {
245 border-radius: 5px;
246 }
247
248 .card-arrow {
249 border-radius: 0px 5px 5px 0px;
250 }
251
252 .card-arrow.active {
253 border-radius: 0px 5px 0px 0px;
254 box-shadow: none;
255 }
256
257 .subcard {
258 border-radius: 0px 0px 5px 5px;
259 display: none;
260 list-style: disc inside;
261 padding: 0.8rem;
262 }
263 .subcard.active {
264 display: block;
265 }
266 .subcard a {
267 padding: 10px;
268 }
269
228 .card:hover { 270 .card:hover {
229 transform: translate(0, -3px); 271 transform: translate(0, -3px);
230 272
@@ -239,6 +281,14 @@ body {
239 } 281 }
240 } 282 }
241 283
284 .card-arrow {
285 height: 85px;
286 display: flex;
287 align-items: center;
288 float: right;
289 padding: 10px;
290 }
291
242 .card-content { 292 .card-content {
243 height: 85px; 293 height: 85px;
244 padding: 1.3rem; 294 padding: 1.3rem;
@@ -259,10 +309,6 @@ body {
259 } 309 }
260 310
261 .footer { 311 .footer {
262 position: fixed;
263 left: 0;
264 right: 0;
265 bottom: 0;
266 padding: 0.5rem; 312 padding: 0.5rem;
267 text-align: left; 313 text-align: left;
268 color: #676767; 314 color: #676767;
@@ -318,6 +364,16 @@ body {
318 } 364 }
319 } 365 }
320 366
367 .search-bar-mobile {
368 input {
369 margin-top: 10px;
370 margin-left: 10px;
371 }
372 .search-label::before {
373 top: 14px;
374 }
375 }
376
321 .offline-message { 377 .offline-message {
322 text-align: center; 378 text-align: center;
323 margin: 35px 0; 379 margin: 35px 0;
diff --git a/src/assets/defaults.yml b/src/assets/defaults.yml
index 99f5ed5..eaa345c 100644
--- a/src/assets/defaults.yml
+++ b/src/assets/defaults.yml
@@ -18,11 +18,14 @@ colors:
18 highlight-hover: "#5a95f5" 18 highlight-hover: "#5a95f5"
19 background: "#f5f5f5" 19 background: "#f5f5f5"
20 card-background: "#ffffff" 20 card-background: "#ffffff"
21 subcard-background: "#eeeeee"
21 text: "#363636" 22 text: "#363636"
22 text-header: "#ffffff" 23 text-header: "#ffffff"
23 text-title: "#303030" 24 text-title: "#303030"
24 text-subtitle: "#424242" 25 text-subtitle: "#424242"
25 card-shadow: rgba(0, 0, 0, 0.1) 26 card-shadow: rgba(0, 0, 0, 0.1)
27 subcard-a: "#363636"
28 subcard-a-hover: "#808080"
26 link-hover: "#363636" 29 link-hover: "#363636"
27 dark: 30 dark:
28 highlight-primary: "#3367d6" 31 highlight-primary: "#3367d6"
@@ -30,11 +33,14 @@ colors:
30 highlight-hover: "#5a95f5" 33 highlight-hover: "#5a95f5"
31 background: "#131313" 34 background: "#131313"
32 card-background: "#2b2b2b" 35 card-background: "#2b2b2b"
36 subcard-background: "#444444"
33 text: "#eaeaea" 37 text: "#eaeaea"
34 text-header: "#ffffff" 38 text-header: "#ffffff"
35 text-title: "#fafafa" 39 text-title: "#fafafa"
36 text-subtitle: "#f5f5f5" 40 text-subtitle: "#f5f5f5"
37 card-shadow: rgba(0, 0, 0, 0.4) 41 card-shadow: rgba(0, 0, 0, 0.4)
42 subcard-a: "#ffdd57"
43 subcard-a-hover: "#eaeaea"
38 link-hover: "#ffdd57" 44 link-hover: "#ffdd57"
39 45
40message: ~ 46message: ~
diff --git a/src/components/Navbar.vue b/src/components/Navbar.vue
index d3ceaf8..fd57156 100644
--- a/src/components/Navbar.vue
+++ b/src/components/Navbar.vue
@@ -3,6 +3,12 @@
3 <nav class="navbar" role="navigation" aria-label="main navigation"> 3 <nav class="navbar" role="navigation" aria-label="main navigation">
4 <div class="container"> 4 <div class="container">
5 <div class="navbar-brand"> 5 <div class="navbar-brand">
6 <SearchInput
7 class="search-bar search-bar-mobile is-hidden-desktop"
8 @input="filterServices"
9 @search:open="navigateToFirstService"
10 @search:cancel="filterServices"
11 />
6 <a 12 <a
7 role="button" 13 role="button"
8 aria-label="menu" 14 aria-label="menu"
@@ -36,6 +42,13 @@
36 </div> 42 </div>
37 <div class="navbar-end"> 43 <div class="navbar-end">
38 <slot></slot> 44 <slot></slot>
45
46 <SearchInput
47 class="navbar-item is-inline-block-mobile is-hidden-touch"
48 @input="filterServices"
49 @search:open="navigateToFirstService"
50 @search:cancel="filterServices"
51 />
39 </div> 52 </div>
40 </div> 53 </div>
41 </div> 54 </div>
@@ -44,14 +57,21 @@
44</template> 57</template>
45 58
46<script> 59<script>
60import SearchInput from "./SearchInput.vue";
61
47export default { 62export default {
48 name: "Navbar", 63 name: "Navbar",
64 components: {
65 SearchInput,
66 },
49 props: { 67 props: {
50 open: { 68 open: {
51 type: Boolean, 69 type: Boolean,
52 default: false, 70 default: false,
53 }, 71 },
54 links: Array, 72 links: Array,
73 navigateToFirstService: { type: Function },
74 filterServices: { type: Function },
55 }, 75 },
56 computed: { 76 computed: {
57 showMenu: function () { 77 showMenu: function () {
diff --git a/src/components/Service.vue b/src/components/Service.vue
index a2448ca..80bf019 100644
--- a/src/components/Service.vue
+++ b/src/components/Service.vue
@@ -1,7 +1,10 @@
1<template> 1<template>
2 <div> 2 <div>
3 <div class="card"> 3 <div class="card">
4 <a :href="item.url" :target="item.target" rel="noreferrer"> 4 <a class="card-arrow" v-bind:class="subcardClass" v-on:click="subCardActive = !subCardActive" v-if="item.links && item.links.length > 0">
5 <i style="font-size: 20px" class="fa fa-arrow-circle-down" v-bind:class="arrowClass"></i>
6 </a>
7 <a style="background-color: gray" :href="item.url" :target="item.target" rel="noreferrer">
5 <div class="card-content"> 8 <div class="card-content">
6 <div class="media"> 9 <div class="media">
7 <div v-if="item.logo" class="media-left"> 10 <div v-if="item.logo" class="media-left">
@@ -24,16 +27,46 @@
24 </div> 27 </div>
25 </div> 28 </div>
26 </a> 29 </a>
30 <ul class="subcard" v-bind:class="subcardClass">
31 <Subcard
32 v-for="link in item.links"
33 v-bind:link="link"
34 :key="link.url"
35 />
36 </ul>
27 </div> 37 </div>
28 </div> 38 </div>
29</template> 39</template>
30 40
31<script> 41<script>
42import Subcard from "./Subcard.vue";
43
32export default { 44export default {
33 name: "Service", 45 name: "Service",
46 components: {
47 Subcard,
48 },
34 props: { 49 props: {
35 item: Object, 50 item: Object,
36 }, 51 },
52 data: function() {
53 return {
54 subCardActive: false,
55 }
56 },
57 computed: {
58 arrowClass: function() {
59 return {
60 "fa-arrow-circle-down": !this.subCardActive,
61 "fa-arrow-circle-up": this.subCardActive
62 }
63 },
64 subcardClass: function() {
65 return {
66 active: this.subCardActive
67 }
68 }
69 }
37}; 70};
38</script> 71</script>
39 72
diff --git a/src/components/Subcard.vue b/src/components/Subcard.vue
new file mode 100644
index 0000000..808cd48
--- /dev/null
+++ b/src/components/Subcard.vue
@@ -0,0 +1,12 @@
1<template v-for="link in item.links">
2 <li><a :href="link.url">{{ link.name }}</a></li>
3</template>
4
5<script>
6export default {
7 name: "Subcard",
8 props: {
9 link: Object,
10 },
11};
12</script>