diff --git a/docs/howtos.rst b/docs/howtos.rst
index 102f6ef..4cc50a6 100644
--- a/docs/howtos.rst
+++ b/docs/howtos.rst
@@ -117,12 +117,9 @@
 Generate NDN testbed topology
 ___________________________________________
 
-Run the following install.sh command
-
-::
-
-    python3 util/testbed_topo_generator.py
-
-This will place a "testbed.conf" file in the topologies subdirectory,
-where it can be referenced as desired. To update the topology, simply
-rerun this command.
\ No newline at end of file
+Visit the  `NDN Play testbed <https://play.ndn.today/?testbed=1>`_
+page and utilize the `MiniNDN Config` button after setting loss
+and latency parameters. This will export an up to date topology
+modeled on the testbed. We also provide a topology at
+`topologies/testbed.conf`, which is based on a sample from 2020
+which has latencies based on measurements from that configuration.
\ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index afc5d11..18ae23e 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -18,6 +18,7 @@
    faq
    hackathon
    videos
+   authors
 
 Helpful Links
 -------------
diff --git a/docs/install.rst b/docs/install.rst
index d9511de..1ff8399 100644
--- a/docs/install.rst
+++ b/docs/install.rst
@@ -4,15 +4,51 @@
 Prerequisites
 -------------
 
-Mini-NDN is tested on the following Linux distributions:
+Mini-NDN is officially supported on the following Linux distributions:
 
-- Ubuntu 20.04 (recommended)
-- Ubuntu 22.04
+- Ubuntu 20.04
+- Ubuntu 22.04 (recommended)
+- Ubuntu 24.04
 - Debian 11 (WiFi scenario does not work)
 - Fedora 33 (WiFi scenario does not work)
 
 You must have sudo privileges to install and run Mini-NDN.
 
+Using Docker
+------------
+
+You can use the nightly build from GitHub package registry
+::
+    docker run -m 4g --cpus=4 -it --privileged \
+            -v /lib/modules:/lib/modules \
+            ghcr.io/named-data/mini-ndn:master bash
+
+NOTE: This nightly build is only currently supported for x86_64. ARM64 support
+(i.e. Apple silicon Macs) will be added in the future.
+
+Building your own Docker image
+------------------------------
+
+The provided Dockerfile can be used to build an image from scratch. To build with the Dockerfile:
+  - Clone the repository and type::
+
+        docker build -t minindn .
+
+  - You can then access the container through shell with::
+
+        docker run -m 4g --cpus=4 -it --privileged \
+            -v /lib/modules:/lib/modules \
+            minindn bin/bash
+
+Additional recommendations
+--------------------------
+- It is recommended to set reasonable constraints on memory (`-m`) and CPU cores (`--cpus`), especially on less
+  powerful or non-dedicated systems.
+- `--privileged` is mandatory for underlying `Mininet <http://mininet.org/>`_ to utilize the virtual switch
+- The root directory on `run` is `/mini-ndn`, which contains the installation and examples.
+- The GUI may not work for now due to docker and xterm setup issues and is independent from Mini-NDN.
+  If you intend to run the GUI, pass `-e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix` to the `docker run` command.
+
 Using Vagrantfile
 -----------------
 
@@ -26,8 +62,8 @@
 
 Mini-NDN has the following dependencies:
 
-- `NDN Forwarding Daemon (NFD) <https://named-data.net/doc/NFD/>`_
-- `Named Data Link State Routing (NLSR) <https://named-data.net/doc/NLSR/>`_
+- `NDN Forwarding Daemon (NFD) <https://docs.named-data.net/NFD/current/>`_
+- `Named Data Link State Routing (NLSR) <https://docs.named-data.net/NLSR/current/>`_
 - `NDN Essential Tools (ndn-tools) <https://github.com/named-data/ndn-tools>`_
 - `NDN Traffic Generator <https://github.com/named-data/ndn-traffic-generator>`_
 - `infoedit <https://github.com/NDN-Routing/infoedit>`_
@@ -48,13 +84,6 @@
   This shortens installation time by downloading binary packages, but is only available on Ubuntu.
 - ``--source`` prefers installing NDN software from source code.
 - ``--use-existing`` will only install dependencies not already in the executable path.
-
-IMPORTANT: For now, Mininet-WiFi only works with ``--source`` installation because the current NFD release (0.7.1) doesn't
-incorporate `issue 5155 <https://redmine.named-data.net/issues/5155>`, a required patch for WiFi module to work properly.
-With the next NFD release, Mininet-WiFi will work with both ``source`` and ``ppa``. Alternatively, you can
-checkout (at your own risk) a third-party source "`Use NFD nightly with Mini-NDN <https://yoursunny.com/t/2021/NFD-nightly-minindn/>`", which provides
-NFD-nightly version and contains all the necessary patches. 
-
 - ``--dummy-keychain`` patches ndn-cxx to use an in-memory dummy KeyChain, which reduces CPU overhead
   and allows you to scale up Mini-NDN experiments. Large Mini-NDN experiments would run significantly
   faster after applying this patch. However, your experiments cannot use any NDN security related
@@ -80,7 +109,7 @@
 Installing Dependencies
 -----------------------
 
-This section outlines how to install dependnecies manually.
+This section outlines how to install dependencies manually.
 If you used ``install.sh``, you do not need to perform these steps.
 
 Mininet
@@ -122,11 +151,12 @@
 Each node in Mini-NDN will run the official implementation of NDN
 installed on your system. The following dependencies are needed:
 
