documentation/Database-Information-and-Ma...

1.2 KiB

title description published date tags editor dateCreated
Database-Information-and-Maintenance true 2021-05-23T16:58:27.530Z markdown 2021-01-28T20:39:18.631Z

Invidious needs one PostgreSQL database which has the following tables.

  • annotations Caches annotation data if cache_annotations is enabled in config.yml
  • channel_videos Stores truncated video info, used to create user feeds
  • channels Stores UCID and author name
  • nonces Keeps track of tokens issued to prevent CSRF
  • users Stores user info, such as preferences, username, subscriptions
  • session_ids Keeps track of user sessions
  • videos Stores video cache, used to create "top" page

The table videos grows a lot and needs the most storage. You can clean it up using following commands:

$ sudo -i -u postgres
$ psql invidious -c "DELETE FROM nonces * WHERE expire < current_timestamp"
$ psql invidious -c "TRUNCATE TABLE videos"
$ exit

For regular maintenance you should add a cronjob for these commands

@weekly psql invidious -c "DELETE FROM nonces * WHERE expire < current_timestamp" > /dev/null
@weekly psql invidious -c "TRUNCATE TABLE videos" > /dev/null