Compare commits
10
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3529834d95 | ||
|
|
fd21bd2f83 | ||
|
|
2c28b27e82 | ||
|
|
d22711484b | ||
|
|
bfdef4c47a | ||
|
|
6129fd31d1 | ||
|
|
d839908521 | ||
|
|
c640801e23 | ||
|
|
9e3f116f55 | ||
|
|
a59c6c7d4a |
+1
-1
@@ -25,7 +25,7 @@ export default defineAppConfig({
|
||||
docus: {
|
||||
title: 'Docudjeex',
|
||||
description: 'Homelab documentation',
|
||||
url: 'http://docus.dev',
|
||||
url: 'https://docu.djeex.fr',
|
||||
image: '/img/social.png',
|
||||
socials: {
|
||||
github:'',
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
---
|
||||
title: Home
|
||||
description: Homelab documentation by Djeex — self-hosting guides for Debian, Docker, networking, storage, and more.
|
||||
navigation: false
|
||||
layout: page
|
||||
main:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
icon: lucide:home
|
||||
title: Welcome
|
||||
description: Introduction to Docudjeex — a personal homelab documentation site covering self-hosted services, Debian, and Docker infrastructure.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
@@ -9,7 +10,7 @@ main:
|
||||
# docu[·]{style="color: #1ad6ff"}what?
|
||||
|
||||
__Docu[·]{style="color: #1ad6ff"}djeex__ is a site containing the documentation of my personal servers, originally created to easily keep track of my configurations and commands.
|
||||
My infrastructure is built around the Debian 12 + Docker combo, making exporting and deployment simpler.
|
||||
My infrastructure is built around the Debian 13 + Docker combo, making exporting and deployment simpler.
|
||||
Special thanks to __Nipah__, __Xenio__, and others for their patience and support. Most of this content comes directly from them.
|
||||
|
||||
## About the documentation
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: NAT & DHCP
|
||||
description: Learn how NAT, port forwarding, and DHCP work on a home router. Configure fixed IP leases and understand how to expose local services.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: DNS Zone
|
||||
description: Understand how DNS works, how to read and edit a DNS zone, and how to configure domain names for your self-hosted services.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Samba
|
||||
description: Set up Samba on Debian to share folders over your local network and access them from Windows, macOS, or Linux.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: RAID
|
||||
description: Understand RAID concepts — hardware vs software, RAID levels, and how to set up redundant disk arrays for your homelab.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: ZFS
|
||||
description: Introduction to ZFS — a combined file system and volume manager with snapshots, checksums, and built-in redundancy for reliable homelab storage.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: The Basics
|
||||
description: Overview of server hardware fundamentals — CPUs, RAM, storage, and form factors to understand before building your homelab.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Network
|
||||
description: Overview of networking hardware for homelabs — switches, NICs, cables, and how to connect your servers efficiently.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: The ProloNAS
|
||||
description: Build a capable home server on a budget using an Intel N100 mini PC — a practical guide to getting started with self-hosting for under $130.
|
||||
fluid: false
|
||||
---
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
icon: lucide:bookmark
|
||||
navigation: true
|
||||
title: Introduction
|
||||
description: Introduction to Serveex — a personal homelab project to self-host everyday services using Debian and Docker, replacing Google, Apple, and Netflix.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
@@ -41,7 +42,7 @@ The Core of the Server
|
||||
#title
|
||||
__Operating System__
|
||||
#description
|
||||
[Install and configure Debian 12](/serveex/core/installation)
|
||||
[Install and configure Debian 13](/serveex/core/installation)
|
||||
::
|
||||
|
||||
::card{icon=logos:docker-icon}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Debian 12
|
||||
title: Debian 13
|
||||
description: Step-by-step guide to install Debian 13 on a home server and set up SSH access, essential packages, and a ready-to-use base system.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
# Debian 12
|
||||
# Debian 13
|
||||
::alert{type="info"}
|
||||
🎯 __Goal:__ Install Debian 13 and the main dependencies to have a ready-to-use OS, accessible via SSH.
|
||||
::
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Docker
|
||||
description: Install Docker and Dockge on Debian to deploy and manage self-hosted services with simple container stacks.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
@@ -43,7 +44,7 @@ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin
|
||||
|
||||
That's it!
|
||||
|
||||
**More options:** [Install Docker for Debian 12](https://docs.docker.com/engine/install/debian/)
|
||||
**More options:** [Install Docker for Debian 13](https://docs.docker.com/engine/install/debian/)
|
||||
|
||||
::alert{type="info" icon="exclamation-circle"}
|
||||
:::list{type="info"}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: SWAG
|
||||
description: Set up SWAG as a reverse proxy with automatic SSL, expose your services securely, and configure geo-blocking on your homelab.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Wireguard
|
||||
description: Install and configure WireGuard VPN to securely access your homelab from anywhere and connect all your devices to your private network.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Authentik
|
||||
description: Install Authentik as a self-hosted identity provider — configure MFA and protect your services with SSO and reverse proxy authentication.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Cloudflare Zero Trust
|
||||
description: Use Cloudflare Tunnels and Zero Trust to expose homelab services without opening ports — configure SWAG and manage multiple tunnels.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Uptime-Kuma
|
||||
description: Install Uptime-Kuma to monitor your self-hosted services uptime, set up alerts, and optionally protect the dashboard with Authentik.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Dozzle
|
||||
description: Install Dozzle to monitor Docker container logs in real time from a clean web interface, exposed via SWAG.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Speedtest Tracker
|
||||
description: Install Speedtest Tracker to automatically measure and log your internet connection speed over time, exposed with SWAG.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Beszel
|
||||
description: Install Beszel to monitor server CPU, RAM, disk, and network metrics — including remote servers — with a lightweight web dashboard.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: UpSnap
|
||||
description: Install UpSnap to remotely wake up machines on your local network via Wake-on-LAN, exposed with SWAG.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Plex
|
||||
description: Install Plex Media Server with Tautulli on your homelab to stream movies and TV shows from anywhere on all your devices.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Qbittorrent
|
||||
description: Install qBittorrent with Gluetun and ProtonVPN to download torrents securely behind a VPN on your self-hosted server.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
@@ -13,7 +14,7 @@ main:
|
||||
- Securely connect to the BitTorrent network using Gluetun and Proton VPN
|
||||
::
|
||||
|
||||

|
||||

|
||||
|
||||
To safely download your favorite media, we'll build a system using:
|
||||
|
||||
@@ -80,7 +81,7 @@ services:
|
||||
- gluetun
|
||||
|
||||
gluetun:
|
||||
image: qmcgaw/gluetun:v3.40.1
|
||||
image: qmcgaw/gluetun:v3.41.3
|
||||
container_name: gluetun
|
||||
restart: unless-stopped
|
||||
mem_limit: 4g
|
||||
@@ -149,7 +150,7 @@ Press `i` to edit and enter:
|
||||
```toml
|
||||
[[roles]]
|
||||
name = "t-anc/GSP-Qbittorent-Gluetun-sync-port-mod"
|
||||
routes = ["GET /v1/openvpn/portforwarded"]
|
||||
routes = ["GET /v1/portforward"]
|
||||
auth = "apikey"
|
||||
apikey = "your_key_here" # key you just generated
|
||||
```
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Automation
|
||||
description: Automate media downloads with the Servarr stack — Radarr, Sonarr, Bazarr, Prowlarr, and Overseerr for movies and TV shows.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Immich
|
||||
description: Install Immich, a self-hosted alternative to Google Photos and iCloud with face recognition, geolocation, and multi-device sync.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Nextcloud
|
||||
description: Install Nextcloud to self-host your files, photos, and calendar — a privacy-friendly alternative to Google Drive, OneDrive, and iCloud.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: File Browser
|
||||
description: Install File Browser to browse and manage your server files from a web interface, exposed securely with SWAG.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Pingvin
|
||||
description: Install Pingvin Share, a self-hosted file sharing platform to send files securely without relying on WeTransfer or Google Drive.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Code-Server
|
||||
description: Install code-server to run VS Code in your browser from your homelab — mount folders and expose it securely with SWAG.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Gitea
|
||||
description: Install Gitea, a lightweight self-hosted Git service to manage your code repositories privately on your own server.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: IT Tools
|
||||
description: Install IT Tools, a self-hosted collection of handy utilities for developers — converters, encoders, formatters, and more.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Adguard Home
|
||||
description: Install AdGuard Home for network-wide ad and tracker blocking with DNS-over-HTTPS, client management, and custom filtering rules.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Vaultwarden
|
||||
description: Install Vaultwarden, a self-hosted Bitwarden-compatible password manager to replace Google or Apple password managers across all your devices.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
icon: lucide:bookmark
|
||||
navigation: true
|
||||
title: Introduction
|
||||
description: Introduction to Stockeex — a personal project for stock and inventory management. Documentation coming soon.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Nvidia Stock Bot
|
||||
description: A Python bot that monitors GPU stock availability in real time and sends Discord alerts — built during the RTX 5000 series launch shortage.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Adguard CIDRE
|
||||
description: A Python script to sync AdGuard Home CIDR allowlists automatically, securing your self-hosted DNS server exposed to the internet.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Lumeex
|
||||
description: Lumeex is a static photo gallery site generator built with Python — minimalist, lightweight, and fully customizable without a CMS.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Instameex
|
||||
description: Instameex is a Docker-based tool to merge SDR and HDR photo exports into a proper gain-map JPEG ready for Instagram HDR upload.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
|
||||
<div align="center">
|
||||
<img src="https://git.djeex.fr/Djeex/instameex/raw/branch/main/src/assets/img/logo-long.svg" alt="Lumeex Screenshot" width="300"/>
|
||||
</div>
|
||||
<p/>
|
||||
<div align="center">
|
||||
<p>Mix your SDR and HDR exports into an Instagram-ready HDR photo.</p>
|
||||
</div>
|
||||
</p>
|
||||
<div align="center">
|
||||
<img src="https://git.djeex.fr/Djeex/instameex/raw/branch/main/illustration/instameex-illustration.png" width="640" alt="Instameex Screenshot" />
|
||||
</div>
|
||||
---
|
||||
|
||||
Nothing is more frustrating than Instagram's HDR handling. It compresses and destroys gain maps, and the slightest change in aspect ratio or size simply strips HDR out entirely. As for Lightroom, its "SDR preview" system is frankly unacceptable, it makes it impossible to get consistent results. Until now, posting on Instagram meant choosing between decent SDR with broken HDR, or the other way around.
|
||||
|
||||
Why not simply edit your SDR file to perfection on one side, your HDR file on the other, and then recalculate a gain map from those two perfect files?
|
||||
A few pioneers have already gone down that road, notably with an [Adobe Lightroom Classic](https://github.com/karachungen/lightroom-plugin-export-hdr) plugin. Judge me if you want, but I only use Lightroom CC, which does not support plugins.
|
||||
|
||||
I drew inspiration from a [fork of the original project](https://github.com/kostis-kounadis/instagram-hdr-assembler), the one that eventually became the LrC plugin, to build a frontend that can be easily deployed with Docker. Let's be honest: it was also a great excuse to put my Claude Code subscription to the test. And I have to say, watching it spin up its own environments, run end-to-end tests, self-correct its code, and write detailed summaries is genuinely impressive. I still reviewed everything myself, don't worry. I also learned a great deal about HDR fundamentals, gain maps, HLG/PQ tone curves, color spaces, and more.
|
||||
|
||||
In short, here is what my workflow now looks like for posting on Instagram:
|
||||
|
||||

|
||||
|
||||
Allow me to introduce **Instam[eex]{style="color: #1ad6ff"}**
|
||||
|
||||
---
|
||||
::card-grid{grid-template-columns="repeat(2, minmax(0, 1fr));"}
|
||||
#title
|
||||
And here is the result
|
||||
|
||||
#root
|
||||
:ellipsis{left=0px width=40rem top=10rem blur=140px}
|
||||
|
||||
#default
|
||||
::card
|
||||
#title
|
||||
🐋 __Instameex__
|
||||
#description
|
||||
[Open the repository](https://git.djeex.fr/Djeex/instameex)
|
||||
::
|
||||
|
||||
::card
|
||||
#title
|
||||
🌍 __Online version__
|
||||
#description
|
||||
[Convert online](https://instameex.djeex.fr)
|
||||
::
|
||||
::
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Servarr corrector
|
||||
description: A bash script to detect and fix duplicate media files in Sonarr and Radarr libraries by replacing copies with hardlinks to reclaim disk space.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: LUKS Backup
|
||||
description: A bash script to automatically dump LUKS headers from all encrypted disks, identify them by serial number, and store them in an encrypted archive.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Socat Proxy
|
||||
description: Use socat to proxy the Docker socket through Docker Socket Proxy, allowing Beszel to collect container stats without exposing the full Docker socket.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: HotDisk
|
||||
description: A bash script that monitors hard drive temperatures and automatically shuts down the server when disks stay above a safe threshold for too long.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
navigation: true
|
||||
title: Backrest Docker Stop
|
||||
description: A bash script that stops Docker containers before a Backrest backup runs and restarts them after — ensuring safe database backups without complex dumps.
|
||||
main:
|
||||
fluid: false
|
||||
---
|
||||
|
||||
+11
-1
@@ -2,6 +2,7 @@ export default defineNuxtConfig({
|
||||
// https://github.com/nuxt-themes/docus
|
||||
css: ['~/assets/css/extra.css'],
|
||||
extends: ['@nuxt-themes/docus'],
|
||||
modules: ['@nuxtjs/sitemap'],
|
||||
devtools: { enabled: false },
|
||||
colorMode: {
|
||||
preference: 'dark',
|
||||
@@ -37,10 +38,19 @@ export default defineNuxtConfig({
|
||||
{ rel: 'manifest', href: '/img/favicon/site.webmanifest' }
|
||||
],
|
||||
meta: [
|
||||
{ name: 'darkreader-lock' },
|
||||
{ name: 'darkreader-lock', content: 'true' },
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
site: {
|
||||
url: 'https://docu.djeex.fr'
|
||||
},
|
||||
|
||||
sitemap: {
|
||||
autoLastmod: true,
|
||||
urls: ['https://docu.djeex.fr']
|
||||
},
|
||||
|
||||
compatibilityDate: '2024-10-24'
|
||||
})
|
||||
Generated
+10372
-2794
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -15,8 +15,9 @@
|
||||
"@nuxt/eslint-config": "^0.6.1",
|
||||
"@nuxt/icon": "^1.7.5",
|
||||
"@nuxtjs/plausible": "^1.0.3",
|
||||
"@nuxtjs/sitemap": "6.1.5",
|
||||
"@types/node": "^22.9.0",
|
||||
"eslint": "^9.14.0",
|
||||
"nuxt": "^3.14.159"
|
||||
"nuxt": "^3.21.11"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
export default defineNuxtPlugin(() => {
|
||||
const route = useRoute()
|
||||
const canonicalUrl = withSiteUrl(computed(() => route.path), { canonical: true })
|
||||
|
||||
useHead({
|
||||
link: [
|
||||
{ rel: 'canonical', href: canonicalUrl }
|
||||
],
|
||||
meta: [
|
||||
{ property: 'og:url', content: canonicalUrl }
|
||||
]
|
||||
})
|
||||
})
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 242 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 238 KiB |
Reference in New Issue
Block a user