diff --git a/Dockerfile b/Dockerfile
index 2a2920cb70cf44c6cc280b8b03eb4c33b51cb862..92fe9d65bda95e6036fb4347f5228dc946e48c57 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM rust:1.72-buster as builder
+FROM rust:1.80-bookworm AS builder
 
 WORKDIR /app
 COPY Cargo.toml Cargo.lock askama.toml ./
@@ -7,7 +7,7 @@ COPY static ./static
 # Build binary in release mode.
 RUN cargo build --release --all-features
 
-FROM debian:bullseye-20230109-slim as base
+FROM debian:bookworm AS base
 
 WORKDIR /
 
@@ -22,7 +22,7 @@ COPY --from=builder /app/target/release/s3bot /usr/local/bin/
 
 ENTRYPOINT ["/usr/local/bin/s3bot"]
 
-FROM base as rootless
+FROM base AS rootless
 
 # Create a user and make the image rootless. So no one
 # can escalate privileges even if they have access to
diff --git a/src/bot/filters/message_fitlers.rs b/src/bot/filters/message_fitlers.rs
index 71140ad692805a4b0005a800f7a846272becfe3d..8cf8895e62c2269c708c1d3819b6cc6c1ad7ecbb 100644
--- a/src/bot/filters/message_fitlers.rs
+++ b/src/bot/filters/message_fitlers.rs
@@ -45,10 +45,6 @@ pub struct MessageDirectionFilter(pub MessageDirection);
 #[derive(Clone)]
 pub struct TextFilter<'a>(pub &'a [&'a str], pub TextMatchMethod);
 
-/// Filters text by predicate.
-#[derive(Clone)]
-pub struct ReverseTextFilter<'a>(pub &'a [&'a str], pub TextMatchMethod);
-
 #[derive(Clone)]
 pub struct NotFilter<T: Filter + Clone>(pub T);