From f9d4c0647ef2e0c12ff1936eb08201150fcfc176 Mon Sep 17 00:00:00 2001 From: Aykhan Shahsuvarov Date: Mon, 17 Mar 2025 23:26:08 +0400 Subject: [PATCH] add glance --- caddy/.env.example | 7 ++ caddy/Caddyfile | 20 ++++ glance/.env.example | 6 ++ glance/assets/gitea.svg | 1 + glance/assets/memos.webp | Bin 0 -> 25152 bytes glance/assets/seradar.png | Bin 0 -> 17137 bytes glance/assets/sftpgo.png | Bin 0 -> 14343 bytes glance/assets/slash.svg | 1 + glance/assets/user.css | 0 glance/assets/vaultwarden.svg | 5 + glance/assets/wireguard.png | Bin 0 -> 21947 bytes glance/config/glance.yml | 16 ++++ glance/config/home.yml | 176 ++++++++++++++++++++++++++++++++++ glance/docker-compose.yml | 21 ++++ main.sh | 19 ++++ 15 files changed, 272 insertions(+) create mode 100644 glance/.env.example create mode 100644 glance/assets/gitea.svg create mode 100644 glance/assets/memos.webp create mode 100644 glance/assets/seradar.png create mode 100644 glance/assets/sftpgo.png create mode 100644 glance/assets/slash.svg create mode 100644 glance/assets/user.css create mode 100644 glance/assets/vaultwarden.svg create mode 100644 glance/assets/wireguard.png create mode 100644 glance/config/glance.yml create mode 100644 glance/config/home.yml create mode 100644 glance/docker-compose.yml diff --git a/caddy/.env.example b/caddy/.env.example index 73a3528..d8e241a 100644 --- a/caddy/.env.example +++ b/caddy/.env.example @@ -25,3 +25,10 @@ VAULTWARDEN_KEY= ############# Sftpgo ############# SFTPGO_DOMAIN= + +############# Glance ############# +GLANCE_DOMAIN= +GLANCE_CRT= +GLANCE_KEY= +GLANCE_USERNAME= +GLANCE_PASSWORD= diff --git a/caddy/Caddyfile b/caddy/Caddyfile index e5b1f5e..84bab4a 100644 --- a/caddy/Caddyfile +++ b/caddy/Caddyfile @@ -96,6 +96,26 @@ } } +############## glance ############## +{$GLANCE_DOMAIN} { + tls /etc/ssl/custom/{$GLANCE_CRT} /etc/ssl/custom/{$GLANCE_KEY} + + basic_auth { + {$GLANCE_USERNAME} {$GLANCE_PASSWORD} + } + + request_body { + max_size 64MB + } + + reverse_proxy http://glance:8080 { + header_up X-Real-IP {http.request.header.Cf-Connecting-Ip} + header_up X-Forwarded-For {http.request.header.Cf-Connecting-Ip} + header_up X-Country-Code {http.request.header.Cf-Ipcountry} + header_up -CF-* + } +} + import Caddyfile.private diff --git a/glance/.env.example b/glance/.env.example new file mode 100644 index 0000000..9202ba9 --- /dev/null +++ b/glance/.env.example @@ -0,0 +1,6 @@ +# Variables defined here will be available to use anywhere in the config with the syntax ${MY_SECRET_TOKEN} +# Note: making changes to this file requires re-running docker compose up +MY_SECRET_TOKEN= +GITHUB_TOKEN= +MEMOS_TOKEN= +SERADAR_TOKEN= \ No newline at end of file diff --git a/glance/assets/gitea.svg b/glance/assets/gitea.svg new file mode 100644 index 0000000..7ed0012 --- /dev/null +++ b/glance/assets/gitea.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/glance/assets/memos.webp b/glance/assets/memos.webp new file mode 100644 index 0000000000000000000000000000000000000000..f654aae8acb9438aa69440ac323c0b3ba0f42e71 GIT binary patch literal 25152 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 literal 0 HcmV?d00001 diff --git a/glance/assets/slash.svg b/glance/assets/slash.svg new file mode 100644 index 0000000..321ec9d --- /dev/null +++ b/glance/assets/slash.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/glance/assets/user.css b/glance/assets/user.css new file mode 100644 index 0000000..e69de29 diff --git a/glance/assets/vaultwarden.svg b/glance/assets/vaultwarden.svg new file mode 100644 index 0000000..44362ef --- /dev/null +++ b/glance/assets/vaultwarden.svg @@ -0,0 +1,5 @@ + + Vaultwarden + + + diff --git a/glance/assets/wireguard.png b/glance/assets/wireguard.png new file mode 100644 index 0000000000000000000000000000000000000000..a0c17e87752cc0edb9aad6c442331e03f3691080 GIT binary patch literal 21947 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 f|MhhZ6`1{EeUWqFzjyxuL^AhY literal 0 HcmV?d00001 diff --git a/glance/config/glance.yml b/glance/config/glance.yml new file mode 100644 index 0000000..12bedce --- /dev/null +++ b/glance/config/glance.yml @@ -0,0 +1,16 @@ +server: + assets-path: /app/assets + +theme: + # Note: assets are cached by the browser, changes to the CSS file + # will not be reflected until the browser cache is cleared (Ctrl+F5) + custom-css-file: /assets/user.css + background-color: 240 13 14 + primary-color: 51 33 68 + negative-color: 358 100 68 + contrast-multiplier: 1.2 + +pages: + # It's not necessary to create a new file for each page and include it, you can simply + # put its contents here, though multiple pages are easier to manage when separated + !include: home.yml diff --git a/glance/config/home.yml b/glance/config/home.yml new file mode 100644 index 0000000..ab06038 --- /dev/null +++ b/glance/config/home.yml @@ -0,0 +1,176 @@ +- name: Home + # Optionally, if you only have a single page you can hide the desktop navigation for a cleaner look + # hide-desktop-navigation: true + columns: + - size: small + widgets: + - type: server-stats + servers: + - type: local + name: Services + + - type: monitor + cache: 1s + title: Services + sites: + - title: seradar.net + url: https://seradar.net/auth + icon: /assets/seradar.png + - title: git.aykhans.me + url: https://git.aykhans.me/aykhans + icon: /assets/gitea.svg + - title: ftp.aykhans.me + url: https://ftp.aykhans.me/web/client/login + icon: /assets/sftpgo.png + - title: mem.aykhans.me + url: https://mem.aykhans.me/explore + icon: /assets/memos.webp + - title: url.aykhans.me + url: https://url.aykhans.me/auth + icon: /assets/slash.svg + - title: vault.aykhans.me + url: https://vault.aykhans.me/#/login + icon: /assets/vaultwarden.svg + - title: wg.aykhans.me + url: https://wg.aykhans.me/ + icon: /assets/wireguard.png + + - type: docker-containers + cache: 0s + hide-by-default: false + + - type: releases + cache: 1d + collapse-after: 3 + # Without authentication the Github API allows for up to 60 requests per hour. You can create a + # read-only token from your Github account settings and use it here to increase the limit. + token: ${GITHUB_TOKEN} + repositories: + - caddyserver/caddy + - glanceapp/glance + - go-gitea/gitea + - drakkan/sftpgo + - usememos/memos + - yourselfhosted/slash + - dani-garcia/vaultwarden + - wg-easy/wg-easy + + - size: full + widgets: + - type: custom-api + title: Memos + cache: 6h + url: https://mem.aykhans.me/api/v1/memos/8ZU65KaQkWobmT8qfKqMyd + headers: + Accept: application/json + Authorization: Bearer ${MEMOS_TOKEN} + template: | + {{ if eq .Response.StatusCode 200 }} +
{{ .JSON.String "content" }}
+ {{ else }} +

