feat: add various Docker services and configurations for Minecraft, Plex, Sabnzbd, and more
This commit is contained in:
1
config/nixos/packages/server/mennovanleeuwen.nl/.gitignore
vendored
Normal file
1
config/nixos/packages/server/mennovanleeuwen.nl/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
dist/
|
12
config/nixos/packages/server/mennovanleeuwen.nl/Makefile
Normal file
12
config/nixos/packages/server/mennovanleeuwen.nl/Makefile
Normal 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;
|
1662
config/nixos/packages/server/mennovanleeuwen.nl/css/stylesheet.css
Normal file
1662
config/nixos/packages/server/mennovanleeuwen.nl/css/stylesheet.css
Normal file
File diff suppressed because it is too large
Load Diff
84
config/nixos/packages/server/mennovanleeuwen.nl/index.md
Normal file
84
config/nixos/packages/server/mennovanleeuwen.nl/index.md
Normal 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.
|
@ -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>
|
13
config/nixos/packages/server/nginx.nix
Normal file
13
config/nixos/packages/server/nginx.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
119
config/nixos/packages/server/traefik.nix
Normal file
119
config/nixos/packages/server/traefik.nix
Normal 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"; } ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user