CodiMD is the free open source version of HackMD with reduced features and I find it is perfect for creating and standardising documentation for a team as you all get the formatting the same.

Installing CodiMD

The easiest way of getting up and running with CodiMD is to use the docker-compose provided by CodiMD
To do this we will need to SSH via a tool like Putty linktoblogpost to a docker host see this post to set up your own docker host once we have successfully connected to the docker host we can proceed with getting the container up

we are going to use the docker-compose function to create this container, what is docker-compose you feed it a configuration file (set of instructions and variables) it does the rest I find it one of the easiest ways of spinning up Docker containers.

we will need a prerequisite for us to download the Codi container image we need Git

apk update
apk add git

The easiest way to setup CodiMD the following commands

git clone codimd-container
cd codimd-container
docker-compose up -d

Using CodiMD

To access you CodiMD the default port for the Docker container is 3000 in your web browser of choice type http://x.x.x.x:3000 you will be treated with a webpage where you can continue as a guest or create an account this is stored locally to your install

link to features

Advanced Features

Flow Charts

Flow charts like which OS do I use syntax help here.

what I typed into CodiMD:

st=>start: Start
op=>operation: Which OS do I use
op2=>operation: Mac OSX
op3=>operation: Windows OS
op4=>operation: Linux OS
cond=>condition: More money than sence?
cond2=>condition: Do you have a life?


The output I got


graphviz for Packet and frame breakdowns syntax help here

what I typed into CodiMD:

digraph structs {
	struct1 [label="Preamble\n 7 octects|Start of frame delimiter\n 1 octect|MAC Dst\n 6 octects|MAC Src\n 6 octects|802.1Q tag \n 4 ctects|Ethertype \n 2 octects|<f0>Payload \n 46-1500 octects|frame check sequence <F2> \n 4 octects|<f8>Interpacket gap \n 12 octects"];
	struct2 [label="<f0>IP-header | <f1> IP-Data"];
	struct3 [label="<f0>TCP/UDP-Header| <f1>TCP/UDP data"];
	struct4 [label="<f0> Application-Header| <f1> Application data"];
	struct1:f0 -> struct2:f0;
	struct1:f0 -> struct2:f1;
    struct2:f1 -> struct3:f0;
	struct2:f1 -> struct3:f1;
    struct3:f1 -> struct4:f0;
	struct3:f1 -> struct4:f1;

The output I got was

So I hope you have fun with markdown and with the CodiMD platform there are improvements like using https and setting up some security around the product but it’s fun and easy when you know-how.

Leave a Reply

Your email address will not be published.