summaryrefslogtreecommitdiff
path: root/content/yarr.md
blob: ecbf3d569a7d4dc42790ae60bf88b48a35f838ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
---
title: "Yarr"
date: 2022-07-01
icon: "yarr.svg"
tags: ["service"]
short_desc: "A self-hosted, web-based feed aggregator"
---

[Yarr](https://github.com/nkanaev/yarr) (yet another rss reader) is a web-based feed aggregator which can be used both as a desktop application and a personal self-hosted server.

It is written in Go with the frontend in Vue.js. The storage is backed by SQLite.

## Installing Yarr

Firstly, we have to download yarr binary from github on our system

```sh
wget https://github.com/nkanaev/yarr/releases/download/v2.3/yarr-v2.3-linux64.zip
```

Unzip the archive

```sh
unzip -x yarr-v2.3-linux64.zip
```

Move the binary to your bin folder

```sh
mv yarr /usr/local/bin/yarr
```

## Configuration

Now we need to create a `auth.conf` file that include user and password to create a local yarr account.
I personnaly store this file in a directory called yarr in `~/.config` folder, but you can place the file wherever you want.

```sh
mkdir ~/.config/yarr
echo 'sich:password' > ~/.config/yarr/auth.conf
```

## Creating a service

Create a new file /etc/systemd/system/yarr.service and add the following:

```systemd
[Unit]
Description=Yarr

[Service]
Environment=HOME=/home/sich
ExecStart=/usr/bin/env yarr -addr 0.0.0.0:7070 -auth-file=/home/sich/.config/yarr/auth.conf -db=/home/sich/.config/yarr/feed.sql -log-file=/home/sich/.config/yarr/access.log
Restart=on-failure

[Install]
WantedBy=multi-user.target
```

After creating the config, load, start and enable the service with the following commands.

```sh
systemctl daemon-reload
systemctl enable --now yarr
```

## Nginx configuration

Create an Nginx configuration file for Yarr, say /etc/nginx/sites-available/yarr and add the content below:

```nginx
server {
	listen 80 ;
	listen [::]:80 ;

	server_name rss.example.org ;

	location / {
		proxy_pass http://localhost:7070/;
	}
}
```

Now let's enable the Nginx Yarr site and reload Nginx to make it active.

```sh
ln -s /etc/nginx/sites-available/yarr /etc/nginx/sites-enabled
systemctl reload nginx
```

### Encryption

You can encrypt your yarr subdomain as well. Let's do that with certbot:

```sh
certbot --nginx -d rss.example.org
```

Now you can go to rss.example.org, login and start to add your feeds!

## Contribution

Author: Jppaled -- [jppaled.xyz](https://jppaled.xyz) \-- XMR: `86bVp8bcx1F3y3NsfuTRs6D7FfnDyLomV7dLJmus2YMiY9Aat6W5m8JGwuvH39HKrq3immS7noKq8HeW4gb4BFbyLoz5WSZ`{.crypto}