Failed to fetch Memos data

+ {{ end }} + + - type: group + widgets: + - type: hacker-news + - type: lobsters + - type: reddit + title: REDDIT/SELFHOSTED + subreddit: selfhosted + show-thumbnails: true + + - type: rss + limit: 150 + collapse-after: 5 + cache: 1h + style: horizontal-cards + feeds: + - url: https://registerspill.thorstenball.com/feed + title: Thorsten Ball + - url: https://selfh.st/rss/ + title: selfh.st + + - type: custom-api + title: Seradar + cache: 6h + url: https://seradar.net/api/collections/series/records?page=1&perPage=1000&sort=-new_episodes + headers: + Accept: application/json + Authorization: ${SERADAR_TOKEN} + template: | + {{ if eq .Response.StatusCode 200 }} +
+
+ +
+
+ {{ else }} +

Failed to fetch seradar.net data

+ {{ end }} + + - size: small + widgets: + - type: calendar + first-day-of-week: monday + + - type: weather + location: Baku, Azerbaijan + units: metric # alternatively "imperial" + hour-format: 12h # alternatively "24h" + + - type: markets + markets: + - symbol: BTC-USD + name: Bitcoin + - symbol: DYDX-USD + name: DYDX + - symbol: FET-USD + name: FET + - symbol: SUI20947-USD + name: SUI diff --git a/glance/docker-compose.yml b/glance/docker-compose.yml new file mode 100644 index 0000000..f4043a1 --- /dev/null +++ b/glance/docker-compose.yml @@ -0,0 +1,21 @@ +networks: + glance: + external: false + caddy: + name: caddy + driver: bridge + external: true + +services: + glance: + image: glanceapp/glance:v0.7.7 + container_name: glance + restart: unless-stopped + networks: + - glance + - caddy + volumes: + - ./config:/app/config + - ./assets:/app/assets + - /var/run/docker.sock:/var/run/docker.sock:ro + env_file: .env diff --git a/main.sh b/main.sh index 33b3aae..d339c4a 100755 --- a/main.sh +++ b/main.sh @@ -59,6 +59,7 @@ generate_env_files() { cp --update=none ./vaultwarden/.env.example ./vaultwarden/.env cp --update=none ./wg_easy/.env.example ./wg_easy/.env cp --update=none ./caddy/.env.example ./caddy/.env + cp --update=none ./glance/.env.example ./glance/.env cp --update=none ./caddy/Caddyfile.private.example ./caddy/Caddyfile.private # cp --update=none ./memos/.env.example ./memos/.env # cp --update=none ./slash/.env.example ./slash/.env @@ -122,6 +123,15 @@ start_services() { exit 1 fi + echo "Starting glance..." + $DOCKER_COMPOSE_COMMAND -f ./glance/docker-compose.yml up -d + if [ $? -eq 0 ]; then + print_success "Glance started successfully." + else + print_error "failed to start Glance!" + exit 1 + fi + echo "Starting caddy..." $DOCKER_COMPOSE_COMMAND -f ./caddy/docker-compose.yml up -d if [ $? -eq 0 ]; then @@ -187,6 +197,15 @@ stop_services() { exit 1 fi + echo "Stopping glance..." + $DOCKER_COMPOSE_COMMAND -f ./glance/docker-compose.yml down + if [ $? -eq 0 ]; then + print_success "Glance stopped successfully." + else + print_error "failed to stop Glance!" + exit 1 + fi + echo "Stopping caddy..." $DOCKER_COMPOSE_COMMAND -f ./caddy/docker-compose.yml down if [ $? -eq 0 ]; then