diff --git a/Program_Licenses.md b/Program_Licenses.md
index 66fdb4c9e..aa7180ed6 100644
--- a/Program_Licenses.md
+++ b/Program_Licenses.md
@@ -151,6 +151,7 @@ The licenses of the open-source software that is contained in these Docker image
| SalmID| MIT | https://github.com/hcdenbakker/SalmID/blob/master/LICENSE |
| samclip | GNU GPLv3 | https://github.com/tseemann/samclip/blob/master/LICENSE |
| Samtools | GNU GPLv3 | https://github.com/samtools/samtools/blob/develop/LICENSE |
+| SeqFu | GNU GPLv3 | https://github.com/telatin/seqfu2 |
| SeqKit | MIT | https://github.com/shenwei356/seqkit/blob/master/LICENSE
| SeqSero | GNU GPLv2 | https://github.com/denglab/SeqSero/blob/master/LICENSE |
| SeqSero2 | GNU GPLv2 | https://github.com/denglab/SeqSero2/blob/master/LICENSE |
diff --git a/README.md b/README.md
index 664e4fa52..75b9cf911 100644
--- a/README.md
+++ b/README.md
@@ -257,6 +257,7 @@ To learn more about the docker pull rate limits and the open source software pro
| [SalmID](https://hub.docker.com/r/staphb/salmid)
[![docker pulls](https://badgen.net/docker/pulls/staphb/salmid)](https://hub.docker.com/r/staphb/salmid) |
| https://github.com/hcdenbakker/SalmID |
| [samclip](https://hub.docker.com/r/staphb/samclip)
[![docker pulls](https://badgen.net/docker/pulls/staphb/samclip)](https://hub.docker.com/r/staphb/samclip) | - [0.4.0](./samclip/0.4.0/)
| https://github.com/tseemann/samclip |
| [Samtools](https://hub.docker.com/r/staphb/samtools)
[![docker pulls](https://badgen.net/docker/pulls/staphb/samtools)](https://hub.docker.com/r/staphb/samtools) | - [1.9](./samtools/1.9/)
- [1.10](./samtools/1.10/)
- [1.11](./samtools/1.11/)
- [1.12](./samtools/1.12/)
- [1.13](./samtools/1.13/)
- [1.14](./samtools/1.14/)
- [1.15](./samtools/1.15/)
- [1.16](./samtools/1.16/)
- [1.16.1](./samtools/1.16.1/)
- [1.17](./samtools/1.17/)
- [1.17-2023-06](./samtools/1.17-2023-06/)
- [1.18](./samtools/1.18/)
- [1.19](./samtools/1.19/)
- [1.20](./samtools/1.20/)
- [1.20.c](./samtools/1.20.c/)
| https://github.com/samtools/samtools |
+| [SeqFu](https://hub.docker.com/r/staphb/SeqFu)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqfu)](https://hub.docker.com/r/staphb/seqfu) | - [1.20.3](./seqfu/1.20.3/)
| https://github.com/telatin/seqfu2 |
| [SeqKit](https://hub.docker.com/r/staphb/SeqKit)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqkit)](https://hub.docker.com/r/staphb/seqkit) | - [2.3.1](./seqkit/2.3.1/)
- [2.6.1](./seqkit/2.6.1/)
- [2.7.0](./seqkit/2.7.0/)
- [2.8.0](./seqkit/2.8.0/)
- [2.8.1](./seqkit/2.8.1/)
- [2.8.2](./seqkit/2.8.2/)
| https://github.com/shenwei356/seqkit |
| [SeqSero](https://hub.docker.com/r/staphb/seqsero/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero)](https://hub.docker.com/r/staphb/seqsero) | | https://github.com/denglab/SeqSero |
| [SeqSero2](https://hub.docker.com/r/staphb/seqsero2/)
[![docker pulls](https://badgen.net/docker/pulls/staphb/seqsero2)](https://hub.docker.com/r/staphb/seqsero2) | - [0.1.0](./seqsero2/0.1.0/)
- [1.0.0](./seqsero2/1.0.0/)
- [1.0.2](./seqsero2/1.0.2/)
- [1.1.0](./seqsero2/1.1.0/)
- [1.1.1](./seqsero2/1.1.1/)
- [1.2.1](./seqsero2/1.2.1/)
- [1.3.1](./seqsero2/1.3.1/)
| https://github.com/denglab/SeqSero2/ |
diff --git a/seqfu/1.20.3/Dockerfile b/seqfu/1.20.3/Dockerfile
new file mode 100644
index 000000000..06a56b5d7
--- /dev/null
+++ b/seqfu/1.20.3/Dockerfile
@@ -0,0 +1,90 @@
+# Set global variables
+ARG SEQFU_VER="1.20.3"
+ARG NIM_VER="1.22.2"
+
+# Stage 1: Build Dockerfile
+FROM ubuntu:focal AS builder
+ARG SEQFU_VER
+
+# Set non-interactive frontend and update PATH
+ENV DEBIAN_FRONTEND=noninteractive \
+ PATH="/root/.nimble/bin:${PATH}"
+
+# Install required dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ wget \
+ unzip \
+ build-essential \
+ zlib1g-dev \
+ curl \
+ python3 \
+ python3-pip \
+ git \
+ ca-certificates && \
+ rm -rf /var/lib/apt/lists/*
+
+# Set the working directory
+WORKDIR /root
+
+# Install Nim and SeqFu
+RUN curl https://nim-lang.org/choosenim/init.sh -sSf | sh -s -- -y --ver ${NIM_VER}
+
+# Install SeqFu
+RUN wget https://github.com/telatin/seqfu2/archive/refs/tags/v${SEQFU_VER}.tar.gz && \
+ tar -xzf v${SEQFU_VER}.tar.gz && \
+ rm v${SEQFU_VER}.tar.gz && \
+ cd seqfu2-${SEQFU_VER} && \
+ make
+
+# Stage 2: Create the final image
+FROM ubuntu:focal AS app
+ARG SEQFU_VER
+
+# Metadata
+LABEL base.image="ubuntu:focal"
+LABEL dockerfile.version="1"
+LABEL software="SeqFu"
+LABEL software.version="${SEQFU_VER}"
+LABEL description="A general-purpose program to manipulate and parse information from FASTA/FASTQ files, supporting gzipped input files."
+LABEL website="https://github.com/telatin/seqfu2"
+LABEL license.url="https://github.com/telatin/seqfu2?tab=GPL-3.0-1-ov-file#readme"
+LABEL maintainer="Taylor K. Paisie"
+LABEL maintainer.email="ltj8@cdc.gov"
+
+# Copy the necessary files from the builder
+COPY --from=builder /root/seqfu2-${SEQFU_VER}/bin /usr/local/bin
+
+# Install minimal runtime dependencies
+# curl is used in checking for the versions of dependencies
+RUN apt-get update && apt-get install -y --no-install-recommends \
+ curl \
+ ca-certificates \
+ wget && \
+ apt-get autoclean && rm -rf /var/lib/apt/lists/*
+
+ENV LC_ALL=C
+
+CMD seqfu --help
+
+# Stage 3: testing the installation
+FROM app AS test
+
+ARG SEQFU_VER
+
+# Verify installation
+RUN seqfu --version && seqfu --help
+
+WORKDIR /test
+
+# using dev supplied tests
+COPY --from=builder /root/seqfu2-${SEQFU_VER} /test
+
+# skipping test-check.sh because it throws an error on dev-supplied fastq files
+RUN mv test/test-check.sh test/test-check.sh_skip && \
+ bash test/mini.sh
+
+# testing on user-supplied files
+RUN wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz && \
+ wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz && \
+ seqfu check SRR13957123_1.fastq.gz SRR13957123_2.fastq.gz > seqfu_check_test.txt && \
+ seqfu count -f SRR13957123_1.fastq.gz -r SRR13957123_2.fastq.gz > seqfu_count_test.txt
diff --git a/seqfu/1.20.3/README.md b/seqfu/1.20.3/README.md
new file mode 100644
index 000000000..e8e7fbbb5
--- /dev/null
+++ b/seqfu/1.20.3/README.md
@@ -0,0 +1,52 @@
+# SeqFu
+
+Main tool: [SeqFu](https://github.com/telatin/seqfu2)
+
+Code repository: https://github.com/telatin/seqfu2
+
+Basic information on how to use this tool:
+- executable: |
+```
+ · count [cnt] : count FASTA/FASTQ reads, pair-end aware
+ · deinterleave [dei] : deinterleave FASTQ
+ · derep [der] : feature-rich dereplication of FASTA/FASTQ files
+ · interleave [ilv] : interleave FASTQ pair ends
+ · lanes [mrl] : merge Illumina lanes
+ · list [lst] : print sequences from a list of names
+ · metadata [met] : print a table of FASTQ reads (mapping files)
+ · sort [srt] : sort sequences by size (uniques)
+ · stats [st] : statistics on sequence lengths
+
+ · cat : concatenate FASTA/FASTQ files
+ · grep : select sequences with patterns
+ · head : print first sequences
+ · rc : reverse complement strings or files
+ · tab : tabulate reads to TSV (and viceversa)
+ · tail : view last sequences
+ · view : view sequences with colored quality and oligo matches
+```
+
+- help: `seqfu --help`
+- version: `seqfu --version`
+- description: |
+> A general-purpose program to manipulate and parse information from FASTA/FASTQ files, supporting gzipped input files.
+
+
+Full documentation: https://telatin.github.io/seqfu2/
+
+
+# Testing SeqFU analysis
+```
+wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_1.fastq.gz
+
+wget -q https://github.com/StaPH-B/docker-builds/raw/master/tests/SARS-CoV-2/SRR13957123_2.fastq.gz
+
+seqfu check \
+ SRR13957123_1.fastq.gz \
+ SRR13957123_2.fastq.gz
+
+seqfu count \
+ -f SRR13957123_1.fastq.gz \
+ -r SRR13957123_2.fastq.gz
+```
+