-Mini-NDN uses NFD, NLSR, and ndn-tools.
+Mini-NDN uses ndn-cxx, NFD, NLSR, and ndn-tools.
 
-- To install NFD: https://named-data.net/doc/NFD/current/INSTALL.html
-- To install NLSR: https://named-data.net/doc/NLSR/current/INSTALL.html
-- To install ndn-tools: https://github.com/named-data/ndn-tools
+- To install ndn-cxx: https://docs.named-data.net/ndn-cxx/current/INSTALL.html
+- To install NFD: https://docs.named-data.net/NFD/current/INSTALL.html
+- To install NLSR: https://docs.named-data.net/NLSR/current/INSTALL.html
+- To install ndn-tools: https://github.com/named-data/ndn-tools/blob/master/INSTALL.md
 
 .. warning::
     Please do not try to install NDN software from both the source (GitHub) and PPA (apt).
@@ -134,8 +164,9 @@
     to use apt, please run ``sudo ./waf uninstall`` in all the NDN projects before proceeding
     with apt. Similarly, remove from apt if switching to source.
 
-Please see the :ref:`scaling-note <scaling-note>` to learn about disabling
-security for better scalability.
+In cases where using NDN security is not important to the results, it is recommended
+to use the dummy keychain patch for ndn-cxx to disable it for improved scalability.
+This patch is located at `util/patches/ndn-cxx-dummy-keychain.patch.`
 
 Note that all three of these can be installed from the Named Data PPA.
 Instructions for setting it up can be found in the NFD installation
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index 90b3733..b012c2b 100644
--- a/docs/release-notes.rst
+++ b/docs/release-notes.rst
@@ -1,6 +1,56 @@
 Release Notes
 =============
 
+Mini-NDN version 0.7.0 (Major changes since version 0.6.0)
+----------------------------------------------------------
+
+**Breaking Changes**:
+
+- Install behavior regarding existing installation of dependencies has been reversed; by default, these are now ignored. This is meant
+  to clear up confusion regarding installing on existing installs which have been used for NDN development previously. The previous
+  behavior can be enabled using `--use-existing`.
+
+**New features**:
+
+- Added `NFDCBatch` to NFDC helper, which allows the user to use the existing NFDC wrapper API to instead create and execute a batch file.
+  When running large numbers of commands, this significantly speeds up performance due to not needing to add delay between individual CLI
+  calls.
+- Added `MinindnAdhoc` class which can be used to construct adhoc Mini-NDN-Wifi networks from topology files. 
+- Model mobility parameters can now also be passed to Mini-NDN-Wifi via topology files.
+- Working directory can be passed as constructor argument to `Minindn` objects
+- We have added a new `--release` flag to the installer which simplifies installing matching releases of dependencies. Reference
+  `the install documentation <./install.rst>`__ for more information.
+- Experimental wifi support for NLSR helper. See `experiment docs <experiment>` for details (`issue: 5232 <https://redmine.named-data.net/issues/5232>`__)
+- Added a Dockerfile for Mini-NDN. A prebuilt image for *linux/amd64* platforms is available on the
+  `GitHub container registry <https://github.com/named-data/mini-ndn/pkgs/container/mini-ndn>`__
+- The previous testbed topology generation script has been deprecated and removed. Please reference the `NDN Play website <https://play.ndn.today/?testbed=1>`__
+  for a replacement
+
+**Improvements**:
+
+- Ethernet unicast faces are now supported natively by NLSR wrapper, NFDC wrapper, and NDN routing helper. No additional formatting by the user is needed
+  for ethernet addresses extracted from the Mininet API when passed to these functions (`issue: 5321 <https://redmine.named-data.net/issues/5232>`__)
+- `NdnRoutingHelper` has been parallelized along with minor optimizations. You can now also use it to create
+  permanent faces (`issue: 5264 <https://redmine.named-data.net/issues/5264>`__)
+- `checkConvergence` method of `Experiment` helper can now output more detailed information when flag `returnConvergenceInfo` is set
+  (`issue: 5236 <https://redmine.named-data.net/issues/5236>`__)
+- `getPopen` can now accept commands formatted as lists as well as strings
+- We now natively edit nfd.conf files using infoconv to read and write it as json rather than calling infoedit at the shell
+  (`issue: 5318 <https://redmine.named-data.net/issues/5318>`__)
+- Added Sprint PoP topology
+- Link bandwidth value (`bw`) can now be specified as decimal megabits rather than only integers in topology files
+- NFDC was significantly refactored for the `NFDCBatch` change.
+
+**Bug fixes**:
+
+- NFDC helper properly supports existing faces and no longer outputs unnecessary error messages if face exists by default.
+- Fixed out of date ndnsec commands
+- Socket path now defaults to NFD default as of release 24.07. You can specify a different path with the `defaultSocketLocation` 
+  argument in the `Nfd` object constructor (`issue: 5309 <https://redmine.named-data.net/issues/5309>`__)
+- Fixed jitter being parsed into incorrect type from topology files
+- Moved vestigial CLI arguments relating to `wifi_ping.py` example out of the Mini-NDN-Wifi class
+
+
 Mini-NDN version 0.6.0 (Major changes since version 0.5.0)
 ----------------------------------------------------------
 
diff --git a/docs/videos.rst b/docs/videos.rst
index b6b3a51..db97952 100644
--- a/docs/videos.rst
+++ b/docs/videos.rst
@@ -1,7 +1,7 @@
 Video Tutorials
 ===============
 
-Maybe outdated since version 0.5.0.
+May be outdated since version 0.5.0.
 
 .. raw:: html
 
