synapse-docker-bridges/MEDIA_MANAGEMENT.md

3.0 KiB

Cleanmedia Setup Guide

This guide will help you set up Cleanmedia for your Dendrite Matrix server. Cleanmedia is a data retention policy tool that helps manage media storage by implementing configurable retention policies for both remote and local media files.

Prerequisites

Before starting, ensure that:

  • Dendrite is properly configured and running.
  • You have the correct file paths for your media storage.
  • You understand which media files you want to retain/remove.

Configuration Options

You can customize Cleanmedia's behavior through environment variables in your docker-compose file:

CRON

The CRON variable determines when Cleanmedia will run its cleanup routine. Examples:

environment:
  - CRON=0 0 * * *    # Daily at midnight (default)
  - CRON=0 */6 * * *  # Every 6 hours
  - CRON=0 0 */2 * *  # Every 2 days at midnight
  - CRON=0 0 * * 0    # Weekly on Sunday at midnight
  - CRON=0 12 * * 1-5 # Weekdays at noon

CLEANMEDIA_OPTS

The CLEANMEDIA_OPTS variable controls how Cleanmedia performs its cleanup:

  • -c /etc/dendrite/dendrite.yaml: Path to your Dendrite configuration file. Leave it as is.
  • -t 30: Keep media for 30 days (adjust number as needed).
  • -l: Include local user media in cleanup (optional).
  • -n: Dry run mode - simulates cleanup without deleting files.
  • -d: Debug mode for more verbose output.

Example Configurations

  1. Conservative cleanup (90-day retention, remote media only):
environment:
  - CRON=0 0 * * *  # Daily at midnight
  - CLEANMEDIA_OPTS=-c /etc/dendrite/dendrite.yaml -t 90
  1. Aggressive cleanup (7-day retention, including local media):
environment:
  - CRON=0 */12 * * *  # Twice daily
  - CLEANMEDIA_OPTS=-c /etc/dendrite/dendrite.yaml -t 7 -l
  1. Test run (dry run with debug output):
environment:
  - CRON=0 0 * * *  # Daily at midnight
  - CLEANMEDIA_OPTS=-c /etc/dendrite/dendrite.yaml -t 30 -l -n -d

Important Notes

  • Always test new configurations with the -n (dry run) flag first.
  • Local media cleanup (-l flag) should be used with caution as files might not be retrievable after deletion.
  • User avatars are automatically preserved.
  • The service depends on the monolith service being available.
  • Volume mounts must match your Dendrite configuration.

Troubleshooting

  1. Missing Files

    • Verify volume mount paths match your Dendrite configuration.
    • Check file permissions in mounted directories.
    • Ensure Dendrite service is running properly.
  2. Service Won't Start

    • Check logs: docker compose logs cleanmedia.
    • Verify Dendrite configuration file path.
    • Ensure monolith service is running.
  3. Unexpected Deletions

    • Always test with -n flag first.
    • Review debug logs with -d flag.
    • Check retention period settings.

Next Steps

For more detailed information about Cleanmedia features and configuration options, visit the Cleanmedia documentation.

Proceed to set up the Whatsapp Bridge.