# How to publish your site on compost.party These are the steps I took to publish my site on compost.party. -- Create a directory: $ mkdir compost Then change directory: $ cd compost Create a file for your homepage: $ touch index.md then edit that file using the text editor nano, for example: $ nano index.md Type some text. Save. Now add a CSS file called style.css: $ touch style.css You can copy mine if you want: html, body{ font-family:monospace; font-size: 1em; color: black; background: white; max-width: 600px; margin-left: auto; margin-right: auto; padding: 5px; } /* unvisited link */ a:link { color: lightseagreen; } /* visited link */ a:visited { color: hotpink; } /* mouse over link */ a:hover { color: magenta; } /* selected link */ a:active { color: pink; } You can also add a favicon. This, you can find online; there are websites that help you generate a favicon for your site. Add a header. Create a file header.html, and populate the file with: whatever title you want Now we add a script to convert the markdown file index.md into an HTML file index.html. To do so, add a file build.sh containing the following script: ``` # (c) 2025 w. kennedy #!/bin/bash echo Welcome to the markdown to html converter. markdown_file="$1" echo file is "$markdown_file" if [[ -z "$markdown_file" ]]; then printf "Usage: %s \n" "$0" exit 1 fi # output_dir="$(dirname "$markdown_file")" # output_file="$output_dir/${markdown_file%%.*}.html" output_file="${markdown_file%%.*}.html" pandoc "$markdown_file" -f markdown+hard_line_breaks \ -t html5 -H "header.html" \ --template="default.html5" \ -o "$output_file" --verbose --highlight-style=breezedark printf "markdown_file: %s\n" "$markdown_file" printf "output_file: %s\n" "$output_file" echo We did it capitan, we converted to html. ``` Make this script executable: $ chmod +x build.sh Download Pandoc: $ sudo apt install pandoc Run the script $ ./build.sh index.md You should have a file called index.html, check: $ ls Now that you have index.html, you want to send it to the server. To do so, I use the programme rsync. We will create a file with the command you need to send your file to the server. $ touch deploy.sh In this file add the following command: $ rsync -vz index.html style.css "$@" -e 'ssh -p23' --progress username@compost.party:/var/www/username.compost.party/html Substitute username for your actual username. Make the script executable: $ chmod +x deploy.sh To publish your site to the server, run: $ ./deploy If you want to add pages to your website, run: $ ./deploy page.html