summaryrefslogtreecommitdiff
path: root/FAQ.md
blob: 1f5a02670d5756c715263ad99e84f597d5146183 (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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
% FAQ

### I have a question about Docker

[Docker-related stuff has a separate FAQ page.](https://git.tt-rss.org/fox/ttrss-docker-compose/wiki)

-------------------

### I managed to lock myself out of tt-rss

This assumes you can't simply reset your password via email (login form - forgot my password).

If you have OTP (2FA) enabled and know your password but can't provide an OTP token, you can disable OTP via SQL:

```
UPDATE ttrss_users SET otp_enabled = false WHERE login = 'you'
```

If you don't remember your password run the following query:

```
UPDATE ttrss_users 
    SET pwd_hash = 'SHA1:5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', salt = '', otp_enabled = false
    WHERE login = 'you'
```

This sets your password back to default (``password``) and disables OTP.

### I have HTTP authentication enabled and get “Your access level is insufficient to run this script” error on login

The problem is that if you have auth\_remote enabled in config.php tt-rss tries to automatically log you in as the user specified by the server using HTTP authentication, which may not have administrative privileges. 

You will need to either temporarily disable auth\_remote (replace it with auth\_internal in config.php), temporarily disable HTTP authenticati on, or give yourself administrative permissions using SQL client:

```sql
    update ttrss_users set access_level = 10 where login = 'you';
```

-------------------

### UI is missing CSS or is otherwise visibly broken

- Try opening tt-rss using a clean browser profile or an incognito window (a different browser would also work)
- Unless you're using SSL, try a different network connection in case your ISP is MITMing you
- Some values of ``Content-Security-Policy`` header may break tt-rss, if you have this header set in your httpd config, try disabling it temporarily
- Check for any files in ``(tt-rss)/themes`` not known to Git (especially ``default.php`` or ``default.css`` - formerly default CSS themes for tt-rss, now removed), try temporarily removing all third party themes from ``themes.local``

See also:

- <https://discourse.tt-rss.org/t/no-css-loaded-on-main-page/1957/4>
- <https://discourse.tt-rss.org/t/drop-down-menus-have-text-not-arrows/1703/5>
- <https://discourse.tt-rss.org/t/drop-down-menus-have-text-not-arrows/1703/6>
- <https://discourse.tt-rss.org/t/panels-and-menu-messed-up/2208/3>
- <https://discourse.tt-rss.org/t/ttrss-not-rendering-properly-missing-css/2359/26>

### Third party theme or plugin broke after update making the UI unusable

Log in to tt-rss in safe mode (use an incognito window if you can't get to login page).

### I want to limit height of images to something more manageable

For combined mode:

```
body.ttrss_main .cdm .content img, body.ttrss_main .cdm .content video {
    max-height : 90vh;        
    height : auto;  
}

```

`90vh` means "90% of viewport height". This works on Chromium and derivatives, you can use `90%` for Firefox.

-------------------

### What should I use - MySQL or PostgreSQL?

tt-rss is developed with PostgreSQL in mind, MySQL support is an afterthought. 

If possible, consider using PostgreSQL for tt-rss. MySQL is supported but some minor features may be exclusive to Postgres and you're going to see worse performance (because InnoDB is slow).

#### MySQL/MariaDB is complaining about SQL errors in ``counters.php``

<https://community.tt-rss.org/t/troubleshoot-problems-updating-to-last-version-c0f689a58f/3344/7?u=fox>

### I want to migrate my data but I can't use a database dump

One common use case for this is moving from MySQL to PostgreSQL.

If you don't want to migrate your stored articles, export and import your feeds via OPML, which would also
migrate your tt-rss settings and filters.

If you want to migrate your articles, use this plugin: <https://git.tt-rss.org/fox/ttrss-data-migration/wiki>

### Schema upgrade fails on MySQL 5.7 (and newer)

Error message: <code>Invalid default value for 'last_updated'</code>

See this thread/post for instructions: <https://srv.tt-rss.org/oldforum/viewtopic.php@f=1&t=3871&p=22884.html#p22884>

-------------------

### Feeds stop updating for users who rarely login

This is controlled by `DAEMON_UPDATE_LOGIN_LIMIT` tunable, declared in [functions.php](https://git.tt-rss.org/fox/tt-rss/src/branch/master/include/functions.php#L61).

You can override (or disable) it through `config.php` (or a `config.d` snippet if using [Compose setup](https://git.tt-rss.org/fox/ttrss-docker-compose)):

```php
define('DAEMON_UPDATE_LOGIN_LIMIT', 0);
```

Note that this also effectively disables purging of articles stored for inactive users.

### I have questions about article purging / I don't think purging works.

Purging is performed on successful feed update, no updates = no purging.

Starred articles are never purged, unread articles are purged if relevant preference is enabled.

Purging is done based on import timestamp, internal to tt-rss. It may be different from article date specified by the feed (i.e. article says it was published on 1970/01/01 but it was imported today). You can see import timestamp if you hover over date in tt-rss web UI.

Import date is bumped every time article is encountered in the feed, otherwise it will get purged and reimported again on every feed refresh, creating duplicates.

When in doubt, use Feed debugger (`f D` on a feed) to see additional purging-related information:

```
[11:08:10/6783] purging feed...
[11:08:10/6783] purge_feed: interval 60 days for feed XXX, owner: X, purge unread: 1
[11:08:10/6783] purge_feed: deleted 1 articles.
[11:08:10/6783] update done.
```

See also: 

- <http://tt-rss.org/oldforum/viewtopic.php@f=1&t=792.html>
- https://community.tt-rss.org/t/issues-with-feed-purging/4117 

Related question:

### I archive or delete articles manually and I get duplicates. Why?

Because the articles are still in the feed XML and get pulled in (again) on next feed update.

See also: [ArchivedFeed](ArchivedFeed)

### I have used update daemon before, but switched away from it. However, the UI keeps nagging me about the daemon not running or not updating feeds or whatever.

Find and delete daemon lock file in <code>LOCK\_DIRECTORY</code>. Usually, it’s <code>lock/update\_daemon.lock</code>. You can also remove <code>update\_daemon.stamp</code>.

-------------------

### I need an URL I can call to subscribe to feed to integrate with some third party browser extension/application.

<code>https://example.com/tt-rss/public.php?op=bookmarklets\-\-subscribe&feed\_url=%s</code>

If feed URL is empty (or not given) tt-rss will display feed subscription dialog.

### I want to check how tt-rss renders my feed / the feed I'm trying to use is parsed incorrectly

You can run any RSS/Atom feed through tt-rss parser [here](https://tt-rss.org/myfeedsucks/).

See this thread for more information / feedback: <https://community.tt-rss.org/t/my-feed-doesnt-parse-properly-or-does-it-myfeedsucks/30>

### I need to get the number of unread articles in the simplest way.

<code>https://example.com/tt-rss/backend.php?op=getUnread&login=LOGIN</code>

No password required. In single user mode, use “admin” for login.