diff --git a/.drone.yml b/.drone.yml
index 237c634..f0dea8a 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -34,19 +34,19 @@ steps:
- name: clone
image: alpine/git
environment:
- GIT_LFS_SKIP_SMUDGE: 0
+ GIT_LFS_SKIP_SMUDGE: 1
commands:
- git clone $DRONE_REMOTE_URL .
- git checkout $DRONE_BRANCH
- git submodule update --init --recursive
- name: Test a build
- image: git.badhouseplants.net/badhouseplants/hugo-container
+ image: git.badhouseplants.net/badhouseplants/hugo-builder
depends_on:
- clone
commands:
- hugo -s ./src
- name: Build and push the docker image
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3
+ image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
privileged: true
depends_on:
- Test a build
@@ -55,10 +55,9 @@ steps:
GITEA_TOKEN:
from_secret: GITEA_TOKEN
commands:
- - rm -rf $DRONE_WORKSPACE/src/assets/
- ./scripts/build-container.pl
- name: Sync pictures from lfs to Minio
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3
+ image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
depends_on:
- Test a build
environment:
@@ -69,7 +68,7 @@ steps:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- ./scripts/upload-media.pl
- name: Deploy the application
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3
+ image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
depends_on:
- Build and push the docker image
- Sync pictures from lfs to Minio
@@ -85,7 +84,7 @@ steps:
commands:
- ./scripts/deploy-app.pl
- name: Cleanup everything
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:9665015b44590b7ce2139f7acbad23af6628fff3
+ image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
depends_on:
- Deploy the application
environment:
diff --git a/.gitmodules b/.gitmodules
index 6c34b41..256f30f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,5 @@
-[submodule "src/themes/stack"]
- path = src/themes/stack
- url = https://github.com/CaiJimmy/hugo-theme-stack.git
+[submodule "src/themes/papermod"]
+ path = src/themes/papermod
+ url = https://github.com/adityatelange/hugo-PaperMod.git
+ branch = v7.0
+
diff --git a/.spelling b/.spelling
index 6cb1d43..e03b411 100644
--- a/.spelling
+++ b/.spelling
@@ -132,19 +132,6 @@ LFO
beatmaker
wavetables
OSC
-YOUTUBE
-Twelve50TV
-Robotik
-McRoy
-brah
-aw
-shite
-lowrider
-mdma
-nah
-clubby
-MGK
-params
- src/themes/papermod/README.md
PaperMod
hugo-paper
@@ -157,5 +144,3 @@ webpack
nodejs
Pagespeed
Highlight.js
-2023-02-25T14
-argocd-dynamic-environment-per-branch-part-1
diff --git a/.woodpecker.yml b/.woodpecker.yml
deleted file mode 100644
index 3189887..0000000
--- a/.woodpecker.yml
+++ /dev/null
@@ -1,93 +0,0 @@
----
-when:
- event:
- - push
-
-steps:
- - image: alpine/helm
- name: Publish the Helm chart
- commands:
- - helm plugin install https://github.com/chartmuseum/helm-push
- - helm package chart -d chart-package
- - helm repo add --username allanger --password $GITEA_TOKEN badhouseplants-net https://git.badhouseplants.net/api/packages/badhouseplants/helm
- - helm cm-push "./chart-package/$(ls chart-package)" badhouseplants-net
- secrets:
- - gitea_token
-
- - name: Test a build
- image: git.badhouseplants.net/badhouseplants/hugo-container
- commands:
- - hugo -s ./src
-
- - name: Build and push the docker image
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest
- privileged: true
- depends_on:
- - Test a build
- secrets:
- - gitea_token
- environment:
- BUILDER_COMMIT: 2449b73b13a62ae916c6703778d096e5290157b3
- commands:
- - rm -rf $DRONE_WORKSPACE/src/assets/
- - ./scripts/build-container.pl
- backend_options:
- kubernetes:
- resources:
- requests:
- memory: 500Mi
- cpu: 200m
- limits:
- memory: 1000Mi
- cpu: 1000m
- securityContext:
- privileged: true
-
- - name: Sync pictures from lfs to Minio
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest
- depends_on:
- - Test a build
- secrets:
- - rclone_config_content
- environment:
- RCLONE_CONFIG: /tmp/rclone.conf
- commands:
- - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- - ./scripts/upload-media.pl
-
- - name: Deploy the application
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest
- depends_on:
- - Build and push the docker image
- - Sync pictures from lfs to Minio
- secrets:
- - gitea_token
- - argocd_auth_token
- - argo_github_oauth_key
- - argo_google_oauth_key
- environment:
- ARGOCD_SERVER: https://argo.badhouseplants.net:443
- commands:
- - ./scripts/deploy-app.pl
-
- - name: Cleanup everything
- image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:latest
- depends_on:
- - Deploy the application
- secrets:
- - gitea_token
- - argocd_auth_token
- - rclone_config_content
- environment:
- ARGOCD_SERVER: argo.badhouseplants.net:443
- RCLONE_CONFIG: /tmp/rclone.conf
- commands:
- - echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- - ./scripts/cleanup.pl
-
- - name: Spell-Checker
- failure: ignore
- image: node
- commands:
- - npm i markdown-spellcheck -g
- - mdspell "src/content/**/*.md" -n -r
diff --git a/Containerfile b/Containerfile
index 9979a54..f0f44dd 100644
--- a/Containerfile
+++ b/Containerfile
@@ -1,4 +1,4 @@
-FROM git.badhouseplants.net/badhouseplants/hugo-container:43fd807fea2238853f48f95a435081d88857bb79
+FROM git.badhouseplants.net/badhouseplants/hugo-container:bad3393cdb76043a255347641d4157f1fae2b813
WORKDIR /src
COPY ./src /src
ENTRYPOINT ["hugo"]
diff --git a/chart/Chart.yaml b/chart/Chart.yaml
index 96d4f43..4ce8eb3 100644
--- a/chart/Chart.yaml
+++ b/chart/Chart.yaml
@@ -2,10 +2,11 @@ apiVersion: v2
name: badhouseplants-net
description: A Helm chart for Kubernetes
type: application
-version: 0.9.0
+version: 0.7.1
appVersion: "4.20.0"
dependencies:
- name: remark42
- version: 0.7.0
+ version: 0.5.5
repository: https://groundhog2k.github.io/helm-charts/
condition: remark42.enabled
+
diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml
index 7b0ee77..cdafb77 100644
--- a/chart/templates/deployment.yaml
+++ b/chart/templates/deployment.yaml
@@ -60,7 +60,7 @@ spec:
volumeMounts:
- name: {{ .Values.volumes.rclone.name }}
mountPath: /src/static
- readOnly: false
+ readOnly: true
- name: {{ .Values.volumes.public.name }}
mountPath: /src/public
readOnly: false
@@ -88,7 +88,7 @@ spec:
volumes:
- name: rclone-config
secret:
- secretName: rclone-config-{{ .Release.Name }}
+ secretName: rclone-config
- name: {{ .Values.volumes.rclone.name }}
emptyDir:
sizeLimit: {{ .Values.volumes.rclone.sizeLimit }}
@@ -97,5 +97,5 @@ spec:
sizeLimit: {{ .Values.volumes.public.sizeLimit }}
- name: nginx-config
configMap:
- name: nginx-config-{{ .Release.Name }}
+ name: nginx-config
diff --git a/chart/templates/namespace.yaml b/chart/templates/namespace.yaml
new file mode 100644
index 0000000..a16fa00
--- /dev/null
+++ b/chart/templates/namespace.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.istio.enabled -}}
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: {{ .Values.namespace.name }}
+ labels:
+ {{- include "badhouseplants-net.labels" . | nindent 4 }}
+ {{- range $key, $value := .Values.namespace.labels}}
+ {{ $key }}: {{ $value }}
+ {{- end }}
+ {{- with .Values.namespace.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+
+{{- end }}
\ No newline at end of file
diff --git a/chart/templates/nginx-config-cm.yaml b/chart/templates/nginx-config-cm.yaml
index bcaab33..e8e1d38 100644
--- a/chart/templates/nginx-config-cm.yaml
+++ b/chart/templates/nginx-config-cm.yaml
@@ -1,7 +1,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
- name: nginx-config-{{ .Release.Name }}
+ name: nginx-config
labels:
{{- include "badhouseplants-net.labels" . | nindent 4 }}
data:
diff --git a/chart/templates/rclone-config-sec.yaml b/chart/templates/rclone-config-sec.yaml
index bd529a7..8e20719 100644
--- a/chart/templates/rclone-config-sec.yaml
+++ b/chart/templates/rclone-config-sec.yaml
@@ -1,7 +1,7 @@
apiVersion: v1
kind: Secret
metadata:
- name: rclone-config-{{ .Release.Name }}
+ name: rclone-config
labels:
{{- include "badhouseplants-net.labels" . | nindent 4 }}
type: generic
diff --git a/chart/templates/virtual-service.yaml b/chart/templates/virtual-service.yaml
new file mode 100644
index 0000000..0db7593
--- /dev/null
+++ b/chart/templates/virtual-service.yaml
@@ -0,0 +1,57 @@
+{{- if .Values.istio.enabled -}}
+apiVersion: networking.istio.io/v1beta1
+kind: VirtualService
+metadata:
+ name: {{ include "badhouseplants-net.fullname" . }}
+ labels:
+ {{- include "badhouseplants-net.labels" . | nindent 4 }}
+ {{- with .Values.istio.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ gateways:
+ - istio-system/badhouseplants-net
+ hosts:
+ {{- range .Values.istio.hosts}}
+ - {{ . }}
+ {{- end }}
+ http:
+ - match:
+ - uri:
+ prefix: {{ .Values.istio.prefix }}
+ route:
+ - destination:
+ host: {{ include "badhouseplants-net.fullname" . }}
+ port:
+ number: {{ .Values.service.port }}
+{{- end }}
+---
+{{- if .Values.remark42.istio.enabled -}}
+apiVersion: networking.istio.io/v1beta1
+kind: VirtualService
+metadata:
+ name: {{ include "remark42.fullname" . }}-remark42
+ labels:
+ {{- include "badhouseplants-net.labels" . | nindent 4 }}
+ {{- with .Values.remark42.istio.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ gateways:
+ - istio-system/badhouseplants-net
+ hosts:
+ {{- range .Values.remark42.istio.hosts}}
+ - {{ . }}
+ {{- end }}
+ http:
+ - match:
+ - uri:
+ prefix: {{ .Values.remark42.istio.prefix }}
+ route:
+ - destination:
+ host: {{ .Release.Name }}-remark42
+ port:
+ number: {{ .Values.remark42.service.port }}
+{{- end }}
diff --git a/chart/values.yaml b/chart/values.yaml
index c0463a3..354c240 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -1,5 +1,12 @@
replicaCount: 1
+namespace:
+ annotations: {}
+ labels:
+ istio-injection: enabled
+ enabled: true
+ name: badhouseplants-main
+
nginx:
container:
name: nginx
@@ -30,7 +37,7 @@ hugo:
container:
name: badhouseplants-net
resources: {}
- image:
+ image:
repository: git.badhouseplants.net/badhouseplants/badhouseplants-net
pullPolicy: Always
tag: latest
@@ -39,19 +46,27 @@ hugo:
env:
HUGO_PARAMS_GITBRANCH: main
+istio:
+ annotations: {}
+ enabled: true
+ hosts:
+ - badhouseplants.net
+ - www.badhouseplants.net
+ prefix: /
+
volumes:
# ----------------------------------------------
- # -- An emptydir volume where hugo should
+ # -- An emptydir volume where hugo should
# -- put the static content
# ----------------------------------------------
public:
name: public-content
- sizeLimit: 1Gi
+ sizeLimit: 1Gi
# ----------------------------------------------
- # -- An emptydir volume where rclone should
+ # -- An emptydir volume where rclone should
# -- download pictures
# ----------------------------------------------
- rclone:
+ rclone:
name: s3-data
sizeLimit: 1Gi
diff --git a/kube/application.yaml b/kube/application.yaml
index cc41ea1..bb48690 100644
--- a/kube/application.yaml
+++ b/kube/application.yaml
@@ -6,10 +6,10 @@ metadata:
branch: $ARGO_APP_BRANCH
commit_sha: $ARGO_APP_IMAGE_TAG
name: badhouseplants-$ARGO_APP_BRANCH
- namespace: platform
+ namespace: argo-system
spec:
destination:
- namespace: $ARGO_APP_NAMESPACE
+ namespace: badhouseplants-$ARGO_APP_BRANCH
server: https://kubernetes.default.svc
project: badhouseplants
source:
diff --git a/kube/project.yaml b/kube/project.yaml
index f302767..fcb23c4 100644
--- a/kube/project.yaml
+++ b/kube/project.yaml
@@ -2,7 +2,7 @@ apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: badhouseplants
- namespace: platform
+ namespace: argo-system
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
@@ -11,13 +11,15 @@ spec:
- '*'
destinations:
- - namespace: development
- server: https://kubernetes.default.svc
- name: in-cluster
- - namespace: production
+ - namespace: badhouseplants-*
server: https://kubernetes.default.svc
name: in-cluster
+ # Deny all cluster-scoped resources from being created, except for Namespace
+ clusterResourceWhitelist:
+ - group: ''
+ kind: Namespace
+
# Allow all namespaced-scoped resources to be created, except for ResourceQuota, LimitRange, NetworkPolicy
namespaceResourceBlacklist:
- group: ''
@@ -29,4 +31,4 @@ spec:
# Enables namespace orphaned resource monitoring.
orphanedResources:
- warn: false
+ warn: false
\ No newline at end of file
diff --git a/kube/values-main.yaml b/kube/values-main.yaml
index 4d25e03..286feee 100644
--- a/kube/values-main.yaml
+++ b/kube/values-main.yaml
@@ -5,38 +5,16 @@ values: |
tag: $ARGO_APP_IMAGE_TAG
env:
HUGO_PARAMS_GITCOMMIT: $ARGO_APP_IMAGE_TAG
- ingress:
- enabled: true
- className: ~
- annotations:
- kubernetes.io/ingress.class: traefik
- kubernetes.io/tls-acme: "true"
- kubernetes.io/ingress.allow-http: "false"
- kubernetes.io/ingress.global-static-ip-name: ""
- cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
+ istio:
+ annotations:
link.argocd.argoproj.io/env: https://badhouseplants.net/
link.argocd.argoproj.io/build: $DRONE_BUILD_LINK
- pathtype: ImplementationSpecific
- hosts:
- - host: badhouseplants.net
- paths:
- - path: /
- pathType: ImplementationSpecific
- - host: www.badhouseplants.net
- paths:
- - path: /
- pathType: ImplementationSpecific
- tls:
- - secretName: badhp-tls
- hosts:
- - badhouseplants.net
- - www.badhouseplants.net
-
+ link.argocd.argoproj.io/remark42: https://remark42.badhouseplants.net/web
remark42:
settings:
secret: $ARGO_REMARK_SECRET
admin:
- sharedEmail: allanger@badhouseplants.net
+ sharedEmail: allanger@zohomail.com
oauth:
github:
enabled: true
@@ -48,25 +26,3 @@ values: |
secret: $ARGO_GOOGLE_OAUTH_KEY
storage:
requestedSize: 300Mi
- ingress:
- enabled: true
- className: ~
- annotations:
- kubernetes.io/ingress.class: traefik
- kubernetes.io/tls-acme: "true"
- kubernetes.io/ingress.allow-http: "false"
- kubernetes.io/ingress.global-static-ip-name: ""
- cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
- link.argocd.argoproj.io/remark42: https://remark42.badhouseplants.net/web
- ## Hosts
- hosts:
- - host: remark42.badhouseplants.net
- paths:
- - path: /
- pathType: ImplementationSpecific
-
- tls:
- secretName: chart-example-tls
- hosts:
- - remark42.badhouseplants.net
-
\ No newline at end of file
diff --git a/kube/values-preview.yaml b/kube/values-preview.yaml
index c618bd8..bbce5b9 100644
--- a/kube/values-preview.yaml
+++ b/kube/values-preview.yaml
@@ -1,27 +1,16 @@
---
values: |
- ingress:
- enabled: true
- className: ~
- annotations:
- kubernetes.io/ingress.class: traefik
- kubernetes.io/tls-acme: "true"
- kubernetes.io/ingress.allow-http: "false"
- kubernetes.io/ingress.global-static-ip-name: ""
- cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
- link.argocd.argoproj.io/env: https://$ARGO_APP_HOSTNAME/
- link.argocd.argoproj.io/build: $DRONE_BUILD_LINK
- pathtype: ImplementationSpecific
+ namespace:
+ name: badhouseplants-$ARGO_APP_BRANCH
+ labels:
+ istio-injection: disabled
+ istio:
hosts:
- - host: $ARGO_APP_HOSTNAME
- paths:
- - path: /
- pathType: ImplementationSpecific
- tls:
- - secretName: badhp-$ARGO_APP_BRANCH-tls
- hosts:
- - $ARGO_APP_HOSTNAME
-
+ - $ARGO_APP_HOSTNAME
+ annotations:
+ link.argocd.argoproj.io/env: https://$ARGO_APP_HOSTNAME/
+ link.argocd.argoproj.io/remark42: https://remark42-$ARGO_APP_HOSTNAME/web
+ link.argocd.argoproj.io/build: $DRONE_BUILD_LINK
hugo:
image:
tag: $ARGO_APP_IMAGE_TAG
@@ -29,34 +18,16 @@ values: |
buildDrafts: true
env:
HUGO_PARAMS_GITBRANCH: $ARGO_APP_BRANCH
- HUGO_PARAMS_COMMENTS_REMARK42_HOST: https://remark42-$ARGO_APP_HOSTNAME
+ HUGO_PARAMS_REMARK42URL: https://remark42-$ARGO_APP_HOSTNAME
HUGO_PARAMS_GITCOMMIT: $ARGO_APP_IMAGE_TAG
remark42:
+ istio:
+ hosts:
+ - remark42-$ARGO_APP_HOSTNAME
settings:
url: https://remark42-$ARGO_APP_HOSTNAME/
auth:
anonymous: true
secretKey: $ARGO_REMARK_SECRET
- ingress:
- enabled: true
- className: ~
- annotations:
- kubernetes.io/ingress.class: traefik
- kubernetes.io/tls-acme: "true"
- kubernetes.io/ingress.allow-http: "false"
- kubernetes.io/ingress.global-static-ip-name: ""
- cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
- link.argocd.argoproj.io/remark42: https://remark42-$ARGO_APP_HOSTNAME/
- ## Hosts
- hosts:
- - host: remark42.badhouseplants.net
- paths:
- - path: /
- pathType: ImplementationSpecific
-
- tls:
- secretName: remark-$ARGO_APP_BRANCH-tls
- hosts:
- - remark42-$ARGO_APP_HOSTNAME
rclone:
command: 'rclone copy -P badhouseplants-public:/badhouseplants-net/$ARGO_APP_IMAGE_TAG /static'
diff --git a/scripts/deploy-app.pl b/scripts/deploy-app.pl
index 7e53405..b99b458 100755
--- a/scripts/deploy-app.pl
+++ b/scripts/deploy-app.pl
@@ -17,11 +17,6 @@ chomp($remark_secret);
$ENV{'ARGO_APP_CHART_VERSION'} = $chart_version;
$ENV{'ARGO_APP_BRANCH'} = $git_branch;
-if ($git_branch eq $main_branch) {
- $ENV{'ARGO_APP_NAMESPACE'} = "production";
-} else {
- $ENV{'ARGO_APP_NAMESPACE'} = "development"
-}
$ENV{'ARGO_APP_HOSTNAME'} = "$git_branch-dev.badhouseplants.net";
$ENV{'ARGO_APP_IMAGE_TAG'} = $git_commit_sha;
$ENV{'ARGO_REMARK_SECRET'} = $remark_secret;
@@ -72,3 +67,4 @@ foreach my $app (@all_applications) {
}
}
}
+
diff --git a/src/.hugo_build.lock b/src/.hugo_build.lock
new file mode 100644
index 0000000..e69de29
diff --git a/src/archetypes/categories.md b/src/archetypes/categories.md
deleted file mode 100644
index bde898d..0000000
--- a/src/archetypes/categories.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-title: "{{ replace .Name "-" " " | title }}"
-image:
-style:
- background: "#2a9d8f"
- color: "#fff"
----
diff --git a/src/archetypes/default.md b/src/archetypes/default.md
index 0556d3a..d669718 100644
--- a/src/archetypes/default.md
+++ b/src/archetypes/default.md
@@ -1,11 +1,12 @@
---
title: "{{ replace .Name "-" " " | title }}"
-description:
date: {{ .Date }}
-image:
-math:
-license:
-hidden: false
-comments: true
draft: true
----
\ No newline at end of file
+ShowToc: true
+cover:
+ image: "cover.png"
+ caption: "{{ replace .Name "-" " " | title }}"
+ relative: false
+ responsiveImages: false
+---
+
diff --git a/src/archetypes/tags.md b/src/archetypes/tags.md
deleted file mode 100644
index bc2eb0c..0000000
--- a/src/archetypes/tags.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-title: "{{ replace .Name "-" " " | title }}"
-description:
-image:
----
diff --git a/src/config.yaml b/src/config.yaml
new file mode 100644
index 0000000..657a761
--- /dev/null
+++ b/src/config.yaml
@@ -0,0 +1,68 @@
+---
+languageCode: 'en-us'
+title: 'Bad Houseplants'
+theme: 'papermod'
+menu:
+ main:
+ - name: Posts
+ url: /posts
+ weight: 10
+ - name: Music
+ url: /music
+ weight: 11
+ - name: Beats
+ url: /beats
+ weight: 12
+ - name: About
+ url: /about
+ weight: 13
+ - name: Search
+ url: /search
+ weight: 14
+taxonomies:
+ tag: tags
+params:
+ GitBranch: main
+ GitCommit: unknown
+ Remark42ID: remark
+ Remark42URL: https://remark42.badhouseplants.net
+ ShowBreadCrumbs: true
+ ShowReadingTime: true
+ ShowPostNavLinks: true
+ ShowCodeCopyButtons: true
+ comments: true
+ profileMode:
+ enabled: true
+ title: "Bad Houseplants"
+ subtitle: ... by allanger.
+ imageUrl: "main-logo.png"
+ imageWidth: 150
+ imageHeight: 150
+ buttons:
+ - name: My Music
+ url: "https://funkwhale.badhouseplants.net/library/artists"
+ - name: Support
+ url: "https://liberapay.com/allanger/donate"
+ - name: Source
+ url: "https://git.badhouseplants.net/badhouseplants/badhouseplants-net"
+ socialIcons:
+ - name: "mastodon"
+ url: "https://mastodon.social/@allanger"
+ - name: github
+ url: 'https://github.com/allanger'
+ - name: email
+ url: 'mailto:allanger@zohomail.com'
+ ShowShareButtons: true
+ ShareButtons: ["telegram", "twitter", "reddit", "linkedin"]
+ env: production
+ title: Bad Houseplants
+ description: "...by allanger"
+ keywords: [Blog, Portfolio]
+ author: allanger
+ DateFormat: "January 2, 2006"
+ defaultTheme: auto
+outputs:
+ home:
+ - HTML
+ - RSS
+ - JSON
diff --git a/src/content/_index.md b/src/content/_index.md
deleted file mode 100644
index 530dfe8..0000000
--- a/src/content/_index.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-menu:
- main:
- name: Home
- weight: -100
- params:
- icon: home
----
\ No newline at end of file
diff --git a/src/content/about/_index.md b/src/content/about/_index.md
new file mode 100644
index 0000000..62e9b11
--- /dev/null
+++ b/src/content/about/_index.md
@@ -0,0 +1,17 @@
+---
+title: About
+date: 2023-01-24T09:26:52+01:00
+draft: false
+---
+
+Oi!
+I'm allanger and currently I'm working as full time SRE, but recently I've found out that I'd like to spend more time doing things related to music and sound. So I'm currently looking for project to add to my portfolio. So if you want somebody do a decent (I hope) mix for you without asking for any money, just let shoot me a message.
+
+I'm not a pro mixing engineer of course, but it's what I'm aiming for.
+
+Also, I'm a beatmaker, you can find my bets on this site, just go to the [Beats section]({{< ref "beats" >}}). I'm not leasing them, I want one beat to be used one time by one artist. And again, I'm not a well-known beatmaker, so you can just let me know if you like anything, and we'll figure it out.
+
+---
+### Information about the build
+Built from the commit [{{< param GitCommit >}}](https://git.badhouseplants.net/badhouseplants/badhouseplants-net/commit/{{< param GitCommit >}})
+[![Build Status](https://drone.badhouseplants.net/api/badges/badhouseplants/badhouseplants-net/status.svg?ref=refs/heads/{{< param GitBranch >}})](https://drone.badhouseplants.net/badhouseplants/badhouseplants-net)
diff --git a/src/content/authors/allanger/_index.md b/src/content/authors/allanger/_index.md
new file mode 100644
index 0000000..e47e06a
--- /dev/null
+++ b/src/content/authors/allanger/_index.md
@@ -0,0 +1,37 @@
+> If you're hiring, you can [download my CV here](https://s3.badhouseplants.net/public-download/n.rodionov.pdf)
+
+
download my CV here
+
+
+I'm a musician and a geek, who works full time as a DevOps engineer, whatever it means. Thanks to my job, I know how to run self-hosted services pretty well, and that's helping me achieve my goal of bringing the indie culture everywhere I can. I'm trying to separate myself from global companies as a user as much as it's possible in my daily life.
+
+Also, I'm a Linux lover, what doesn't really correlate with my will to make music. I hope that one day we will see that developers will see that Linux is a real OS that can be used as a daily driver. And building software for Linux is important just like building for MacOS and Windows. I hope that we will be able to use not only open source solutions working on Linux, but also closed-source proprietary ones.
+
+### Music, Beats and Arrangements
+
+## Music
+
+> I always thought I was a musician
+[Check out what I've got](https://funkwhale.badhouseplants.net)
+
+You can find everything I consider ready enough to be shown on my [FunkWhale](https://funkwhale.badhouseplants.net/library) instance. Also, my music can be found on many streaming services, and yes, I know that it's not a very independent way of doing things, but it's one of many exceptions π.
+
+All of my beats are waiting for somebody to do something with them. I'm giving them all for donation, so if you happen to like any, just shoot me a message. I can re-arrange and remix them as much as possible. I can mix your tracks, and I really will to do that, it doesn't matter what kind of music it is, I'm ready to work with everything, if I like it *(at least a little bit)*.
+
+## IT
+
+> I'm a DevOps after all
+[Visit my gitea](https://git.badhouseplants.net)
+For I'm a DevOps I'm working a lot with Kubernetes, Containers, Linux, etc. And that's the root of my intention to move to Linux completely.
+
+I hope I will do my contribution to the world of Linux music production too. I'm hosting my own Gitea instance. There you will be able to find all my code (or almost all of my code).
+
+If you made it to here, you might think that it's the point of all of this existing. Self-hosted blog, a music streaming service, and git. **This guy is just a fucking geek! **
+
+And yes, you're partially right. The main reason it exists is that I'm trying to follow and promote `indie/punk` culture, that is not only applies to arts. And that's going to be covered in my posts, I hope.
+
+---
+
+### If you're still here,
+
+I'm looking for people with the same mindset as me, to make music or to code together, or anything. So I would be happy to get connections on [Mastodon](https://mastodon.social/@allanger)
diff --git a/src/content/beats/_index.md b/src/content/beats/_index.md
new file mode 100644
index 0000000..c0d2dbf
--- /dev/null
+++ b/src/content/beats/_index.md
@@ -0,0 +1,112 @@
+---
+title: Beats
+date: 2023-01-24T09:26:52+01:00
+draft: false
+---
+>I don't lease my beats. If you happen to like anything, just shout me a message and we will come to an agreement. And if you decide to use any of my beats you'll be the only one using it (legally).
+
+---
+### Easy Money
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Monk
+#### Not available anymore, but I can make a similar one if you'd like
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Ark
+#### Not available anymore, but I can make a similar one if you'd like
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Phantom Limb
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Silk Road
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Tremor
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Silver Grenade
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Spinal Cord
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Empty Cubicles
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Vicious Shine
+#### Not available anymore, but I can make a similar one if you'd like
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Petrol
+#### Not available anymore, but I can make a similar one if you'd like
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### PSY
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Body Drop
+#### Not available anymore, but I can make a similar one if you'd like
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Broken Piano
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Dead Wings
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Trapped
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Dusted
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Fallen Folk
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Pillows
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Swipe
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
diff --git a/src/content/categories/Kubernetes/_index.md b/src/content/categories/Kubernetes/_index.md
deleted file mode 100644
index 8ea9993..0000000
--- a/src/content/categories/Kubernetes/_index.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: "Kubernetes"
-description: "Content related to Kubernetes"
-slug: "k8s"
-image: "kubernetes.png"
-style:
- background: "#2a9d8f"
- color: "#fff"
----
diff --git a/src/content/categories/Kubernetes/kubernetes.png b/src/content/categories/Kubernetes/kubernetes.png
deleted file mode 100644
index 6b76951..0000000
Binary files a/src/content/categories/Kubernetes/kubernetes.png and /dev/null differ
diff --git a/src/content/page/about/index.md b/src/content/page/about/index.md
deleted file mode 100644
index 77de357..0000000
--- a/src/content/page/about/index.md
+++ /dev/null
@@ -1,22 +0,0 @@
----
-title: About
-description: What is Bad Houseplants?
-date: '2019-02-28'
-aliases:
- - about-us
- - about-hugo
- - contact
-license: CC BY-NC-ND
-lastmod: '2020-10-09'
-menu:
- main:
- weight: -90
- params:
- icon: user
----
-
-Hello there,
-
-I'm **allanger** and I'm a DevOps engineer. What does it mean? I prefer calling myself a modern system administrator. Here I will post about DevOps/Kubernetes/CI-CD/etc topics.
-
-> This page is not ready yet, I will update it one day
diff --git a/src/content/page/archives/index.md b/src/content/page/archives/index.md
deleted file mode 100644
index 2862deb..0000000
--- a/src/content/page/archives/index.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: "Archives"
-date: 2019-05-28
-layout: "archives"
-slug: "archives"
-menu:
- main:
- weight: -70
- params:
- icon: archives
----
diff --git a/src/content/page/links/drone.png b/src/content/page/links/drone.png
deleted file mode 100644
index ab43a7c..0000000
Binary files a/src/content/page/links/drone.png and /dev/null differ
diff --git a/src/content/page/links/gitea.png b/src/content/page/links/gitea.png
deleted file mode 100644
index bff7279..0000000
Binary files a/src/content/page/links/gitea.png and /dev/null differ
diff --git a/src/content/page/links/index.md b/src/content/page/links/index.md
deleted file mode 100644
index 15d7a47..0000000
--- a/src/content/page/links/index.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: Links
-readingTime: false
-links:
- - title: Source Code
- description: A souce code of this blog
- website: https://git.badhouseplants.net/badhouseplants/badhouseplants-net
- image: gitea.png
- - title: Drone-CI
- description: A project for building this blog in Drone-CI
- website: https://drone.badhouseplants.net/badhouseplants/badhouseplants-net
- image: drone.png
-menu:
- main:
- weight: -50
- params:
- icon: link
-
-comments: false
----
diff --git a/src/content/page/links/ts-logo-128.jpg b/src/content/page/links/ts-logo-128.jpg
deleted file mode 100644
index 85e3323..0000000
Binary files a/src/content/page/links/ts-logo-128.jpg and /dev/null differ
diff --git a/src/content/page/search/index.md b/src/content/page/search/index.md
deleted file mode 100644
index b2a5943..0000000
--- a/src/content/page/search/index.md
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: "Search"
-slug: "search"
-layout: "search"
-outputs:
- - html
- - json
-menu:
- main:
- weight: -60
- params:
- icon: search
----
\ No newline at end of file
diff --git a/src/content/post/allanger/do-we-need-continuous-reconciliation.md b/src/content/post/allanger/do-we-need-continuous-reconciliation.md
deleted file mode 100644
index ffdf03f..0000000
--- a/src/content/post/allanger/do-we-need-continuous-reconciliation.md
+++ /dev/null
@@ -1,56 +0,0 @@
-+++
-title = 'Do we really need Continuous Reconciliation after all?'
-date = 2024-02-13T15:04:44+01:00
-draft = true
-categories = [
- "Kubernetes",
- "CI-CD"
-]
-+++
-
-> Well, alright, I guess it depends
-
-## Intro
-
-First, let's figure out what **continuous reconciliation** stands for. Considering this post's categories, I guess we're talking **Kubernetes** here. And **continuous reconciliation** means that resources deployed to kubernetes are not only synced once, when you run `kubectl apply`, but all the time. Basically, every 30s (or whatever reconciliation period you got) something is running `kubectl apply`.
-
-The idea behind that (as I see) is that you're always aware of what's deployed to you cluster, by looking at the code. Let's say, there is a git repo `k8s-deployments`, and it has all the resources that you want to have running in your cluster.
-
-> It made a lot of sense to when I heard for the first time, not I'm rather sceptical about it.
-
-As far as I understand, having all you resource described in a git repository and continuously reconciled is **GitOps**, not only that of course, it's just a part of it. At least that's what I've been told by some engineers.
-
-## GitOps
-
-I don't think that I'm the one to be talking about **GitOps** because everytime I was trying to bring my point on that, I've been told that I don't know what **GitOps** is.
-
-> To be honest, after many conversations with different people, I think that GitOps is just a buzzword for selling technologies and services, correct me if I wrong.
-
-I can't talk about others opinion, so I'll jsut try to express mine. I think that **GitOps** is when you have a desired state of your infrastucture written in code, and a mechanism to make your real infrastucture state correspond the desired one.
-
-Let's not lean towards Kubernetes itself, and let's imaging that you, as a SRE team, have to manage Kubernetes clusters. In your cluster you'll have to run an application that is being developed by the company you're working for, and some dependencies, that this application needs in order to run.
-
-> Also, I guess it is an opinion that many of SREs won't share. I guess that the SRE team shouldn't be integrated to development teams. In my opinion, SRE teams should provide ingfa-as-a-service to developes and help them use it.
-
-So, after all, you cluster will contain approximately this:
-- Very base layer
- - CNI plugin (E.G. Cilium)
- - CoreDNS
-- System layer
- - Cert Manager
- - Traefik
-- Monitoring layer
- - Kube Prometheus Stack
- - Loki
- - Promtail
-- Application specific dependencies
- - Zalando Postgres Operator
- - Redis Operator
-- Application layer
- - Your application
-
-And as an addition, you might have a GitOps tool, currently, the most popular ones are **Flux** and **ArgoCD**, I guess I will compare them later, in this article let's just use **Flux**.
-
-First question that comes to my mind is, onto which layer one should put Flux? Flux depends on `CNI` and `CoreDNS`, so it should be deployed after them. So should it be the System layer? It sounds good, I guess, but do we want Flux to manage **Cert manager** and **Traefik**. Me - not, but the answer that I get the most is yes. So let's assume, we've decided to manage them with Flux. It means that we should add another layer between "Very base" and "System" ones, a **GitOps layer**. To us it means that after we get a bare new empty cluster, we need to install CNI, CoreDNS, and Flux, and only then we should deploy anything else with the Flux help.
-
-What does it mean for us, we need to
diff --git a/src/content/posts/.spelling b/src/content/posts/.spelling
new file mode 100644
index 0000000..8085d6d
--- /dev/null
+++ b/src/content/posts/.spelling
@@ -0,0 +1,45 @@
+# markdown-spellcheck spelling configuration file
+# Format - lines beginning # are comments
+# global dictionary is at the start, file overrides afterwards
+# one word per line, to define a file override use ' - filename'
+# where filename is relative to this configuration file
+WIP
+envs
+anymore
+hostname
+hostnames
+Dockerfile
+helmfile
+k8s
+env
+dir
+dev'n'stages
+oi
+minio
+ArgoCD
+setups
+SRE
+autoscaler
+gitea
+vendoring
+cli
+vpa
+ok
+cmp
+config
+GitOps
+argo
+argocding
+cluster-1
+cluster-2
+cluster-3
+kubernetes
+argocd
+helmfiles
+plugin
+helmfile.yaml
+cleanup
+serie
+backend
+js
+frontend
diff --git a/src/content/posts/_index.md b/src/content/posts/_index.md
new file mode 100644
index 0000000..e69de29
diff --git a/src/content/post/allanger/argocd-dynamic-environment-per-branch-part-1.md b/src/content/posts/argocd-dynamic-environment-per-branch-part-1/index.md
similarity index 98%
rename from src/content/post/allanger/argocd-dynamic-environment-per-branch-part-1.md
rename to src/content/posts/argocd-dynamic-environment-per-branch-part-1/index.md
index 93040ea..9387ec9 100644
--- a/src/content/post/allanger/argocd-dynamic-environment-per-branch-part-1.md
+++ b/src/content/posts/argocd-dynamic-environment-per-branch-part-1/index.md
@@ -1,13 +1,14 @@
-+++
-title = "Dynamic Environment Per Branch with ArgoCD"
-date = 2023-02-25T14:00:00+01:00
-image = "/posts/argocd-dynamic-environment-per-branch-part-1/cover.png"
-draft = false
-categories = [
- "Kubernetes",
- "CI-CD"
-]
-+++
+---
+title: "Dynamic Environment Per Branch with ArgoCD"
+date: 2023-02-25T14:00:00+01:00
+draft: false
+ShowToc: true
+cover:
+ image: "/posts/argocd-dynamic-environment-per-branch-part-1/cover.png"
+ caption: "Dynamic Environment Per Branch with ArgoCD"
+ relative: false
+ responsiveImages: false
+---
[Do you remember?]({{< ref "dont-use-argocd-for-infrastructure" >}})
> And using `helmfile`, I will install `ArgoCD` to my clusters, of course, because it's an awesome tool, without any doubts. But don't manage your infrastructure with it, because it's a part of your infrastructure, and it's a service that you provide to other teams. And I'll talk about in one of the next posts.
diff --git a/src/content/post/allanger/argocd-vs-helmfile-application.md b/src/content/posts/argocd-vs-helmfile-application/index.md
similarity index 98%
rename from src/content/post/allanger/argocd-vs-helmfile-application.md
rename to src/content/posts/argocd-vs-helmfile-application/index.md
index eef42f2..9e985c9 100644
--- a/src/content/post/allanger/argocd-vs-helmfile-application.md
+++ b/src/content/posts/argocd-vs-helmfile-application/index.md
@@ -1,13 +1,14 @@
-+++
-title = "ArgoCD vs Helmfile: Applications"
-date = 2023-02-13T12:14:09+01:00
-image = "/posts/argocd-vs-helmfile/cover-applications.png"
-draft = false
-categories = [
- "Kubernetes",
- "CI-CD"
-]
-+++
+---
+title: "ArgoCD vs Helmfile: Applications"
+date: 2023-02-13T12:14:09+01:00
+draft: false
+cover:
+ image: "/posts/argocd-vs-helmfile/cover-applications.png"
+ caption: "ArgoCD"
+ relative: false
+ responsiveImages: false
+ShowToc: true
+---
> So as promised in [the previous ArgoCD post]({{< ref "dont-use-argocd-for-infrastructure" >}}), I'll try to show a simple example of Pull Requests for different kinds of setups. This is the first part. Putting everything in the same post seems kind of too much.
diff --git a/src/content/post/allanger/argocd-vs-helmfile-applicationset.md b/src/content/posts/argocd-vs-helmfile-applicationset/index.md
similarity index 97%
rename from src/content/post/allanger/argocd-vs-helmfile-applicationset.md
rename to src/content/posts/argocd-vs-helmfile-applicationset/index.md
index 1fef0be..7c4b99f 100644
--- a/src/content/post/allanger/argocd-vs-helmfile-applicationset.md
+++ b/src/content/posts/argocd-vs-helmfile-applicationset/index.md
@@ -1,13 +1,14 @@
-+++
-title = 'ArgoCD vs Helmfile: ApplicationSet'
-date = 2023-02-15T10:14:09+01:00
-image = "/posts/argocd-vs-helmfile/cover-applicationset.png"
-draft = false
-categories = [
- "Kubernetes",
- "CI-CD"
-]
-+++
+---
+title: "ArgoCD vs Helmfile: ApplicationSet"
+date: 2023-02-15T10:14:09+01:00
+draft: false
+cover:
+ image: "/posts/argocd-vs-helmfile/cover-applicationset.png"
+ caption: "ArgoCD"
+ relative: false
+ responsiveImages: false
+ShowToc: true
+---
This is a second post about *"argocding"* your infrastructure. [First can be found here]({{< ref "argocd-vs-helmfile-application" >}}).
diff --git a/src/content/post/allanger/argocd-vs-helmfile-helmfile.md b/src/content/posts/argocd-vs-helmfile-helmfile/index.md
similarity index 99%
rename from src/content/post/allanger/argocd-vs-helmfile-helmfile.md
rename to src/content/posts/argocd-vs-helmfile-helmfile/index.md
index ab2999d..d961535 100644
--- a/src/content/post/allanger/argocd-vs-helmfile-helmfile.md
+++ b/src/content/posts/argocd-vs-helmfile-helmfile/index.md
@@ -1,13 +1,11 @@
-+++
-title = "Argocd vs Helmfile: Helmfile"
-date = 2023-02-17T12:48:51+01:00
-draft = false
-categories = [
- "Kubernetes",
- "CI-CD"
-]
-+++
-In two previous posts I've described how it's possible to install a couple of applications with [`Applications`]({{< relref "/post/allanger/argocd-vs-helmfile-application" >}}) and [`ApplicationSets`]({{< relref "/post/allanger/argocd-vs-helmfile-applicationset" >}}), and this one is the last in a row. And here I'm going to install the same applications (`VPA` and `Goldilocks`) with helmfile, and I will tell why I think that it's better than `ArgoCD`
+---
+title: "Argocd vs Helmfile: Helmfile"
+date: 2023-02-17T12:48:51+01:00
+draft: false
+ShowToc: false
+---
+
+In two previous posts I've described how it's possible to install a couple of applications with [`Applications`]({{< ref "argocd-vs-helmfile-application" >}}) and [`ApplicationSets`]({{< ref "argocd-vs-helmfile-applicationset" >}}), and this one is the last in a row. And here I'm going to install the same applications (`VPA` and `Goldilocks`) with helmfile, and I will tell why I think that it's better than `ArgoCD`
So let's start. Here you can find the [initial config](https://git.badhouseplants.net/allanger/helmfile-vs-argo/src/branch/helmfile-main). Let's see what we got here:
diff --git a/src/content/posts/creating-a-sample-pack-kick.md b/src/content/posts/creating-a-sample-pack-kick.md
new file mode 100644
index 0000000..d229519
--- /dev/null
+++ b/src/content/posts/creating-a-sample-pack-kick.md
@@ -0,0 +1,83 @@
+---
+title: "Creating a Sample Pack: Kick"
+date: 2023-05-24T16:59:03+02:00
+draft: false
+ShowToc: true
+cover:
+ image: "/posts/creating-a-sample-pack-kick/cover.png"
+ caption: "Creating a Sample Pack: Kick"
+ relative: false
+ responsiveImages: false
+---
+
+>Oi!
+>I've decided to turn that blog more into the musical direction, because I've got enough of IT related stuff on my work. So most probably, I'll be posting about sound design, sound engineering and music more.
+
+## Intro
+
+I want to make a series of articles about sound design. I'll be learning as well during this process, and here I'll just post my findings. If you happen to read it and find mistakes, feel free to send me your thoughts.
+
+I consider this cycle ready, when I have enough of samples, that I can create a beat or a song. After everything is done, I'll publish the sample pack, so anybody can download it for free. And the example of a track will be on my [funkwhale instance](https://funkwhale.badhouseplants.net/library)
+
+## Let's go
+
+I've decided to start with a drum kit. And the first element that I'm going to create is a **kick drum**. I'll be using Vital as a sound design instrument, if you don't know what it is you should check it out here: .
+
+
+First, we need to understand, what the kick actually is. What are components of that sound. I can identify three components of it:
+- Click (that is produced by a pedal)
+- Body (sound from inside a drum)
+- Metal (vibrations of metal components of a drum kit) *This is optional, I'd say*
+
+Let's open Vital
+
+![Empty Vital](/posts/creating-a-sample-pack-kick/init_vital.png)
+
+First of all, let's get rid of all non-persistent stuff (Things that are different on each key press)
+
+![Unison and Phase](/posts/creating-a-sample-pack-kick/unison_phase.png)
+
+*And we will do the same for all wavetables for kick and snare*
+
+Now let's set wave types to `basic shapes`
+
+![Basic Shape](/posts/creating-a-sample-pack-kick/kick_basic_shape.png)
+
+Doesn't sound like a kick yet, but the main trick, as I think, is to map the pitch of that OSC to an LFO, that looks like that, and set the base value to something around **-12**.
+![LFO 1](/posts/creating-a-sample-pack-kick/kick_lfo_1.png)
+
+You can play around a bit and find a perfect spot that will make your kick awesome, but let's listen to what I've got now. I'll use one of defaults `Logic Pro` drum kits and replace a kick with the one I'm creating. Later I'll be replacing other drums as well, and in the end we will have a full drum kit.
+
+Also, we don't need to change a pitch depending on which key is pressed, so let's disable the `Note Track` for all OSC in the `Advanced` tab
+![Note Track disabled](/posts/creating-a-sample-pack-kick/disable_note_track.png)
+
+*Also, after disabling the note tracking, I've set the pitch base value to -14, so it sounds like a kick*
+
+Now, let's listen:
+
+{{< audio "/posts/creating-a-sample-pack-kick/Kick_v1.mp3" >}}
+
+Kick already sounds like a kick, but a lame one, doesn't it. Let's play a bit.
+
+First, let's add a second LFO to control the volume level of the kick, it should be a short hit, so I'm adding a LFO like that and mapping it to the `level` of the first `OSD`
+
+![LFO 2](/posts/creating-a-sample-pack-kick/kick_basic_shape.png)
+
+And then enabling the `Filter 1` and mapping this LFO to the `Filter` as well,
+
+
+It looks and sounds like that
+
+{{< video "/posts/creating-a-sample-pack-kick/Kick_v2.mp4" "video-1">}}
+
+With that filter setup I think, click sounds better. To make it even sharper, let's add some `White Noise` and an additional `LFO` for it.
+
+{{< video "/posts/creating-a-sample-pack-kick/Kick_v3.mp4" "video-2">}}
+
+And now let's add some effects. I've added a little bit of `EQ`, a `Distortion` which drive is mapped to a new `LFO`, and a `Compressor`, so now it looks like that:
+{{< video "/posts/creating-a-sample-pack-kick/Kick_v4.mp4" "video-3">}}
+
+The last step would be to add some more effects, but outside the `Vital` synth already. *And I'd like to change the pattern, because this one is driving me nuts*. So I've added a bit of additional `EQ`, `Distorition`, and `Compression`, and now it sounds like that. `
+
+
+{{< audio "/posts/creating-a-sample-pack-kick/Kick_final_result.mp3" >}}
diff --git a/src/content/post/allanger/dont-use-argocd-for-infrastructure.md b/src/content/posts/dont-use-argocd-for-infrastructure/index.md
similarity index 98%
rename from src/content/post/allanger/dont-use-argocd-for-infrastructure.md
rename to src/content/posts/dont-use-argocd-for-infrastructure/index.md
index fbae692..7037945 100644
--- a/src/content/post/allanger/dont-use-argocd-for-infrastructure.md
+++ b/src/content/posts/dont-use-argocd-for-infrastructure/index.md
@@ -1,14 +1,14 @@
-+++
-title = "Don't use ArgoCD for your infrastructure"
-date = 2023-02-09T12:47:32+01:00
-draft = false
-image = '/posts/dont-use-argocd-for-infrastructure/cover.png'
-categories = [
- "Kubernetes",
- "CI-CD"
-]
-+++
-
+---
+title: "Don't use ArgoCD for your infrastructure"
+date: 2023-02-09T12:47:32+01:00
+draft: false
+ShowToc: true
+cover:
+ image: "/posts/dont-use-argocd-for-infrastructure/cover.png"
+ caption: "ArgoCD"
+ relative: false
+ responsiveImages: false
+---
> Of course, it's just a clickbait title. Use whatever works for you. I will just describe why I wouldn't use `ArgoCD` for the infrastructure
## Prelude
diff --git a/src/content/posts/some-old-beats-are-out.md b/src/content/posts/some-old-beats-are-out.md
new file mode 100644
index 0000000..549e2cf
--- /dev/null
+++ b/src/content/posts/some-old-beats-are-out.md
@@ -0,0 +1,38 @@
+---
+title: "Some old beats are out"
+date: 2023-07-23T13:46:29+02:00
+draft: false
+ShowToc: true
+cover:
+ image: "/posts/some-old-beats-are-out/Cover.png"
+ caption: "Some old beats are out"
+ relative: false
+ responsiveImages: false
+tags:
+ - Music
+ - Beats
+---
+
+I've released some of my old beats that we pending for quite a time. You can check them out on my [Funkwhale](https://funkwhale.badhouseplants.net/channels/allanger_beats)
+
+If you happen to like anything, just let me know, we will figure it out
+
+### Dusted
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Fallen Folk
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Pillows
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
+
+### Swipe
+{{< rawhtml >}}
+
+{{< /rawhtml >}}
diff --git a/src/content/posts/vst-on-linux-1/index.md b/src/content/posts/vst-on-linux-1/index.md
new file mode 100644
index 0000000..ce5eb47
--- /dev/null
+++ b/src/content/posts/vst-on-linux-1/index.md
@@ -0,0 +1,287 @@
+---
+title: "Vst on Linux 1"
+date: 2023-01-24T15:47:50+01:00
+draft: false
+ShowToc: true
+cover:
+ image: "/posts/vst-on-linux-1/cover.png"
+ caption: "Vst on Linux"
+ relative: false
+ responsiveImages: false
+---
+
+>Best, but according to Output. Their article: *[https://output.com/blog/output-favorites-freebies](https://output.com/blog/output-favorites-freebies)
+
+This is kinda article where I'm looking for "BEST FREE VST" articles or videos, or whatever, trying to run them on Linux and checking how they perform. The first article I've found is one by **Output**, so be it.
+
+---
+
+## 1. Arcade by Output π
+
+Freaking unexpected, huh? But what choice do I have? **Walk the walk and talk the talk. **So let's start by pressing the "TRY IT FREE" button.
+
+First I need to enter my email, then I need to enter a bunch of information about myself and then: What a bummer, they want me to add a payment method. And even thought they won't charge me the first month, I'm not doing talking the talk. Sorry, let's go to the next one.
+
+---
+
+## 2. OTT by Xfer π
+
+This one you will find in any top, I believe. It can mean only one thing: it's really one of the best. So let's try.
+
+There is no Linux version of this plugin, so we will have to use the Windows one. How, you would ask me? I will have to install a couple of packages to my system before I'm ready. I'm starting by installing **wine**. Β
+
+I am not going to describe the process of installing it, google `"$YOUR_LINUX_DISTRO_NAME install wine" ` after it's done you may want to create a new wine prefix in your system.
+
+What is wine prefix? Let's think of it as of a directory that contains Windows-related stuff. All plugins will be installed there alongside libraries that are required to make them work.
+
+Let's give this prefix a recognizable name, like `.wine_vst_plugins.` I'm opening the terminal, yes, I'll have to use it, but you shouldn't be scared of it, because terminal is our friend. Opening it and executing:
+
+ $ WINEPREFIX="$PWD/.wine_vst_plugins/" winecfg
+
+
+It will open a window when you can configure your wine prefix, but the main stuff is already done, so I just close it.
+
+To check if we're happy, I'm executing the following
+
+ $ ls -la $HOME/.wine_vst_plugins
+
+ total 3332
+ drwxr-xr-x 1 allanger allanger 126 Oct 27 18:13 .
+ drwx------ 1 allanger root 1922 Oct 27 18:15 ..
+ drwxr-xr-x 1 allanger allanger 8 Oct 27 18:13 dosdevices
+ drwxr-xr-x 1 allanger allanger 110 Oct 27 18:13 drive_c
+ -rw-r--r-- 1 allanger allanger 3282847 Oct 27 18:13 system.reg
+ -rw-r--r-- 1 allanger allanger 12 Oct 27 18:13 .update-timestamp
+ -rw-r--r-- 1 allanger allanger 4130 Oct 27 18:13 userdef.reg
+ -rw-r--r-- 1 allanger allanger 113309 Oct 27 18:13 user.reg
+
+
+If your output looks like mine, we're good to go. Let's install the second tool: [https://github.com/robbert-vdh/yabridge](https://github.com/robbert-vdh/yabridge). You will find all the instructions if you just scroll down a wee bit. After installing it you also must have a tool called **yabridgectl,** to check that it is right, just execute the following
+
+ $ yabridgectl
+
+ yabridgectl 4.0.2
+ Robbert van der Helm
+ Optional utility to help set up yabridge
+
+ USAGE:
+ yabridgectl
+
+ OPTIONS:
+ -h, --help Print help information
+ -V, --version Print version information
+
+ SUBCOMMANDS:
+ add Add a plugin install location
+ rm Remove a plugin install location
+ list List the plugin install locations
+ status Show the installation status for all plugins
+ sync Set up or update yabridge for all plugins
+ set Change the yabridge path (advanced)
+ blacklist Manage the indexing blacklist (advanced)
+ help Print this message or the help of the given subcommand(s)
+
+
+
+I hope you're seeing pretty much the same picture as I am. And it only means that we can go further.
+
+Now it's time to install the plugin itself. I'm downloading the **Windows** version and opening my terminal again
+
+Let's assume that you've downloaded it to the `~/Downloads` folder, and the file name is `Install_Xfer_OTT_135.exe`
+
+ $ cd ~/Dowloads
+ $ WINEPREFIX="$PWD/.wine_vst_plugins/" wine ./Install_Xfer_OTT_135.exe
+
+
+Why we're adding this `WINEPREFIX` thing every time when running `wine`? Because we're saying which wine prefix should be used by wine, since it's not a default path for the prefix.
+
+After installing this plugin, I will need to add it to **yabridge**. To do that, use **yabridgectl**
+
+Instead of what I'm putting after `/drive_c/`, provide a path that you've chosen during the installation
+
+ $ yabridgectl add ~/.wine_vst_plugins/drive_c/Program\ Files/Common\ Files/VST
+ $ yabridgectl sync
+
+
+And I'm opening a DAW, *I assume you already have one too, for here you are. But if you don't, and you don't know which to install, just install **Ardour.***
+
+I'm opening it, adding a track and adding the **OTT** plugin to that track.
+
+![OTT Xfer](/posts/vst-on-linux-1/ott-xfer.png)
+
+It is working and I would even say it's running
+The UI part is a wee bit buggy, but I don't think that it's a problem.
+
+---
+
+## 3. Wider by Polyverse π
+
+I'm entering my email again and receiving a download link. Downloading, unpacking, and installing
+
+ $ WINEPREFIX="$PWD/.wine_vst_plugins/" wine ./InfectedMushroom-Wider-V1.1.3.exe
+ $ yabridgectl sync
+
+
+![Wider](/posts/vst-on-linux-1/wider.png)Again, it's working flawlessly
+So far so good, even the UI part is perfect.
+
+---
+
+## 4. CamelCrusher by Camel Audio π
+
+It can be downloaded even without email thingy.
+
+ $ WINEPREFIX="$HOME/.wine_vst_plugins/" wine ./camelcrusher-win_mac\ \(www.mpcindia.co\)/CamelCrusherWin-1-0-1-x64.exe
+ $ yabridgectl sync
+
+
+βAnd when I'm trying to add it to Ardour, I'm getting an error
+
+ [Info]: Scanning: /home/allanger/.vst/yabridge/CamelCrusher.so
+ 09:23:38 [error]
+ 09:23:38 [error] Error during initialization:
+ 09:23:38 [error] '/home/allanger/.vst/yabridge/CamelCrusher.dll' does not exist, make sure to rename 'libyabridge-vst2.so' to match a VST plugin .dll file.
+ 09:23:38 [error]
+ [ERROR]: ** ERROR** VSTFX : CamelCrusher could not be instantiated :(
+
+ [WARNING]: Cannot get VST information from '/home/allanger/.vst/yabridge/CamelCrusher.so': instantiation failed.
+ Scan Failed.
+
+
+And I can't actually understand what is the problem here.
+
+I don't give up so quickly. Let's try running it via [Carla](https://github.com/carla-simulator/carla). I won't describe how to install it, you can google it.
+
+
+So after it's installed, I'm opening it as a standalone app first and trying to add my **CamelCrusher** there. And it's working. Then the next step is to add **Carla** as a **FX** plugin in **Ardour** and then add CamelCrusher there.
+![CamelCrush](/posts/vst-on-linux-1/camel-crush.png)Working again, but not without Carla
+
+---
+
+## 5. Fracture by Glitchmachines π
+
+I love this plugin, and I'm using it a lot on my MacBook, so it would be nice to run it on **Linux** too. So let's go. But Glitchmachines can give us another great plugin for free, so I will try running both of them here. The other one is **Hysteresis**. So I'm downloading both of them.
+
+After receiving two links, I'm installing them
+
+ $ WINEPREFIX="$HOME/.wine_vst_plugins/" wine Fracture_setup.exe
+ $ WINEPREFIX="$HOME/.wine_vst_plugins/" wine Hysteresis_setup.exe
+ $ yabridgectl sync
+
+
+![Glitchmachines](/posts/vst-on-linux-1/glitchmachines.png)
+
+They are working but there is one UI glitch
+
+![Glitchmachine's making glitch](/posts/vst-on-linux-1/glitchmakesrs-glitch.gif)
+
+#### Maybe you won't notice it on your system
+
+Because we probably have different system configs, so maybe it's only possible to reproduce this bug with a set of configs and packages I'm using in my Linux. So if you don't face this issue, lucky you!
+
+It's not very annoying to me, but to avoid this kind of behaviour, I can wrap these plugins with **Carla.**
+![Glitchmachines with Carla](/posts/vst-on-linux-1/glitchmaker-carla.gif)
+It's working perfectly with Carla *(it's not that buggy in real life, only on the record)*
+
+---
+
+## 6. FreqEcho by Valhalla DSP π
+
+Valhalla's plugins, I think, are one of the most popular in the music world. I don't know a man who doesn't have all of their free plugins installed. Β And I do have them installed already in my system, but I will go through the installation process again, just to describe it here. So let's download all of their free plugins
+
+- Valhalla Freq Echo
+- Valhalla Space Modulator
+- Valhalla Supermassive
+```BASH
+$ WINEPREFIX="$HOME/.wine_vst_plugins/" wine ValhallaFreqEchoWin_V1_2_0.exe
+$ WINEPREFIX="$HOME/.wine_vst_plugins/" wine ValhallaSpaceModulatorWin_1_1_6v3.exe
+$ WINEPREFIX="$HOME/.wine_vst_plugins/" wine ValhallaSupermassiveWin_V2_0_0.exe
+$ yabridgectl sync
+```
+
+![Valhalla plugins](/posts/vst-on-linux-1/valhalla.png)
+All of them run flawlessly
+
+---
+
+## 7. Audio Treasure by Max For Cats π
+
+As far as I could understand, it can be used only in **Ableton Live**, and since I'm not an Ableton user, and I don't want to run it with **Wine** *(cause there is no native Linux version)*, it's becoming the second plugin in the list, that is not working on
+
+## 8. Saturation Knob by Softube π
+
+To get it, I must have a Softube account, (*but I already have it, because I used to download all them free plugins like nuts and create accounts everywhere π€¦)*
+
+So I'm downloading their App Center, that I'm going to use to install a plugin. *I do hate this approach of managing software, but I will cover it in another post one day. *
+
+So the process is very similar to a direct plugin installation. Install **Softube Central** to the same **Wine** prefix
+
+ WINEPREFIX="$HOME/.wine_vst_plugins/" wine Softube\ Central\ Setup\ 1.7.1.exe
+
+
+But after that, I've found out that their **Software Center** is written is **Electron-based** application, and I wasn't yet able to run stuff like this in **Wine**. Maybe later I will put more effort into that, but for now, I'm saying that it's not working. π₯
+
+> #### Some kind of rhetorical question
+>
+> I don't understand why they and, for example, **Splice** can't release a Linux version of their application, it they already use Electron, that in my understanding is supposed for cross-platform development.
+
+---
+
+## 9 and 10. Plugins by iZotope π
+
+**iZotope** is like **Valhalla**, everybody knows it. But I remember having troubles with their plugins on **Linux**. But now I'm trying again, and I'm full of hope.
+
+Plugins:
+
+- iZotope Vinyl
+- iZotope Ozone Imager V2 *(it's not in the Output list, but why not?)*
+- iZotope Vocal Doubler
+
+One more plugin vendor that requires an account creation. But I do have one from those good old times.
+
+Well, since I remember that there was a problem with them, I'll start by trying only one. Let it be **Ozone Imager V2**.
+
+ $ WINEPREFIX="$HOME/.wine_vst_plugins/" wine iZotope_Ozone_Imager_v2_1_0.exe
+
+
+But unfortunately, when I'm opening these plugins, it asks for an authorization, and it doesn't work. It's described in the **yabridge README.md**,but I'm too dummy to read it there.
+
+#### There is a workaround
+
+I've heard that you can download cracked versions of these plugins and they won't require an auth, so they might work. But I'm not trying that, and you shouldn't too.
+
+---
+
+## 11. TAL-Chorus-LX πππ
+
+It's a piece of cake. This plugin has a native build for Linux, so I'm (since I'm using **Arch Linux**) just installing it using **yay**. And you may want to use another package manager, or download it from the official web page, it's presented there.
+![NATIVE, YOU KNOW!](/posts/vst-on-linux-1/tal-chorus.png)
+
+
+---
+
+## 12. Snap Heap by Kilo Hearts π
+
+I was trying to get it, but It didn't seem free.
+
+![Snap Heap](/posts/vst-on-linux-1/snap-heap.png)
+
+---
+
+## 13. Signal Free VST by Output π
+
+I'm sorry, but I'm not even trying. It still hurts since the first place in this top.
+
+---
+
+## Some kind of conclusion
+
+First, you have seen only pictures here but haven't heard anything I've done with these plugins. And I know that it sucks, because we're talking about music. I'll record a track using these plugins later and show you how it's working.
+
+About those plugins that didn't work: I know that some of them are great, and it's sad that **iZotope** are not running on Linux, but there are alternatives that are Linux native. So for each failed one I will try to find an alternative, and later I will share my findings here.
+
+Thanks for reading
+
+Oi!
+
+
diff --git a/src/content/posts/vst-on-linux-2/index.md b/src/content/posts/vst-on-linux-2/index.md
new file mode 100644
index 0000000..7c32ad9
--- /dev/null
+++ b/src/content/posts/vst-on-linux-2/index.md
@@ -0,0 +1,138 @@
+---
+title: "Vst on Linux 2"
+date: 2023-01-31T19:32:34+01:00
+ShowToc: true
+cover:
+ image: "/posts/vst-on-linux-2/cover.png"
+ caption: "VST on Linux"
+ relative: false
+ responsiveImages: false
+---
+
+Big ups, **Venus Theory!**
+[Link to the video](https://www.youtube.com/watch?v=OCzf38fCqB4)
+
+## Prerequisite
+All of them are covered in [the first post]({{< ref "vst-on-linux-1" >}} )
+
+- You have Wine and Yabridge installed
+- You have a Wine prefix configured (in my case, `$HOME/.wine_vst_plugins/`, so every time you see it, use your own wine prefix)
+
+## Deelay π
+
+You can find it here: [https://sixthsample.com/deelay/](https://sixthsample.com/deelay/)
+
+
+After receiving a link, I'm downloading a **Windows 64-bit** version and running
+```BASH
+
+$ WINEPREFIX="$HOME/.wine_vst_plugins/" wine Deelay-1.0.3-Installer-64bit.exe
+$ yabridgectl sync
+```
+
+![A running deelay](/posts/vst-on-linux-2/deelay.png)
+
+It's running, but the context menus UI glitch is present
+Audio qualities of this plugin on Linux are prefect, but when you open any drop-down menu, plugin's window is getting hidden.
+
+![UI glitch](posts/vst-on-linux-2/deelay-glitch.gif)
+
+But it can be fixed with **Carla**. If I'm putting Carla to my FX chain and then adding **Deelay** to **Carla**, this problem is gone.
+
+## Surge XT πππ
+
+This plugin has a native **Linux** version, and it's open-source, so just install it with your package manager or download from the official site. You won't even have to touch **yabridge** and **wine** this time
+
+[**Source code**](https://github.com/surge-synthesizer/surge)
+
+![Surge XT Linux native](/posts/vst-on-linux-2/surge.png)
+
+## Cardinal πππ
+
+**You won't believe me!**
+
+But it's open-source too and has supports **Linux** out of the box.
+
+[**Source code**](https://github.com/DISTRHO/Cardinal)
+
+![Again native and open-source](/posts/vst-on-linux-2/cardinal.png)
+
+## Fire πππ
+
+*It ... is ... open ... source ... too ... and ... supports ... **Linux***
+
+[**Source code**](https://github.com/jerryuhoo/Fire)
+
+So I'm just installing it with a package manager and trying.
+![A real fire](/static/posts/vst-on-linux-2/fire.png)
+
+## Ruina π
+
+*And a couple of others*
+
+It would be too good, if this one had a Linux version. To get this plugin, you will have to create an account, and download their installer πΏ
+
+[https://noiseengineering.us/products/the-freequel-bundle-sinc-vereor-virt-vereor-ruina](https://noiseengineering.us/products/the-freequel-bundle-sinc-vereor-virt-vereor-ruina)
+
+After downloading an Installer, I'm installing it with **wine **to the same prefix I install all their other plugins
+
+ $ WINEPREFIX="$HOME/.wine_vst_plugins/" wine Noise\ Engineering\ Products\ 09358.exe
+
+![The installer](/static/posts/vst-on-linux-2/noise-engineering.png)
+
+It will install plugins, we've only left to sync yabridge config.
+
+ $ yabridgectl sync
+
+![Running Ruina ](/posts/vst-on-linux-2/runia-plugin.png)
+
+![Sinc Vereor](/posts/vst-on-linux-2/sirt-plugin.png)
+
+![Virt Vereor](/posts/vst-on-linux-2/virt-vereor.png)
+
+All of them are working flawlessly. One wouldn't even notice that they're not native
+
+---
+
+## Gatelab π / Filterstep π / Panflow π
+
+No **Linux** version again, so I'm gonna. And they want me to enter my email again. That's a shame, but let's do it anyway. If Venus Theory says they're good, I'm sure they really are.
+
+ $ export WINEPREFIX="$HOME/.wine_vst_plugins/"
+ $ wine Audiomodern_Filterstep_1.1.2/WIN/Filterstep_64\ 1.1.2\ \(Win64\).exe
+ $ wine Audiomodern_Gatelab_1.1.3/WIN/Gatelab\ 1.1.3\ \(Win64\).exe
+ $ wine Audiomodern_Panflow_1.0.1/WIN/Panflow\ 1.0.1\ \(Win64\).exe
+
+I had to rerun Ardour multiple times in order to make these plugins work. **Panflow** is running fine
+
+![Panflow](/posts/vst-on-linux-2/panflow.png)
+
+Gatelab is working fine too
+
+![Gatelab](/posts/vst-on-linux-2/gatelab.png)
+
+But when I add **Filterstep**, Ardour stops responding. I'm sure it's possible to make it work too, so I will try doing that in one of the next articles.
+
+## PaulXStretch πππ
+
+I was tired after **Audiomodern** plugins, because they were freezing my Ardour and I had to log out and log in again to my system, for Ardour wouldn't run again after that.
+
+But **PaulXStretch** has a native Linux version too, and it has given me a strength to finish with this top.
+
+So I'm just installing it with a package manager.
+
+But my expectations were too high. I couldn't add PaulXStretch as a plugin in my **DAW**, even **Carla** couldn't handle it. Only [Kushview Element](https://kushview.net/) could handle it outside a **DAW**, but I couldn't connect Ardour with Element using JACK yet (probably because I'm too dummy). But when running **Element** as a plugin inside an **Ardour**, when I add PaulXStretch, Ardour crashes.
+
+But on the official site of this plugin, there is nothing said about a plugin version of PaulXStretch for Linux. So you can use it as a standalone application. Just record whatever you want, stretch and render an audio file to import it to your **DAW**.
+![PaulXStretch as a standalone application](/posts/vst-on-linux-2/paulxstretch.png)
+---
+
+Actually, I'm very happy to see that 4 of 9 plugins has a native Linux support. It means that developers see now that Linux can be used for music production. And it makes me feel that Linux is becoming more adopted by more and more guys who just want to make music without struggling with their systems.
+
+---
+
+Thanks for reading
+
+Oi!
+
+
diff --git a/src/content/posts/vst-on-linux-3/index.md b/src/content/posts/vst-on-linux-3/index.md
new file mode 100644
index 0000000..c30b1ec
--- /dev/null
+++ b/src/content/posts/vst-on-linux-3/index.md
@@ -0,0 +1,198 @@
+---
+title: "Vst on Linux 3"
+date: 2023-02-03T18:26:44+01:00
+draft: false
+ShowToc: true
+cover:
+ image: "/posts/vst-on-linux-1/cover.png"
+ caption: "Vst on Linux"
+ relative: false
+ responsiveImages: false
+tags: ['music']
+---
+
+I've been told that I should add descriptions to plugins I'm writing about here, and it sounds very reasonable. So now I will not only describe how to install a plugin but also add a small description to it.
+
+## Prerequisite
+
+All of them are covered in [the first post]({{< ref "vst-on-linux-1" >}})
+
+- You have Wine and Yabridge installed
+- You have a Wine prefix configured (in my case, `$HOME/.wine_vst_plugins/`, so every time you see it, use your own wine prefix)
+
+## Before we begin
+
+In the previous post, I was trying to run PaulXStretch on Linux, and using it as a plugin in a DAW didn't work out. I've tried to update the JUCE library in the source code, and now it's working. You can find the code here: [https://git.badhouseplants.net/badhouseplants/paulxstretch](https://git.badhouseplants.net/badhouseplants/paulxstretch)
+
+To build, refer to the official build doc or use the `/build_docker.sh` script
+
+## Melda Free Bundle π
+
+You can find it here:
+
+It's not a one plugin, but a whole bunch of them. I used to have it on my Mac a long ago, but I hate this way of managing plugins, so I don't install them if I'm not sure, I need them. And I never felt this way about **Melda Free Bundle.**
+
+But now I'll try running it on **Linux**. I don't think I'll ever use it, even if it runs smoothly as hell. So I will create an additional temporary wine prefix to install it there.
+
+ $ export WINEPREFIX="$HOME/.wine_vst_plugins_tmp"
+ $ wine maudioplugins_16_01_setup.exe
+
+Install Melda Free bundle
+### MDrummer
+
+[MDrummer](https://www.meldaproduction.com/MDrummer)
+
+Let's start with the MDrummer plugin. I've tried to run it as a plugin in **Ardour**,but it killed it. So I've added it with a **Carla** as a wrapper
+
+I'm downloading several GBs of samples and other data to make it work.
+
+![MDrummer](/posts/vst-on-linux-3/mdrummer.png)
+I'd say it's over-bloated. And UI is a wee bit laggy on Linux
+Let's see what we can do with it
+
+{{< video "/posts/vst-on-linux-3/mdrummer-example.mp4" "video-1" >}}
+
+### MDrumReplacer
+[MDrumReplacer](https://www.meldaproduction.com/MDrumReplacer)
+
+As I understand, this plugin is catching drum signals and replacing them with another sound. So I'll add it next to the **MDrummer** in the **Carla Rack**.
+![Replacer](/posts/vst-on-linux-3/mdrummer-lfo-carla.png)
+
+I've also added LFO in the chain, to modify the pitch value of the **MDrumReplacer** with it, so it doesn't sound so boring (at least, to me).
+
+{{< video "/posts/vst-on-linux-3/mdrummer-example-lfo.mp4" "video-2" >}}
+
+### MPowerSynth
+
+It's just a synth. I don't like the interface, and I'm not gonna use it in the future, so I'm simply using a preset.
+
+{{< video "/posts/vst-on-linux-3/mpower-synth.mp4" "video-3" >}}
+
+It sounds a wee bet laggy, but it's just on a video
+
+---
+
+*I'm sorry, I'm not trying all of them, because it's too much. Let's try another one and go further.*
+
+### MGuitarArchitect
+
+It's like a pedal board, as I see. I can add many effects here. Let's try adding it to the same **Carla Rack** that is used for the bass.
+
+{{< video "/posts/vst-on-linux-3/mguitar-architect.mp4" "video-4" >}}
+
+---
+
+## u-he TyrellN6 π
+[u-he TyrellN6 ](https://u-he.com/products/tyrelln6/)
+
+I think that almost every **u-he** plugins has a native **Linux** support, and **Tyrell** is not an exception. But you most probably won't be able to install it with a package manager, because it's available only on Amazona.de. So just follow the link on the official web-page and download the Linux version.
+
+This is a pretty minimalistic synth, that can help you produce a lot of cool sounds without spending tons of hours learning it. I definitely can recommend it, as I can recommend anything developed by **u-he**
+
+Unpack the archive and run the **./install.sh** script
+
+ $ ./TyrellN6-3898/install.sh
+
+{{< video "/posts/vst-on-linux-3/tyrell.mp4" "video-5" >}}
+
+I can't tell anything bad about **u-he**, I love all their plugins, I love that they support Linux and I love that they together with **Bitwig** are working on the new plugin open-source format ([CLAP](https://github.com/free-audio/clap)).
+
+Tyrell is just a very cool free synth. What else can I say?
+
+---
+
+## Valhalla Supermassive π
+
+I've already covered Valhalla plugins in the [first post]({{< ref "vst-on-linux-1" >}}), so it doesn't make sense to repeat myself, instead of that, I'll add every free **Valhalla** plugin to the project and show you how it's working.
+
+{{< video "/posts/vst-on-linux-3/vallhalla.mp4" "video-6" >}}
+
+
+## Spitfire Labs π
+[Spitfire Labs](https://labs.spitfireaudio.com/?sortBy=prod_products_labs_latest)
+
+I think, everybody knows what's that. But if you don't and you don't mind creating a Spitfire account, just try.
+
+I need to create an account for downloading that. *But I already have one, because I'm an active LABS user.*
+
+ $ wine SpitfireAudio-Win-3.4.0.exe
+ $ yabridgectl sync
+
+You will have to install presets
+![Spitfire App](/posts/vst-on-linux-3/spitfire-labs-app.png)
+
+{{< video "/posts/vst-on-linux-3/labs-example.mp4" "video-7" >}}
+
+## Infinite Space Piano π
+
+[Space Piano](https://zaksound.com/infinite-space-piano/)
+
+This is a piano synth. I already have a lot of them, and as for me, this is yet another one. But is sounds pretty good, so you may like it.
+
+This time I really need to create an account, because it's the first time I hear about this one.
+
+There is no **Linux** version, I'm getting the **Windows** one. I've got a feeling that I'm not gonna use it in the future, so I'm installing it in the temporary prefix.
+
+ $ export WINEPREFIX="$HOME/.wine_vst_plugins_tmp/"
+ $ wine Infinite\ Space\ Piano\ 2.exe
+ $ yabridgectl sync
+
+{{< video "/posts/vst-on-linux-3/space-piano.mp4" "video-8" >}}
+
+## ProjectSAM Free Orchestra π
+[Free Orchestra](https://projectsam.com/libraries/the-free-orchestra/)
+![Free Orchestra](/posts/vst-on-linux-3/native-access.png)
+Ok, let's try
+I'm downloading **Native Access**, and it's not working. And this is the moment, I'm giving up on this plugin.
+
+## Eventide Pendulateπ
+[Eventide Pendulate](https://www.eventideaudio.com/plug-ins/pendulate/)
+
+Downloading a Windows version again.
+
+ $ wine Pendulate-1.3.6-windows-installer.exe
+ $ yabridgectl sync
+
+{{< video "/posts/vst-on-linux-3/eventide-pendulate.mp4" "video-9" >}}
+
+Running just fine
+As you see, this is a pretty interesting Synth, I have enough of synths for everything, but this one may join the ranks too.
+
+## VCV Rack π
+[VCV Rack](https://vcvrack.com/)
+
+VCV Rack is an open-source Eurorack modular synthesizer simulator
+
+I've already covered the Cardinal plugin [here]({{< ref "vst-on-linux-2" >}}). And this is basically the same thing. And so I will just show **Cardinal** instead of **VCV Rack**. But if you want VCV Rack, it's working on Linux just fine, but you can't use the free version as a plugin, that's why I'm showing Cardinal
+
+{{< video "/posts/vst-on-linux-3/vcv-rack.mp4" "video-10" >}}
+
+I didn't have enough time to learn it yet, so that's what I could do with it
+
+## U-He Protoverb π
+[U-He Protoverb](https://u-he.com/products/protoverb/)
+
+Protoverb is a reverb created by u-he. It has native Linux support
+
+Download the **Linux** version and install it by running a script. You can find everything [here](https://u-he.com/products/protoverb/)
+
+## PaulXStretch π
+
+It's already covered in the previous article. But since then, one thing is changed. You could've seen it in the very beginning of the post, that I've updated JUCE library in the source code, and now it's running as a VST plugin. If you missed it, try reading the beginning one more time.
+
+I'm testing it currently, but you can help me with that.
+
+## Bonus: Vital π
+[Vital](https://vital.audio/)
+
+I think this is the best Synth ever made. It's open source and has Linux support. I use it in every project and if you don't, I recommend you to start doing that.
+
+{{< video "/posts/vst-on-linux-3/vital.mp4" "video-11" >}}
+
+The video is laggy again, but in reality it's fine.
+
+---
+If you like what I'm doing, you can follow my [twitter](https://twitter.com/_allanger) or [mastodon](https://mastodon.social/@allanger), since I'll be posing there all the updates
+
+Thanks
+Oi!
diff --git a/src/content/search.md b/src/content/search.md
new file mode 100644
index 0000000..39ef5f9
--- /dev/null
+++ b/src/content/search.md
@@ -0,0 +1,8 @@
+---
+title: "Search" # in any language you want
+layout: "search" # is necessary
+# url: "/archive"
+# description: "Description for Search"
+summary: "search"
+placeholder: "placeholder text in search input box"
+---
\ No newline at end of file
diff --git a/src/hugo.yaml b/src/hugo.yaml
deleted file mode 100644
index 1c17075..0000000
--- a/src/hugo.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-languageCode: en-us
-title: Bad Houseplants
-theme: stack
-favicon: /favicon.ico
-Params:
- GitBranch: main
- GitCommit: unknown
- mainSections:
- - post
- sidebar:
- avatar:
- enable: true
- local: false
- src: /avatar.png
- subtitle: PunkOps by allanger
- comments:
- enabled: true
- provider: remark42
- remark42:
- host: https://remark42.badhouseplants.net
- site: remark
- locale: en
- widgets:
- homepage:
- - type: search
- - type: archives
- params:
- limit: 5
- - type: categories
- params:
- limit: 10
- #- type: tag-cloud
- # params:
- # limit: 10
- page:
- - type: toc
-related:
- includeNewer: true
- threshold: 60
- toLower: false
- indices:
- - name: tags
- weight: 100
- - name: categories
- weight: 200
diff --git a/src/layouts/_default/_markup/render-link.html b/src/layouts/_default/_markup/render-link.html
new file mode 100644
index 0000000..f04b2e3
--- /dev/null
+++ b/src/layouts/_default/_markup/render-link.html
@@ -0,0 +1 @@
+{{ .Text | safeHTML }}
diff --git a/src/static/about/logo.png b/src/static/about/logo.png
new file mode 100644
index 0000000..7170a55
--- /dev/null
+++ b/src/static/about/logo.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bebcfc710633a536ebe3124770dceb100760c108cb861f6e5971f37d867e38f7
+size 233283
diff --git a/src/static/android-chrome-192x192.png b/src/static/android-chrome-192x192.png
new file mode 100644
index 0000000..e785708
--- /dev/null
+++ b/src/static/android-chrome-192x192.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b5da923b06b69780de08c3450e99793a266c615e535a1053c718d6ae9eb8cb35
+size 20377
diff --git a/src/static/android-chrome-512x512.png b/src/static/android-chrome-512x512.png
new file mode 100644
index 0000000..fb1798a
--- /dev/null
+++ b/src/static/android-chrome-512x512.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:193f9db492edcc5a1202f85998675cc23dcf82a6666fcebe8a492c8c1dbe2673
+size 44441
diff --git a/src/static/apple-touch-icon.png b/src/static/apple-touch-icon.png
new file mode 100644
index 0000000..91a62b9
--- /dev/null
+++ b/src/static/apple-touch-icon.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efe8ae3cd0bc31b15c9e0d8e622a3019b969f07cf1692194dcad54c133f03925
+size 18092
diff --git a/src/static/favicon-16x16.png b/src/static/favicon-16x16.png
new file mode 100644
index 0000000..2c71d71
--- /dev/null
+++ b/src/static/favicon-16x16.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44436d4ce290289438e1f06101af312b83a535142b5a7cc8faa1e597a58d4c05
+size 585
diff --git a/src/static/favicon-32x32.png b/src/static/favicon-32x32.png
new file mode 100644
index 0000000..7ad9d34
--- /dev/null
+++ b/src/static/favicon-32x32.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:168891830d9dcfb9146a4f907a50cfddfb4b06c9245cf65fa6398ff89edf127d
+size 1501
diff --git a/src/static/icons/beats.svg b/src/static/icons/beats.svg
deleted file mode 100644
index d725db2..0000000
--- a/src/static/icons/beats.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:11f41a9605317d89fb8ffc5f6e29a1b7db29e954a9d12ce98280c6d561548a75
-size 1253
diff --git a/src/static/avatar.png b/src/static/main-logo.png
similarity index 100%
rename from src/static/avatar.png
rename to src/static/main-logo.png
diff --git a/src/static/music/allanger-Anymore.jpg b/src/static/music/allanger-Anymore.jpg
new file mode 100644
index 0000000..b61b87c
--- /dev/null
+++ b/src/static/music/allanger-Anymore.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:03b9da09d850d01c9cb420c6b3a128c5395872f07461e4b0488f665bddfd9835
+size 1065466
diff --git a/src/static/music/allanger-Await.jpg b/src/static/music/allanger-Await.jpg
new file mode 100644
index 0000000..ca40a44
--- /dev/null
+++ b/src/static/music/allanger-Await.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:045b360f443946471fefff417f4d09f26b8a5ec10a163efe05770589d88eed8c
+size 1907777
diff --git a/src/static/music/allanger-Desensitized.png b/src/static/music/allanger-Desensitized.png
new file mode 100755
index 0000000..bdc2a0d
--- /dev/null
+++ b/src/static/music/allanger-Desensitized.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:293efeb5270f812ce115b6de8df01139e9a4eca1405611bce1b9c0a2104164f8
+size 13919204
diff --git a/src/static/music/allanger-Four_Steps_Behind.jpg b/src/static/music/allanger-Four_Steps_Behind.jpg
new file mode 100644
index 0000000..fbf98a9
--- /dev/null
+++ b/src/static/music/allanger-Four_Steps_Behind.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2def9a412cba612ccf55cc39deeb82f971418ad27119c93d63844c7c25bc0748
+size 2045790
diff --git a/src/static/music/allanger-Let_Me_Kill.png b/src/static/music/allanger-Let_Me_Kill.png
new file mode 100644
index 0000000..bca3626
--- /dev/null
+++ b/src/static/music/allanger-Let_Me_Kill.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c78774248cc5bddd94a3ed7f32680411e7ee2be64c0a2b0aed0ca2b03e2cc12
+size 9096807
diff --git a/src/static/music/allanger-Not_Alone.png b/src/static/music/allanger-Not_Alone.png
new file mode 100644
index 0000000..3c8c207
--- /dev/null
+++ b/src/static/music/allanger-Not_Alone.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eb4daf5db317c1729021449f763feebd1928eb980e523700732232234546e502
+size 9276169
diff --git a/src/static/music/allanger-Out_of_Law.png b/src/static/music/allanger-Out_of_Law.png
new file mode 100644
index 0000000..a212a6d
--- /dev/null
+++ b/src/static/music/allanger-Out_of_Law.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ac867a2e557c98b6fee62d405a55718a0b40401547d9a52a0c582de94ae5a0e
+size 14588816
diff --git a/src/static/music/allanger-Trace.png b/src/static/music/allanger-Trace.png
new file mode 100644
index 0000000..1f227c5
--- /dev/null
+++ b/src/static/music/allanger-Trace.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e946e1c9f687afc3cbfd19fded47316ad97ce7a00a2c23b8c533fe6cf5d33553
+size 13036141
diff --git a/src/static/music/allanger-Under_My_Pillow.png b/src/static/music/allanger-Under_My_Pillow.png
new file mode 100644
index 0000000..7e1acfc
--- /dev/null
+++ b/src/static/music/allanger-Under_My_Pillow.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c794c1a5e3e2072505e452fe51a53b0a001c6cc4e2d7b241b592fd89c939d027
+size 11667637
diff --git a/src/static/music/allanger-Waster_Time.png b/src/static/music/allanger-Waster_Time.png
new file mode 100644
index 0000000..1e4f75e
--- /dev/null
+++ b/src/static/music/allanger-Waster_Time.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b5e42ea91f87e4162b5031edc9b99f3cc0e41077c924a2c85a245cb2c81e2fb6
+size 6004369
diff --git a/src/static/music/allanger.png b/src/static/music/allanger.png
new file mode 100644
index 0000000..58857e9
--- /dev/null
+++ b/src/static/music/allanger.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:50db4edd406a153c57ed389e39b6d557af10752ffbdb8d0e07f847da268a0a79
+size 819858
diff --git a/src/static/posts/some-old-beats-are-out/Cover.png b/src/static/posts/some-old-beats-are-out/Cover.png
new file mode 100644
index 0000000..07293c6
--- /dev/null
+++ b/src/static/posts/some-old-beats-are-out/Cover.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:716c31ed52cda78bf3b355f4ce262d0efb8e1170e00343ed6bdb405b001d4bd7
+size 2721809
diff --git a/src/static/posts/vst-on-linux-1/camel-crush.png b/src/static/posts/vst-on-linux-1/camel-crush.png
new file mode 100644
index 0000000..a28a527
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/camel-crush.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57c298cbc2c38423baadaeab60b48064ecc04a96486765c41e90c9d8dd937816
+size 842713
diff --git a/src/static/posts/vst-on-linux-1/cover.png b/src/static/posts/vst-on-linux-1/cover.png
new file mode 100644
index 0000000..72fea0f
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/cover.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0032e505955f87a9285bce7f9df0d02a9508a79bcda45206512168150a3d8df4
+size 702566
diff --git a/src/static/posts/vst-on-linux-1/glitchmachines.png b/src/static/posts/vst-on-linux-1/glitchmachines.png
new file mode 100644
index 0000000..ecf53bb
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/glitchmachines.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d23698e02dd5412beeba2edbae158464cf723a65f82849b5ba5e79b034197f40
+size 263703
diff --git a/src/static/posts/vst-on-linux-1/glitchmaker-carla.gif b/src/static/posts/vst-on-linux-1/glitchmaker-carla.gif
new file mode 100644
index 0000000..ab1fa0f
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/glitchmaker-carla.gif
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d980570ae12bfb7564b87efbf1efad9040d1659325c888372bce32de3ebc91d
+size 26935564
diff --git a/src/static/posts/vst-on-linux-1/glitchmakesrs-glitch.gif b/src/static/posts/vst-on-linux-1/glitchmakesrs-glitch.gif
new file mode 100644
index 0000000..98e3395
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/glitchmakesrs-glitch.gif
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f47cf8172c4ed6f91f53dd6dd6c3c46be7f8153e2a3d5de25c5d455dec14fb46
+size 17660362
diff --git a/src/static/posts/vst-on-linux-1/ott-xfer.png b/src/static/posts/vst-on-linux-1/ott-xfer.png
new file mode 100644
index 0000000..0cea332
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/ott-xfer.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1f9725d7977d3c36f1655ddfbaf6e57e53854e41d44ed67da36ae021eb18371f
+size 279992
diff --git a/src/static/posts/vst-on-linux-1/snap-heap.png b/src/static/posts/vst-on-linux-1/snap-heap.png
new file mode 100644
index 0000000..e094d5d
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/snap-heap.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44e7397856bceac94354abcf0e9df23c820f9bc743da800b6e020a2a9c78c082
+size 601331
diff --git a/src/static/posts/vst-on-linux-1/tal-chorus.png b/src/static/posts/vst-on-linux-1/tal-chorus.png
new file mode 100644
index 0000000..752d3e2
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/tal-chorus.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d15294da4f84b2f11627ee69be01cdaf3298e18e62e142d4e668e50cc4aee050
+size 214950
diff --git a/src/static/posts/vst-on-linux-1/valhalla.png b/src/static/posts/vst-on-linux-1/valhalla.png
new file mode 100644
index 0000000..69286ed
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/valhalla.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69e748529ae61f471a5b88858b2f2edfed84f79db03f2ddfc32ed0071496b3a6
+size 326068
diff --git a/src/static/posts/vst-on-linux-1/wider.png b/src/static/posts/vst-on-linux-1/wider.png
new file mode 100644
index 0000000..735e803
--- /dev/null
+++ b/src/static/posts/vst-on-linux-1/wider.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c8bbcad8a7c2e1a5d1c49022c4b7d30eb515b85cb9f37bbc0092204f64bbb898
+size 518231
diff --git a/src/static/posts/vst-on-linux-2/cardinal.png b/src/static/posts/vst-on-linux-2/cardinal.png
new file mode 100644
index 0000000..d552ca8
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/cardinal.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8e2bdb61aaa10a0e15a550aca00a55d2f0a197c684d1a845b1c8a6c874ffb99
+size 424994
diff --git a/src/static/posts/vst-on-linux-2/cover.png b/src/static/posts/vst-on-linux-2/cover.png
new file mode 100644
index 0000000..8860f70
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/cover.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1fd944493b86816af42b4ac495f138f60a6a4cbf20790073e8df19f21e8113c5
+size 518356
diff --git a/src/static/posts/vst-on-linux-2/deelay-glitch.gif b/src/static/posts/vst-on-linux-2/deelay-glitch.gif
new file mode 100644
index 0000000..79b0fd4
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/deelay-glitch.gif
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ab3679098e5c7c19b6cabcd9b274a4ff5be9bd3880bfea24dc69c14a28291d4
+size 166217444
diff --git a/src/static/posts/vst-on-linux-2/deelay.png b/src/static/posts/vst-on-linux-2/deelay.png
new file mode 100644
index 0000000..c582999
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/deelay.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d84b4accbdb7be7156730e024367cc57ee3c7b3c55b628ebe8b866baf9b0cf6d
+size 437298
diff --git a/src/static/posts/vst-on-linux-2/fire.png b/src/static/posts/vst-on-linux-2/fire.png
new file mode 100644
index 0000000..feccbfa
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/fire.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d7cc2ea5c4515e101f09ee82b3294af580b95ac6d7a30c4f80ed7746c897179
+size 382513
diff --git a/src/static/posts/vst-on-linux-2/gatelab.png b/src/static/posts/vst-on-linux-2/gatelab.png
new file mode 100644
index 0000000..711a6f6
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/gatelab.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:162138d7c368b852bece411dd039482a15c596a2c33bfcf056afd7fdd847ffcf
+size 320536
diff --git a/src/static/posts/vst-on-linux-2/noise-engineering.png b/src/static/posts/vst-on-linux-2/noise-engineering.png
new file mode 100644
index 0000000..60cafae
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/noise-engineering.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c9a3b2ea6b4396a918f6e1c25b51ed28b33093ac3c00d430cecf778551332631
+size 440546
diff --git a/src/static/posts/vst-on-linux-2/panflow.png b/src/static/posts/vst-on-linux-2/panflow.png
new file mode 100644
index 0000000..d95efd3
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/panflow.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5bec35f61c11bfe87de3107baeb56e7a31a49328d397cbc00a1ec2b50ab9f6c4
+size 270835
diff --git a/src/static/posts/vst-on-linux-2/paulxstretch.png b/src/static/posts/vst-on-linux-2/paulxstretch.png
new file mode 100644
index 0000000..e053415
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/paulxstretch.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b1818e1a95a280f004c7311a18812edab1e9436847e06ef5dd8402e5f09c645c
+size 185558
diff --git a/src/static/posts/vst-on-linux-2/runia-plugin.png b/src/static/posts/vst-on-linux-2/runia-plugin.png
new file mode 100644
index 0000000..51c9f99
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/runia-plugin.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4fd23c468cade663d64694633d8486c49a590bc92b89169e4524bdcf0b9315ff
+size 320187
diff --git a/src/static/posts/vst-on-linux-2/sirt-plugin.png b/src/static/posts/vst-on-linux-2/sirt-plugin.png
new file mode 100644
index 0000000..b704162
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/sirt-plugin.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:162a4c1349fc74fd607932a2d084c6d1ae7702ad2d101d7eb52c9765d010a41b
+size 396243
diff --git a/src/static/posts/vst-on-linux-2/surge.png b/src/static/posts/vst-on-linux-2/surge.png
new file mode 100644
index 0000000..7bb4a75
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/surge.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a18fbe266596c92803737fbf96d1aaeb6a5aff6cc30052ddedfdd988bfd4f2dd
+size 532448
diff --git a/src/static/posts/vst-on-linux-2/virt-vereor.png b/src/static/posts/vst-on-linux-2/virt-vereor.png
new file mode 100644
index 0000000..b7c8e23
--- /dev/null
+++ b/src/static/posts/vst-on-linux-2/virt-vereor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dce9d0528a0807b19e6a65e198f2efabb1433e6d462f600419e08ef79011bd56
+size 424311
diff --git a/src/static/posts/vst-on-linux-3/cover.png b/src/static/posts/vst-on-linux-3/cover.png
new file mode 100644
index 0000000..d9c9685
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/cover.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:72dd103d0002b201fc869b7f029d996093c1192d051bdd10475b7abda5e4994d
+size 1106123
diff --git a/src/static/posts/vst-on-linux-3/eventide-pendulate.mp4 b/src/static/posts/vst-on-linux-3/eventide-pendulate.mp4
new file mode 100644
index 0000000..ed3234a
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/eventide-pendulate.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aef76ca940fb050a6d26e75f27b9ec5effb87af8c10b5d8ba30152f1f42151a2
+size 6126500
diff --git a/src/static/posts/vst-on-linux-3/labs-example.mp4 b/src/static/posts/vst-on-linux-3/labs-example.mp4
new file mode 100644
index 0000000..f732108
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/labs-example.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:566decff07913546a463f35bb9c0e47945b0366c9294b1afbc4bf89c04bd5eea
+size 6973433
diff --git a/src/static/posts/vst-on-linux-3/mdrummer-example-lfo.mp4 b/src/static/posts/vst-on-linux-3/mdrummer-example-lfo.mp4
new file mode 100644
index 0000000..c0e74d2
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/mdrummer-example-lfo.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0313445baf62290fa6a8fa55b9d36554e3de7195ae3b898612bae23c1df557a5
+size 7651823
diff --git a/src/static/posts/vst-on-linux-3/mdrummer-example.mp4 b/src/static/posts/vst-on-linux-3/mdrummer-example.mp4
new file mode 100644
index 0000000..f297abe
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/mdrummer-example.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:73b29483feaf48cb9baf01946f9da926ac25d8367110958de00a5a8fce1bc996
+size 7935948
diff --git a/src/static/posts/vst-on-linux-3/mdrummer-lfo-carla.png b/src/static/posts/vst-on-linux-3/mdrummer-lfo-carla.png
new file mode 100644
index 0000000..ee89edd
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/mdrummer-lfo-carla.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:af8e673858ef7bb279a89cf574ef29d56484f4258891e10716078072d001485b
+size 321828
diff --git a/src/static/posts/vst-on-linux-3/mdrummer.png b/src/static/posts/vst-on-linux-3/mdrummer.png
new file mode 100644
index 0000000..2c7e53d
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/mdrummer.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e0874adf6e5bc5d15c5601f8a5dbdd710fd4e82d30e6e8e998cc5a7b3b989dcf
+size 330065
diff --git a/src/static/posts/vst-on-linux-3/mguitar-architect.mp4 b/src/static/posts/vst-on-linux-3/mguitar-architect.mp4
new file mode 100644
index 0000000..56e7df6
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/mguitar-architect.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bcaa8b6a4e3e5b7f97d870dcba891eb486e89f8c13c879332bf3cb0d9734419e
+size 5060479
diff --git a/src/static/posts/vst-on-linux-3/mpower-synth.mp4 b/src/static/posts/vst-on-linux-3/mpower-synth.mp4
new file mode 100644
index 0000000..e33bbdf
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/mpower-synth.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b8701ec9c674680f6ac84bd857aba76d11b22df6621cd1189efb28c326970e7
+size 3493304
diff --git a/src/static/posts/vst-on-linux-3/native-access.png b/src/static/posts/vst-on-linux-3/native-access.png
new file mode 100644
index 0000000..f202ba5
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/native-access.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9247d5488be4c562b51b51db9eceb26afbfefd0c79d6802eaeeb39f5885bd4a7
+size 49413
diff --git a/src/static/posts/vst-on-linux-3/protoverb.mp4 b/src/static/posts/vst-on-linux-3/protoverb.mp4
new file mode 100644
index 0000000..45b0e55
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/protoverb.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a63d449ec1896ee8856326c8b5c82372fd6e90e534320f1e1d00a97aa4033381
+size 7597907
diff --git a/src/static/posts/vst-on-linux-3/space-piano.mp4 b/src/static/posts/vst-on-linux-3/space-piano.mp4
new file mode 100644
index 0000000..52296f3
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/space-piano.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce96dcd3663dea25dafe601e006fdd6484ea1fd0fd575f0c705a8f67618b1d54
+size 11211344
diff --git a/src/static/posts/vst-on-linux-3/spitfire-labs-app.png b/src/static/posts/vst-on-linux-3/spitfire-labs-app.png
new file mode 100644
index 0000000..8c20b06
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/spitfire-labs-app.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b180ddc8e021a57e3a5e9b5f8d6edbf951e34cfa73ca4d758262e8d9bbee36c4
+size 1309436
diff --git a/src/static/posts/vst-on-linux-3/tyrell.mp4 b/src/static/posts/vst-on-linux-3/tyrell.mp4
new file mode 100644
index 0000000..ada8551
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/tyrell.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c36ee6105ac53f6f08dbff13fe4fe66258ac9d0dc2522c155be9793e5288155
+size 4176960
diff --git a/src/static/posts/vst-on-linux-3/vallhalla.mp4 b/src/static/posts/vst-on-linux-3/vallhalla.mp4
new file mode 100644
index 0000000..0988550
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/vallhalla.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:140102721033c63e0bbe47526e371fbefd7c3b204aa0c525a03574bac7ccc3bd
+size 15858934
diff --git a/src/static/posts/vst-on-linux-3/vcv-rack.mp4 b/src/static/posts/vst-on-linux-3/vcv-rack.mp4
new file mode 100644
index 0000000..77e3667
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/vcv-rack.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44da75a3ba194cc1f4dc808e047acc20abfc4103c61e6199bcf093891ff453de
+size 6165846
diff --git a/src/static/posts/vst-on-linux-3/vital.mp4 b/src/static/posts/vst-on-linux-3/vital.mp4
new file mode 100644
index 0000000..5ff3a94
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/vital.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:06d8edc10a5a0fd93b4eebd467bd5be640e8ffbf87bc8e9b3f8528e762812beb
+size 6298246
diff --git a/src/static/posts/vst-on-linux-3/vst-on-linix-3-cover.png b/src/static/posts/vst-on-linux-3/vst-on-linix-3-cover.png
new file mode 100644
index 0000000..d9c9685
--- /dev/null
+++ b/src/static/posts/vst-on-linux-3/vst-on-linix-3-cover.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:72dd103d0002b201fc869b7f029d996093c1192d051bdd10475b7abda5e4994d
+size 1106123
diff --git a/src/themes/papermod b/src/themes/papermod
new file mode 160000
index 0000000..bacb763
--- /dev/null
+++ b/src/themes/papermod
@@ -0,0 +1 @@
+Subproject commit bacb763071d9852bb719675e6c4452fc5650a193
diff --git a/src/themes/stack b/src/themes/stack
deleted file mode 160000
index fddab05..0000000
--- a/src/themes/stack
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit fddab053628070668cd9c9eb0b96d9a6246fcc71