diff --git a/pages/index.md b/pages/index.md
index 5e7c669..454e44d 100644
--- a/pages/index.md
+++ b/pages/index.md
@@ -1,6 +1,13 @@
# Definitely not a blog
## I swear
+## **[Auto Deploying to VPS and Neocities with Docker](/post/docker-ftw.html)**
+
+> _February 08, 2021_
+
+> All under Gitlab's CI/CD System
+
+
## **[Making Ice Cream at Home](/post/ice-cream.html)**
> _July 24, 2020_
diff --git a/partials/header.html b/partials/header.html
index 6b349bf..ec570db 100644
--- a/partials/header.html
+++ b/partials/header.html
@@ -8,7 +8,7 @@
-
+
diff --git a/posts/docker-ftw.md b/posts/docker-ftw.md
new file mode 100644
index 0000000..8d69473
--- /dev/null
+++ b/posts/docker-ftw.md
@@ -0,0 +1,78 @@
+# Using Gitlab CI For VPS and Neocites Deployment
+
+_I'll make this one short_: Deploying to a VPS is pretty easy when its already configured with Nginx to serve static content, but Neocities is a slight worse pain. Several scripts later I've figured out how to 100% automate pushing to both.
+
+
+## Docker
+
+A few notes about this docker file:
+
+* Could be made way smaller if using Alpine
+
+* Setting up Pandoc on alpine is way more effort on Alpine because you have to compile it yourself as its not in the official Alpine repos
+
+* gensite is a script I wrote for building markdown based sites with Pandoc with 0 deps
+
+```
+FROM debian:sid-slim
+
+RUN apt-get update && apt-get install -y git pandoc
+# For more easily logging into ionos
+RUN apt-get install -y sshpass
+RUN apt-get install -y curl
+
+RUN git clone https://gitlab.com/shockrah/site-generator /tmp/gensite
+RUN cd /tmp/gensite && ./install.sh g
+RUN rm -rf /tmp/gensite
+```
+
+## Gitlab's CI Script
+
+It should be noted there are more environment variables set in Gitlab's WebUI to make this script work but basically everything is there.
+
+
+```
+image: shockrah/website:1.3
+
+stages:
+ - build
+ - deploy
+
+variables:
+ SHOPTS: "-o StrictHostKeyChecking=no"
+
+
+before_script:
+ - eval $(ssh-agent -s)
+ - echo "${SSH_PRIVATE_KEY}" | ssh-add - > /dev/null
+ - mkdir -p ~/.ssh/
+ - chmod 700 ~/.ssh/
+
+build-site:
+ stage: build
+
+ script:
+ bash ./build.sh
+
+ artifacts:
+ expire_in: 10 mins
+ paths: ["./.mirror"]
+
+deploy-vps:
+ stage: deploy
+
+ script:
+ - ssh $SHOPTS root@shockrah.xyz "rm -rf /var/www/website"
+ - scp $SHOPTS -r .mirror root@shockrah.xyz:/var/www/website/
+
+deploy-neocities:
+ stage: deploy
+
+ script:
+ # First the html
+ - bash upload.sh -h
+ # then we do the media files
+ - bash upload.sh -M
+
+```
+
diff --git a/root/style.css b/root/style.css
index 9e3618a..c75f437 100644
--- a/root/style.css
+++ b/root/style.css
@@ -12,6 +12,10 @@ a {
color: white;
}
+code {
+ color: lightgreen;
+}
+
blockquote {
border-left: 10px solid #1f8dd6;
}
diff --git a/upload.sh b/upload.sh
index 7e47e64..b71318a 100755
--- a/upload.sh
+++ b/upload.sh
@@ -32,11 +32,9 @@ _upload_media() {
}
_upload_all_media() {
- for file in $(find media);do
+ for file in $(find media -type f);do
echo Uploading media: $file
- if [ -f $file ];then
- curl -H "$auth" -F "$file=@$file" $url/api/upload > /dev/null
- fi
+ curl -H "$auth" -F "$file=@$file" $url/api/upload -s > /dev/null
done
}