documentation/docs/db-maintenance.md

1.0 KiB

Database Information and Maintenance

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