3 Commits

Author SHA1 Message Date
2d0756cc9e WIP: nothing's going on 2023-04-25 08:41:45 +00:00
fa77b16d5f Some formatting 2023-04-25 08:41:45 +00:00
a875a45cf5 init branch 2023-04-25 08:41:45 +00:00
163 changed files with 711 additions and 1133 deletions

View File

@ -4,8 +4,8 @@
node_modules/**/*
node_modules
src/static/**/*
src/static
static/**/*
static
scripts/**/*
scripts

View File

@ -3,7 +3,7 @@
# -- Update the helm chart
# ----------------------------------------------
kind: pipeline
type: docker
type: kubernetes
name: Publish the helm chart
trigger:
@ -26,7 +26,7 @@ steps:
# -- Build the site and push it to the registry
# ----------------------------------------------
kind: pipeline
type: docker
type: kubernetes
name: Build badhouseplants.net
trigger:
@ -41,21 +41,20 @@ steps:
environment:
GIT_LFS_SKIP_SMUDGE: 1
commands:
- git clone $DRONE_REMOTE_URL .
- git checkout $DRONE_BRANCH
- git submodule update --init --recursive
- git clone $DRONE_REMOTE_URL --recurse-submodules .
- git checkout $DRONE_COMMIT
- name: Test a build
image: git.badhouseplants.net/badhouseplants/hugo-builder
depends_on:
depends_on:
- clone
commands:
- hugo -s ./src
- hugo
- name: Build and push the docker image
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
privileged: true
depends_on:
depends_on:
- Test a build
environment:
GITEA_TOKEN:
@ -64,8 +63,8 @@ steps:
- ./scripts/build-container.pl
- name: Sync pictures from lfs to Minio
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
depends_on:
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:80ffd53372652576fa3c36a56b351b448a025c6a
depends_on:
- Test a build
environment:
RCLONE_CONFIG_CONTENT:
@ -75,27 +74,89 @@ steps:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- ./scripts/upload-media.pl
- name: Deploy the application
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
- name: Deploy a preview ApplicationSet
image: alpine/k8s:1.24.10
when:
branch:
exclude:
- main
depends_on:
- Build and push the docker image
- Sync pictures from lfs to Minio
environment:
KUBECONFIG_CONTENT:
from_secret: KUBECONFIG_CONTENT
commands:
- mkdir $HOME/.kube
- echo $KUBECONFIG_CONTENT | base64 -d > $HOME/.kube/config
- apk update --no-cache && apk add yq gettext openssl
- export ARGO_APP_CHART_VERSION=`cat chart/Chart.yaml | yq '.version'`
- export ARGO_APP_BRANCH=$DRONE_BRANCH
- export ARGO_APP_HOSTNAME="${DRONE_BRANCH}-dev.badhouseplants.net"
- export ARGO_APP_IMAGE_TAG=$DRONE_COMMIT_SHA
- export ARGO_REMARK42_SECRET=$(openssl rand -hex 12)
- kubectl get -f ./kube/applicationset.yaml -o yaml > /tmp/appset.yaml
- yq -i "del(.metadata.resourceVersion)" /tmp/appset.yaml
- yq -i "del(.metadata.generation)" /tmp/appset.yaml
- yq -i "del(.metadata.uid)" /tmp/appset.yaml
- yq -i "del(.status)" /tmp/appset.yaml
- yq -i "del(.spec.generators[].list.elements[] | select(.branch == \"$ARGO_APP_BRANCH\"))" /tmp/appset.yaml
- envsubst < ./kube/template.yaml > /tmp/elements.yaml
- yq -i '.spec.generators[].list.elements += load("/tmp/elements.yaml")' /tmp/appset.yaml
- kubectl apply -f /tmp/appset.yaml
- name: Deploy a main ApplicationSet
image: alpine/k8s:1.24.10
when:
branch:
- main
depends_on:
- Build and push the docker image
- Sync pictures from lfs to Minio
environment:
KUBECONFIG_CONTENT:
from_secret: KUBECONFIG_CONTENT
ARGO_GITHUB_OAUTH_KEY:
from_secret: GITHUB_OAUTH_KEY
ARGO_GOOGLE_OAUTH_KEY:
from_secret: GOOGLE_OAUTH_KEY
commands:
- mkdir $HOME/.kube
- echo $KUBECONFIG_CONTENT | base64 -d > $HOME/.kube/config
- apk update --no-cache && apk add yq gettext
- export ARGO_APP_CHART_VERSION=`cat chart/Chart.yaml | yq '.version'`
- export ARGO_APP_BRANCH=$DRONE_BRANCH
- export ARGO_APP_IMAGE_TAG=$DRONE_COMMIT_SHA
- kubectl get -f ./kube/applicationset.yaml -o yaml > /tmp/appset.yaml
- yq -i "del(.metadata.resourceVersion)" /tmp/appset.yaml
- yq -i "del(.metadata.generation)" /tmp/appset.yaml
- yq -i "del(.metadata.uid)" /tmp/appset.yaml
- yq -i "del(.status)" /tmp/appset.yaml
- yq -i "del(.spec.generators[].list.elements[] | select(.branch == \"$ARGO_APP_BRANCH\"))" /tmp/appset.yaml
- yq -i "del(.spec.generators[].list.elements[] | select(.commit_sha == \"$ARGO_APP_IMAGE_TAG\"))" /tmp/appset.yaml
- yq -i '. *= load("./kube/applicationset.yaml")' /tmp/appset.yaml
- envsubst < ./kube/main.yaml > /tmp/elements.yaml
- yq -i '.spec.generators[].list.elements += load("/tmp/elements.yaml")' /tmp/appset.yaml
- kubectl apply -f /tmp/appset.yaml
- name: Sync application
image: argoproj/argocd
depends_on:
- Deploy a main ApplicationSet
- Deploy a preview ApplicationSet
environment:
ARGOCD_SERVER:
from_secret: ARGOCD_SERVER
ARGOCD_AUTH_TOKEN:
from_secret: ARGOCD_AUTH_TOKEN
ARGO_GITHUB_OAUTH_KEY:
from_secret: GITHUB_OAUTH_KEY
ARGO_GOOGLE_OAUTH_KEY:
from_secret: GOOGLE_OAUTH_KEY
commands:
- ./scripts/deploy-app.pl
- argocd app sync -l app=badhouseplants -l branch=$DRONE_BRANCH
- argocd app wait -l app=badhouseplants -l branch=$DRONE_BRANCH
- name: Cleanup everything
image: git.badhouseplants.net/badhouseplants/badhouseplants-builder:2449b73b13a62ae916c6703778d096e5290157b3
image: rclone/rclone:latest
depends_on:
- Deploy the application
- Sync application
environment:
RCLONE_CONFIG_CONTENT:
from_secret: RCLONE_CONFIG_CONTENT_PRIVATE
@ -108,29 +169,44 @@ steps:
from_secret: ARGOCD_AUTH_TOKEN
commands:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- apk update
- apk add curl jq perl git yq
- curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
- install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
- rm argocd-linux-amd64
- ./scripts/cleanup.pl
---
# ----------------------------------------------
# -- Upload a newer version of my CV
# ----------------------------------------------
kind: pipeline
type: docker
name: Spell-Checker
type: kubernetes
name: CV Builder
trigger:
branch:
- main
event:
- push
clone:
disable: true
- push
steps:
- name: clone
image: alpine/git
environment:
GIT_LFS_SKIP_SMUDGE: 1
- name: Build the CV
image: ghcr.io/puppeteer/puppeteer
commands:
- git clone $DRONE_REMOTE_URL --recurse-submodules .
- git checkout $DRONE_BRANCH
- cp -R ./content/cv/* $HOME
- cd $HOME
- npm install md-to-pdf
- npx md-to-pdf index.md
- mkdir $DRONE_WORKSPACE/cv
- mv index.pdf $DRONE_WORKSPACE/cv/n.rodionov.pdf
- name: Spell-Checker
image: node
commands:
- npm i markdown-spellcheck -g
- mdspell "src/content/**/*.md" -n -r
- name: Upload the CV
image: rclone/rclone:latest
environment:
RCLONE_CONFIG_CONTENT:
from_secret: RCLONE_CONFIG_CONTENT_PRIVATE
RCLONE_CONFIG: /tmp/rclone.conf
commands:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- rclone copy -P $DRONE_WORKSPACE/cv badhouseplants-minio:/public-download

