From d344306a8269fd6a1ad91814e52c9b71858f92b0 Mon Sep 17 00:00:00 2001
From: Matteo Bertucci <matteobertucci2004@gmail.com>
Date: Fri, 22 Jan 2021 15:37:38 +0100
Subject: [PATCH] Write a proper README

---
 README.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 75 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 83401ec..c2daf9f 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,75 @@
-# cloudflare-ddns-docker
-A Docker service updating your CloudFlare DNS records periodically. 
+# Cloudflare DDNS
+
+![Linting](https://github.com/Akarys42/cloudflare-ddns-docker/workflows/Linting/badge.svg)
+![Push Container](https://github.com/Akarys42/cloudflare-ddns-docker/workflows/Push%20Container/badge.svg)
+[![License](https://img.shields.io/badge/license-MIT-green)](LICENSE)
+
+
+Cloudflare DDNS is a configurable Docker service updating your CloudFlare DNS records periodically 
+to match your local IP address. 
+
+# Table of Content
+
+- [Installation](#installation)
+    - [Using a Pre-built Container](#using-a-pre-built-container)
+    - [Building the Container Yourself](#building-the-container-yourself)
+    - [Running on the Host](#running-on-the-host)
+- [Configuration](#configuration)
+    - [Getting a Cloudflare Token](#getting-a-cloudflare-token)
+    - [Supported Options](#supported-options)
+- [Contributing](#contributing)
+
+
+## Installation
+
+While this project is intended to be ran as a Docker container, it can also be ran on the host directly.
+
+### Using a Pre-built Container
+
+This project is available on the GitHub Container Registry.
+```
+docker pull ghcr.io/akarys42/cloudflare-ddns-docker
+```
+
+### Building the Container Yourself
+
+There are no special requirements when building this container! Simply use `docker build` in this folder.
+
+### Running on the Host
+
+In order to run this project on the host, you'll need Python > 3.8, and an environment containing
+the dependencies listed in [`requirements.txt`](requirements.txt). 
+
+The project can then by launched by running the `cloudflare_ddns` module, usually using `python -m cloudflare_ddns`.
+
+
+## Configuration
+
+This project will accept parameters through environment variables or command line argument.
+Feel free to select the method fitting your setup the best!
+
+### Getting a Cloudflare Token
+
+The first step will be to create an API token with the following scopes:
+- `Zone:Read`
+- `DNS:Edit`
+
+### Supported Options
+
+We currently support following settings:
+
+| Parameter Name             | Short Command Line Option | Long Command Line Option | Environment Variable | Description                                                                                 |
+|----------------------------|---------------------------|--------------------------|----------------------|---------------------------------------------------------------------------------------------|
+| Token [mandatory]          | `-k`                      | `--token`                | `CF_DDNS_TOKEN`      | Your Cloudflare token created in the previous step.                                         |
+| Delay [default: 5 minutes] | `-d`                      | `--delay`                | `CF_DDNS_DELAY`      | The time to wait between each update. It is parsed per [`strftime`](https://strftime.org/). |
+
+The domains to update will have to either be passed as command line arguments after the options
+or with a space separated `CF_DDNS_DOMAINS` environment variable.
+
+Each domain can be preceded by the record type, either A or AAAA, followed by a colon.
+Otherwise any found A or AAAA record pointing to this domain found will be used.
+
+## Contributing
+
+Any help would be greatly appreciated! 
+Feel free to check our [open issues](https://github.com/Akarys42/cloudflare-ddns-docker/issues) and send us a Pull Request!