feat: add various Docker services and configurations for Minecraft, Plex, Sabnzbd, and more

This commit is contained in:
2024-11-14 20:39:11 +01:00
parent a439ccc355
commit e83ebe2d2c
33 changed files with 2423 additions and 93 deletions

View File

@ -0,0 +1 @@
dist/

View File

@ -0,0 +1,12 @@
build:
cd ../; docker compose down;
rm -rf dist/
mkdir dist
pandoc index.md --template=template.html --metadata title="Resume - Menno Cornelis van Leeuwen" -o dist/index.html
pandoc index.md -o dist/index.pdf
mkdir dist/css/
cp css/stylesheet.css dist/css/stylesheet.css
cd ../; docker compose up -d;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,84 @@
# Menno Cornelis van Leeuwen
## Contact Information
**Location:** Reguliersdwarsstraat 12A, 1947 GG, Beverwijk
**Phone:** +31 (06) 499-351-79
**Email:** menno@vleeuwen.me
**LinkedIn:** [linkedin.com/in/menno-v-44477b176/](https://www.linkedin.com/in/menno-v-44477b176/)
**GitHub:** [github.com/vleeuwenmenno](https://github.com/vleeuwenmenno)
## Summary
An enthusiastic software engineer who likes to learn new things and discover new oppertunities. Experienced in programming in Flutter, Dart, PHP and C#.
Although my current language of choice is Dart with the Flutter framework but I am open to anything to see what is beyond my horizon.
Aside from that I am also experienced in building, maintaining and repairing computer systems and networks.
## Skills
- **Programming Languages:** C# .NET, Flutter, Dart, PHP, Laravel
- **Tools & Technologies:** Git, Docker, Provider (Flutter), VS Code, Rider, PHP Storm
- **Methodologies:** Agile/Scrum, Object-Oriented Programming
## Experience
### **Software Engineer | Sandwave / Your.Online (Formerly TWS) | Nov 2021 Present**
- Worked in an agile/scrum environment, sparred with smaller teams.
- Implemented complex authentication flows with modern security practices.
- Guarded the dependencies
### **.NET / PHP Developer | Minty Media | Nov 2020 Oct-2021**
- Implemented API bridges between Bol.com and WooCommerce
- Setup CI/CD pipelines to streamline testing and deployment of applications
- Started the development of a full hosting panel solution including DNS Editor, Domain purchasing, VPS Options etc.
### **Flutter Developer | Bots.io (Formerly RevenYOU) | Mar 2019 Oct-2019**
- Spearheaded the development of the Bots.io App, with now more than 1M+ downloads.
- Implemented the skeleton of the app and sparred with UI designers to make it the best it can be.
### **All Round/Repair Technician/Sales | Com Today | Jan 2014 Mar 2019**
- Developed an in-house cashier program in PHP to track sales, expenses, stock and ongoing tasks.
- Worked on repairing computers, laptops, phones, and anything in between.
- Maintained stock, sold new systems to customers, and assisted customers with technical support.
## Education
### **MBO 4 Application & Media developer | Nova College in Beverwijk | Aug 2015 May 2019**
- Working with scrum/agile methodologies.
- Improved my existing self-thought knowledge in Object-oriented programming and design patterns.
- Using version control to manage code with Git and Subversion.
### **MBO 2 Occupation IT Employee | Nova College in Beverwijk | 2012 2014**
- Building, diagnosing and repairing computers.
- Completed multiple Cisco and Aries courses related to networking and computer technologies.
## Hobbies
- Astrophotography & image processing
- Beautiful photos of galaxies, nebula and star fields.
- Take a look at [astrobin.com/users/vleeuwenmenno](https://www.astrobin.com/users/vleeuwenmenno/) for my best work.
- Learning about cultures & languages while travelling
- Trying to go outside my comfort zone and speak another language while learning about their cultures.
- Creating endless programming test projects
- That sometimes evolve into something more
- FPV Freestyle Drones & Cinematic
- Building, flying and of course crashing drones, usually in the summer.
## References
Available upon request.

View File

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Resume - Menno Cornelis van Leeuwen</title>
<link rel="stylesheet" href="/css/stylesheet.css" />
</head>
<body class="stackedit">
<div class="stackedit__html">$body$</div>
</body>
</html>

View File

@ -0,0 +1,13 @@
{ pkgs, ... }:
{
# Resume/CV Website (Nginx)
services.nginx = {
enable = true;
virtualHosts."localhost:4203" = {
root = "/home/menno/dotfiles/config/nixos/packages/server/mennovanleeuwen.nl";
locations."/" = {
index = "index.html";
};
};
};
}

View File

@ -0,0 +1,119 @@
{ pkgs, ... }:
{
services.traefik = {
enable = true;
staticConfigOptions = {
entryPoints = {
web.address = ":80";
websecure.address = ":443";
};
certificatesResolvers.letsencrypt.acme = {
email = "menno@vleeuwen.me";
storage = "/var/lib/traefik/acme.json";
httpChallenge.entryPoint = "web";
};
};
dynamicConfigOptions = {
http = {
# Plex Media Server
routers.plex = {
rule = "Host(`plex.vleeuwen.me`)";
service = "plex";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.plex.loadBalancer.servers = [ { url = "http://127.0.0.1:32400"; } ];
# Tautulli (Plex Stats)
routers.tautulli = {
rule = "Host(`tautulli.vleeuwen.me`)";
service = "tautulli";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.tautulli.loadBalancer.servers = [ { url = "http://127.0.0.1:8181"; } ];
# Jellyfin
routers.jellyfin = {
rule = "Host(`jellyfin.vleeuwen.me`)";
service = "jellyfin";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.jellyfin.loadBalancer.servers = [ { url = "http://127.0.0.1:8096"; } ];
# Overseerr
routers.overseerr = {
rule = "Host(`overseerr.vleeuwen.me`)";
service = "overseerr";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.overseerr.loadBalancer.servers = [ { url = "http://127.0.0.1:5555"; } ];
# Immich (Google Photos alternative)
routers.immich = {
rule = "Host(`photos.vleeuwen.me`)";
service = "immich";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.immich.loadBalancer.servers = [ { url = "http://127.0.0.1:2283"; } ];
# Gitea Git Server
routers.gitea = {
rule = "Host(`git.mvl.sh`)";
service = "gitea";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.gitea.loadBalancer.servers = [ { url = "http://127.0.0.1:3030"; } ];
# Home Assistant
routers.homeassistant = {
rule = "Host(`home.vleeuwen.me`)";
service = "homeassistant";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.homeassistant.loadBalancer.servers = [ { url = "http://192.168.86.254:8123"; } ];
# InfluxDB for Home Assistant
routers.influxdb = {
rule = "Host(`influxdb.vleeuwen.me`)";
service = "influxdb";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.influxdb.loadBalancer.servers = [ { url = "http://192.168.86.254:8086"; } ];
# Bluemap for Minecraft
routers.bluemap = {
rule = "Host(`map.mvl.sh`)";
service = "bluemap";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.bluemap.loadBalancer.servers = [ { url = "http://127.0.0.1:3456"; } ];
# Factorio Server Manager
routers.factorio = {
rule = "Host(`fsm.mvl.sh`)";
service = "factorio";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.factorio.loadBalancer.servers = [ { url = "http://127.0.0.1:5080"; } ];
# Resume/CV Website
routers.personal-site = {
rule = "Host(`mennovanleeuwen.nl`)";
service = "personal-site";
entryPoints = [ "websecure" ];
tls.certResolver = "letsencrypt";
};
services.personal-site.loadBalancer.servers = [ { url = "http://127.0.0.1:4203"; } ];
};
};
};
}