4
.gitattributes vendored
View File

@ -1,2 +1,2 @@
src/static/** filter=lfs diff=lfs merge=lfs -text
src/static/**/* filter=lfs diff=lfs merge=lfs -text
static/** filter=lfs diff=lfs merge=lfs -text
static/**/* filter=lfs diff=lfs merge=lfs -text

9
.gitignore vendored
View File

@ -1,4 +1,5 @@
src/node_modules
src/public
src/resources
.hugo_build.lock
node_modules
#static
content/cv/index.pdf
public
resources

6
.gitmodules vendored
View File

@ -1,5 +1,3 @@
[submodule "src/themes/papermod"]
path = src/themes/papermod
[submodule "themes/papermod"]
path = themes/papermod
url = https://github.com/adityatelange/hugo-PaperMod.git
branch = v7.0

146
.spelling
View File

@ -1,146 +0,0 @@
# 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
ShowToc
cover.png
allanger
DIY
DevOps
funkwhale
PSY
bandcamp
soundcloud
spotify
deezer
prog-rock
oveleane
IDM
gitlab
bitwarden
elasticsearch
grafana
lifecycle
auditable
the-first-production-grafaba
grafana
applicationsets
helm-releases-v2
yaml
CR
minecraft
github
ddosed
VST
Xfer
plugins
yabridgectl
yabridge
DAW
polyverse
camelcrusher
standalone
url
glitchmachines
MacBook
configs
behaviour
FreqEcho
DSP
Supermassive
Ableton
Softube
center
iZotope
V2
auth
README.md
TAL-Chorus-LX
badhouseplants
Deelay
Gatelab
Filterstep
Panflow
PaulXStretch
Audiomodern
Kushview
JUCE
Melda
MDrummer
GBs
laggy
MDrumReplacer
MPowerSynth
MGuitarArchitect
u-he
TyrellN6
Tyrell
install.sh
MGuitarArchitect
Amazona.de.
Bitwig
ProjectSAM
Pendulate
Protoverb
Eurorack
S3
XT
Ruina
VCV
LFO
beatmaker
wavetables
OSC
- src/themes/papermod/README.md
PaperMod
hugo-paper
og
ExampleSite
exampleSite
pipelining
Fuse.js
webpack
nodejs
Pagespeed
Highlight.js

View File

@ -1,4 +0,0 @@
FROM git.badhouseplants.net/badhouseplants/hugo-container:bad3393cdb76043a255347641d4157f1fae2b813
WORKDIR /src
COPY ./src /src
ENTRYPOINT ["hugo"]

4
Dockerfile Normal file
View File

@ -0,0 +1,4 @@
FROM git.badhouseplants.net/badhouseplants/hugo-builder
WORKDIR /src
COPY . /src
ENTRYPOINT ["hugo"]

View File

@ -1,8 +1,4 @@
# Badhouseplants NET
## About
- To be done
## Static content
Storing static content in the repo is painful, because there are massive. That's why for storing them I'm using a S3 bucket that is publicly available for downstream operations

View File

@ -2,7 +2,7 @@ apiVersion: v2
name: badhouseplants-net
description: A Helm chart for Kubernetes
type: application
version: 0.7.1
version: 0.6.0
appVersion: "4.20.0"
dependencies:
- name: remark42

View File

@ -5,7 +5,7 @@ namespace:
labels:
istio-injection: enabled
enabled: true
name: badhouseplants-main
name: badhouseplants-application
nginx:
container:

View File

@ -15,15 +15,14 @@ menu:
weight: 12
- name: About
url: /about
weight: 13
weight: 14
- name: Search
url: /search
weight: 14
weight: 15
taxonomies:
tag: tags
params:
GitBranch: main
GitCommit: unknown
Remark42ID: remark
Remark42URL: https://remark42.badhouseplants.net
ShowBreadCrumbs: true
@ -34,24 +33,28 @@ params:
profileMode:
enabled: true
title: "Bad Houseplants"
subtitle: ... by allanger.
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"
- name: My Music
url: "https://funkwhale.badhouseplants.net/library/artists"
socialIcons:
- name: "telegram"
url: "https://t.me/allanger"
- name: "twitter"
url: "https://twitter.com/_allanger"
- name: "mastodon"
url: "https://mastodon.social/@allanger"
- name: github
url: 'https://github.com/allanger'
- name: instagram
url: "https://instagram.com/_allanger"
- name: email
url: 'mailto:allanger@zohomail.com'
url: 'mailto:allanger@badhouseplants.net'
ShowShareButtons: true
ShareButtons: ["telegram", "twitter", "reddit", "linkedin"]
env: production

27
content/about/_index.md Normal file
View File

