Feat/glanceapp (#3501)

* feat: glance app

* refactor(glance): make sure data directory exists

* refactor(glance): create an empty config file so docker doesnt make a directory

* refactor(glance): add a preconfigured page

* refactor(glance): add the tipi main network to the compose file
This commit is contained in:
Stavros 2024-05-17 22:44:44 +03:00 committed by GitHub
parent 5c1b52a5e2
commit a7006ca29e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 175 additions and 0 deletions

18
apps/glance/config.json Normal file
View File

@ -0,0 +1,18 @@
{
"$schema": "../schema.json",
"name": "Glance",
"port": 8568,
"available": true,
"exposable": true,
"id": "glance",
"tipi_version": 1,
"version": "v0.4.0",
"categories": ["utilities"],
"description": "A self-hosted dashboard that puts all your feeds in one place",
"short_desc": "Super configurable dashboard",
"author": "glanceapp",
"source": "https://github.com/glanceapp/glance",
"form_fields": [],
"supported_architectures": ["arm64", "amd64"],
"dynamic_config": true
}

View File

@ -0,0 +1,65 @@
pages:
- name: Home
columns:
- size: small
widgets:
- type: calendar
- type: rss
limit: 10
collapse-after: 3
cache: 3h
feeds:
- url: https://ciechanow.ski/atom.xml
- url: https://www.joshwcomeau.com/rss.xml
title: Josh Comeau
- url: https://samwho.dev/rss.xml
- url: https://awesomekling.github.io/feed.xml
- url: https://ishadeed.com/feed.xml
title: Ahmad Shadeed
- type: twitch-channels
channels:
- theprimeagen
- cohhcarnage
- christitustech
- blurbs
- asmongold
- jembawls
- size: full
widgets:
- type: hacker-news
- type: videos
channels:
- UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
- UCv6J_jJa8GJqFwQNgNrMuww # ServeTheHome
- UCOk-gHyjcWZNj3Br4oxwh0A # Techno Tim
- type: reddit
subreddit: selfhosted
- size: small
widgets:
- type: weather
location: London, United Kingdom
- type: stocks
stocks:
- symbol: SPY
name: S&P 500
- symbol: BTC-USD
name: Bitcoin
- symbol: NVDA
name: NVIDIA
- symbol: AAPL
name: Apple
- symbol: MSFT
name: Microsoft
- symbol: GOOGL
name: Google
- symbol: AMD
name: AMD
- symbol: RDDT
name: Reddit

View File

@ -0,0 +1,13 @@
{
"openPort": true,
"image": "glanceapp/glance:v0.4.0",
"name": "glance",
"internalPort": "8080",
"isMain": true,
"volumes": [
{
"hostPath": "${APP_DATA_DIR}/data/glance.yml",
"containerPath": "/app/glance.yml"
}
]
}

View File

@ -0,0 +1,39 @@
version: "3.9"
services:
glance:
image: glanceapp/glance:v0.4.0
restart: unless-stopped
container_name: glance
ports:
- ${APP_PORT}:8080
volumes:
- ${APP_DATA_DIR}/data/glance.yml:/app/glance.yml
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.glance-web-redirect.redirectscheme.scheme: https
traefik.http.services.glance.loadbalancer.server.port: 8080
# Web
traefik.http.routers.glance-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.glance-insecure.entrypoints: web
traefik.http.routers.glance-insecure.service: glance
traefik.http.routers.glance-insecure.middlewares: glance-web-redirect
# Websecure
traefik.http.routers.glance.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.glance.entrypoints: websecure
traefik.http.routers.glance.service: glance
traefik.http.routers.glance.tls.certresolver: myresolver
# Local domain
traefik.http.routers.glance-local-insecure.rule: Host(`glance.${LOCAL_DOMAIN}`)
traefik.http.routers.glance-local-insecure.entrypoints: web
traefik.http.routers.glance-local-insecure.service: glance
traefik.http.routers.glance-local-insecure.middlewares: glance-web-redirect
# Local domain secure
traefik.http.routers.glance-local.rule: Host(`glance.${LOCAL_DOMAIN}`)
traefik.http.routers.glance-local.entrypoints: websecure
traefik.http.routers.glance-local.service: glance
traefik.http.routers.glance-local.tls: true

View File

@ -0,0 +1,40 @@
<p align="center"><em>What if you could see everything at a...</em></p>
<h1 align="center">Glance</h1>
![example homepage](https://raw.githubusercontent.com/glanceapp/glance/main/docs/images/readme-main-image.png)
### Features
#### Various widgets
- RSS feeds
- Subreddit posts
- Weather
- Bookmarks
- Latest YouTube videos from specific channels
- Calendar
- Stocks
- iframe
- Twitch channels & top games
- GitHub releases
- Repository overview
- Site monitor
#### Themeable
![multiple color schemes example](https://raw.githubusercontent.com/glanceapp/glance/main/docs/images/themes-example.png)
#### Optimized for mobile devices
![mobile device previews](https://raw.githubusercontent.com/glanceapp/glance/main/docs/images/mobile-preview.png)
#### Fast and lightweight
- Minimal JS, no bloated frameworks
- Very few dependencies
- Single, easily distributed <15mb binary and just as small docker container
- All requests are parallelized, uncached pages usually load within ~1s (depending on internet speed and number of widgets)
### Configuration
Checkout the [configuration docs](docs/configuration.md) to learn more. A [preconfigured page](docs/configuration.md#preconfigured-page) is also available to get you started quickly.

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB