glance/README.md

114 lines
2.8 KiB
Markdown
Raw Normal View History

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>
<p align="center"><a href="#installation">Install</a><a href="docs/configuration.md">Configuration</a><a href="docs/themes.md">Themes</a></p>
![example homepage](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
2024-05-12 21:42:36 +02:00
* Repository overview
2024-04-27 21:10:24 +02:00
* Site monitor
#### 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
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 .
```
### Building Docker image
Build Glance with CGO disabled:
2024-05-12 21:45:57 +02:00
```bash
CGO_ENABLED=0 go build -o build/glance .
```
Build the image:
**Make sure to replace "owner" with your name or organization.**
2024-05-12 21:45:57 +02:00
```bash
docker build -t owner/glance:latest -f Dockerfile.single-platform .
```
Push the image to your registry:
2024-05-12 21:45:57 +02:00
```bash
docker push owner/glance:latest
```