# 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