Compare commits
5 Commits
master
...
033dd067b6
Author | SHA1 | Date | |
---|---|---|---|
033dd067b6 | |||
13d6edff33 | |||
bd63a0acbb | |||
2b6ab88c1d | |||
ebd125470a |
@ -1,38 +0,0 @@
|
|||||||
# The full repository name
|
|
||||||
repo: OCram85/Blog
|
|
||||||
|
|
||||||
# Service type (gitea or github)
|
|
||||||
service: gitea
|
|
||||||
|
|
||||||
# Base URL for Gitea instance if using gitea service type (optional)
|
|
||||||
# Default: https://gitea.com
|
|
||||||
base-url: https://gitea.ocram85.com
|
|
||||||
|
|
||||||
# Changelog groups and which labeled PRs to add to each group
|
|
||||||
groups:
|
|
||||||
- name: 🐛 BUGFIXES
|
|
||||||
labels:
|
|
||||||
- bug
|
|
||||||
- name: ✨ FEATURES
|
|
||||||
labels:
|
|
||||||
- feature
|
|
||||||
- name: 🛠️ ENHANCEMENTS
|
|
||||||
labels:
|
|
||||||
- enhancement
|
|
||||||
- name: 📦 BUILD
|
|
||||||
labels:
|
|
||||||
- pipeline
|
|
||||||
- name: 🤖 DEPENDENCIES
|
|
||||||
labels:
|
|
||||||
- renovate
|
|
||||||
- name: 📚 DOCS
|
|
||||||
labels:
|
|
||||||
- docs
|
|
||||||
- name: ⚙️ META
|
|
||||||
labels:
|
|
||||||
- meta
|
|
||||||
- name: 🔖 MISC
|
|
||||||
default: true
|
|
||||||
|
|
||||||
# regex indicating which labels to skip for the changelog
|
|
||||||
skip-labels: skip-changelog|backport\/.+
|
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
> :bulb: Select your test plan for the code changes.
|
> :bulb: Select your test plan for the code changes.
|
||||||
|
|
||||||
- [x] CI pipeline
|
- [ ] Tested via CI pipeline
|
||||||
- [ ] Custom test
|
- [ ] Custom test
|
||||||
- [ ] No test plan
|
- [ ] No test plan
|
||||||
|
|
||||||
|
42
.vscode/dictionaries/project-words.txt
vendored
@ -1,37 +1,5 @@
|
|||||||
Alertmanager
|
CAFS
|
||||||
CAFS
|
gitea
|
||||||
CMDB
|
gitlocal
|
||||||
datacenter
|
hashtable
|
||||||
Eaa
|
umami
|
||||||
Enteo
|
|
||||||
ESX
|
|
||||||
FLOWSTER
|
|
||||||
gitea
|
|
||||||
gitlocal
|
|
||||||
hashtable
|
|
||||||
IIS
|
|
||||||
ITIL
|
|
||||||
Keepalive
|
|
||||||
KIVBF
|
|
||||||
Kuma
|
|
||||||
lastmod
|
|
||||||
matomo
|
|
||||||
Netinstall
|
|
||||||
OSS
|
|
||||||
Paa
|
|
||||||
Phabricator
|
|
||||||
Pinia
|
|
||||||
SCM
|
|
||||||
SLES
|
|
||||||
Sonatype
|
|
||||||
tailwindcss
|
|
||||||
traefik
|
|
||||||
Traefik
|
|
||||||
Trivy
|
|
||||||
TSM
|
|
||||||
UCS
|
|
||||||
umami
|
|
||||||
VCS
|
|
||||||
Veyor
|
|
||||||
Xen
|
|
||||||
Zabbix
|
|
||||||
|
67
.woodpecker/.master.yml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
depends_on:
|
||||||
|
- test
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
buildMaster:
|
||||||
|
image: plugins/docker
|
||||||
|
settings:
|
||||||
|
repo: ocram85/blog
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
auto_tag: true
|
||||||
|
build_args:
|
||||||
|
- NODE_BASE=lts-buster-slim
|
||||||
|
- NGINX_BASE=1.23.1-alpine
|
||||||
|
username:
|
||||||
|
from_secret: hub_user
|
||||||
|
password:
|
||||||
|
from_secret: hub_passwd
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
buildMasterGitea:
|
||||||
|
image: plugins/docker
|
||||||
|
settings:
|
||||||
|
registry: gitea.ocram85.com
|
||||||
|
repo: gitea.ocram85.com/ocram85/blog
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
auto_tag: true
|
||||||
|
build_args:
|
||||||
|
- NODE_BASE=lts-buster-slim
|
||||||
|
- NGINX_BASE=1.23.1-alpine
|
||||||
|
username:
|
||||||
|
from_secret: gitea_user
|
||||||
|
password:
|
||||||
|
from_secret: gitea_passwd
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
trivyMaster:
|
||||||
|
image: aquasec/trivy:0.24.3
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
trivy image \
|
||||||
|
--severity UNKNOWN,LOW,MEDIUM \
|
||||||
|
--no-progress \
|
||||||
|
ocram85/blog:latest
|
||||||
|
- |
|
||||||
|
trivy image \
|
||||||
|
--exit-code 1 \
|
||||||
|
--severity HIGH,CRITICAL \
|
||||||
|
--no-progress \
|
||||||
|
ocram85/blog:latest
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
triggerPortainerMaster:
|
||||||
|
image: ocram85/portainer-serviceupdate
|
||||||
|
settings:
|
||||||
|
#VERBOSE: true
|
||||||
|
URI: "https://portainer.ocram85.com"
|
||||||
|
TOKEN:
|
||||||
|
from_secret: TOKEN
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
branch: master
|
65
.woodpecker/.next.yml
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
depends_on:
|
||||||
|
- test
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
buildNext:
|
||||||
|
image: plugins/docker
|
||||||
|
settings:
|
||||||
|
#dry_run: true
|
||||||
|
repo: ocram85/blog
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
tags: next
|
||||||
|
build_args:
|
||||||
|
- NODE_BASE=lts-buster-slim
|
||||||
|
- NGINX_BASE=1.23.1-alpine
|
||||||
|
username:
|
||||||
|
from_secret: hub_user
|
||||||
|
password:
|
||||||
|
from_secret: hub_passwd
|
||||||
|
when:
|
||||||
|
event: pull_request
|
||||||
|
|
||||||
|
buildNextGitea:
|
||||||
|
image: plugins/docker
|
||||||
|
settings:
|
||||||
|
#dry_run: true
|
||||||
|
registry: gitea.ocram85.com
|
||||||
|
repo: gitea.ocram85.com/ocram85/blog
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
tags: next
|
||||||
|
build_args:
|
||||||
|
- NODE_BASE=lts-buster-slim
|
||||||
|
- NGINX_BASE=1.23.1-alpine
|
||||||
|
username:
|
||||||
|
from_secret: gitea_user
|
||||||
|
password:
|
||||||
|
from_secret: gitea_passwd
|
||||||
|
when:
|
||||||
|
event: pull_request
|
||||||
|
|
||||||
|
trivyNext:
|
||||||
|
image: aquasec/trivy:0.24.3
|
||||||
|
commands:
|
||||||
|
- |
|
||||||
|
trivy image \
|
||||||
|
--severity UNKNOWN,LOW,MEDIUM \
|
||||||
|
--no-progress \
|
||||||
|
ocram85/blog:next
|
||||||
|
- |
|
||||||
|
trivy image \
|
||||||
|
--exit-code 1 \
|
||||||
|
--severity HIGH,CRITICAL \
|
||||||
|
--no-progress \
|
||||||
|
ocram85/blog:next
|
||||||
|
when:
|
||||||
|
event: pull_request
|
||||||
|
|
||||||
|
triggerPortainer:
|
||||||
|
image: ocram85/portainer-serviceupdate
|
||||||
|
settings:
|
||||||
|
#VERBOSE: true
|
||||||
|
URI: "https://portainer.ocram85.com"
|
||||||
|
TOKEN:
|
||||||
|
from_secret: NEXT_TOKEN
|
||||||
|
when:
|
||||||
|
event: pull_request
|
7
.woodpecker/.test.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
pipeline:
|
||||||
|
build:
|
||||||
|
image: node:lts-buster-slim
|
||||||
|
commands:
|
||||||
|
- npm install
|
||||||
|
- npm run test
|
||||||
|
- npm run build
|
@ -1,70 +0,0 @@
|
|||||||
when:
|
|
||||||
- event: [pull_request, tag, cron]
|
|
||||||
- event: push
|
|
||||||
branch:
|
|
||||||
- ${CI_REPO_DEFAULT_BRANCH}
|
|
||||||
|
|
||||||
variables:
|
|
||||||
- &build_plugin 'woodpeckerci/plugin-docker-buildx:3.2.1'
|
|
||||||
# deployment targets
|
|
||||||
- &publish_repos 'ocram85/blog,gitea.ocram85.com/ocram85/blog'
|
|
||||||
# logins for deployment targets
|
|
||||||
- publish_logins: &publish_logins
|
|
||||||
# Default DockerHub login
|
|
||||||
- registry: https://index.docker.io/v1/
|
|
||||||
username:
|
|
||||||
from_secret: hub_user
|
|
||||||
password:
|
|
||||||
from_secret: hub_passwd
|
|
||||||
# Additional Quay.IO login
|
|
||||||
- registry: https://gitea.ocram85.com
|
|
||||||
username:
|
|
||||||
from_secret: gitea_user
|
|
||||||
password:
|
|
||||||
from_secret: gitea_passwd
|
|
||||||
|
|
||||||
steps:
|
|
||||||
test:
|
|
||||||
image: *build_plugin
|
|
||||||
settings:
|
|
||||||
dry_run: true
|
|
||||||
registry: gitea.ocram85.com
|
|
||||||
repo: test
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
platforms: linux/amd64
|
|
||||||
auto_tag: true
|
|
||||||
#build_args:
|
|
||||||
# - VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
|
||||||
# - TAG=${CI_COMMIT_TAG}
|
|
||||||
when:
|
|
||||||
event: pull_request
|
|
||||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
|
||||||
|
|
||||||
publish:
|
|
||||||
image: *build_plugin
|
|
||||||
settings:
|
|
||||||
repo: *publish_repos
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
platforms: linux/amd64
|
|
||||||
auto_tag: true
|
|
||||||
logins: *publish_logins
|
|
||||||
#build_args:
|
|
||||||
# - VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
|
||||||
# - TAG=${CI_COMMIT_TAG}
|
|
||||||
when:
|
|
||||||
event: [push, tag, cron]
|
|
||||||
branch: ${CI_REPO_DEFAULT_BRANCH}
|
|
||||||
|
|
||||||
build-next:
|
|
||||||
image: *build_plugin
|
|
||||||
settings:
|
|
||||||
repo: *publish_repos
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
platforms: linux/amd64
|
|
||||||
tag: next
|
|
||||||
logins: *publish_logins
|
|
||||||
#build_args:
|
|
||||||
# - VERSION=${CI_COMMIT_TAG:-PR ${CI_COMMIT_PULL_REQUEST}}
|
|
||||||
# - TAG=${CI_COMMIT_TAG}
|
|
||||||
when:
|
|
||||||
event: [pull_request]
|
|
12
Dockerfile
@ -1,4 +1,8 @@
|
|||||||
FROM node:lts-buster-slim as builder
|
# Build ARGS for base image versions
|
||||||
|
ARG NODE_BASE=lts-buster-slim
|
||||||
|
ARG NGINX_BASE=1.21.6-alpine
|
||||||
|
|
||||||
|
FROM node:${NODE_BASE} as builder
|
||||||
COPY . /src
|
COPY . /src
|
||||||
#RUN ls -la
|
#RUN ls -la
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
@ -6,9 +10,9 @@ WORKDIR /src
|
|||||||
RUN npm install \
|
RUN npm install \
|
||||||
&& npm run build
|
&& npm run build
|
||||||
|
|
||||||
FROM nginx:1.23.3-alpine as prod
|
FROM nginx:${NGINX_BASE} as prod
|
||||||
LABEL maintainer="marco.blessing@googlemail.com"
|
LABEL maintainer="marco.blessing@googlemail.com"
|
||||||
#HEALTHCHECK --interval=15s --timeout=5s \
|
HEALTHCHECK --interval=15s --timeout=5s \
|
||||||
# CMD wget --no-verbose --tries=1 --spider http://localhost:80/ || exit 1
|
CMD wget --no-verbose --tries=1 --spider http://localhost:80/ || exit 1
|
||||||
COPY --from=builder src/public /usr/share/nignx/html/
|
COPY --from=builder src/public /usr/share/nignx/html/
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
|
@ -43,4 +43,4 @@ The next tag is used for testing any code changes on development branches and pu
|
|||||||
|
|
||||||
This image contains the hugo based sources for my personal blog. It's made with the [Congo theme](https://github.com/jpanther/congo). The static pages are served by the included nginx server with a custom config. The custom config is needed to redirect 404 errors to a custom page.
|
This image contains the hugo based sources for my personal blog. It's made with the [Congo theme](https://github.com/jpanther/congo). The static pages are served by the included nginx server with a custom config. The custom config is needed to redirect 404 errors to a custom page.
|
||||||
|
|
||||||
You can simply run the container with `docker run -it --rm -p "8080:80" ocram85/blog:latest`.
|
You can simply run the container with `docker run -it --rm -p "8080:80" ocram85/blog:latest`
|
||||||
|
@ -6,7 +6,7 @@ weight = 1
|
|||||||
rtl = false
|
rtl = false
|
||||||
|
|
||||||
title = "OCram85.com"
|
title = "OCram85.com"
|
||||||
#logo = "img/logo_square.png"
|
logo = "img/logo_square.png"
|
||||||
description = "A personal blog about PowerShell, Automation and more."
|
description = "A personal blog about PowerShell, Automation and more."
|
||||||
# copyright = "Copy, _right?_ :thinking_face:"
|
# copyright = "Copy, _right?_ :thinking_face:"
|
||||||
|
|
||||||
|
@ -30,10 +30,10 @@
|
|||||||
pageRef = "aboutme"
|
pageRef = "aboutme"
|
||||||
weight = 40
|
weight = 40
|
||||||
|
|
||||||
#[[main]]
|
[[main]]
|
||||||
# name = "Code"
|
name = "Code"
|
||||||
# url = "https://gitea.ocram85.com"
|
url = "https://gitea.ocram85.com"
|
||||||
# weight = 50
|
weight = 50
|
||||||
|
|
||||||
|
|
||||||
# -- Footer Menu --
|
# -- Footer Menu --
|
||||||
@ -55,13 +55,8 @@
|
|||||||
url = "https://umami.ocram85.com/share/KAk7LmbU/Blog"
|
url = "https://umami.ocram85.com/share/KAk7LmbU/Blog"
|
||||||
weight = 30
|
weight = 30
|
||||||
|
|
||||||
[[footer]]
|
|
||||||
name = "Code"
|
|
||||||
url = "https://gitea.ocram85.com"
|
|
||||||
weight = 40
|
|
||||||
|
|
||||||
[[footer]]
|
[[footer]]
|
||||||
name = "CI"
|
name = "CI"
|
||||||
url = "https://ci.ocram85.com"
|
url = "https://ci.ocram85.com"
|
||||||
weight = 50
|
weight = 40
|
||||||
|
|
||||||
|
@ -8,23 +8,14 @@
|
|||||||
colorScheme = "avocado"
|
colorScheme = "avocado"
|
||||||
defaultAppearance = "dark" # valid options: light or dark
|
defaultAppearance = "dark" # valid options: light or dark
|
||||||
autoSwitchAppearance = false
|
autoSwitchAppearance = false
|
||||||
|
showAppearanceSwitcher = false
|
||||||
|
|
||||||
enableSearch = true
|
enableSearch = true
|
||||||
enableCodeCopy = true
|
enableCodeCopy = true
|
||||||
|
|
||||||
# mainSections = ["section1", "section2"]
|
# mainSections = ["section1", "section2"]
|
||||||
# robots = ""
|
# robots = ""
|
||||||
|
showScrollToTop = true
|
||||||
[header]
|
|
||||||
layout = "hamburger" # valid options: basic, hamburger, hybrid, custom
|
|
||||||
logo = "img/logo_square.png"
|
|
||||||
showTitle = false
|
|
||||||
|
|
||||||
[footer]
|
|
||||||
showCopyright = true
|
|
||||||
showThemeAttribution = true
|
|
||||||
showAppearanceSwitcher = false
|
|
||||||
showScrollToTop = true
|
|
||||||
|
|
||||||
[homepage]
|
[homepage]
|
||||||
layout = "profile" # valid options: page, profile, custom
|
layout = "profile" # valid options: page, profile, custom
|
||||||
@ -37,7 +28,7 @@ enableCodeCopy = true
|
|||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showDraftLabel = true
|
showDraftLabel = true
|
||||||
showEdit = true
|
showEdit = true
|
||||||
editURL = "https://gitea.ocram85.com/OCram85/Blog/_edit/psCredUpdate/content/"
|
editURL = "https://github.com/OCram85/Blog/edit/master/content/"
|
||||||
editAppendPath = true
|
editAppendPath = true
|
||||||
showHeadingAnchors = true
|
showHeadingAnchors = true
|
||||||
showPagination = true
|
showPagination = true
|
||||||
@ -46,16 +37,13 @@ enableCodeCopy = true
|
|||||||
showTableOfContents = true
|
showTableOfContents = true
|
||||||
showTaxonomies = true
|
showTaxonomies = true
|
||||||
showWordCount = true
|
showWordCount = true
|
||||||
showComments = false
|
|
||||||
sharingLinks = ["facebook", "twitter", "pinterest", "reddit", "linkedin", "email"]
|
sharingLinks = ["facebook", "twitter", "pinterest", "reddit", "linkedin", "email"]
|
||||||
|
|
||||||
[list]
|
[list]
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showSummary = false
|
showSummary = false
|
||||||
showTableOfContents = false
|
showTableOfContents = false
|
||||||
showTaxonomies = false
|
|
||||||
groupByYear = true
|
groupByYear = true
|
||||||
paginationWidth = 1
|
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
excludedKinds = ["taxonomy", "term"]
|
excludedKinds = ["taxonomy", "term"]
|
||||||
|
@ -3,7 +3,7 @@ title: 'About Me'
|
|||||||
date: 2017-12-01T10:00:48+01:00
|
date: 2017-12-01T10:00:48+01:00
|
||||||
draft: false
|
draft: false
|
||||||
|
|
||||||
lastmod: 2023-01-02T06:00:00+01:00
|
lastmod: 2021-12-23T10:00:48+01:00
|
||||||
showDateUpdated: true
|
showDateUpdated: true
|
||||||
|
|
||||||
# custom overrides for pages
|
# custom overrides for pages
|
||||||
@ -22,40 +22,40 @@ showTableOfContents: false
|
|||||||
{{< icon "address-card" >}} Hi, my name is Marco Blessing and I live in the south of Germany near a city called
|
{{< icon "address-card" >}} Hi, my name is Marco Blessing and I live in the south of Germany near a city called
|
||||||
[Karlsruhe](https://goo.gl/maps/kDpo6bb9V2r).
|
[Karlsruhe](https://goo.gl/maps/kDpo6bb9V2r).
|
||||||
|
|
||||||
## {{< icon "terminal" >}} Projects
|
### {{< icon "terminal" >}} Projects
|
||||||
|
|
||||||
Take a look at my self hosted [Gitea](https://gitea.ocram85.com/explore/repos) instance to get an overview of my current work.
|
Take a look at this [Projects](/) page to get an overview of my current work.
|
||||||
|
|
||||||
## {{< icon "heart" >}} Favorite Topics
|
### {{< icon "heart" >}} Favorite Topics
|
||||||
|
|
||||||
I'm very interested in **PowerShell**, **NodeJS**, **Go** and **Software Engineering** in general.
|
I'm very interested in **PowerShell**, **NodeJS**, **Go** and **Software Engineering** in general.
|
||||||
|
|
||||||
Additionally I love building **CI/CD Stacks** with different open-source products to spread the word
|
Additionally I love building **CI/CD Stacks** with different open-source products to spread the word
|
||||||
of **DevOps** and **Containerization**.
|
of **DevOps** and **Containerization**.
|
||||||
|
|
||||||
## {{< icon "cubes" >}} Skills
|
### {{< icon "cubes" >}} Skills
|
||||||
|
|
||||||
_Here comes a list of subjects I've worked with, grouped by topics..._
|
_Here comes a list of subjects I've worked with, grouped by topics..._
|
||||||
|
|
||||||
### {{< icon "cube" >}} Container and {{< icon "docker" >}}Docker related
|
#### {{< icon "cube" >}} Container and {{< icon "docker" >}}Docker related
|
||||||
|
|
||||||
Traefik • Portainer • Docker Swarm Mode • Sonatype Nexus Repository • Aqua Security Trivy •
|
Traefik • Portainer • Docker Swarm Mode • Sonatype Nexus Repository • Aquasecurity Trivy •
|
||||||
Prometheus • Node-Exporter • cAdvisor • Alertmanager • Karma
|
Prometheus • Node-Exporter • cAdvisor • Alertmanager • Karma
|
||||||
|
|
||||||
### {{< icon "code" >}} Scripting and Programming Languages
|
#### {{< icon "code" >}} Scripting and Programming Languages
|
||||||
|
|
||||||
PowerShell • JavaScript • Go • Python • PHP • Object Pascal • C++ • Visual Basic
|
PowerShell • JavaScript • Go • Python • PHP • Object Pascal • C++ • Visual Basic
|
||||||
|
|
||||||
### {{< icon "terminal" >}} Operating Systems
|
#### {{< icon "terminal" >}} Operating Systems
|
||||||
|
|
||||||
Microsoft Windows 98SE++ • Microsoft Windows Server 2000++ •
|
Microsoft Windows 98SE++ • Microsoft Windows Server 2000++ •
|
||||||
CentOS _(and other Red Hat Enterprise Linux derivatives)_ • SLES • ubuntu
|
CentOS _(and other Red Hat Enterprise Linux derivatives)_ • SLES • ubuntu
|
||||||
|
|
||||||
### {{< icon "cloud" >}} Cloud Orchestration and Automation
|
#### {{< icon "cloud" >}} Cloud Orchestration and Automation
|
||||||
|
|
||||||
Microsoft Azure • eCloud Manager • FLOWSTER Studio • Citrix Cloud Platform • Citrix Cloud Platform Business Manager
|
Microsoft Azure • eCloud Manager • FLOWSTER Studio • Citrix Cloud Platform • Citrix Cloud Platform Business Manager
|
||||||
|
|
||||||
### {{< icon "cogs" >}} Server Roles, Features and Products
|
#### {{< icon "cogs" >}} Server Roles, Features and Products
|
||||||
|
|
||||||
Active Directory • File Server • Web Server _(IIS and Apache)_ •
|
Active Directory • File Server • Web Server _(IIS and Apache)_ •
|
||||||
DBs _(MSSQL, MySQL, PostgresSQL, Oracle 10g)_ • Backup & Restore _(IBM Tivoli Storage Manager)_ •
|
DBs _(MSSQL, MySQL, PostgresSQL, Oracle 10g)_ • Backup & Restore _(IBM Tivoli Storage Manager)_ •
|
||||||
@ -63,45 +63,13 @@ Server Hypervisor _(VMWare ESX, HyperV)_ • Terminal Server _(Microsoft, Cit
|
|||||||
Software Virtualization _(VMware ThinApp)_ • Software Packaging and Deployment _(Enteo Netinstall, Matrix42)_
|
Software Virtualization _(VMware ThinApp)_ • Software Packaging and Deployment _(Enteo Netinstall, Matrix42)_
|
||||||
• Monitoring _(Zabbix)_ • Build Engines _(Jenkins, AppVeyor)_
|
• Monitoring _(Zabbix)_ • Build Engines _(Jenkins, AppVeyor)_
|
||||||
|
|
||||||
### {{< icon "cog" >}} General Software, Frameworks
|
#### {{< icon "cog" >}} General Software
|
||||||
|
|
||||||
Node.js • Gitea • Drone.io • WoodpeckerCI • Vue.js • Quasar • tailwindcss • HAproxy • Keepalive • git SCM • Phabricator • VSCode
|
HAproxy • Keepalive • git SCM • Phabricator • VSCode • Notepad++
|
||||||
|
|
||||||
## {{< icon "briefcase" >}} Experience
|
### {{< icon "briefcase" >}} Experience
|
||||||
|
|
||||||
### {{< icon "calendar-alt" >}} 2018 - 202{{< icon "question" >}} {{< icon "building" >}} Komm.ONE as **SysOp** / **DevOps Engineer**
|
#### {{< icon "calendar-alt" >}} 2018 - 202{{< icon "question" >}} {{< icon "building" >}} [Komm.ONE](https://komm.one) as **SysOp** / **DevOps Engineer**
|
||||||
|
|
||||||
{{< icon "calendar-plus" >}} **2022** Cloud-Platform Infrastructure Project
|
|
||||||
|
|
||||||
Komm.ONE decided to create a complete new `Cloud-Platform Infrastructure`. The project started several years ago and replaced all software and hardware. Now it was our turn - So we started planning and implementing our test stage in the new environment. 2023 will challenge us to review and adapt the automation stack to changing requirements...
|
|
||||||
|
|
||||||
{{< icon "calendar-plus" >}} **2021** New Full Stack Self Service Portal
|
|
||||||
|
|
||||||
In 2021 I wanted to get back into coding and software architecture. So I started refactoring our Self Service Portal. The requirements have changed so much in the meantime that we decided to start from scratch. So we started a new full stack project containing these key elements:
|
|
||||||
|
|
||||||
| Tier | Components |
|
|
||||||
| ---- | ---------- |
|
|
||||||
| Backend | [Go](https://go.dev/) + [Node.js](https://nodejs.org/) |
|
|
||||||
| Frontend | [Vue.js 3](https://vuejs.org/) (with [Pinia](https://pinia.vuejs.org/), [Vue Router](https://router.vuejs.org/)) & [Quasar](https://quasar.dev/) |
|
|
||||||
| Data Management | CouchDB, MongoDB, SQL |
|
|
||||||
|
|
||||||
{{< icon "calendar-plus" >}} **2020** Cloud-Frontend Automation Stack
|
|
||||||
|
|
||||||
The year 2020 started with designing a new Automation Stack. My main goal war to upgrade the tech stack while
|
|
||||||
keeping the required operating an maintenance as low as possible. So I replaced some products to split the features / responsibilities:
|
|
||||||
|
|
||||||
| Role | Replaced Product | New Component |
|
|
||||||
| ---- | ---------------- | ------------- |
|
|
||||||
| Operational Platform | native Apps | Container based with [Docker](https://www.docker.com/), [traefik](https://traefik.io/traefik/), [Portainer](https://www.portainer.io/) |
|
|
||||||
| Git VCS | Phabricator | [Gitea](https://gitea.io) |
|
|
||||||
| Artifact Store | Jenkins | [Nexus Repository Manager OSS](https://www.sonatype.com/products/repository-oss-download) |
|
|
||||||
| Build Server | Jenkins | [Drone.io](https://www.drone.io/) |
|
|
||||||
| Wiki + KB | Phabricator | [Outline](https://www.getoutline.com/) |
|
|
||||||
| Landing Page | Phabricator | [Ghost CMS](https://ghost.org/) |
|
|
||||||
| Event Monitoring + Alerting | - | [Prometheus](https://github.com/prometheus/prometheus), [Alertmanager](https://github.com/prometheus/alertmanager), [cAdvisor](https://github.com/google/cadvisor), [Karma](https://github.com/prymitive/karma), [Grafana](https://github.com/grafana/grafana) |
|
|
||||||
| Service Status | - | [Uptime Kuma](https://github.com/louislam/uptime-kuma) |
|
|
||||||
| Web Analytics | matomo | [Umami](https://github.com/umami-software/umami) |
|
|
||||||
| Static Websites | Jenkins | [Hugo](https://github.com/gohugoio/hugo) |
|
|
||||||
|
|
||||||
{{< icon "calendar-plus" >}} **2019** Internal Self Service Portal
|
{{< icon "calendar-plus" >}} **2019** Internal Self Service Portal
|
||||||
|
|
||||||
@ -121,11 +89,11 @@ applications:
|
|||||||
|
|
||||||
{{< icon "calendar-plus" >}} **2018** KIVBF merged with its partners to form Komm.ONE in order
|
{{< icon "calendar-plus" >}} **2018** KIVBF merged with its partners to form Komm.ONE in order
|
||||||
to be able to offer uniform services. After adjusting the internal organizational structure, I'm now part of the
|
to be able to offer uniform services. After adjusting the internal organizational structure, I'm now part of the
|
||||||
business unit 4.2 _(Integration-, Security- & Application Management)_. My previous team was reassigned to this new
|
business unit 4.2 _(Integration-, Security- & Application Managent)_. My previous team was reassigned to this new
|
||||||
unit as well, and was renamed into CAFS _(Cloud- & Application-Frontend-Services)_. So my range of tasks changed
|
unit as well, and was renamed into CAFS _(Cloud- & Application-Frontend-Services)_. So my range of tasks changed
|
||||||
slightly.
|
slightly.
|
||||||
|
|
||||||
### {{< icon "calendar-alt" >}} 2012 - 2018 {{< icon "building" >}} KIVBF as **SysOp** / **DevOps Engineer**
|
#### {{< icon "calendar-alt" >}} 2012 - 2018 {{< icon "building" >}} [KIVBF](https://www.kivbf.de) as **SysOp** / **DevOps Engineer**
|
||||||
|
|
||||||
{{< icon "calendar-plus" >}} **2015** In 2015 I started automating several platform and workload
|
{{< icon "calendar-plus" >}} **2015** In 2015 I started automating several platform and workload
|
||||||
related use cases. Unfortunately it's closed source, so I can't talk about details. But to give a glimpse at the
|
related use cases. Unfortunately it's closed source, so I can't talk about details. But to give a glimpse at the
|
||||||
@ -148,12 +116,12 @@ It was a great place to get to know such large environment and I finally started
|
|||||||
implemented the monitoring system [Zabbix](http://www.zabbix.com/). Unfortunately I couldn't find any extension to
|
implemented the monitoring system [Zabbix](http://www.zabbix.com/). Unfortunately I couldn't find any extension to
|
||||||
monitor out IBM tape library or TSM data itself. So I developed own interfaces therefore.
|
monitor out IBM tape library or TSM data itself. So I developed own interfaces therefore.
|
||||||
|
|
||||||
### {{< icon "calendar-alt" >}} 2008 - 2012 {{< icon "building" >}} Pforzheim municipal administration as **SysOp**
|
#### {{< icon "calendar-alt" >}} 2008 - 2012 {{< icon "building" >}} [Pforzheim municipal administration](https://www.pforzheim.de/) as **SysOp**
|
||||||
|
|
||||||
At the municipal administration of Pforzheim I was responsible for the **Software Packaging and Deployment**,
|
At the municipal administration of Pforzheim I was responsible for the**Software Packaging and Deployment**,
|
||||||
**MS-SQL Servers** and **Web Hosting**.
|
**MS-SQL Servers** and **Web Hosting**.
|
||||||
|
|
||||||
## {{< icon "graduation-cap" >}} Education
|
### {{< icon "graduation-cap" >}} Education
|
||||||
|
|
||||||
I successfully finished two undergraduate trainings as **IT Specialist For Application Development** and
|
I successfully finished two undergraduate trainings as **IT Specialist For Application Development** and
|
||||||
**Management Assistant in IT-Systems**.
|
**Management Assistant in IT-Systems**.
|
||||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
@ -16,6 +16,8 @@ tags: ['pihole', 'swarm', 'stack']
|
|||||||
# sharingLinks: [null]
|
# sharingLinks: [null]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
{{< figure src="black-hole.jpg" width="600" height="800" caption="Photo by Kamesh Vedula on Unsplash." >}}
|
||||||
|
|
||||||
## Intro
|
## Intro
|
||||||
|
|
||||||
Many of you already know [Pi-hole](https://pi-hole.net/) as a trusted DNS firewall solution in your home labs. But
|
Many of you already know [Pi-hole](https://pi-hole.net/) as a trusted DNS firewall solution in your home labs. But
|
||||||
|
Before Width: | Height: | Size: 55 KiB |
@ -1,59 +0,0 @@
|
|||||||
---
|
|
||||||
title: "✨ PSCredentialStore 1.1.0 is released"
|
|
||||||
date: 2022-09-21T10:14:18+02:00
|
|
||||||
draft: false
|
|
||||||
|
|
||||||
categories: ['Projects']
|
|
||||||
tags: ['PSCredentialStore']
|
|
||||||
|
|
||||||
# lastmod: 2022-09-21T10:14:18+02:00
|
|
||||||
# showDateUpdated: true
|
|
||||||
|
|
||||||
# custom overrides for pages
|
|
||||||
# showDate: false
|
|
||||||
# showAuthor: false
|
|
||||||
# showWordCount: false
|
|
||||||
# showReadingTime: false
|
|
||||||
# showTableOfContents: false
|
|
||||||
# showTaxonomies: true
|
|
||||||
# showEdit: false
|
|
||||||
# sharingLinks: [null]
|
|
||||||
---
|
|
||||||
|
|
||||||
<p align="right">
|
|
||||||
<img src="https://forthebadge.com/images/badges/built-with-love.svg">
|
|
||||||
</p>
|
|
||||||
|
|
||||||
Today I'm proud to present the release of PSCredentialStore version [1.1.0](https://www.powershellgallery.com/packages/PSCredentialStore/1.1.0).
|
|
||||||
|
|
||||||
This version was mainly focused on updating the build pipeline and codebase.
|
|
||||||
So let me explain the changes in detail:
|
|
||||||
|
|
||||||
- 🧰 Reworked the build pipeline and replace Travis, AppVeyor by Drone.IO.
|
|
||||||
- 🧰 Updated the PowerShell style to the lates community standards.
|
|
||||||
- 🧰 Migrated from Github to [self hosted Gitea](https://gitea.ocram85.com/OCram85/PSCredentialStore).
|
|
||||||
- 🧰 Migrated to self hosted Drone and Woodpecker CI.
|
|
||||||
- 🧰 Updated Pester unit tests to Pester5+ syntax.
|
|
||||||
- 💣 Changed from MIT to GNU AGPLv3 license.
|
|
||||||
- 🧰 Removed the optional dependency helper.
|
|
||||||
- 📦 Updated embedded OpenSSL (LibreSSL) files to version 3.5.3.
|
|
||||||
- Started building and deploying the LibreSSL windows portable version on Github: https://github.com/OCram85/libressl-portable.
|
|
||||||
- 🧰 Added gitea project template files for issues and pull requests.
|
|
||||||
- 🤖 Implemented [DroneHelper](https://gitea.ocram85.com/OCram85/DroneHelper) base Drone pipeline.
|
|
||||||
|
|
||||||
Additionally we fixed some issues and added new connection types:
|
|
||||||
|
|
||||||
- 🌟 Added CiscoUCSCentral connection type
|
|
||||||
- 🐛 Fixed `Test-CredentialStoreItem` output
|
|
||||||
- 🐛 Fixed CiscoUCS connection
|
|
||||||
|
|
||||||
You can find the PSCredential store at [PowerShell Gallery](https://www.powershellgallery.com/packages/PSCredentialStore)
|
|
||||||
and [gitea.ocram85.com](https://gitea.ocram85.com/OCram85/PSCredentialStore/releases).
|
|
||||||
|
|
||||||
Feel free to install or upgrade to the latest version with the following command.
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Install-Module -Name 'PSCredentialStore' -Force
|
|
||||||
```
|
|
||||||
|
|
||||||

|
|
@ -19,6 +19,8 @@ tags: ['ModuleBase', 'config']
|
|||||||
# sharingLinks: [null]
|
# sharingLinks: [null]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
 on [Unsplash](https://unsplash.com)')
|
||||||
|
|
||||||
## 🖼️ Intro
|
## 🖼️ Intro
|
||||||
|
|
||||||
This article explains with a practical example how to determine and use the current module base path.
|
This article explains with a practical example how to determine and use the current module base path.
|
||||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
@ -18,6 +18,8 @@ showDateUpdated: true
|
|||||||
# sharingLinks: [null]
|
# sharingLinks: [null]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
 on [Unsplash](https://unsplash.com)')
|
||||||
|
|
||||||
## 🖼️ Intro
|
## 🖼️ Intro
|
||||||
|
|
||||||
This post explains how to use `PSCustomObject`s as function parameters. We compare the basic usage with an
|
This post explains how to use `PSCustomObject`s as function parameters. We compare the basic usage with an
|
||||||
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
@ -18,6 +18,9 @@ tags: ['class', 'read-only', 'properties']
|
|||||||
# showEdit: false
|
# showEdit: false
|
||||||
# sharingLinks: [null]
|
# sharingLinks: [null]
|
||||||
---
|
---
|
||||||
|
|
||||||
|
{{< figure src="vader_cube.png" width="800" height="800">}}
|
||||||
|
|
||||||
{{< note >}}
|
{{< note >}}
|
||||||
If you're not familiar with Powershell classes I suggest you reading this awesome blog article from Michael Willis
|
If you're not familiar with Powershell classes I suggest you reading this awesome blog article from Michael Willis
|
||||||
[Powershell v5 Classes & Concepts](https://xainey.github.io/2016/powershell-classes-and-concepts/). It covers
|
[Powershell v5 Classes & Concepts](https://xainey.github.io/2016/powershell-classes-and-concepts/). It covers
|
||||||
|
Before Width: | Height: | Size: 476 KiB After Width: | Height: | Size: 476 KiB |
@ -9,6 +9,8 @@ tags: ['resources']
|
|||||||
draft: false
|
draft: false
|
||||||
---
|
---
|
||||||
|
|
||||||
|
{{< figure src="res-posh.jpg" width="1200" height="800" caption="Photo by Eugenio Mazzone on Unsplash." >}}
|
||||||
|
|
||||||
## The Journey Begins Now Young Novice
|
## The Journey Begins Now Young Novice
|
||||||
|
|
||||||
In this section you find the most basic stuff. It's aimed to help beginners who just got in touch with PowerShell.
|
In this section you find the most basic stuff. It's aimed to help beginners who just got in touch with PowerShell.
|
||||||
|
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
@ -2,6 +2,6 @@
|
|||||||
async
|
async
|
||||||
defer
|
defer
|
||||||
data-website-id="3e944f0b-6377-4a23-8bdd-64b408d13611"
|
data-website-id="3e944f0b-6377-4a23-8bdd-64b408d13611"
|
||||||
src="https://umami.ocram85.com/script.js"
|
src="https://umami.ocram85.com/umami.js"
|
||||||
data-domains="ocram85.com"
|
data-domains="ocram85.com"
|
||||||
></script>
|
></script>
|
||||||
|
@ -5,7 +5,7 @@ http {
|
|||||||
include mime.types;
|
include mime.types;
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 0.0.0.0:80;
|
listen 80;
|
||||||
root /usr/share/nignx/html;
|
root /usr/share/nignx/html;
|
||||||
index index.html;
|
index index.html;
|
||||||
error_page 404 /404.html;
|
error_page 404 /404.html;
|
||||||
|
1009
package-lock.json
generated
@ -10,7 +10,6 @@
|
|||||||
"lint:markdown": "markdownlint \"*.md\" \"content/**/*.md\"",
|
"lint:markdown": "markdownlint \"*.md\" \"content/**/*.md\"",
|
||||||
"start": "npm run server",
|
"start": "npm run server",
|
||||||
"server": "exec-bin node_modules/.bin/hugo/hugo server --bind=0.0.0.0 -D",
|
"server": "exec-bin node_modules/.bin/hugo/hugo server --bind=0.0.0.0 -D",
|
||||||
"arkanum": "exec-bin node_modules/.bin/hugo/hugo server --bind=0.0.0.0 -D --appendPort=false --baseURL https://arkanum-dev.ocram85.com --port 1313",
|
|
||||||
"test": "npm run lint:markdown",
|
"test": "npm run lint:markdown",
|
||||||
"postinstall": "hugo-installer --version otherDependencies.hugo --extended --destination node_modules/.bin/hugo",
|
"postinstall": "hugo-installer --version otherDependencies.hugo --extended --destination node_modules/.bin/hugo",
|
||||||
"new:post": "exec-bin node_modules/.bin/hugo/hugo new"
|
"new:post": "exec-bin node_modules/.bin/hugo/hugo new"
|
||||||
@ -27,9 +26,9 @@
|
|||||||
"homepage": "https://github.com/OCram85/Blog#readme",
|
"homepage": "https://github.com/OCram85/Blog#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"exec-bin": "^1.0.0",
|
"exec-bin": "^1.0.0",
|
||||||
"hugo-installer": "^4.0.0",
|
"hugo-installer": "^3.1.0",
|
||||||
"markdownlint-cli": "^0.33.0",
|
"markdownlint-cli": "^0.31.1",
|
||||||
"rimraf": "^4.0.0"
|
"rimraf": "^3.0.2"
|
||||||
},
|
},
|
||||||
"otherDependencies": {
|
"otherDependencies": {
|
||||||
"hugo": "0.91.1"
|
"hugo": "0.91.1"
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"onboardingConfig": {
|
|
||||||
"extends": [
|
|
||||||
"config:base"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"dependencyDashboard": true,
|
|
||||||
"docker": {
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"docker-compose": {
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
"woodpecker": {
|
|
||||||
"enabled": true,
|
|
||||||
"fileMatch": ["^.woodpecker\/.*.yml$"]
|
|
||||||
}
|
|
||||||
}
|
|