# yaml-language-server: $schema=https://schema.zeabur.app/template.json
apiVersion: zeabur.com/v1
kind: Template
metadata:
    name: Glance Dashboard
spec:
    description: A self-hosted dashboard that puts all your feeds in one place
    icon: https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/logo.png
    variables:
        - key: GLANCE_DOMAIN
          type: DOMAIN
          name: Dashboard Domain
          description: What domain do you want for your Glance dashboard?
        - key: TIMEZONE
          type: STRING
          name: Timezone
          description: Your timezone (e.g., America/New_York, Asia/Tokyo)
        - key: WEATHER_LOCATION
          type: STRING
          name: Weather Location
          description: Default weather location (e.g., "New York, USA")
    tags:
        - Dashboard
        - Self-hosted
        - RSS
        - Tools
    readme: |
        # Glance Dashboard

        A self-hosted dashboard that puts all your feeds in one place.

        ## Features

        - RSS Feed Aggregation
        - Calendar Widget
        - Weather Information
        - Customizable Widgets
        - Mobile Friendly

        ## Quick Start

        1. Deploy this template
        2. Access your dashboard via the provided URL
        3. Edit `/app/config/glance.yml` to customize
    services:
        - name: Glance
          icon: https://raw.githubusercontent.com/glanceapp/glance/refs/heads/main/docs/logo.png
          template: PREBUILT
          spec:
            source:
                image: glanceapp/glance:latest
            ports:
                - id: web
                  port: 8080
                  type: HTTP
            volumes:
                - id: config
                  dir: /app/config
            instructions:
                - title: Dashboard URL
                  content: ${ZEABUR_WEB_URL}
                - title: Configuration File
                  content: /app/config/glance.yml
            env:
                GLANCE_URL:
                    default: ${ZEABUR_WEB_URL}
                    expose: true
                PORT:
                    default: ${PORT}
                TZ:
                    default: ${TIMEZONE}
                    expose: false
                WEATHER_LOC:
                    default: ${WEATHER_LOCATION}
                    expose: false
            configs:
                - path: /app/config/glance.yml
                  template: |
                    pages:
                      - name: Home
                        columns:
                          - size: small
                            widgets:
                              - type: calendar
                                first-day-of-week: monday

                              - type: rss
                                limit: 10
                                collapse-after: 3
                                cache: 12h
                                feeds:
                                  - url: https://selfh.st/rss/
                                    title: selfh.st
                                    limit: 4
                                  - url: https://ciechanow.ski/atom.xml
                                  - url: https://www.joshwcomeau.com/rss.xml
                                    title: Josh Comeau
                                  - url: https://samwho.dev/rss.xml
                                  - url: https://ishadeed.com/feed.xml
                                    title: Ahmad Shadeed

                              - type: twitch-channels
                                channels:
                                  - theprimeagen
                                  - j_blow
                                  - piratesoftware
                                  - cohhcarnage
                                  - christitustech
                                  - EJ_SA

                          - size: full
                            widgets:
                              - type: group
                                widgets:
                                  - type: hacker-news
                                  - type: lobsters

                              - type: videos
                                channels:
                                  - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
                                  - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
                                  - UCsBjURrPoezykLs9EqgamOA # Fireship
                                  - UCBJycsmduvYEL83R_U4JriQ # Marques Brownlee
                                  - UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium

                              - type: group
                                widgets:
                                  - type: reddit
                                    subreddit: technology
                                    show-thumbnails: true
                                  - type: reddit
                                    subreddit: selfhosted
                                    show-thumbnails: true

                          - size: small
                            widgets:
                              - type: weather
                                location: London, United Kingdom
                                units: metric
                                hour-format: 12h

                              - type: markets
                                markets:
                                  - symbol: SPY
                                    name: S&P 500
                                  - symbol: BTC-USD
                                    name: Bitcoin
                                  - symbol: NVDA
                                    name: NVIDIA
                                  - symbol: AAPL
                                    name: Apple
                                  - symbol: MSFT
                                    name: Microsoft

                              - type: releases
                                cache: 1d
                                repositories:
                                  - glanceapp/glance
                                  - go-gitea/gitea
                                  - immich-app/immich
                                  - syncthing/syncthing
                  permission: null
                  envsubst: true
          domainKey: GLANCE_DOMAIN
