2024-04-27 21:10:24 +02:00
< p align = "center" > < em > What if you could see everything at a...< / em > < / p >
< h1 align = "center" > Glance< / h1 >
2024-09-08 02:13:26 +02:00
< p align = "center" > < a href = "#installation" > Install< / a > • < a href = "docs/configuration.md" > Configuration< / a > • < a href = "docs/preconfigured-pages.md" > Preconfigured pages< / a > • < a href = "docs/themes.md" > Themes< / a > • < a href = "https://discord.com/invite/7KQ7Xa9kJd" > Discord< / a > < / p >
2024-04-27 21:10:24 +02:00
![example homepage ](docs/images/readme-main-image.png )
### Features
#### Various widgets
* RSS feeds
* Subreddit posts
* Weather
* Bookmarks
2024-06-02 21:14:35 +02:00
* Hacker News
* Lobsters
2024-04-27 21:10:24 +02:00
* Latest YouTube videos from specific channels
2024-05-18 21:40:33 +02:00
* Clock
2024-04-27 21:10:24 +02:00
* Calendar
* Stocks
* iframe
* Twitch channels & top games
* GitHub releases
2024-05-12 21:42:36 +02:00
* Repository overview
2024-04-27 21:10:24 +02:00
* Site monitor
2024-05-16 02:04:08 +02:00
* Search box
2024-04-27 21:10:24 +02:00
#### Themeable
![multiple color schemes example ](docs/images/themes-example.png )
#### Optimized for mobile devices
![mobile device previews ](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.
### Installation
> [!CAUTION]
>
> The project is under active development, expect things to break every once in a while.
#### Manual
Checkout the [releases page ](https://github.com/glanceapp/glance/releases ) for available binaries. You can place the binary inside `/opt/glance/` and have it start with your server via a [systemd service ](https://linuxhandbook.com/create-systemd-services/ ). To specify a different path for the config file use the `--config` option:
2024-05-12 21:45:57 +02:00
```bash
2024-04-27 21:10:24 +02:00
/opt/glance/glance --config /etc/glance.yml
```
#### Docker
> [!IMPORTANT]
>
2024-05-06 17:52:56 +02:00
> Make sure you have a valid `glance.yml` file in the same directory before running the container.
2024-04-27 21:10:24 +02:00
2024-05-12 21:45:57 +02:00
```bash
2024-04-27 21:10:24 +02:00
docker run -d -p 8080:8080 \
-v ./glance.yml:/app/glance.yml \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
glanceapp/glance
```
Or if you prefer docker compose:
```yaml
services:
glance:
image: glanceapp/glance
volumes:
- ./glance.yml:/app/glance.yml
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 8080:8080
restart: unless-stopped
```
### Building from source
Requirements: [Go ](https://go.dev/dl/ ) >= v1.22
To build:
2024-05-12 21:45:57 +02:00
```bash
2024-05-12 21:33:36 +02:00
go build -o build/glance .
2024-04-27 21:10:24 +02:00
```
To run:
2024-05-12 21:45:57 +02:00
```bash
2024-04-27 21:10:24 +02:00
go run .
```
2024-05-12 21:33:36 +02:00
### Building Docker image
Build the image:
**Make sure to replace "owner" with your name or organization.**
2024-05-12 21:45:57 +02:00
```bash
2024-08-07 19:50:06 +02:00
docker build -t owner/glance:latest .
2024-05-12 21:33:36 +02:00
```
Push the image to your registry:
2024-05-12 21:45:57 +02:00
```bash
2024-05-12 21:33:36 +02:00
docker push owner/glance:latest
```