@ -0,0 +1,27 @@
---
title: About
date: 2023-01-24T09:26:52+01:00
draft: false
---
It was supposed to be just yet another web page with musical releases reviews, but after trying to write something like that, I've found out that I'm not good at it. So I've decided to start a blog where I can write anything that comes to my mind.
<!-- ![Bad Houseplants](/about/logo.png) -->
> The last build is [![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)
### What is Bad Houseplants?
> **allanger**
>
> *Actually, I'm not sure yet. I wanted it to be something about music, but I found out that musical industry is not very welcoming, and I don't know what exactly I > can do there. Creating music is somehow an intimate process to me, so I can't share a lot about it. The whole distributing thing is a black-box, and I wouldn't like to be a part of it, until anything is changed. I wanted to do musical reviews, but there are tons of guys who already do it a way better than I can. So I've given up on music here. I still hope that one day I'll open a recording studio under this name, but I'm not sure when it's even going to be possible. The second thing that I can talk about is IT. I think it can be interesting, but I don't want to kind of stigmatized as an IT blogger. And then I've decided that I would like to write something about indie culture, about DIY philosophy and all this punk related stuff. So let's say that is a blog about indie*
### Wanna join?
If you want to publish anything here, I don't mind. But for doing that you need to have at least basic `git` knowledge because this blog is written as code. You can check the [source code](https://git.badhouseplants.net/badhouseplants/badhouseplants-net) to understand if you're ready or not. I'm hosting my own `Gitea` instance, so you will have to request an account ([just email me](mailto:allanger@zohomail.com) or find me on [telegram](https://t.me/allanger)), when you got one, you're ready to start writing. If you have any questions about how to start, I'm always open for a conversation.
Thanks,
Oi!

View File

@ -1,7 +1,4 @@
> If you're hiring, you can [download my CV here](https://s3.badhouseplants.net/public-download/n.rodionov.pdf)
<li href="placeholder.com" target="_blank">download my CV here</a>
> If you're hiring, you can find [my CV here]({{< ref "cv" >}} )
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.

88
content/beats/_index.md Normal file
View File

@ -0,0 +1,88 @@
---
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 >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=18"></iframe>
{{< /rawhtml >}}
### Monk
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=27"></iframe>
{{< /rawhtml >}}
### Phantom Limb
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=19"></iframe>
{{< /rawhtml >}}
### Ark
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=21"></iframe>
{{< /rawhtml >}}
### Silk Road
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=34"></iframe>
{{< /rawhtml >}}
### Tremor
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=30"></iframe>
{{< /rawhtml >}}
### Silver Grenade
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=31"></iframe>
{{< /rawhtml >}}
### Spinal Cord
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=32"></iframe>
{{< /rawhtml >}}
### Empty Cubicles
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=23"></iframe>
{{< /rawhtml >}}
### Petrol
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=35"></iframe>
{{< /rawhtml >}}
### PSY
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=28"></iframe>
{{< /rawhtml >}}
### Vicious Shine
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=36"></iframe>
{{< /rawhtml >}}
### Body Drop
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=20"></iframe>
{{< /rawhtml >}}
### Broken Piano
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=22"></iframe>
{{< /rawhtml >}}
### Dead Wings
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=25"></iframe>
{{< /rawhtml >}}
### Trapped
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=track&amp;id=17"></iframe>
{{< /rawhtml >}}

108
content/cv/index.md Normal file
View File

@ -0,0 +1,108 @@
---
title: "Curriculum Vitae (CV)"
date: 2023-02-11T18:29:00+01:00
draft: false
ShowToc: true
---
# Nikolai Rodionov
```
> Location: Düsseldorf, Germany
> Email: allanger@zohomail.com (preffered)
> Phone: 015223284008
> Github: https://github.com/allanger
```
---
## About me
<p align="center">
<img src="./myself.jpeg" alt="drawing" width="30%"/>
</p>
I'm a DevOps engineer (or SRE if you wish) with 5++ years of hands-on experience with a decent amount of tools that are most probably used or going to be used in your company. One of the most important tools that I love working with and want to continue working with, is Kubernetes. At least, while I don't see any better alternative to it. I think that containers themselves are one of coolest inventions in development, and I'm trying to use them as long as it's possible. Also, I believe that every routine must be automated, because routing is a boring job that lets people lose focus and make mistakes.
I think that there are several things that a good SRE or DevOps engineer must be able to do:
- To build reliable and stable infrastructure
- Keep this infrastructure up-to-date
- Keep all the source and instructions of this infrastructure clean and simple
- Avoid a human factor as long as possible
- And when it's not possible to avoid it, not to be afraid to take responsibility
Also, I think it's important that before implementing anything, an engineer has understood all the requirements and checked tools that can fulfil them. I often see, how people try to use a tool for its name but not for its functionality, and hence they have to do a lot of additional work and deal with compromises. And if nothing really can fulfil those requirements, you need not be afraid of writing something new *and open-source it*.
<div class="page-break"></div>
## Experience
**Grandcentrix**: SRE
> 02.2023 - until now
```
| Microsoft Azure
| Containers - Kubernetes - Helm - Kustomize
| PostgreSQL
| Bash - Python
| Prometheus - Grafana - Loki
| ArgoCD - Github Actions
| Sops
| Terraform
```
**Klöckner-i**: DevOps Engineer
> 01.2022 - 01.2023
```
| GCloud - Microsoft Azure
| Linux - Containers - Kubernetes - Helm - Helmfile
| Percona Mysql - Postgresql
| Bash
| Prometheus - Grafana - Elasticsearch - Kibana
| ArgoCD - Gitlab CI - Github Actions
| Sops
| Ansible
```
---
**Itigris**: DevOps Engineer
> 07.2019 - 12.2021
```
| AWS - Yandex Cloud
| Linux - Containers - Kubernetes - Helm - Helmfile - Kustomize
| Bash
| Gitlab CI - Drone - ArgoCD
| Postgresql - Redis
| Java - JS - Go
| Ansible - Terraform
| Prometheus - Grafana - Loki - Elasticsearch - Kibana
```
---
**Etersoft**: DevOps Engineer
> 03.2017 - 06.2019
```
| Bare metal - Proxmox - Virtual Box
| Linux - Containers - Networks
| Bash - Perl
| Mysql - Postgresql
| Minio - Ceph
| Gitlab CI
| Ansible
```
## A little bit more about me
- I love to work with `Kubernetes`, but not with `yaml`.
- I'm a huge fan of [Helmfile](https://github.com/helmfile/helmfile).
- I have written several small cli tools in Rust, that you might find in my [GitHub profile pins](https://github.com/allanger) (they are not perfect, but I'm working on it).
- I'm contributing to [db-operator](https://github.com/kloeckner-i/db-operator).
- I'm trying to automate everything until I'm losing control over something that is automated.
- I love Perl, although I don't even remember how to write code with it, but I would be somehow thrilled to have any ability to work with it in production
- I also think that everything is better in Rust, or at least in Go *(if Bash is not enough)*
I have a blog (written-as-code) that is deployed to K8s (https://badhouseplants.net/), with the source code stored in a self-hosted Gitea, that is also deployed to K8s alongside the CI/CD system where this blog is being built and published. This CV is also being built as a part of the CI process, and then uploaded to `minio` storage that is also ~~surprisingly~~ running in this cluster. So you can download the latest version of CV here: <https://s3.badhouseplants.net/public-download/n.rodionov.pdf>
> But I can't guarantee 100% availability because it's a one-node k8s, and sometimes I need to do a maintenance work

BIN
content/cv/myself.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

95
content/music/index.md Normal file
View File

@ -0,0 +1,95 @@
---
title: "Music"
date: 2023-01-31T13:52:43+01:00
draft: false
ShowToc: true
---
Everything that's created by me, can be found on my [funkwhale instance](https://funkwhale.badhouseplants.net). But I'm only uploading `lossy` there. I was trying to upload lossless, but then it either doesn't really work with my Android App, or it's hard to manage. And it needs a way more disk that way. So if you want to listnen to lossless, go to my [Bandcamp](https://allanger.bandcamp.com/). *A lot of tracks are still not there, but they will be there soon*. I also have a [SoundCloud account](https://soundcloud.com/allanger) and I try to publish everything there.
---
### allanger
[Spotify](https://open.spotify.com/artist/1VPAs75xrhaXhCIIHsgF02) - [Apple Music](https://music.apple.com/us/artist/allanger/1617855325) - [Deezer](https://www.deezer.com/us/artist/117780712) - [SoundCloud](https://soundcloud.com/allanger) - [Bandcamp](https://allanger.bandcamp.com/) - [Funkwhale](https://funkwhale.badhouseplants.net/library/artists/3/)
#### Out of Law
>![Cover](/music/allanger-Out_of_Law.png)
>Release Date: 2022-06-08
>
>Genre: Alternative
>
>Sub Genre: Punk
[Spotify](spotify:album:4RACKNtJqPXZOB6UsmwxKp) - [Apple Music](https://music.apple.com/us/album/1625562031) - [Deezer](https://www.deezer.com/us/album/321014447) - [SoundCloud](https://soundcloud.com/allanger/out-of-law) - [Bandcamp](https://allanger.bandcamp.com/album/out-of-law) - [Funkwhale](https://funkwhale.badhouseplants.net/library/albums/5/)
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=5"></iframe>
{{< /rawhtml >}}
#### Wasted Time
>![Cover](/music/allanger-Waster_Time.png)
>Release Date: 2022-05-17
>
>Genre: Punk/Rock
>
>Sub Genre: Prog-Rock/Art Rock
[Spotify](spotify:album:2zOW72GHTTKIZAbwjmxili) - [Apple Music](https://music.apple.com/us/album/1617855666) - [Deezer](https://www.deezer.com/us/album/308544627) - [SoundCloud](https://soundcloud.com/allanger/wasted-time?si=59896836701c48b6a07f7af96043faaf&utm_source=clipboard&utm_medium=text&utm_campaign=social_sharing) - [Bandcamp](https://allanger.bandcamp.com/album/wasted-time) - [Funkwhale](https://funkwhale.badhouseplants.net/library/albums/4/)
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=4"></iframe>
{{< /rawhtml >}}
#### Let Me Kill
> In this song, I'm using samples from a YouTube video, and so I'm not sure that I can distribute on all platforms. That's why it exists only on SoundCloud, Funkwhale, and Bandcamp
>![Cover](/music/allanger-Let_Me_Kill.png)
>Release Date: 2021-10-15
>
>Genre: Trap
[SoundCloud](https://soundcloud.com/allanger/let-me-kill) - [Bandcamp](https://allanger.bandcamp.com/track/let-me-kill) - [Funkwhale](https://funkwhale.badhouseplants.net/library/albums/7/)
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=7"></iframe>
{{< /rawhtml >}}
#### Anymore
> In this song, I'm using samples from a YouTube video, and so I'm not sure that I can distribute on all platforms. That's why it exists only on SoundCloud and Funkwhale
>![Cover](/music/allanger-Anymore.jpg)
>Release Date: 2018-12-26
>
>Genre: Indie
>
>Sub Genre: Lo-Fi Indie
[SoundCloud](https://soundcloud.com/allanger/anymore) - [Funkwhale](https://funkwhale.badhouseplants.net/library/albums/11/)
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=11"></iframe>
{{< /rawhtml >}}
### Oveleane
> It's another project made by me, I just thought that that electronic stuff won't fit well in the allanger's profile, and so decided to separate them. But it's still allanger, you know...
[Spotify](https://open.spotify.com/artist/2PKE1XvwP82LCacM5q6rCx?si=hJyJWcEgR4mZLkjbCso45A) - [Apple Music](https://music.apple.com/us/artist/oveleane/1654951021) - [Deezer](https://www.deezer.com/us/artist/190392997)
#### Four Steps Behind
>![Cover](/music/Oveleane%20-%20Four%20Steps%20Behind.jpg)
>Release Date: 2022-12-05
>
>Genre: Electronic
>
>Sub Genre: IDM/Experimental
[Spotify](https://open.spotify.com/album/1RjB1xLoD2JXmWuBjGegCN?si=fIsGrOfoQRaeKu9f-Oh0dw) - [Apple Music](https://music.apple.com/us/album/1654953305) - [Deezer](https://www.deezer.com/us/album/377293977) - [Funkwhale](https://funkwhale.badhouseplants.net/library/albums/1/)
{{< rawhtml >}}
<iframe width="100%" height="330" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/front/embed.html?&amp;type=album&amp;id=1"></iframe>
{{< /rawhtml >}}

View File

@ -13,11 +13,11 @@ cover:
[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.
Yes, I have written 4 posts where I was almost absolutely negative about `ArgoCD`. But I was talking about infrastructure then. I've got some ideas about how to describe it in a better way, but I think I will write another post about it.
Yes, I have written 4 posts where I was almost absuletely negative about `ArgoCD`. But I was talking about infrastructure then. I've got some ideas about how to describe it in a better way, but I think I will write another post about it.
Here, I want to talk about dynamic *(preview)* environments, and I'm going to describe how to create them using my blog as an example. My blog is a pretty easy application. From `Kubernetes` perspective, it's just a container with some static content. And here, you already can notice that static is an opposite of dynamic, so it's the first problem that I'll have to tackle. Turning static content into dynamic. So my blog consists of `markdown` files that are used by `hugo` for a web page generation.
>Initially I was using `hugo` server to serve the static, but it needs way more resources than `nginx`, so I've decided in favour of `nginx`.
>Initially I was using `hugo` server to serve the static, but it needs way more resources than `nginx`, so I've decided in favor of `nginx`.
I think that I'll write 2 of 3 posts about it, because it's too much to cover in only one. So here, I'd share how I was preparing my blog to be ready for dynamic environments.
@ -33,7 +33,7 @@ So this is how my workflow looked like before I decided to use dynamic environme
- `Keel` spots that images was updated and pulls it.
- Pod with a static is being recreated, and I have my blog with a new content
What I don't like about it? I can't test something unless it's in `production`. And when I stated to work on adding comments (that is still WIP) I've understood that I'd like to have a real environment where I can test everything before firing the main pipeline. Even though having a static development environment would be fine for me, because I'm the only one who do the development here, I don't like the concept of static envs, and I want to be able to work on different posts in the same time. Also, adding a new static environment for development purposes it kind of the same amount of work as implementing a solution for deploying them dynamically.
What I don't like about it? I can't test something unless it's in `production`. And when I stated to work on adding comments (that is still WIP) I've understood that I'd like to have a real environemnt where I can test everything before firing the main pipeline. Even though having a static development environment would be fine for me, because I'm the only one who do the development here, I don't like the concept of static envs, and I want to be able to work on different posts in the same time. Also, adding a new static environemnt for development purposes it kind of the same amount of work as implementing a solution for deploying them dynamically.
Before I can start deploying them, I have to prepare the application for that. At the first glance changes looks like that:
@ -507,7 +507,7 @@ And then I'm setting an env var `HUGO_PARAMS_GITBRANCH`. And now badge is lookin
## Some kind of conclusion
Even though my application is just a simple blog, I still believe that creating dynamic environments is a great idea that should totally replace static dev'n'stages. And it's not only my blog, I've created dynamic envs for. Two biggest pains *as I think* are `Static content` and `Persistent data` (I think, there are more, but these two are most obvious). I've already shown an example how you can handle the first one, and the second is also a big pain in the ass. In my case this data is the one coming from the `Minio` and I'm not doing anything about it, *but I'll write one more post, when it's solved*, other, in my opinion, more obvious example, are databases. You need it to contain all the data that's required for testing, but you also may want it not to be huge, and it most probably should not contain any sensible personal data. So maybe you could stream a database from the production through some kind of anonymiser, clean it up, so it's not too big. And it doesn't sound easy already. But if I'll have to add something like that to my blog once, I'll try to describe it.
Even though my application is just a simple blog, I still believe that creating dynamic environments is a great idea that should totally replace static dev'n'stages. And it's not only my blog, I've created dynamic envs for. Two biggest pains *as I think* are `Static content` and `Persistent data` (I think, there are more, but these two are most obvious). I've already shown an example how you can handle the first one, and the second is also a big pain in the ass. In my case this data is the one coming from the `Minio` and I'm not doing anything about it, *but I'll write one more post, when it's solved*, other, in my opinion, more obvious example, are databases. You need it to contain all the data that's required for testing, but you also may want it not to be huge, and it most probably should not contain any sensible personal data. So maybe you could stream a database from the production through some kind of anonymizer, clean it up, so it's not too big. And it doesn't sound easy already. But if I'll have to add something like that to my blog once, I'll try to describe it.
Thanks,

View File

@ -0,0 +1,53 @@
---
title: "Argocd Dynamic Environment per Branch Part 2"
date: 2023-03-29T17:31:20+02:00
draft: true
ShowToc: true
cover:
image: "cover.png"
caption: "Argocd Dynamic Environment per Branch Part 2"
relative: false
responsiveImages: false
---
So it's been a while since the last post. And I'd like to continue the topic, because I've updated some things. But at the same time I'd like to talk about the setup that I've got and why I think it is good.
First, I'd like to show how I fixed the Minio issue from the previous post.
>Im using Minio as a storage for pictures, and currently all pictures (and other files) are stored in one folder regardless of the environment.
I've started using `git lfs` for media data. But I still want to have small docker images so I've decided to add some logi around pushing media files to `Minio`. So I've added a Drone job:
```YAML
- name: Sync pictures from lfs to Minio
image: rclone/rclone:latest
when:
branch:
exclude:
- main
environment:
RCLONE_CONFIG_CONTENT:
from_secret: RCLONE_CONFIG_CONTENT_PRIVATE
RCLONE_CONFIG: /tmp/rclone.conf
commands:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- apk update
- apk add git make
- make upload_static
- name: Sync pictures to the main Minio bucket
image: rclone/rclone:latest
when:
branch:
- main
environment:
RCLONE_CONFIG_CONTENT:
from_secret: RCLONE_CONFIG_CONTENT_PRIVATE
RCLONE_CONFIG: /tmp/rclone.conf
commands:
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
- apk update
- apk add git make
- make sync_static_with_main
```

View File

@ -65,7 +65,7 @@ But logic would be like this
- Add a new application to the `manifests/$CLUSTER` dir
- Push
- CI/CD
- Since it needs to be `GitOps`, you need to check that charts in the `vendor` dir are up-to-date with `helm-freeze.yaml`. *Because if you updated helm-freeze and forgot to execute `helm-freeze sync`, you will have a contradiction between actual and desired states. That's one of the reasons, why I don't like this kind of vendoring. Either it's an addition step in CI, that is verifying that the manual step was done, or it's an additional work for reviewer. You also can add an action that is going to execute it within the pipeline and push to your branch, but I'm completely against it. (something for another post maybe)*
- Since it needs to be `GitOps`, you need to check that charts in the `vendor` dir are up-to-date with `helm-freeze.yaml`. *Because if you updated helm-freeze and forgot to execute `helm-freeze sync`, you will have a contradiction between actual and desired states. That's one of the reasons, why I don't like this kind of vendoring. Either it's an addition step in CI, that is verifying that the manual step was done, or it's an additional work for reviewer. You also can add an action that is going to execute it withing the pipeline and push to your branch, but I'm completely against it. (something for another post maybe)*
- Then depending on a branch:
- If not `main`
@ -441,7 +441,7 @@ argocd app diff vpa
FATA[0000] rpc error: code = NotFound desc = error getting application: applications.argoproj.io "vpa" not found
```
There is a `--local` option, but it still requires a name ~~(why if there is a name in manifests 🙃🙃🙃)~~
There is a `--local` option, but it still requires a name ~~(why if there is a name in manfiests 🙃🙃🙃)~~
```BASH
# Just testing out
argocd app diff vpa --local ./manifests/cluster2/
@ -543,7 +543,7 @@ Let's try installing apps directly. Remove an app-of-apps from k8s. And let's us
## Conclusion
So you can check the PR here: <https://git.badhouseplants.net/allanger/helmfile-vs-argo/pulls/2/files>
I like that `values` can be handled as normal values files. (But for handling secrets you might have to add a [CMP](https://argo-cd.readthedocs.io/en/stable/user-guide/config-management-plugins/), that means an additional work and maintenance) But even if adding CMP is fine, I couldn't get proper `diffs` for my changes, that means that I can't see what's happening without applying manifests. And applying manifests will mean that other team members will not be work on other tickets within the same scope, so it looks like a bottleneck to me.
I like that `values` can be handled as normal values files. (But for handling secrets you might have to add a [CMP](https://argo-cd.readthedocs.io/en/stable/user-guide/config-management-plugins/), that means an additional work and maintenance) But even if adding CMP is fine, I couldn't get proper `diffs` for my changes, that means that I can't see what's happening without applying manifests. And applying manifests will mean that other team members will not be work on other tickets withing the same scope, so it looks like a bottleneck to me.
But I don't like that you need to add a lot of manifests to manage all the applications. We have only 2 manifests that are copied from folder to folder. So we have a lot of repeating code. And repeating code is never good. So I would write a tool that can let you choose applications from the list of all applications and choose clusters where they need to be deployed. So the config looks like this:
```YAML
@ -565,7 +565,7 @@ But I think that with the whole GitOps pulling concept it will be a hard thing t
I can only say, that I see no profit in using argo like this. It only seems like either a very complicated setup (most probably you will be able to implement anything you need, the question is, how much time will you spend with that), or a ~~crippled~~ not complete setup.
And if you compare an amount of lines that area updated to install these apps as `Applications` to the helmfile stuff, it's going to be ~100 vs ~30. And that's what I also don't like.
And if you compare an amount of lines that area updadated to install these apps as `Applications` to the helmfile stuff, it's going to be ~100 vs ~30. And that's what I also don't like.
In the next post I will try doing the same with `ApplicationSets`, and we'll see, if it looks better or not.

View File

@ -64,7 +64,7 @@ spec:
```
Manifests with a setup like this have only one values that is really different, so we could create just one manifest that would look like that:
Manifests with a setup like thos have only one values that is really different, so we could create just one manifest that would look like that:
```YAML
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
@ -209,7 +209,7 @@ Those applications should be deployed automatically within a pipeline. So steps
- Add new generators
- Sync applications with argocd cli
But I'm not sure what going to happen if you have two different pipelines at the same time. Probably, changes will be overwritten but the pipeline that is a little bit slower. But I think that it can be solved without a lot of additional problems. And also I don't think that it's a situation that you will have to face very often, so you can just rerun your pipeline after all.
But I'm not sure what going to happen if you have two different pipelines at the same time. Probably, changes will be overwriten but the pipeline that is a little bit slower. But I think that it can be solved without a lot of additional problems. And also I don't think that it's a situation that you will have to face very often, so you can just rerun your pipeline after all.
### Diffs
Diffs are not supported for `ApplicationSets` at the moment, and I'm not sure when they will be: <https://github.com/argoproj/argo-cd/issues/10895>

View File

@ -78,7 +78,7 @@ helmfiles:
- path: {{.Environment.Name }}/helmfile.yaml
```
It's going to import helmfiles that are not used across all clusters. So if you want to install something to `cluster-2` across, you will add it to the `/cluster2/helmfile.yaml` and sync the main helmfile. I will show an example later.
It's going to import helmfiles that are not used across all clusters. So if you want to install something to `cluster-2` accross, you will add it to the `/cluster2/helmfile.yaml` and sync the main helmfile. I will show an example later.
So we're all set and ready to begin installing new stuff.
@ -1575,7 +1575,7 @@ Yeah, it's huge, but you can see everything that's going to happen. So I'd say i
It's a short article, because I think the whole setup is super easy, CI is easy too. You still have a full `GitOps` (or almost full) but you also have control. I love this setup and would like to use it for my infrastructure.
Why do I think it's better that `ArgoCD`?
With `ArgoCD` I either have a lot of `yaml` to install things, or I have complicated setups with `ApplicationSets` that are most probably very special and won't be reused in other companies. I need to care about how `ArgoCD` will handle a lot of applications that are added there only for diffing. I need additional applications installed in my clusters not only as a part of infrastructure itself, but also as a service that I'm providing other teams with. Because I want to manage applications that are being developed by other teams with `Argo`, so I'm mixing a lot of different kinds of applications here.
With `ArgoCD` I either have a lot of `yaml` to install things, or I have complicated setups with `ApplicationSets` that are most probably very special and won't be reused in other companies. I need to care about how `ArgoCD` will handle a lot of applications that are added there only for diffing. I need additional applications installed im my clusters not only as a part of infrastructure itself, but also as a service that I'm providing other teams with. Because I want to manage applications that are being developed by other teams with `Argo`, so I'm mixing a lot of different kinds of applications here.
Helmfile lets me separate infra from applications. `ArgoCD` can be only provided as a service, and other teams can use, because it's making k8s easier for those who don't need to understand it so deeply. Also, helmfile lets me use helm-secrets to encrypt values. I can do it with Argo too, but then I need to either have a custom `ArgoCD` image, or support a CMP plugin, that will handle SOPS.

View File

@ -0,0 +1,16 @@
---
title: "Create wubs with Vital"
date: 2023-04-23T17:49:35+02:00
draft: true
ShowToc: true
cover:
image: "cover.png"
caption: "Create wubs in Vital"
relative: false
responsiveImages: false
tags: ['music', 'sound-design', 'vst']
---
First, if you don't know what Vital is, you should definitely check it out. It's an awesome synth plugin that lets you create almost anything that comes to your mind without spending you whole life trying to understand what each button does. I'd say it's a perfect example of good UX/UI design. And in case you don't have it yet, you just [go here and get it](https://vital.audio/).
If you already have it, we can go further. The only thing that you really need to use to create a cool **wub** synth, it's an `LFO`. What's that, you ask? It's an

View File

@ -0,0 +1,26 @@
---
title: "Design a Scalable System"
date: 2023-03-06T21:18:23+01:00
draft: true
ShowToc: true
cover:
image: "cover.png"
caption: "Design a Scalable System"
relative: false
responsiveImages: false
---
Well, after I've posted my argo serie, I've found out that I couldn't really make myself understood. So now I want to talk more not about the way of implementation, but rather about the consequinces of different implementations. And maybe I will e able to finally make a point about why I don't like Terraform and why I think that ArgoCD is mostly mis-used by almost any SRE team I know.
But first I'll try to describe how I see myself as a part of a team, the team as a part of a bigger team, and all the teams across different companies as links in the bigger chain.
This is how I used to see development teams before:
![Chain](/posts/design-a-scalable-system/chain-1.png)
The whole team is using something as a service, for example `AWS`, the whole team is working together and producing something that is passed to a customer. But apparently this approach is only applicable to small teams, and I think it's working just fine. But there is a problem. Teams tend to grow without an understanding that they are growing, hence they keep acting like they're small but in the same time they don't change the workflow, and brick-by-brick they are building something that eventually is something unscalable at first and later unmaintanble.
Example of an evolution like this:
Let's take a regular Java(backend) + JS(frontend) web application

View File

@ -179,7 +179,7 @@ They are working but there is one UI glitch
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.**
It's not very annoying to me, but to avoid this kind of behavior, 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)*

View File

@ -117,7 +117,7 @@ But when I add **Filterstep**, Ardour stops responding. I'm sure it's possible t
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.
But **PaulXStrech** 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.

View File

@ -22,7 +22,7 @@ All of them are covered in [the first post]({{< ref "vst-on-linux-1" >}})
## 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)
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
@ -155,7 +155,7 @@ Downloading a Windows version again.
{{< video "/posts/vst-on-linux-3/eventide-pendulate.mp4" "video-9" >}}
Running just fine
Runnin 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 👍
@ -174,9 +174,9 @@ I didn't have enough time to learn it yet, so that's what I could do with it
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/)
Download the **Linux** version and install it by running a script. You can finfd everything [here](https://u-he.com/products/protoverb/)
## PaulXStretch 👍
## Paulstretch 👍
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.

10
content/sounds/_index.md Normal file
View File

@ -0,0 +1,10 @@
---
title: "Sounds"
date: 2023-01-31T13:52:43+01:00
draft: false
ShowToc: false
---
Here you can download different presets and sounds

View File

@ -2,21 +2,51 @@ apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
labels:
application: badhouseplants
branch: $ARGO_APP_BRANCH
commit_sha: $ARGO_APP_IMAGE_TAG
name: badhouseplants-$ARGO_APP_BRANCH
application: $APPLICATON
branch: $GIT_BRANCH
commit_sha: $GIT_COMMIT_SHA
name: $APPLICATON-$GIT_BRANCH
namespace: argo-system
spec:
destination:
namespace: badhouseplants-$ARGO_APP_BRANCH
namespace: $APPLICATON-$GIT_BRANCH
server: https://kubernetes.default.svc
project: badhouseplants
project: default
source:
chart: badhouseplants-net
targetRevision: $ARGO_APP_CHART_VERSION
targetRevision: $HELM_CHART_VERSION
helm:
valueFiles:
- values.yaml
values: __DUMMY__
values: |
namespace:
name: badhouseplants-create-wubs-in-vital
labels:
istio-injection: disabled
istio:
hosts:
- create-wubs-in-vital-dev.badhouseplants.net
annotations:
link.argocd.argoproj.io/env: https://create-wubs-in-vital-dev.badhouseplants.net/
link.argocd.argoproj.io/remark42: https://remark42-create-wubs-in-vital-dev.badhouseplants.net/web
link.argocd.argoproj.io/build: DRONE_BUILD_LINK
hugo:
image:
tag: ee4efc6107541657f405a3dd9b7ee238d0e69e7b
baseURL: https://create-wubs-in-vital-dev.badhouseplants.net/
buildDrafts: true
env:
HUGO_PARAMS_GITBRANCH: create-wubs-in-vital
HUGO_PARAMS_REMARK42URL: https://remark42-create-wubs-in-vital-dev.badhouseplants.net
remark42:
istio:
hosts:
- remark42-create-wubs-in-vital-dev.badhouseplants.net
settings:
url: https://remark42-create-wubs-in-vital-dev.badhouseplants.net/
auth:
anonymous: true
secretKey: b8a41781b2c1ba2ecf49e4e7
rclone:
command: "rclone copy -P badhouseplants-public:/badhouseplants-net/ee4efc6107541657f405a3dd9b7ee238d0e69e7b /static"
repoURL: https://git.badhouseplants.net/api/packages/badhouseplants/helm

View File

@ -1,34 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: badhouseplants
namespace: argo-system
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
description: BadHouseplants Blog
sourceRepos:
- '*'
destinations:
- 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: ''
kind: ResourceQuota
- group: ''
kind: LimitRange
- group: ''
kind: NetworkPolicy
# Enables namespace orphaned resource monitoring.
orphanedResources:
warn: false

View File

@ -1,28 +1,24 @@
---
values: |
hugo:
image:
tag: $ARGO_APP_IMAGE_TAG
env:
HUGO_PARAMS_GITCOMMIT: $ARGO_APP_IMAGE_TAG
istio:
annotations:
link.argocd.argoproj.io/env: https://badhouseplants.net/
link.argocd.argoproj.io/build: $DRONE_BUILD_LINK
link.argocd.argoproj.io/remark42: https://remark42.badhouseplants.net/web
remark42:
settings:
secret: $ARGO_REMARK_SECRET
admin:
sharedEmail: allanger@zohomail.com
oauth:
github:
enabled: true
key: 1fb3d33a62b074bc0ea0
secret: $ARGO_GITHUB_OAUTH_KEY
google:
enabled: true
key: 966815964055-m9t7leuj1arqimqu2pvbs1k10cg54gcg.apps.googleusercontent.com
secret: $ARGO_GOOGLE_OAUTH_KEY
storage:
requestedSize: 300Mi
- value: |
hugo:
image:
tag: $ARGO_APP_IMAGE_TAG
istio:
annotations:
link.argocd.argoproj.io/env: https://badhouseplants.net/
link.argocd.argoproj.io/build: $DRONE_BUILD_LINK
link.argocd.argoproj.io/remark42: https://remark42.badhouseplants.net/web
remark42:
settings:
secret: $ARGO_REMARK_SECRET
oauth:
github:
enabled: true
key: 1fb3d33a62b074bc0ea0
secret: $ARGO_GITHUB_OAUTH_KEY
google:
enabled: true
key: 966815964055-m9t7leuj1arqimqu2pvbs1k10cg54gcg.apps.googleusercontent.com
secret: $ARGO_GOOGLE_OAUTH_KEY
storage:
requestedSize: 300Mi

View File

@ -1,33 +1,32 @@
---
values: |
namespace:
name: badhouseplants-$ARGO_APP_BRANCH
labels:
istio-injection: disabled
istio:
hosts:
- $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
baseURL: https://$ARGO_APP_HOSTNAME/
buildDrafts: true
env:
HUGO_PARAMS_GITBRANCH: $ARGO_APP_BRANCH
HUGO_PARAMS_REMARK42URL: https://remark42-$ARGO_APP_HOSTNAME
HUGO_PARAMS_GITCOMMIT: $ARGO_APP_IMAGE_TAG
remark42:
- value: |
namespace:
name: badhouseplants-$ARGO_APP_BRANCH
labels:
istio-injection: disabled
istio:
hosts:
- remark42-$ARGO_APP_HOSTNAME
settings:
url: https://remark42-$ARGO_APP_HOSTNAME/
auth:
anonymous: true
secretKey: $ARGO_REMARK_SECRET
rclone:
command: 'rclone copy -P badhouseplants-public:/badhouseplants-net/$ARGO_APP_IMAGE_TAG /static'
- $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
baseURL: https://$ARGO_APP_HOSTNAME/
buildDrafts: true
env:
HUGO_PARAMS_GITBRANCH: $ARGO_APP_BRANCH
HUGO_PARAMS_REMARK42URL: https://remark42-$ARGO_APP_HOSTNAME
remark42:
istio:
hosts:
- remark42-$ARGO_APP_HOSTNAME
settings:
url: https://remark42-$ARGO_APP_HOSTNAME/
auth:
anonymous: true
secretKey: $ARGO_REMARK42_SECRET
rclone:
command: "rclone copy -P badhouseplants-public:/badhouseplants-net/$ARGO_APP_IMAGE_TAG /static"

View File

@ -1,4 +1,7 @@
<hr>
<blockquote>
<p> Comments are in the beta testing stage. </p>
</blockquote>
<div id="remark42"></div>
<script>

View File

@ -13,7 +13,7 @@
var player = new Clappr.Player({
source: {{ .Get 0 }},
mute: false,
mute: true,
height: 360,
width: 640
});

View File

@ -17,16 +17,16 @@ my $image_name = $ENV{'DRONE_REPO'} || "badhouseplants/badhouseplants-net";
my $tag = "$container_registry/$image_name:$git_commit_sha";
my $username = $ENV{'DRONE_USERNAME'} || "allanger";
my $password = $ENV{'GITEA_TOKEN'} || "YOU NOT AUTHORIZED, PAL";
print `buildah login --username $username --password $password $container_registry` or die $!;
print `buildah build -t $tag .` or die $!;
print `buildah push $tag` or die $!;
print `buildah login --username $username --password $password $container_registry` or die;
print `buildah build -t $tag .` or die;
print `buildah push $tag` or die;
# -------------------------------------------------
# -- Push the latest if the branch is main
# -- Push the lates if the branch is main
# -------------------------------------------------
if ( $git_branch eq $main_branch) {
my $latest_tag = "$container_registry/$image_name:latest";
print `buildah tag $tag $latest_tag` or die $!;
print `buildah push $latest_tag` or die $!;
print `buildah tag $tag $latest_tag` or die;
print `buildah push $latest_tag` or die;
}
print "Thanks!\n";

View File

@ -2,69 +2,26 @@
use strict;
use warnings;
my $chart_version = `cat chart/Chart.yaml | yq '.version'` or die $1;
my $chart_version = `cat chart/Chart.yaml | yq '.version'` or die;
chomp($chart_version);
my $git_branch = `git rev-parse --abbrev-ref HEAD`;
chomp($git_branch);
my $git_commit_sha = `git rev-parse HEAD`;
chomp($git_commit_sha);
my $main_branch = "main";
my $values = "";
my $remark_secret = `openssl rand -hex 12`;
chomp($remark_secret);
$ENV{'ARGO_APP_CHART_VERSION'} = $chart_version;
$ENV{'ARGO_APP_BRANCH'} = $git_branch;
$ENV{'ARGO_APP_HOSTNAME'} = "$git_branch-dev.badhouseplants.net";
$ENV{'ARGO_APP_IMAGE_TAG'} = $git_commit_sha;
$ENV{'ARGO_REMARK_SECRET'} = $remark_secret;
# ----------------------------------
# -- Fill the Application manifest
# -- with correct values
# ----------------------------------
if ($git_branch eq $main_branch) {
print "Using the main values file\n";
print `envsubst < ./kube/values-main.yaml > /tmp/values.yaml` or die $!;
} else {
print "Using the preview values file\n";
print `envsubst < ./kube/values-preview.yaml > /tmp/values.yaml` or die $!;
}
print `yq -i '.values' /tmp/values.yaml` or die $!;
print `envsubst < ./kube/application.yaml > /tmp/application.yaml` or die $!;
print `yq -i '.spec.source.helm.values = load_str("/tmp/values.yaml")' /tmp/application.yaml` or die $!;
if(!defined $ENV{DEPLOY_SCRIPT_DEBUG}){
print `argocd app create -f /tmp/application.yaml --upsert` or die $!;
print `argocd app sync --prune -l application=badhouseplants -l branch=$git_branch` or die $!;
print `argocd app wait -l application=badhouseplants -l branch=$git_branch` or die $!;
}
# ----------------------------------
# -- Remove all `Applications` for
# -- branches that do not exists
# ----------------------------------
my @all_applications = `argocd app list -l application=badhouseplants -o yaml | yq '.[].metadata.name'` or die $!;
chomp(@all_applications);
foreach my $app (@all_applications) {
$app =~ s/badhouseplants-//;
}
my @all_branches = `git branch --format='%(refname:short)' -r` or die $!;
chomp(@all_branches);
foreach my $branch (@all_branches) {
$branch =~ s/origin\///;
}
foreach my $app (@all_applications) {
if ( !grep( /^$app$/, @all_branches ) ) {
if ($app ne "application") {
print "$app should be removed\n";
if(!defined $ENV{DEPLOY_SCRIPT_DEBUG}){
print `argocd app delete --yes badhouseplants-$app` or die $!;
}
}
}
}
print
print $chart_version;
# - kubectl get -f ./kube/applicationset.yaml -o yaml > /tmp/appset.yaml
# - yq -i "del(.metadata.resourceVersion)" /tmp/appset.yaml
# - yq -i "del(.metadata.generation)" /tmp/appset.yaml
# - yq -i "del(.metadata.uid)" /tmp/appset.yaml
# - yq -i "del(.status)" /tmp/appset.yaml
# - yq -i "del(.spec.generators[].list.elements[] | select(.branch == \"$ARGO_APP_BRANCH\"))" /tmp/appset.yaml
# - yq -i "del(.spec.generators[].list.elements[] | select(.commit_sha == \"$ARGO_APP_IMAGE_TAG\"))" /tmp/appset.yaml
# - yq -i '. *= load("./kube/applicationset.yaml")' /tmp/appset.yaml
# - envsubst < ./kube/main.yaml > /tmp/elements.yaml
# - yq -i '.spec.generators[].list.elements += load("/tmp/elements.yaml")' /tmp/appset.yaml
# - kubectl apply -f /tmp/appset.yaml
#

View File

@ -19,9 +19,9 @@ print `git -C /tmp/$git_commit_sha lfs pull` or die;
print "Creating a new hashed dir in the common bucket\n";
print `rclone copy /tmp/$git_commit_sha/src/static "$common_bucket/$git_commit_sha"` or die;
print `rclone copy -P /tmp/$git_commit_sha/static "$common_bucket/$git_commit_sha"` or die;
if ($git_branch eq $main_branch) {
if ( $git_branch eq $main_branch) {
print "Syncing to the production bucket\n";
print `rclone sync "$common_bucket/$git_commit_sha" "$main_bucket/"` or die;
print `rclone sync -P "$common_bucket/$git_commit_sha" "$main_bucket/"` or die;
}

View File

@ -1,17 +0,0 @@
---
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)

View File

@ -1,112 +0,0 @@
---
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 >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=18"></iframe>
{{< /rawhtml >}}
### Monk
#### Not available anymore, but I can make a similar one if you'd like
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=27"></iframe>
{{< /rawhtml >}}
### Ark
#### Not available anymore, but I can make a similar one if you'd like
{{< rawhtml >}}
<iframe width="100%" height="150" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=21"></iframe>
{{< /rawhtml >}}
### Phantom Limb
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=19"></iframe>
{{< /rawhtml >}}
### Silk Road
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=34"></iframe>
{{< /rawhtml >}}
### Tremor
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=30"></iframe>
{{< /rawhtml >}}
### Silver Grenade
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=31"></iframe>
{{< /rawhtml >}}
### Spinal Cord
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=32"></iframe>
{{< /rawhtml >}}
### Empty Cubicles
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=23"></iframe>
{{< /rawhtml >}}
### Vicious Shine
#### Not available anymore, but I can make a similar one if you'd like
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=36"></iframe>
{{< /rawhtml >}}
### Petrol
#### Not available anymore, but I can make a similar one if you'd like
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=35"></iframe>
{{< /rawhtml >}}
### PSY
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=28"></iframe>
{{< /rawhtml >}}
### Body Drop
#### Not available anymore, but I can make a similar one if you'd like
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=20"></iframe>
{{< /rawhtml >}}
### Broken Piano
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=22"></iframe>
{{< /rawhtml >}}
### Dead Wings
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=25"></iframe>
{{< /rawhtml >}}
### Trapped
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=17"></iframe>
{{< /rawhtml >}}
### Dusted
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=142"></iframe>
{{< /rawhtml >}}
### Fallen Folk
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=144"></iframe>
{{< /rawhtml >}}
### Pillows
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=143"></iframe>
{{< /rawhtml >}}
### Swipe
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=145"></iframe>
{{< /rawhtml >}}

View File

@ -1,26 +0,0 @@
---
title: "allanger - Anymore"
date: 2018-12-26T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "/music/allanger-Anymore.jpg"
caption: "Anymore"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- alternative
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/anymore) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/20/)
---
{{< rawhtml >}}
<iframe width="100%" height="100%" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=20"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Anymore.zip)*

View File

@ -1,28 +0,0 @@
---
title: "allanger - Await"
date: 2022-07-01T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "/music/allanger-Await.jpg"
caption: "Await"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- alternative
- hiphop
- rap
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/await) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/26/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=26"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Await.zip)*

View File

@ -1,27 +0,0 @@
---
title: "allanger - Desensitized"
date: 2022-02-06T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "music/allanger-Desensitized.png"
caption: "Desensitized"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- edm
- electronic
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/desensitized) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/22/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=22"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Desensitized.zip)*

View File

@ -1,25 +0,0 @@
---
title: "allanger - Under My Pillow"
date: 2023-05-15T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "/music/allanger-Under_My_Pillow.png"
caption: "Under My Pillow"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- rap
- hiphop
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/under-my-pillow) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/27/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=27"></iframe>{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Under%20My%20Pillow.zip)*

View File

@ -1,25 +0,0 @@
---
title: "allanger - Four Steps Behind"
date: 2023-05-15T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "/music/allanger-Four_Steps_Behind.jpg"
caption: "Four Steps Behind"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- house
- edm
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/four-steps-behind) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/16/)
---
{{< rawhtml >}}
<iframe width="100%" height="350" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=16"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Four%20Steps%20Behind.zip)*

View File

@ -1,27 +0,0 @@
---
title: "allanger - Let Me Kill"
date: 2021-10-15T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "music/allanger-Let_Me_Kill.png"
caption: "Let Me Kill"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- trap
- spoken-word
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/let-me-kill) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/21/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=21"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Let%20Me%20Kill.zip)*

View File

@ -1,27 +0,0 @@
---
title: "allanger - Not Alone"
date: 2022-02-10T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "music/allanger-Not_Alone.png"
caption: "Not Alone"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- edm
- electronic
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/not-alone) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/23/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=23"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Not%20Alone.zip)*

View File

@ -1,26 +0,0 @@
---
title: "allanger - Out Of Law"
date: 2022-01-23T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "music/allanger-Out_of_Law.png"
caption: "Out Of Law"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- punk
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/out-of-law) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/18/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=18"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Out%20Of%20Law.zip)*

View File

@ -1,26 +0,0 @@
---
title: "allanger - Trace"
date: 2023-05-30T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "music/allanger-Trace.png"
caption: "Trace"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- edm
- electronic
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/trace) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/17/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=17"></iframe>{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Trace.zip)*

View File

@ -1,26 +0,0 @@
---
title: "allanger - Wasted Time"
date: 2021-09-23T00:00:00+02:00
draft: false
ShowToc: false
cover:
image: "music/allanger-Waster_Time.png"
caption: "Wasted Time"
relative: false
responsiveImages: false
hideSummary: true
tags:
- music
- release
- indie
- punk
---
[OPEN ON BANDCAMP](https://allanger.bandcamp.com/album/wasted-time) -- [OPEN ON FUNKWHALE](https://funkwhale.badhouseplants.net/library/albums/19/)
---
{{< rawhtml >}}
<iframe width="100%" height="" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=album&amp;id=19"></iframe>
{{< /rawhtml >}}
*If you want to download lossless audio for free [follow this link](https://s3.badhouseplants.net/allanger-music/allanger%20-%20Wasted%20Time.zip)*

View File

@ -1,45 +0,0 @@
# 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

View File

@ -1,83 +0,0 @@
---
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: <https://vital.audio>.
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" >}}

View File

@ -1,38 +0,0 @@
---
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 >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=142"></iframe>
{{< /rawhtml >}}
### Fallen Folk
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=144"></iframe>
{{< /rawhtml >}}
### Pillows
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=143"></iframe>
{{< /rawhtml >}}
### Swipe
{{< rawhtml >}}
<iframe width="100%" height="160" scrolling="no" frameborder="no" src="https://funkwhale.badhouseplants.net/embed.html?&amp;type=track&amp;id=145"></iframe>
{{< /rawhtml >}}

View File

@ -1,81 +0,0 @@
---
title: "What about open-source reverbs?"
date: 2023-08-16T13:46:29+02:00
draft: false
ShowToc: true
cover:
image: "/posts/what-about-open-source-reverbs/Cover.png"
caption: "What about open-source reverbs"
relative: false
responsiveImages: false
tags:
- Music
- OpenSource
- Plugins
---
## Intro
I decided to stop using Valhalla DSP plugins, because I totaly disagree with their position about Linux users. I understand that they might not want to build plugins against Linux, but I've offered them to add their plugins wrapped with `yabridge` to AUR, so they can have more users that would not actually require any support, but they said that they won't support it. So I've decided for myself to ban Valhalla plugins. So I've decided to start looking for other reverbs. I've decided to check different open source plugins, so I won't get into a situation like this one, with Valhalla.
## What are the options?
The most obvious place to be looking for open source plugins is (unfortunatelly) GitHub. So I went here: https://github.com/webprofusion/OpenAudio
And here we got several reverbs:
- [Cloud Seed](https://github.com/webprofusion/OpenAudio)
- [Convolver](https://github.com/teragonaudio/Convolver)
- [Dragonfly Reverb](https://github.com/michaelwillis/dragonfly-reverb)
- [Gverb/Gigaverb](http://elements.byethost3.com/plugins.html)
- [MVerb](https://github.com/martineastwood/mverb)
- [REACH](https://github.com/Sinuslabs/Reach)
Let's check all of them here. To check the sound I'll take several samples from FreeSound:
- Vocals: https://freesound.org/people/ashesanddreams/sounds/610416/
- Drums: https://freesound.org/people/holizna/sounds/629134/
- Synth: https://freesound.org/people/Rvgerxini/sounds/547113/
- Guitar: https://freesound.org/people/eqavox/sounds/683953/
## ~~Cloud Seed~~ CloudReverb
A new link: https://github.com/xunil-cloud/CloudReverb
Unfortunatelly, I've found out that Cloud Seed is supposed to work only on Windows, and I'm currently testing the Linux setup, so it doesn't work. But I've found another plugins that is based on the Cloud Seed algorithm, and it should work on Linux and MacOS.
I don't think it's packaged for any distro but binaries can bi found on GitHub, so let's download and try the plugin. The LV2 versions doesn't work for me, but VST3 is going just fine. It looks like that
![CloudReverb](/posts/what-about-open-source-reverbs/CloudReverb.png)
I think that the "blog" format doesn't play well with the "check-every-option-out" way, so I'll just be making small clips about whot plugin can sound like.
> You can hear some noizes and scratches, they are not plugins or audio artifacts, just my system produces them when I recodr Ardour with OBS studio. Just try to ignore them.
{{< video "/posts/what-about-open-source-reverbs/CloudReverb.mp4" "video-1" >}}
I'd say that it's a dope reverb, and I guess that I'll add it to my list of plugins that I'm using on Linux.
## Convolver
This project was archived, and the last commit was pushed 11 years ago, so I'd say that I'm not checking this one. If you know a project that has taken developmsent over, feel free to reach me, I'll try it then.
## Dragonfly Reverb
I'm using this reverb almost all the time and not only on Linux, so it's not something new to me, and I guess that many of you have heard about it already.
You can get it from AUR if you're on Arch, or download it from Github: https://github.com/michaelwillis/dragonfly-reverb/releases/tag/3.2.10
![DragonFly](/posts/what-about-open-source-reverbs/DragonFly.png)
As you can see, it's not just one reverb, it's four different ones.
### Early Reflections
{{< video "/posts/what-about-open-source-reverbs/DragonFlyER.mp4" "video-2" >}}
### Hall
> My Laptop can't pull it off, so there are a lot of noizes. I think you might want to check it yourself.
{{< video "/posts/what-about-open-source-reverbs/DragonFlyHall.mp4" "video-3" >}}

View File

@ -1 +0,0 @@
<a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }} target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>

View File

@ -1,6 +0,0 @@
<figure class="{{ .Get 1 }}">
<audio controls preload="{{ .Get "preload" | default "metadata" }}">
<source src="{{ .Get 0 }}" type="audio/mpeg">
<figcaption>{{ .Get 0 }}</figcaption>
</audio>
</figure>

BIN
src/static/music/allanger-Await.jpg (Stored with Git LFS)

Binary file not shown.

BIN
src/static/music/allanger-Desensitized.png (Stored with Git LFS)

Binary file not shown.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2def9a412cba612ccf55cc39deeb82f971418ad27119c93d63844c7c25bc0748
size 2045790

BIN
src/static/music/allanger-Not_Alone.png (Stored with Git LFS)

Binary file not shown.

BIN
src/static/music/allanger-Trace.png (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7281dc2f93cfba5731b2bd0d38c6530ca84a33b05cf8a3ecacee583a073fb5be
size 376034

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More