From b7c17ce2cd7bb36ba23e50041f8cdc477f7f37ff Mon Sep 17 00:00:00 2001
From: Tim Kreuzer <t.kreuzer@fz-juelich.de>
Date: Mon, 22 Apr 2024 21:12:05 +0200
Subject: [PATCH] update documentation

---
 CHANGELOG.md      |  5 ++---
 README.md         | 26 +++++++++++++++++++++++++-
 docs/changelog.md |  4 ++++
 docs/index.md     |  8 ++++++++
 4 files changed, 39 insertions(+), 4 deletions(-)
 create mode 100644 docs/changelog.md

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4464cd8..b4a943f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,4 @@
+# Changelog
 ## 1.0.0 (2024-04-22)
 
-### other (1 change)
-
-- [add gitlab ci cd pipeline for releases + changelog](jupyterjsc/packages/jupyterhub-forwardbasespawner@2124bb5734c6267c1173fed6aed32aaeeb5869d2) ([merge request](jupyterjsc/packages/jupyterhub-forwardbasespawner!1))
+Release of version 1.0.0
diff --git a/README.md b/README.md
index aa353db..9982bce 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,26 @@
+[![Documentation Status](https://readthedocs.org/projects/jupyterhub-forwardbasespawner/badge/?version=latest)](https://jupyterhub-forwardbasespawner.readthedocs.io/en/latest/?badge=latest)
+
 # ForwardBaseSpawner
-Todo
+
+The ForwardBaseSpawner is a base class, which can be used by any Spawner that creats the singleuser notebook server on a remote system. The ForwardBaseSpawner itself cannot start anything. The actual logic of starting / stopping must be implemented in a subclass.
+  
+## Overview  
+  
+The JupyterHub ForwardBaseSpawner offers a variety of useful functions, to enable and manage the communication between JupyterHub and a singleuser notebook servers, which runs on a remote machine. It covers the following functionalities:
+
+- Manage ssh port forwarding process from JupyterHub to singleuser notebook server
+- Manage ssh port forwarding process from singleuser notebook server to JupyterHub
+- Manage [Kubernetes Service](https://kubernetes.io/docs/concepts/services-networking/service/) Resource to make singleuser notebook server reachable for JupyterHub
+- Adds cancel function. Allows the user to cancel an ongoing spawn process
+- Start process of remote singleuser notebook servers may send their current progress to SpawnEventsAPIHandler, which shows it to the user
+- SetupTunnelAPIHandler allows to define the ssh jump node between JupyterHub and singleuser notebook server during the spawn process
+- ListServersAPIHandler returns all running UserID-servername combinations. Gives remote systems the chance to compare their running servers with the JupyterHub ones
+- SSHNodeRestartedAPIHandler enables a recreation of all port forwarding process to a specific jump node. Required when a jump node was restarted
+  
+For more information and the usage have a look at the [JupyterHub OutpostSpawner](https://jupyterhub-outpostspawner.readthedocs.io) documentation. It's a subclass of the ForwardBaseSpawner and enables a central JupyterHub to start singleuser notebook-server on multiple remote systems.  
+You can find a few examples and configurations over there.
+
+## Requirements  
+  
+At least one JupyterHub running on a Kubernetes Cluster (recommended is the use of [Zero2JupyterHub](https://z2jh.jupyter.org/en/stable/)). 
+A subclass of the ForwardBaseSpawner which implements the actual start/stop logic for singleuser notebook servers.
diff --git a/docs/changelog.md b/docs/changelog.md
new file mode 100644
index 0000000..d055a25
--- /dev/null
+++ b/docs/changelog.md
@@ -0,0 +1,4 @@
+```{eval-rst}
+.. include:: ../CHANGELOG.md
+   :parser: myst_parser.sphinx_
+```
diff --git a/docs/index.md b/docs/index.md
index 945e685..027075f 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -43,3 +43,11 @@ A subclass of the ForwardBaseSpawner which implements the actual start/stop logi
     spawners/forwardbasespawner
     apiendpoints
 ```
+
+```{eval-rst}
+.. toctree::
+    :maxdepth: 2
+    :caption: Reference
+
+    changelog
+```
-- 
GitLab