Add Docker installation and usage instructions
This commit is contained in:
parent
dd69741c0a
commit
52fb1dc3de
68
README.md
68
README.md
@ -17,6 +17,38 @@ Cleanmedia helps manage media storage on Dendrite servers by implementing config
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
|
### Using Docker (Recommended)
|
||||||
|
|
||||||
|
The easiest way to run Cleanmedia is using Docker. You can either use it as a standalone container or integrate it with your docker-compose.yml:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
cleanmedia:
|
||||||
|
hostname: cleanmedia
|
||||||
|
image: rogsme/cleanmedia
|
||||||
|
volumes:
|
||||||
|
- /your/dendrite/config/location:/etc/dendrite
|
||||||
|
- /your/dendrite/media/location:/var/dendrite/media
|
||||||
|
environment:
|
||||||
|
- CRON=0 0 * * * # Run daily at midnight
|
||||||
|
- CLEANMEDIA_OPTS=-c /etc/dendrite/dendrite.yaml -t 30 -l # 30 day retention, include local files
|
||||||
|
depends_on:
|
||||||
|
- monolith
|
||||||
|
```
|
||||||
|
⚠ **MAKE SURE YOUR MOUNTPOINTS CORRESPOND TO THE MOUNTPOINTS OF YOUR DENDRITE DOCKER INSTALLATION!**
|
||||||
|
|
||||||
|
#### Environment Variables
|
||||||
|
|
||||||
|
- `CRON`: Cron schedule expression (default: `0 0 * * *` - daily at midnight)
|
||||||
|
- `CLEANMEDIA_OPTS`: Command line options for cleanmedia (default: `-c /etc/dendrite/dendrite.yaml -t 30 -n -l`)
|
||||||
|
|
||||||
|
#### Docker Volume Mounts
|
||||||
|
|
||||||
|
- `/etc/dendrite`: Dendrite configuration directory
|
||||||
|
- `/var/dendrite/media`: Dendrite media storage directory
|
||||||
|
|
||||||
|
### Manual Installation
|
||||||
|
|
||||||
Cleanmedia uses Poetry for dependency management. To install:
|
Cleanmedia uses Poetry for dependency management. To install:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -27,7 +59,7 @@ pip install poetry
|
|||||||
poetry install
|
poetry install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Requirements
|
#### Requirements
|
||||||
|
|
||||||
- Python >= 3.9
|
- Python >= 3.9
|
||||||
- Poetry for dependency management
|
- Poetry for dependency management
|
||||||
@ -38,15 +70,6 @@ poetry install
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Check the command line options with `--help`. The main functionality requires:
|
|
||||||
1. A Dendrite configuration file (to locate the media directory and PostgreSQL credentials)
|
|
||||||
2. Optionally, the number of days to retain remote media
|
|
||||||
3. Additional flags to control behavior
|
|
||||||
|
|
||||||
```bash
|
|
||||||
poetry run python cleanmedia.py --help
|
|
||||||
```
|
|
||||||
|
|
||||||
### Command Line Options
|
### Command Line Options
|
||||||
|
|
||||||
- `-c`, `--config`: Path to dendrite.yaml config file (default: config.yaml)
|
- `-c`, `--config`: Path to dendrite.yaml config file (default: config.yaml)
|
||||||
@ -58,6 +81,31 @@ poetry run python cleanmedia.py --help
|
|||||||
- `-q`, `--quiet`: Reduce output verbosity
|
- `-q`, `--quiet`: Reduce output verbosity
|
||||||
- `-d`, `--debug`: Increase output verbosity
|
- `-d`, `--debug`: Increase output verbosity
|
||||||
|
|
||||||
|
### Docker Usage Examples
|
||||||
|
|
||||||
|
1. Run with default settings (daily cleanup, 30-day retention):
|
||||||
|
```bash
|
||||||
|
docker compose up -d cleanmedia
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Run with custom schedule and options:
|
||||||
|
```yaml
|
||||||
|
environment:
|
||||||
|
- CRON=0 */6 * * * # Run every 6 hours
|
||||||
|
- CLEANMEDIA_OPTS=-c /etc/dendrite/dendrite.yaml -t 14 -l -d # 14 day retention with debug logging
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Run a one-off cleanup:
|
||||||
|
```bash
|
||||||
|
docker compose run --rm cleanmedia python cleanmedia.py -c /etc/dendrite/dendrite.yaml -t 1 -l -d -n
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manual Usage
|
||||||
|
|
||||||
|
```bash
|
||||||
|
poetry run python cleanmedia.py --help
|
||||||
|
```
|
||||||
|
|
||||||
### How it Works
|
### How it Works
|
||||||
|
|
||||||
#### Remote Media Purge (Default)
|
#### Remote Media Purge (Default)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user