diff --git a/app/app.config.ts b/app/app.config.ts index 0f2447b..7f0da79 100644 --- a/app/app.config.ts +++ b/app/app.config.ts @@ -31,6 +31,12 @@ export default defineAppConfig({ base: 'bg-[rgba(12,13,12,0.8)] border-[#121110]', }, }, + // Custom code-block header icons, keyed by lowercase `[label]` text + // (see ```text [Arborescence] / ```text [Directory tree] blocks). + codeIcon: { + 'arborescence': 'i-lucide-folder-tree', + 'directory tree': 'i-lucide-folder-tree', + }, pre: { slots: { base: 'bg-[#121110] border-[#201e1b] rounded-lg', diff --git a/content/en/3.serveex/1.introduction.md b/content/en/3.serveex/1.introduction.md index e7798ff..4d8b42c 100644 --- a/content/en/3.serveex/1.introduction.md +++ b/content/en/3.serveex/1.introduction.md @@ -1,6 +1,6 @@ --- title: Introduction -description: Introduction to Serveex — a personal homelab project to self-host everyday services using Debian and Docker, replacing Google, Apple, and Netflix. +description: Introduction to Serveex, a personal homelab project to self-host everyday services using Debian and Docker, replacing cloud services as Google, Apple or Netflix. navigation: icon: i-lucide-bookmark --- @@ -40,14 +40,18 @@ The goal is to be easily deployable and easy to migrate, so here is its structur Install and configure Debian 13 :: -::card{icon="i-logos-docker-icon" title="Container Engine" to="/serveex/core/docker"} +::card{icon="i-logos-docker-icon" title="Using apps container" to="/serveex/core/docker"} Install Docker :: -::card{icon="i-carbon-container-registry" title="Docker GUI" to="/serveex/core/docker#installer-dockge-pour-gérer-et-déployer-les-conteneurs"} +::card{icon="i-carbon-container-registry" title="Container manager" to="/serveex/core/docker#installer-dockge-pour-gérer-et-déployer-les-conteneurs"} Install and deploy Dockge :: +::card{icon="i-simple-icons-wireguard" title="VPN" to="/serveex/security/wireguard"} +Install and deploy Wireguard +:: + ::card{icon="i-noto-globe-showing-americas" title="Reverse Proxy" to="/serveex/core/swag"} Expose your services with SWAG :: @@ -60,9 +64,7 @@ Expose your services with SWAG ::: ::card-group -::card{icon="i-simple-icons-wireguard" title="VPN" to="/serveex/security/wireguard"} -Install and deploy Wireguard -:: + ::card{icon="i-noto-key" title="SSO & MFA" to="/serveex/security/authentik"} Install and deploy Authentik diff --git a/content/en/3.serveex/2.core/1.installation.md b/content/en/3.serveex/2.core/1.installation.md index 5d2bb03..d71b83c 100644 --- a/content/en/3.serveex/2.core/1.installation.md +++ b/content/en/3.serveex/2.core/1.installation.md @@ -20,15 +20,15 @@ description: Step-by-step guide to install Debian 13 on a home server and set up 4. [Install Debian and Set Up SSH](https://www.howtoforge.com/tutorial/debian-minimal-server/) 5. Install sudo and add a user to the sudo group for administrative privileges. Log in as root: - ```sh + ```bash [Terminal] su - ``` Enter your password, then type: - ```sh + ```bash [Terminal] apt install sudo ``` Add the user to the sudo group: - ```sh + ```bash [Terminal] adduser sudo ``` @@ -41,7 +41,7 @@ description: Step-by-step guide to install Debian 13 on a home server and set up ## Must-Have CLI Apps Some essential apps you’ll likely need at some point, so might as well install them early: -```sh +```bash [Terminal] sudo apt update sudo apt upgrade sudo apt install nano btop ranger git duf neofetch samba cifs-utils tree unzip @@ -64,7 +64,7 @@ Additionally: ### File Transfer via rsync -```sh +```bash [Terminal] sudo rsync -avhHSP /source /destination ``` ::note diff --git a/content/en/3.serveex/2.core/2.docker.md b/content/en/3.serveex/2.core/2.docker.md index 806b247..35a79c3 100644 --- a/content/en/3.serveex/2.core/2.docker.md +++ b/content/en/3.serveex/2.core/2.docker.md @@ -22,7 +22,7 @@ Docker, to install deployable services in seconds and manage them with just a fe ## Install Docker Add the Docker repositories and GPG key: -```sh +```bash [Terminal] # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl @@ -37,7 +37,7 @@ sudo apt-get update Install the packages: -```sh +```bash [Terminal] sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` @@ -48,7 +48,7 @@ That's it! ::note From here on, we assume the stacks are installed in the `/docker` folder, created using the command: - ```sh + ```bash [Terminal] sudo mkdir /docker ``` :: @@ -62,7 +62,7 @@ From here on, we assume the stacks are installed in the `/docker` folder, create File structure we will create: -```sh +```text [Directory tree] root └── docker └── dockge @@ -71,14 +71,14 @@ root Create the stack folder: -```sh +```bash [Terminal] cd /docker sudo mkdir dockge ``` Then create the `compose.yml` file in this folder using `nano`: -```sh +```bash [Terminal] cd /docker/dockge sudo nano compose.yml ``` @@ -109,7 +109,7 @@ Press :kbd{value="Ctrl+O"}, then :kbd{value="Enter"} to save, and :kbd{value="Ct To launch the container: -```sh +```bash [Terminal] cd /docker/dockge sudo docker compose up -d ``` diff --git a/content/en/3.serveex/2.core/3.swag.md b/content/en/3.serveex/2.core/3.swag.md index 8d30b0e..f42ab3c 100644 --- a/content/en/3.serveex/2.core/3.swag.md +++ b/content/en/3.serveex/2.core/3.swag.md @@ -39,7 +39,7 @@ This tutorial assumes you have a domain name pointing to your server, and that y File structure to be modified: -```sh +```text [Directory tree] root └── docker └── swag @@ -138,7 +138,7 @@ In CLI, go to the dns-conf folder and edit the `ovh.ini` file: You can use [File Browser](/serveex/files/file-browser) to browse and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/dns-conf/ovh.ini ``` @@ -168,7 +168,7 @@ Save with :kbd{value="Ctrl+O"}, then :kbd{value="Enter"}, and exit with :kbd{val Now configure swag to access DBIP, the geolocation-based access control module. Open the `nginx.conf` file: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/nginx.conf ``` @@ -195,7 +195,7 @@ This configuration can be enabled or disabled per service (see the Dockge exampl Open `dbip.conf`: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/dbip.conf ``` @@ -278,7 +278,7 @@ Dockge does not support multi-factor authentication. Exposing it online could co Open the `dockge.subdomain.conf` file: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/dockge.subdomain.conf ``` @@ -361,7 +361,7 @@ Wait a moment, then visit `https://dockge.mydomain.com` in your browser — you ## Exposing Another Service with SWAG SWAG includes templates for most known services, named `servicename.subdomain.conf.sample`. Just create the subdomain in your registrar's DNS zone (like OVH), point it to your main domain via a CNAME, then copy and rename the sample file: -```sh +```bash [Terminal] cd /docker/swag/config/proxy-confs sudo cp servicename.subdomain.conf.sample servicename.subdomain.conf ``` diff --git a/content/en/3.serveex/3.security/1.wireguard.md b/content/en/3.serveex/3.security/1.wireguard.md index 6d813bf..f38a722 100644 --- a/content/en/3.serveex/3.security/1.wireguard.md +++ b/content/en/3.serveex/3.security/1.wireguard.md @@ -62,7 +62,7 @@ __Warning__: If your IP is not static, use a Dynamic DNS service ([DynDNS](https ### Folder Structure -```sh +```text [Directory tree] root └── docker └── wg-easy @@ -173,7 +173,7 @@ We assume the client server runs Linux with Docker installed. ### Folder Structure -```sh +```text [Directory tree] root └── docker └── wireguard @@ -184,7 +184,7 @@ root Create the folder: -```sh +```bash [Terminal] sudo mkdir -p /docker/wireguard/config/wg_confs ``` @@ -194,7 +194,7 @@ sudo mkdir -p /docker/wireguard/config/wg_confs Create the `wg0.conf` file: -```sh +```bash [Terminal] sudo nano /docker/wireguard/config/wg_confs/wg0.conf ``` @@ -202,7 +202,7 @@ Paste the downloaded configuration, then save with :kbd{value="Ctrl+O"}, :kbd{va ::tip ✨ **Alternative method:** Transfer the file via SFTP and move it: -```sh +```bash [Terminal] sudo cp ~/wg0.conf /docker/wireguard/config/wg_confs ``` :: @@ -230,7 +230,7 @@ services: ``` Start the container: -```sh +```bash [Terminal] cd /docker/wireguard sudo docker compose up -d ``` diff --git a/content/en/3.serveex/3.security/2.authentik.md b/content/en/3.serveex/3.security/2.authentik.md index 1d0bd77..118f4f1 100644 --- a/content/en/3.serveex/3.security/2.authentik.md +++ b/content/en/3.serveex/3.security/2.authentik.md @@ -39,7 +39,7 @@ Both modes can be configured on a per-application basis. ## Installation Folder structure: -```sh +```text [Directory tree] root └── docker └── authentik @@ -53,13 +53,13 @@ root Create the folders: -```sh +```bash [Terminal] sudo mkdir -p /docker/authentik/media /docker/authentik/certs /docker/authentik/custom-template /docker/authentik/ssh ``` Navigate to the `authentik` folder via `cd /docker/authentik` and generate a password and secret key to include in the `.env` file: -```sh +```bash [Terminal] sudo echo "PG_PASS=$(openssl rand 36 | base64)" >> .env sudo echo "AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64)" >> .env ``` @@ -67,7 +67,7 @@ sudo echo "AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64)" >> .env ::note To generate the keys, we created the folders ahead of deployment using Dockge. Dockge will prevent you from creating a stack with the same name in these folders unless a `compose.yml` file exists. So, create an empty `compose.yml` so it appears as an inactive stack: - ```sh + ```bash [Terminal] sudo nano /docker/authentik/compose.yml ``` :: @@ -215,7 +215,7 @@ Open the `authentik-server.conf` file: You can use [File Browser](/serveex/files/file-browser) to navigate and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/authentik-server.conf ``` @@ -230,7 +230,7 @@ If not, make the necessary changes, then save with :kbd{value="Ctrl+O"}, :kbd{va Create the `auth.subdomain.conf` file: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/auth.subdomain.conf ``` @@ -343,7 +343,7 @@ Why do this when Dockge already has authentication? Because Dockge uses weak HTT Edit the file `dockge.mydomain.com`: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/dockge.subdomain.conf ``` @@ -423,7 +423,7 @@ On your remote machine, use [Dockge](/serveex/core/docker/#installer-dockge-pour If you haven’t installed [Dockge](/serveex/core/docker/#installer-dockge-pour-gérer-et-déployer-les-conteneurs), create a folder `/docker/authentik-outpost`, or directly via command line: -```sh +```bash [Terminal] sudo mkdir -P /docker/authentik-outpost ``` @@ -436,7 +436,7 @@ Create the `compose.yaml` file or paste the configuration directly into Dockge i Via command line: -```sh +```bash [Terminal] sudo nano /docker/authentik-outpost/compose.yaml ``` Paste the following configuration, updating the version in `{AUTHENTIK_TAG:proxy:2024.2.3}`{lang=properties} to match your Authentik server version. @@ -465,7 +465,7 @@ services: Go to the SWAG stack on the remote machine (or edit directly using Dockge) and add the authentik-outpost network in the configuration file like this (see `networks` section): -```sh +```bash [Terminal] sudo nano /docker/swag/compose.yaml ``` @@ -496,7 +496,7 @@ If using [Dockge](/serveex/core/docker/#installer-dockge-pour-gérer-et-déploye Otherwise, via terminal: -```sh +```bash [Terminal] cd /docker/swag/ sudo docker compose up -d ``` @@ -505,7 +505,7 @@ Create (or fill using Dockge) the `.env` file in the `authentik-outpost` directo Via command line: -```sh +```bash [Terminal] sudo nano /docker/authentik-outpost/.env ``` @@ -529,7 +529,7 @@ If using Dockge, deploy the stack. Otherwise, via terminal: -```sh +```bash [Terminal] cd /docker/authentik-outpost/ sudo docker compose up -d ``` @@ -540,7 +540,7 @@ Now, let’s configure SWAG. Open the `authentik-server.conf` file: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/authentik-server.conf ``` @@ -558,24 +558,24 @@ Then configure the applications to protect as you did on your main server, wheth ## Migrating an Authentik Database On the source machine, dump the database: -```sh +```bash [Terminal] sudo docker exec authentik-postgres pg_dump -U authentik -F t authentik > /path/to/mydb.tar ``` Then transfer it to the target machine. On the target machine, copy the file into the Docker container: -```sh +```bash [Terminal] cp /path/to/mydb.tar authentik-postgres:/path/to/wherever ``` (Optional) Purge existing tables: -```sh +```bash [Terminal] sudo docker exec -i authentik-postgres psql -U authentik -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'authentik' AND pid <> pg_backend_pid();" && sudo docker exec -i authentik-postgres psql -U authentik -d postgres -c "DROP DATABASE IF EXISTS authentik;" && sudo docker exec -i authentik-postgres psql -U authentik -d postgres -c "CREATE DATABASE authentik;" ``` Restore the database: -```sh +```bash [Terminal] sudo docker exec authentik-postgresql pg_restore -U authentik -d authentik /path/to/wherever/mydb.tar ``` diff --git a/content/en/3.serveex/3.security/3.cloudflare.md b/content/en/3.serveex/3.security/3.cloudflare.md index 00c3d25..89d42de 100644 --- a/content/en/3.serveex/3.security/3.cloudflare.md +++ b/content/en/3.serveex/3.security/3.cloudflare.md @@ -93,7 +93,7 @@ Create a file `tunnelconfig.yml` to reference in your SWAG `compose.yaml`. ✨ __Tip:__ Use [File Browser](/serveex/files/file-browser) to navigate and edit files instead of using the terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/tunnelconfig.yml ``` @@ -119,7 +119,7 @@ Now configure _Cloudflare Real IP_. Open the `nginx.conf` file: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/nginx.conf ``` diff --git a/content/en/3.serveex/4.monitoring/1.uptime-kuma.md b/content/en/3.serveex/4.monitoring/1.uptime-kuma.md index dc66a3e..e7705e7 100644 --- a/content/en/3.serveex/4.monitoring/1.uptime-kuma.md +++ b/content/en/3.serveex/4.monitoring/1.uptime-kuma.md @@ -22,7 +22,7 @@ description: Install Uptime-Kuma to monitor your self-hosted services uptime, se ## Installation Folder structure -```sh +```text [Directory tree] root └── docker └── uptime-kuma @@ -85,7 +85,7 @@ In the Swag folders, create the `stats.subdomain.conf` file. you can use [File Browser](/serveex/files/file-browser) to browse and edit your files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/stats.subdomain.conf ``` Paste the following config: diff --git a/content/en/3.serveex/4.monitoring/2.dozzle.md b/content/en/3.serveex/4.monitoring/2.dozzle.md index 270a5dd..7a30c48 100644 --- a/content/en/3.serveex/4.monitoring/2.dozzle.md +++ b/content/en/3.serveex/4.monitoring/2.dozzle.md @@ -21,7 +21,7 @@ description: Install Dozzle to monitor Docker container logs in real time from a ## Installation Folder structure -```sh +```text [Directory tree] root └── docker └── dozzle @@ -118,7 +118,7 @@ In the Swag folder, create the `dozzle.subdomain.conf` file. ✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to browse and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/dozzle.subdomain.conf ``` Paste the configuration below: diff --git a/content/en/3.serveex/4.monitoring/3.speedtest-tracker.md b/content/en/3.serveex/4.monitoring/3.speedtest-tracker.md index ca555bf..c85abf0 100644 --- a/content/en/3.serveex/4.monitoring/3.speedtest-tracker.md +++ b/content/en/3.serveex/4.monitoring/3.speedtest-tracker.md @@ -26,7 +26,7 @@ We will use the Docker image maintained by [LinuxServer.io](https://docs.linuxse File structure: -```sh +```text [Directory tree] root └── docker └── speedtest-tracker @@ -36,7 +36,7 @@ root In a terminal, generate a key using the following command: -```sh +```bash [Terminal] echo -n 'base64:'; openssl rand -base64 32; ``` @@ -69,7 +69,7 @@ services: Find your `PUID` and `GUID` by running the following command: -```sh +```bash [Terminal] id yourusername ``` @@ -104,7 +104,7 @@ Speedtest Tracker does not use multi-factor authentication. Exposing it on the i Open the `speedtest.subdomain.conf` file: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/speedtest.subdomain.conf ``` diff --git a/content/en/3.serveex/4.monitoring/4.beszel.md b/content/en/3.serveex/4.monitoring/4.beszel.md index 8ab8280..229a40c 100644 --- a/content/en/3.serveex/4.monitoring/4.beszel.md +++ b/content/en/3.serveex/4.monitoring/4.beszel.md @@ -26,7 +26,7 @@ Beszel includes a hub with a web UI and an agent that collects data from your se Folder structure -```sh +```text [Directory tree] root └── docker └── beszel @@ -192,7 +192,7 @@ In Swag’s config folders, create `beszel.subdomain.conf`. ✨ __Tip:__ Use [File Browser](/serveex/files/file-browser) to browse and edit files instead of terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/beszel.subdomain.conf ``` diff --git a/content/en/3.serveex/4.monitoring/5.upsnap.md b/content/en/3.serveex/4.monitoring/5.upsnap.md index a69487e..6cdd167 100644 --- a/content/en/3.serveex/4.monitoring/5.upsnap.md +++ b/content/en/3.serveex/4.monitoring/5.upsnap.md @@ -22,7 +22,7 @@ description: Install UpSnap to remotely wake up machines on your local network v Folder structure -```sh +```text [Directory tree] root └── docker └── upsnap @@ -131,7 +131,7 @@ In the Swag folders, create the file `upsnap.subdomain.conf`. ✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate your files and edit documents instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/upsnap.subdomain.conf ``` And paste the following configuration: diff --git a/content/en/3.serveex/5.media/1.plex.md b/content/en/3.serveex/5.media/1.plex.md index a69cb44..ad1e72b 100644 --- a/content/en/3.serveex/5.media/1.plex.md +++ b/content/en/3.serveex/5.media/1.plex.md @@ -33,7 +33,7 @@ You’ll need to create a *Plex.tv* account. You don’t need to expose your Ple ## Install Plex Folder structure: -```sh +```text [Directory tree] root ├── docker │ ├── plex @@ -51,7 +51,7 @@ root Create the `movies`, `tvseries`, and `library` folders in `/media`: -```sh +```bash [Terminal] mkdir -p /media/movies /media/library /media/tvseries ``` @@ -121,7 +121,7 @@ services: Find your PUID and GUID by running: -```sh +```bash [Terminal] id username ``` @@ -212,7 +212,7 @@ Copy and rename the file `tautulli.subdomain.conf.sample` to `tautulli.subdomain ✨ **Tip:** Use [File Browser](/serveex/files/file-browser) to navigate and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo cp /docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf.sample /docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf sudo nano /docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf ``` diff --git a/content/en/3.serveex/5.media/2.qbittorrent.md b/content/en/3.serveex/5.media/2.qbittorrent.md index f905fdf..f6c9a43 100644 --- a/content/en/3.serveex/5.media/2.qbittorrent.md +++ b/content/en/3.serveex/5.media/2.qbittorrent.md @@ -31,7 +31,7 @@ Here’s the system we’ll set up: ## Configuration Folder structure -```sh +```text [Directory tree] root ├── docker │ └── seedbox @@ -49,7 +49,7 @@ root If not already done, create the `downloads` folder under `/media`: -```sh +```bash [Terminal] mkdir -P /media/downloads ``` @@ -138,19 +138,19 @@ We now need to allow the mod to fetch info from Gluetun, which only allows encry Open a terminal to generate the authentication key: -```sh +```bash [Terminal] sudo docker run --rm qmcgaw/gluetun genkey ``` Note the key, then create the `/docker/gluetun` folder: -```sh +```bash [Terminal] sudo mkdir /docker/gluetun ``` Create the `config.toml` file: -```sh +```bash [Terminal] sudo nano /docker/gluetun/config.toml ``` @@ -257,7 +257,7 @@ Now create/edit `seedbox.subdomain.conf`. ✨ __Terminal-free tip:__ use [File Browser](/serveex/files/file-browser) to edit files instead of using the terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/seedbox.subdomain.conf ``` diff --git a/content/en/3.serveex/5.media/3.servarr.md b/content/en/3.serveex/5.media/3.servarr.md index ee05348..515bcff 100644 --- a/content/en/3.serveex/5.media/3.servarr.md +++ b/content/en/3.serveex/5.media/3.servarr.md @@ -30,7 +30,7 @@ We’ll start by deploying the stack and then proceed to configure each app and Folder structure: -```sh +```text [Directory tree] root ├── docker │ ├── plex @@ -450,7 +450,7 @@ Create and edit the file `films.subdomain.conf`: ✨ __Tip:__ you can use [File Browser](/serveex/files/file-browser) to browse and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/films.subdomain.conf ``` diff --git a/content/en/3.serveex/6.cloud/1.immich.md b/content/en/3.serveex/6.cloud/1.immich.md index 7fe40e9..a014813 100644 --- a/content/en/3.serveex/6.cloud/1.immich.md +++ b/content/en/3.serveex/6.cloud/1.immich.md @@ -18,7 +18,7 @@ description: Install Immich, a self-hosted alternative to Google Photos and iClo ## Installation Folder structure -```sh +```text [Directory tree] root └── docker └── immich @@ -91,7 +91,7 @@ In the SWAG folders, create a file named `immich.subdomain.conf`. ✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate and edit your files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/immich.subdomain.conf ``` Then paste the following configuration: diff --git a/content/en/3.serveex/6.cloud/2.nextcloud.md b/content/en/3.serveex/6.cloud/2.nextcloud.md index 5eef931..6391483 100644 --- a/content/en/3.serveex/6.cloud/2.nextcloud.md +++ b/content/en/3.serveex/6.cloud/2.nextcloud.md @@ -23,7 +23,7 @@ We'll be using the Docker image maintained by [LinuxServer.io](https://docs.linu File structure: -```sh +```text [Directory tree] root └── docker └── nextcloud @@ -63,7 +63,7 @@ If you’re using a NAS or network-shared drive via [Samba](/general/networking/ Find your `PUID` and `GUID` by running the following command: -```sh +```bash [Terminal] id username ``` @@ -122,7 +122,7 @@ In Nextcloud’s files, edit the `config.php` file: ✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/nextcloud/config/www/nextcloud/config/config.php ``` @@ -148,7 +148,7 @@ Press :kbd{value="Ctrl+O"}, then :kbd{value="Enter"} to save, and :kbd{value="Ct In Swag’s folders, create the file `nextcloud.subdomain.conf`: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/nextcloud.subdomain.conf ``` diff --git a/content/en/3.serveex/7.files/1.file-browser.md b/content/en/3.serveex/7.files/1.file-browser.md index 8f964fb..2b23bb4 100644 --- a/content/en/3.serveex/7.files/1.file-browser.md +++ b/content/en/3.serveex/7.files/1.file-browser.md @@ -98,7 +98,7 @@ Restart the stack by clicking "deploy" and wait for SWAG to fully initialize. In the Swag folders, create the file `files.subdomain.conf`. -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/files.subdomain.conf ``` diff --git a/content/en/3.serveex/7.files/2.pingvin.md b/content/en/3.serveex/7.files/2.pingvin.md index d4d168e..aa1434e 100644 --- a/content/en/3.serveex/7.files/2.pingvin.md +++ b/content/en/3.serveex/7.files/2.pingvin.md @@ -119,7 +119,7 @@ In the Swag folders, create the `pingvin.subdomain.conf` file. ✨ __Tip:__ you can use [File Browser](/serveex/files/file-browser) to browse your files and edit your documents instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/pingvin.subdomain.conf ``` Paste the configuration below: diff --git a/content/en/3.serveex/8.development/1.code-server.md b/content/en/3.serveex/8.development/1.code-server.md index f25b448..f9792c2 100644 --- a/content/en/3.serveex/8.development/1.code-server.md +++ b/content/en/3.serveex/8.development/1.code-server.md @@ -27,7 +27,7 @@ For this setup, we’ll use the [image maintained by LinuxServer.io](https://doc Folder structure -```sh +```text [Directory tree] root ├── docker │ └── code-server @@ -75,13 +75,13 @@ services: Choose a password and generate its hash: -```sh +```bash [Terminal] echo -n "yourpassword" | npx argon2-cli -e ``` Save the result carefully. Find your PUID and GUID with: -```sh +```bash [Terminal] id yourusername ``` @@ -158,7 +158,7 @@ Inside the Swag config folders, create the file `code.subdomain.conf`. ✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate and edit your files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/code.subdomain.conf ``` diff --git a/content/en/3.serveex/8.development/2.gitea.md b/content/en/3.serveex/8.development/2.gitea.md index 950e1dc..708d9fd 100644 --- a/content/en/3.serveex/8.development/2.gitea.md +++ b/content/en/3.serveex/8.development/2.gitea.md @@ -21,7 +21,7 @@ description: Install Gitea, a lightweight self-hosted Git service to manage your ## Installation Folder structure -```sh +```text [Directory tree] root └── docker └── gitea @@ -111,7 +111,7 @@ Inside the Swag folders, create the file `gitea.subdomain.conf`. ✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate and edit your files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/gitea.subdomain.conf ``` Paste the configuration below: @@ -177,7 +177,7 @@ Press :kbd{value="Ctrl+O"}, then :kbd{value="Enter"} to save, and :kbd{value="Ct Now open the `app.ini` file from the container's file system: -```sh +```bash [Terminal] sudo nano /docker/gitea/data/gitea/conf/app.ini ``` diff --git a/content/en/3.serveex/8.development/3.it-tools.md b/content/en/3.serveex/8.development/3.it-tools.md index 3e9744c..864aad0 100644 --- a/content/en/3.serveex/8.development/3.it-tools.md +++ b/content/en/3.serveex/8.development/3.it-tools.md @@ -99,7 +99,7 @@ Inside the Swag folders, create the file `tools.subdomain.conf`. ✨ __Tip:__ You can use [File Browser](/serveex/files/file-browser) to navigate and edit your files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/tools.subdomain.conf ``` diff --git a/content/en/3.serveex/9.apps/1.adguard.md b/content/en/3.serveex/9.apps/1.adguard.md index 041f632..e8c8759 100644 --- a/content/en/3.serveex/9.apps/1.adguard.md +++ b/content/en/3.serveex/9.apps/1.adguard.md @@ -40,7 +40,7 @@ This is how ads and malicious domains are blocked—Adguard blocks only the bad ## Installation Folder structure: -```sh +```text [Directory tree] root └── docker └── adguard @@ -145,7 +145,7 @@ Create and open the file `adguard.subdomain.conf` You can use [File Browser](/serveex/files/file-browser) to browse and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/adguard.subdomain.conf ``` diff --git a/content/en/3.serveex/9.apps/2.vaultwarden.md b/content/en/3.serveex/9.apps/2.vaultwarden.md index f6b6389..cacb59d 100644 --- a/content/en/3.serveex/9.apps/2.vaultwarden.md +++ b/content/en/3.serveex/9.apps/2.vaultwarden.md @@ -20,7 +20,7 @@ Vaultwarden is a fork of [Bitwarden](https://bitwarden.com/fr-fr/help/). ## Installation Folder structure: -```sh +```text [Directory tree] root └── docker └── vaultwarden @@ -79,7 +79,7 @@ services: Next, generate a password hash to put in the `TOKEN` variable in `.env`: -```sh +```bash [Terminal] echo -n 'yourpassword' | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4 ``` @@ -145,7 +145,7 @@ In SWAG's config folder, create the file `vault.subdomain.conf`: ✨ __Tip:__ Use [File Browser](/serveex/files/file-browser) to navigate and edit files instead of using terminal commands. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/vault.subdomain.conf ``` diff --git a/content/en/5.nonsense/2.bash/1.servarr-duplicates.md b/content/en/5.nonsense/2.bash/1.servarr-duplicates.md index b88b8b7..1791523 100644 --- a/content/en/5.nonsense/2.bash/1.servarr-duplicates.md +++ b/content/en/5.nonsense/2.bash/1.servarr-duplicates.md @@ -13,7 +13,7 @@ So I restructured my directories, manually updated every path in Qbittorrent, Pl My directory structure: -```sh +```text [Directory tree] . └── media ├── seedbox @@ -41,7 +41,7 @@ Spare you the endless Q&A with ChatGPT—I was disappointed. Qwen3 was much clea To test, I first asked for a script that only lists and compares: -```sh +```bash [Terminal] #!/bin/bash # Create an associative array to store duplicates @@ -87,7 +87,7 @@ Again, ChatGPT disappointed. Despite my requests, it created hardlinks *before* Quick stopover to Qwen3, RTX 5090 in overdrive, and bam—much better result. Yes, it kept ChatGPT-style emojis, but here it is: -```sh +```bash [Terminal] #!/bin/bash echo "🔍 Step 1: Indexing original files in /media/seedbox..." diff --git a/content/en/5.nonsense/2.bash/2.luks-backup.md b/content/en/5.nonsense/2.bash/2.luks-backup.md index 8019e8a..bf1f905 100644 --- a/content/en/5.nonsense/2.bash/2.luks-backup.md +++ b/content/en/5.nonsense/2.bash/2.luks-backup.md @@ -21,7 +21,7 @@ This script: * Encrypts the archive with that password * Deletes the unencrypted archive -```sh +```bash [Terminal] #!/bin/bash # Directory where LUKS headers will be backed up diff --git a/content/en/6.recycled/1.deprecated/1.wireguard-14.md b/content/en/6.recycled/1.deprecated/1.wireguard-14.md index 233749c..d4b4408 100644 --- a/content/en/6.recycled/1.deprecated/1.wireguard-14.md +++ b/content/en/6.recycled/1.deprecated/1.wireguard-14.md @@ -61,7 +61,7 @@ __Warning:__ This guide uses version `14` of [wg-easy](https://wg-easy.github.io Folder structure: -```sh +```text [Directory tree] root └── docker └── wg-easy @@ -146,7 +146,7 @@ Deploy the stack. To allow communication between VPN clients, enable: -```sh +```bash [Terminal] sudo sysctl net.ipv4.ip_forward=1 sudo sysctl net.ipv4.conf.all.src_valid_mark=1 ``` @@ -173,7 +173,7 @@ Assumes the client is a Linux server with Docker installed Folder structure: -```sh +```text [Directory tree] root └── docker └── wireguard @@ -188,7 +188,7 @@ Create the folder `/docker/wireguard/config/wg_confs`: ✨ __Tip:__ Use [File Browser](/serveex/files/file-browser) to browse and edit files without terminal :: -```sh +```bash [Terminal] sudo mkdir -p /docker/wireguard/config/wg_confs ``` @@ -197,14 +197,14 @@ Copy the `wg0.conf` file downloaded earlier: ::tip{icon=""} ✨ __Tip:__ Easiest way is to transfer the file via SFTP to `/home/youruser`, then move it: -```sh +```bash [Terminal] sudo cp ~/wg0.conf /docker/wireguard/config/wg_confs ``` :: Create `compose.yaml` in `/docker/wireguard`: -```sh +```bash [Terminal] sudo nano /docker/wireguard/compose.yaml ``` @@ -234,7 +234,7 @@ Press :kbd{value="Ctrl+O"}, then :kbd{value="Enter"} to save, and :kbd{value="Ct Start the container: -```sh +```bash [Terminal] cd /docker/wireguard sudo docker compose up -d ``` diff --git a/content/fr/3.serveex/2.core/1.installation.md b/content/fr/3.serveex/2.core/1.installation.md index d499708..3aa21d3 100644 --- a/content/fr/3.serveex/2.core/1.installation.md +++ b/content/fr/3.serveex/2.core/1.installation.md @@ -19,15 +19,15 @@ description: Guide pas à pas pour installer Debian 13 sur un serveur et configu 4. [Installer Debian et configurer SSH](https://www.howtoforge.com/tutorial/debian-minimal-server/) 5. Installer sudo et ajouter un utilisateur au groupe sudo, pour les privilèges administrateurs Se connecter en root : - ```sh + ```bash [Terminal] su - ``` mettre son mot de passe puis taper : - ```sh + ```bash [Terminal] apt install sudo ``` Ajouter l'utilisateur au groupe sudo : - ```sh + ```bash [Terminal] adduser sudo ``` @@ -40,7 +40,7 @@ description: Guide pas à pas pour installer Debian 13 sur un serveur et configu ## CLI apps à avoir près de soi Quelques app que vous utiliserez forcément à un moment donné, autant les installer dès le départ -```sh +```bash [Terminal] sudo apt update sudo apt upgrade sudo apt install nano btop ranger git duf neofetch samba cifs-utils tree unzip @@ -63,7 +63,7 @@ En plus : ### Transfert de fichier via rsync -```sh +```bash [Terminal] sudo rsync -avhHSP /source /destination ``` ::note diff --git a/content/fr/3.serveex/2.core/2.docker.md b/content/fr/3.serveex/2.core/2.docker.md index a7e963f..99c52b0 100644 --- a/content/fr/3.serveex/2.core/2.docker.md +++ b/content/fr/3.serveex/2.core/2.docker.md @@ -21,7 +21,7 @@ Docker, pour installer des services déployables en quelques secondes, et les ma ## Installer docker Installez les repo Docker et la clé GPG -```sh +```bash [Terminal] # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl @@ -38,7 +38,7 @@ sudo apt-get update ``` Installez les package -```sh +```bash [Terminal] sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin ``` Et voilà ! @@ -48,7 +48,7 @@ Et voilà ! ::note Dans toute la suite, on part du principe que les stacks sont installées dans le dossier `/docker`, créé grace à la commande : - ```sh + ```bash [Terminal] sudo mkdir /docker ``` :: @@ -62,7 +62,7 @@ Dans toute la suite, on part du principe que les stacks sont installées dans le Plan des fichiers que nous allons modifier : -```sh +```text [Arborescence] root └── docker └── dockge @@ -71,14 +71,14 @@ root Créez le dossier de la stack : -```sh +```bash [Terminal] cd /docker sudo mkdir dockge ``` Puis créez le fichier `compose.yml` dans ce dossier avec l'outil nano que vous avez installé préalablement (dans les outils CLI) -```sh +```bash [Terminal] cd /docker/dockge sudo nano compose.yml ``` @@ -109,7 +109,7 @@ Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez a Pour lancer le conteneur, tapez : -```sh +```bash [Terminal] cd /docker/dockge sudo docker compose up -d ``` diff --git a/content/fr/3.serveex/2.core/3.swag.md b/content/fr/3.serveex/2.core/3.swag.md index d94bc35..3d63615 100644 --- a/content/fr/3.serveex/2.core/3.swag.md +++ b/content/fr/3.serveex/2.core/3.swag.md @@ -38,7 +38,7 @@ Ce tutoriel part du principe que vous avez un nom de domaine qui pointe vers vot Plan des fichiers que nous allons modifier : -```sh +```text [Arborescence] root └── docker └── swag @@ -138,7 +138,7 @@ En CLI, allez dans le dossier dns-conf et éditez le fichier `ovh.ini` : vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/dns-conf/ovh.ini ``` @@ -167,7 +167,7 @@ Sauvegardez et quittez le fichier. Configurez aussi swag pour qu'il accède à DBIP, le module de gestion des accès par géolocalisation /Ouvrez le fichier nginx.conf -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/nginx.conf ``` @@ -194,7 +194,7 @@ La configuration est activable ou désactivable pour chaque service qui sera pro Ouvrez `dbip.conf` : -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/dbip.conf ``` @@ -280,7 +280,7 @@ Dockge n'utilise pas d'authentification multifacteur. Exposer Dockge sur interne Ouvrez le fichier dockge.subdomain.conf : -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/dockge.subdomain.conf ``` @@ -376,7 +376,7 @@ Patientez puis tapez `https://dockge.mondomaine.fr` dans votre navigateur, vous ## Exposer un autre service avec SWAG Swag dispose de modeles pour la plupart des services connus, nommés `nomduservice.subdomain.conf.sample`. Il vous suffit de créer le sous-domaine dans votre zone DNS chez votre registrar (comme OVH par exemple), de le faire pointer sur votre domaine principale (via un enregistrement CNAME) et de copier en renommant `nomduservice.subdomain.conf.sample` en `nomduservice.subdomain.conf`. -```sh +```bash [Terminal] cd /docker/swag/config/proxy-confs sudo cp nomduservice.subdomain.conf.sample nomduservice.subdomain.conf ``` diff --git a/content/fr/3.serveex/3.security/1.wireguard.md b/content/fr/3.serveex/3.security/1.wireguard.md index 2a771e2..a2e4e15 100644 --- a/content/fr/3.serveex/3.security/1.wireguard.md +++ b/content/fr/3.serveex/3.security/1.wireguard.md @@ -61,7 +61,7 @@ __Attention__: Si votre IP n'est pas fixe, vous devez avoir un nom de domaine re Structure des dossiers -```sh +```text [Arborescence] root └── docker └── wg-easy @@ -177,7 +177,7 @@ Nous partons du principe que le serveur client est un serveur linux avec Docker Structure des dossiers -```sh +```text [Arborescence] root └── docker └── wireguard @@ -193,13 +193,13 @@ Creez le dossier `/docker/wireguard/config/wg_confs`. vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo mkdir -p /docker/wireguard/config/wg_confs ``` Créez le fichier `wg0.conf` -```sh +```bash [Terminal] sudo nano /docker/wireguard/config/wg_confs/wg0.conf ``` @@ -208,13 +208,13 @@ Copiez-collez le contenu du `wg0.conf` que vous avez téléchargé, puis enregis ::tip{icon=""} ✨ __Astuce :__ Un autre moyen est de transférer le fichier par sftp dans le dossier `/home/nomdutilisateur` puis de le copier dans le bon dossier : - ```sh + ```bash [Terminal] sudo cp ~/wg0.conf /docker/wireguard/config/wg_confs ``` :: Creez le `compose.yaml` dans `/docker/wireguard `: -```sh +```bash [Terminal] sudo nano /docker/wireguard/compose.yaml ``` Copiez la configuration ci-dessous @@ -241,7 +241,7 @@ services: Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}. Lancez le conteneur : -```sh +```bash [Terminal] cd /docker/wireguard sudo docker compose up -d ``` diff --git a/content/fr/3.serveex/3.security/2.authentik.md b/content/fr/3.serveex/3.security/2.authentik.md index c739f06..b99bce6 100644 --- a/content/fr/3.serveex/3.security/2.authentik.md +++ b/content/fr/3.serveex/3.security/2.authentik.md @@ -38,7 +38,7 @@ Les deux modes son configurables application par application. ## Installation Structure des dossiers : -```sh +```text [Arborescence] root └── docker └── authentik @@ -52,20 +52,20 @@ root Créez les dossiers : -```sh +```bash [Terminal] sudo mkdir -p /docker/authentik/media /docker/authentik/certs /docker/authentik/custom-template /docker/authentik/ssh ``` Positionnez vous dans le dossier `authentik` via `cd /docker/authentik` et générez un mot de passe et une clé secrete que l'on va intégrer dans le .env : -```sh +```bash [Terminal] sudo echo "PG_PASS=$(openssl rand 36 | base64)" >> .env sudo echo "AUTHENTIK_SECRET_KEY=$(openssl rand 60 | base64)" >> .env ``` ::note Afin de générer la clé, nous avons créé les dossiers en amont du déploiement via Dockge. Dockge vous empechera de créer une stack du meme nom dans ces dossiers s'il n'existe pas de `compose.yml`. Il faut donc créer un `compose.yml` vide afin que ce dernier la reconnaisse comme existante dans les stacks inactives : - ```sh + ```bash [Terminal] sudo nano /docker/authentik/compose.yml ``` :: @@ -212,7 +212,7 @@ Ouvrez le fichier `authentik-server.conf`. vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/authentik-server.conf ``` @@ -227,7 +227,7 @@ Si ce n'est pas le cas, éditez-les, puis enregistrez avec :kbd{value="Ctrl+O"} Créez le fichier `auth.subdomain.conf` -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/auth.subdomain.conf ``` @@ -344,7 +344,7 @@ Pourquoi le faire alors que Dockge a déjà une page d'authentification ? Tout s Ensuite rendez-vous dans le fichier `dockge.mondomaine.fr`. -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/dockge.subdomain.conf ``` @@ -424,7 +424,7 @@ Sur votre machine distante, à l'aide de [Dockge](/fr/serveex/core/docker#instal Si vous n'avez pas installé [Dockge](/fr/serveex/core/docker#installer-dockge-pour-gérer-et-déployer-les-conteneurs), créez un dossier `/docker/authentik-outpost`, ou directement en ligne de commande : -```sh +```bash [Terminal] sudo mkdir -P /docker/authentik-outpost ``` @@ -437,7 +437,7 @@ Créez le fichier `compose.yaml` ou copiez la configuration directement dans le En ligne de commande : -```sh +```bash [Terminal] sudo nano /docker/authentik-outpost/compose.yaml ``` Collez la configuration suivante, en changeant les chiffres de `{AUTHENTIK_TAG:proxy:2024.2.3}`{lang=properties} par la meme version que celle de votre serveur Authentik. @@ -470,7 +470,7 @@ services: Rendez-vous sur la stack de SWAG de la machine distante (ou remplissez directement si vous avez [Dockge](/fr/serveex/core/docker#installer-dockge-pour-gérer-et-déployer-les-conteneurs)) et ajoutez le réseau de authentik-outpost dans le fichier de conf sur ce modele (les champs `networks`) : -```sh +```bash [Terminal] sudo nano /docker/swag/compose.yaml ``` @@ -501,7 +501,7 @@ Si vous avez [Dockge](/fr/serveex/core/docker#installer-dockge-pour-g"rer-et-d"p Sinon, via le terminal : -```sh +```bash [Terminal] cd /docker/swag/ sudo docker compose up -d ``` @@ -510,7 +510,7 @@ Creez (ou remplissez directement si vous avez [Dockge](/fr/serveex/core/docker#i En ligne de commande : -```sh +```bash [Terminal] sudo nano /docker/authentik-outpost/.env ``` @@ -533,7 +533,7 @@ Si vous avez [Dockge](/fr/serveex/core/docker#installer-dockge-pour-g"rer-et-d"p Sinon, via le terminal : -```sh +```bash [Terminal] cd /docker/authentik-outpost/ sudo docker compose up -d ``` @@ -544,7 +544,7 @@ Nous allons a présent configurer SWAG. Ouvrez le fichier `authentik-server.conf`. -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/authentik-server.conf ``` @@ -562,19 +562,19 @@ Ensuite, configurez les applications à protéger selon si elles sont [natives]( ## Migrer une base authentik Sur la machine d'origine, dumper la bdd : -```sh +```bash [Terminal] sudo docker exec authentik-postgres pg_dump -U authentik -F t authentik > /path/to/mydb.tar ``` Puis l'envoyer sur la machine cible. Sur la machine cible, copier le fichier dans le container docker -```sh +```bash [Terminal] cp /path/to/mydb.tar authentik-postgres:/path/to/wherever ``` (Optionnel) Purgez les tables existantes : -```sh +```bash [Terminal] sudo docker exec -i authentik-postgres psql -U authentik -c "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'authentik' AND pid <> pg_backend_pid();" && \ sudo docker exec -i authentik-postgres psql -U authentik -d postgres -c "DROP DATABASE IF EXISTS authentik;" && \ sudo docker exec -i authentik-postgres psql -U authentik -d postgres -c "CREATE DATABASE authentik;" && \ @@ -582,6 +582,6 @@ sudo docker exec -i authentik-postgres psql -U authentik -d postgres -c "CREATE Restaurez la bdd -```sh +```bash [Terminal] sudo docker exec authentik-postgresql pg_restore -U authentik -d authentik /path/to/wherever/mydb.tar ``` diff --git a/content/fr/3.serveex/3.security/3.cloudflare.md b/content/fr/3.serveex/3.security/3.cloudflare.md index d538fb2..e204408 100644 --- a/content/fr/3.serveex/3.security/3.cloudflare.md +++ b/content/fr/3.serveex/3.security/3.cloudflare.md @@ -92,7 +92,7 @@ Pour configurer les tunnels, nous aurons besoin de créer un fichier `tunnelconf ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/tunnelconfig.yml ``` @@ -118,7 +118,7 @@ A présent, nous allons configurer le bon fonctionnement du mode _Cloudflare Rea Ouvrez le fichier `nginx.conf` -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/nginx.conf ``` Collez la configuration ci-dessous à la fin de la section `http` diff --git a/content/fr/3.serveex/4.monitoring/1.uptime-kuma.md b/content/fr/3.serveex/4.monitoring/1.uptime-kuma.md index 378ccd6..3e5442b 100644 --- a/content/fr/3.serveex/4.monitoring/1.uptime-kuma.md +++ b/content/fr/3.serveex/4.monitoring/1.uptime-kuma.md @@ -21,7 +21,7 @@ description: Installer Uptime-Kuma pour surveiller la disponibilité de vos serv ## Installation Structure des dossiers -```sh +```text [Arborescence] root └── docker └── uptime-kuma @@ -84,7 +84,7 @@ Dans les dossiers de Swag, créez le fichier `stats.subdomain.conf`. vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/stats.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/4.monitoring/2.dozzle.md b/content/fr/3.serveex/4.monitoring/2.dozzle.md index a56c976..868e418 100644 --- a/content/fr/3.serveex/4.monitoring/2.dozzle.md +++ b/content/fr/3.serveex/4.monitoring/2.dozzle.md @@ -20,7 +20,7 @@ description: Installer Dozzle pour surveiller les logs des conteneurs Docker en ## Installation Structure des dossiers -```sh +```text [Arborescence] root └── docker └── dozzle @@ -117,7 +117,7 @@ Dans les dossiers de Swag, créez le fichier `dozzle.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/dozzle.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/4.monitoring/3.speedtest-tracker.md b/content/fr/3.serveex/4.monitoring/3.speedtest-tracker.md index fce8311..eaf500f 100644 --- a/content/fr/3.serveex/4.monitoring/3.speedtest-tracker.md +++ b/content/fr/3.serveex/4.monitoring/3.speedtest-tracker.md @@ -25,7 +25,7 @@ Nous utiliserons l'image docker maintenue par [LinuxServer.io](https://docs.linu Structure des fichiers -```sh +```text [Arborescence] root └── docker └── speedtest-tracker @@ -35,7 +35,7 @@ root Dans un terminal, générez une clé avec la commande suivante : -```sh +```bash [Terminal] echo -n 'base64:'; openssl rand -base64 32; ``` @@ -68,7 +68,7 @@ services: Trouvez votre `PUID` et votre `GUID` en tapant la commande suivante : -```sh +```bash [Terminal] id nomdutilisateur ``` @@ -103,7 +103,7 @@ Speedtest Tracker n'utilise pas d'authentification multifacteur. Exposer Speedte Ouvrez le fichier speedtest.subdomain.conf : -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/speedtest.subdomain.conf ``` diff --git a/content/fr/3.serveex/4.monitoring/4.beszel.md b/content/fr/3.serveex/4.monitoring/4.beszel.md index 180e0f7..35377e2 100644 --- a/content/fr/3.serveex/4.monitoring/4.beszel.md +++ b/content/fr/3.serveex/4.monitoring/4.beszel.md @@ -25,7 +25,7 @@ Beszel dispose d'un hub avec une webui et d'un agent qui permet de collecter les Structure des dossiers -```sh +```text [Arborescence] root └── docker └── beszel @@ -190,7 +190,7 @@ Dans les dossiers de Swag, créez le fichier `beszel.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/beszel.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/4.monitoring/5.upsnap.md b/content/fr/3.serveex/4.monitoring/5.upsnap.md index c2f70e0..89b5902 100644 --- a/content/fr/3.serveex/4.monitoring/5.upsnap.md +++ b/content/fr/3.serveex/4.monitoring/5.upsnap.md @@ -21,7 +21,7 @@ description: Installer UpSnap pour allumer à distance des machines de votre ré Structure des dossiers -```sh +```text [Arborescence] root └── docker └── upsnap @@ -130,7 +130,7 @@ Dans les dossiers de Swag, créez le fichier `upsnap.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/upsnap.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/5.media/1.plex.md b/content/fr/3.serveex/5.media/1.plex.md index cb6bf9d..a8043a4 100644 --- a/content/fr/3.serveex/5.media/1.plex.md +++ b/content/fr/3.serveex/5.media/1.plex.md @@ -32,7 +32,7 @@ Vous serez amenés à creer un compte *Plex.tv*. Vous n'avez pas besoin d'expose ## Installer Plex Structure des dossiers : -```sh +```text [Arborescence] root ├── docker │ ├── plex @@ -50,7 +50,7 @@ root Créez les dossiers `movies`, `tvseries` et `library` dans /media : -```sh +```bash [Terminal] mkdir -p /media/movies /media/library /media/tvseries ``` @@ -120,7 +120,7 @@ services: Trouvez votre PUID et votre GUID en tapant la commande suivante : -```sh +```bash [Terminal] id nomdutilisateur ``` Et renseignez le `.env` avec les infos que vous avez trouvées, par exemple : @@ -207,7 +207,7 @@ Copiez en renommant le fichier `tautulli.subdomain.conf.sample` en `tautulli.sub ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo cp /docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf.sample /docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf sudo nano /docker/swag/config/nginx/proxy-confs/tautulli.subdomain.conf ``` diff --git a/content/fr/3.serveex/5.media/2.qbittorrent.md b/content/fr/3.serveex/5.media/2.qbittorrent.md index f6c9b6e..043bba7 100644 --- a/content/fr/3.serveex/5.media/2.qbittorrent.md +++ b/content/fr/3.serveex/5.media/2.qbittorrent.md @@ -30,7 +30,7 @@ Nous monterons ici le système ci-dessous : ## Configuration Structure des dossiers -```sh +```text [Arborescence] root ├── docker │ └── seedbox @@ -48,7 +48,7 @@ root Si ce n'est pas déjà fait, créez le dossier `downloads` dans `/media` : -```sh +```bash [Terminal] mkdir -P /media/downloads ``` @@ -138,19 +138,19 @@ Il faut à présent permettre au mod de récupérer l'information via Gluetun, q A cet effet, ouvrez un terminal. Nous allons à présent générer une clé d'authentification : -```sh +```bash [Terminal] sudo docker run --rm qmcgaw/gluetun genkey ``` Notez la clé. Puis créez le dossier `/docker/gluetun` -```sh +```bash [Terminal] sudo mkdir /docker/gluetun ``` Et créez le fichier `config.toml` -```sh +```bash [Terminal] sudo nano /docker/gluetun/config.toml ``` @@ -255,7 +255,7 @@ Puis nous allons créer et éditer le fichier `seedbox.subdomain.conf`. ✨ __Astuce pour les allergiques au terminal :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/seedbox.subdomain.conf ``` diff --git a/content/fr/3.serveex/5.media/3.servarr.md b/content/fr/3.serveex/5.media/3.servarr.md index 783ae53..37e5a07 100644 --- a/content/fr/3.serveex/5.media/3.servarr.md +++ b/content/fr/3.serveex/5.media/3.servarr.md @@ -29,7 +29,7 @@ Je vous propose de déployer la stack puis nous verrons par la suite la configur Structure des dossiers : -```sh +```text [Arborescence] root ├── docker │ ├── plex @@ -447,7 +447,7 @@ Créez le fichier `films.subdomain.conf` et éditez le : ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/films.subdomain.conf ``` diff --git a/content/fr/3.serveex/6.cloud/1.immich.md b/content/fr/3.serveex/6.cloud/1.immich.md index f37f239..956134f 100644 --- a/content/fr/3.serveex/6.cloud/1.immich.md +++ b/content/fr/3.serveex/6.cloud/1.immich.md @@ -17,7 +17,7 @@ description: Installer Immich, une alternative auto-hébergée à Google Photos ## Installation Structure des dossiers -```sh +```text [Arborescence] root └── docker └── immich @@ -90,7 +90,7 @@ Dans les dossiers de Swag, créez le fichier `immich.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/immich.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/6.cloud/2.nextcloud.md b/content/fr/3.serveex/6.cloud/2.nextcloud.md index 727d132..c7b89be 100644 --- a/content/fr/3.serveex/6.cloud/2.nextcloud.md +++ b/content/fr/3.serveex/6.cloud/2.nextcloud.md @@ -22,7 +22,7 @@ Nous utiliserons l'image docker maintenue par [LinuxServer.io](https://docs.linu Structure des fichiers -```sh +```text [Arborescence] root └── docker └── nextcloud @@ -62,7 +62,7 @@ Si vous avez un NAS ou un disque réseau partagé via [samba](/fr/general/networ Trouvez votre `PUID` et votre `GUID` en tapant la commande suivante : -```sh +```bash [Terminal] id nomdutilisateur ``` Et renseignez le `.env` avec le port souhaité, et les infos que vous avez trouvées, par exemple : @@ -120,7 +120,7 @@ Dans les fichiers de nextcloud, éditez le fichier `config.php`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/nextcloud/config/www/nextcloud/config/config.php ``` @@ -143,7 +143,7 @@ Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez a Dans les dossiers de Swag, créez le fichier `nextcloud.subdomain.conf`. -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/nexctloud.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/7.files/1.file-browser.md b/content/fr/3.serveex/7.files/1.file-browser.md index d42b849..c6b2b37 100644 --- a/content/fr/3.serveex/7.files/1.file-browser.md +++ b/content/fr/3.serveex/7.files/1.file-browser.md @@ -97,7 +97,7 @@ Relancez la stack en cliquant sur "déployer" et patientez le temps que SWAG soi Dans les dossiers de Swag, créez le fichier `files.subdomain.conf`. -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/files.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/7.files/2.pingvin.md b/content/fr/3.serveex/7.files/2.pingvin.md index 30c4a19..c0880b3 100644 --- a/content/fr/3.serveex/7.files/2.pingvin.md +++ b/content/fr/3.serveex/7.files/2.pingvin.md @@ -119,7 +119,7 @@ Dans les dossiers de Swag, créez le fichier `pingvin.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/pingvin.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/8.development/1.code-server.md b/content/fr/3.serveex/8.development/1.code-server.md index 1f468f5..4148ff1 100644 --- a/content/fr/3.serveex/8.development/1.code-server.md +++ b/content/fr/3.serveex/8.development/1.code-server.md @@ -26,7 +26,7 @@ Pour cette installation nous utiliserons [l'image maintenue par LinuxServer.io]( Structure des dossiers -```sh +```text [Arborescence] root ├── docker │ └── code-server @@ -74,13 +74,13 @@ services: Choisissez un mot de passe et générez un hash -```sh +```bash [Terminal] echo -n "votremotdepasse" | npx argon2-cli -e ``` Notez précieusement le résultat. Trouvez votre PUID et votre GUID en tapant la commande suivante : -```sh +```bash [Terminal] id nomdutilisateur ``` @@ -157,7 +157,7 @@ Dans les dossiers de Swag, créez le fichier `code.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/code.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/8.development/2.gitea.md b/content/fr/3.serveex/8.development/2.gitea.md index 6b3c88f..515be44 100644 --- a/content/fr/3.serveex/8.development/2.gitea.md +++ b/content/fr/3.serveex/8.development/2.gitea.md @@ -20,7 +20,7 @@ description: Installer Gitea, un service Git auto-hébergé léger pour gérer v ## Installation Structure des dossiers -```sh +```text [Arborescence] root └── docker └── gitea @@ -109,7 +109,7 @@ Dans les dossiers de Swag, créez le fichier `gitea.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/gitea.subdomain.conf ``` Collez la configuration ci-dessous : @@ -175,7 +175,7 @@ Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez a Ouvrez le fichier `app.ini` dans les fichiers du conteneur -```sh +```bash [Terminal] sudo nano /docker/gitea/data/gitea/conf/app.ini ``` diff --git a/content/fr/3.serveex/8.development/3.it-tools.md b/content/fr/3.serveex/8.development/3.it-tools.md index 3b037b0..a14fc0e 100644 --- a/content/fr/3.serveex/8.development/3.it-tools.md +++ b/content/fr/3.serveex/8.development/3.it-tools.md @@ -98,7 +98,7 @@ Dans les dossiers de Swag, créez le fichier `tools.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/tools.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/3.serveex/9.apps/1.adguard.md b/content/fr/3.serveex/9.apps/1.adguard.md index 967d897..d33835e 100644 --- a/content/fr/3.serveex/9.apps/1.adguard.md +++ b/content/fr/3.serveex/9.apps/1.adguard.md @@ -38,7 +38,7 @@ C'est ainsi que les pubs et domaines malveillants sont bloqués : leurs domaines ## Installation Structure des dossiers : -```sh +```text [Arborescence] root └── docker └── adguard @@ -145,7 +145,7 @@ Créez et ouvrez le fichier `adguard.subdomain.conf` vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/adguard.subdomain.conf ``` diff --git a/content/fr/3.serveex/9.apps/2.vaultwarden.md b/content/fr/3.serveex/9.apps/2.vaultwarden.md index f72f3fd..8c68e55 100644 --- a/content/fr/3.serveex/9.apps/2.vaultwarden.md +++ b/content/fr/3.serveex/9.apps/2.vaultwarden.md @@ -19,7 +19,7 @@ Vaultwarden est un fork de la solution [Bitwarden](https://bitwarden.com/fr-fr/h ## Installation Structure des dossiers -```sh +```text [Arborescence] root └── docker └── vaultwarden @@ -79,7 +79,7 @@ services: Nous allons maintenant générer un hash de mot de passe, qu'il faudra renseigner dans la variable `TOKEN` du `.env` -```sh +```bash [Terminal] echo -n 'votremotdepasse' | argon2 "$(openssl rand -base64 32)" -e -id -k 65540 -t 3 -p 4 ``` @@ -145,7 +145,7 @@ Dans les dossiers de Swag, créez le fichier `vault.subdomain.conf`. ✨ __Astuce :__ vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo nano /docker/swag/config/nginx/proxy-confs/vault.subdomain.conf ``` Collez la configuration ci-dessous : diff --git a/content/fr/5.nonsense/2.bash/1.servarr-duplicates.md b/content/fr/5.nonsense/2.bash/1.servarr-duplicates.md index 4cf45ee..c59c4a8 100644 --- a/content/fr/5.nonsense/2.bash/1.servarr-duplicates.md +++ b/content/fr/5.nonsense/2.bash/1.servarr-duplicates.md @@ -12,7 +12,7 @@ J'ai donc restructuré mes dossiers, remis à la main chaque chemin dans Qbittor Mes dossiers : -```sh +```text [Arborescence] . └── media ├── seedbox @@ -40,7 +40,7 @@ Je vous passe les incessantes questions réponses avec ChatGPT, je suis assez d Pour tester, j'ai d'abord demandé un script qui ne fait que lister et comparer : -```sh +```bash [Terminal] #!/bin/bash # Créer un tableau associatif pour stocker les doublons @@ -85,7 +85,7 @@ Une fois que j'ai vu que cela fonctionnait bien, j'ai demandé un script qui fai Encore une fois ChatGPT a été décevant. Malgré mes demandes, il créait d'abord les hardlinks et ensuite il supprimait les doublons. Ce qui.. suprimme aussi le lien (meme si cela conserve l'originale). Idiot. Petit détour par Qwen3, et ma RTX 5090 en PLS, et paf un résultat bien plus propre. Bon il a gardé les emoji de ChatGPT qui peut pas s'empecher d'en mettre partout, mais voilà : -```sh +```bash [Terminal] #!/bin/bash echo "🔍 Étape 1 : Indexation des fichiers originaux dans /media/seedbox..." diff --git a/content/fr/6.recycled/1.deprecated/1.wireguard-14.md b/content/fr/6.recycled/1.deprecated/1.wireguard-14.md index 5a14543..1118653 100644 --- a/content/fr/6.recycled/1.deprecated/1.wireguard-14.md +++ b/content/fr/6.recycled/1.deprecated/1.wireguard-14.md @@ -61,7 +61,7 @@ __Attention :__ Cette documentation utilise la version `14` de [wg-easy](https:/ Structure des dossiers -```sh +```text [Arborescence] root └── docker └── wg-easy @@ -144,7 +144,7 @@ Puis déployez la stack. Pour que l'host autorise les clients à communiquer entre eux, vous devez activer les paramèttres suivants : -```sh +```bash [Terminal] sudo sysctl net.ipv4.ip_forward=1 sudo sysctl net.ipv4.conf.all.src_valid_mark=1 ``` @@ -172,7 +172,7 @@ Nous partons du principe que le serveur client est un serveur linux avec Docker Structure des dossiers -```sh +```text [Arborescence] root └── docker └── wireguard @@ -188,7 +188,7 @@ Creez le dossier `/docker/wireguard/config/wg_confs`. vous pouvez utiliser [File Browser](/fr/serveex/files/file-browser) pour naviguer dans vos fichier et éditer vos documents au lieu d'utiliser les commandes du terminal. :: -```sh +```bash [Terminal] sudo mkdir -p /docker/wireguard/config/wg_confs ``` @@ -197,12 +197,12 @@ Copiez le fichier` wg0.conf` téléchargé précédemment. ::tip{icon=""} ✨ __Astuce :__ Le moyen le plus simple est de transférer le fichier par sftp dans le dossier `/home/nomdutilisateur` puis de le copier dans le bon dossier : - ```sh + ```bash [Terminal] sudo cp ~/wg0.conf /docker/wireguard/config/wg_confs :: Creez le `compose.yaml` dans `/docker/wireguard `: -```sh +```bash [Terminal] sudo nano /docker/wireguard/compose.yaml ``` Appuyez sur `i` pour rentrer en modification et copiez la configuration ci-dessous @@ -229,7 +229,7 @@ services: Enregistrez avec :kbd{value="Ctrl+O"} puis :kbd{value="Entrée"}, puis quittez avec :kbd{value="Ctrl+X"}. Lancez le conteneur : -```sh +```bash [Terminal] cd /docker/wireguard sudo docker compose up -d ```