Add a FileTree component and convert every directory tree to it

This commit is contained in:
Djeex
2026-09-02 23:02:17 +02:00
parent 940096b2b1
commit 54edbae731
29 changed files with 553 additions and 329 deletions
+15 -12
View File
@@ -29,18 +29,21 @@ There are two main modes you should know:
Both modes can be configured on a per-application basis.
## Installation
Folder structure:
```text [Directory tree]
root
└── docker
└── authentik
├── .env
├── compose.yml
├── media
├── certs
├── custom-template
└── ssh
```
::file-tree
---
tree:
/:
- docker:
- authentik:
- .env
- compose.yml
- media/
- certs/
- custom-template/
- ssh/
---
::
::steps{level="3"}
### Create the folders
+10 -8
View File
@@ -62,14 +62,16 @@ sudo mkdir /docker
### Configuration
File structure we will create:
```text [Directory tree]
root
└── docker
└── dockge
└── compose.yml
```
::file-tree
---
label: File structure we will create
tree:
/:
- docker:
- dockge:
- compose.yml
---
::
::steps{level="4"}
#### Create the stack folder
+19 -17
View File
@@ -26,23 +26,25 @@ Below is an example exposing Dockge. We will install SWAG along with the dbip mo
This tutorial assumes you have a domain name pointing to your server, and that your router has a NAT rule forwarding port `443` to your server's IP and port `443`. The example domain will be `mydomain.com`.
::
File structure to be modified:
```text [Directory tree]
root
└── docker
└── swag
├── config
│ ├── dns-conf
│ │ └── ovh.ini
│ └── nginx
│ ├── dbip.conf
│ ├── nginx.conf
└── proxy-confs
│ └── dockge.subdomain.conf
├── compose.yml
└── .env
```
::file-tree
---
label: File structure to modify
tree:
/:
- docker:
- swag:
- config:
- dns-conf:
- ovh.ini
- nginx:
- dbip.conf
- nginx.conf
- proxy-confs:
- dockge.subdomain.conf
- compose.yml
- .env
---
::
::steps{level="3"}
### Deploy the stack
+23 -17
View File
@@ -53,15 +53,18 @@ __Warning__: If your IP is not static, use a Dynamic DNS service ([DynDNS](https
### Folder Structure
```text [Directory tree]
root
└── docker
└── wg-easy
├── config
│ └── etc_wireguard
├── compose.yaml
└── .env
```
::file-tree
---
tree:
/:
- docker:
- wg-easy:
- config:
- etc_wireguard/
- compose.yaml
- .env
---
::
::steps{level="3"}
### Deploy the stack
@@ -190,14 +193,17 @@ We assume the client server runs Linux with Docker installed.
### Folder Structure
```text [Directory tree]
root
└── docker
└── wireguard
└── config
│ └── wg_confs
└── compose.yaml
```
::file-tree
---
tree:
/:
- docker:
- wireguard:
- config:
- wg_confs/
- compose.yaml
---
::
::steps{level="3"}
### Create the folder
+12 -9
View File
@@ -14,15 +14,18 @@ This makes it a good fit if you just need a simple, fast SSO backend, for exampl
- [Pocket ID on GitHub](https://github.com/pocket-id/pocket-id)
## Installation
Folder structure:
```text [Directory tree]
root
└── docker
└── pocket-id
├── compose.yaml
├── .env
└── data
```
::file-tree
---
tree:
/:
- docker:
- pocket-id:
- compose.yaml
- .env
- data/
---
::
::steps{level="3"}
### Create the data folder
+12 -9
View File
@@ -19,15 +19,18 @@ This guide assumes you've already installed [Pocket ID](/serveex/security/pocket
::
## Installation
Folder structure:
```text [Directory tree]
root
└── docker
└── tinyauth
├── compose.yaml
├── .env
└── data
```
::file-tree
---
tree:
/:
- docker:
- tinyauth:
- compose.yaml
- .env
- data/
---
::
::steps{level="3"}
### Create the data folder
@@ -9,15 +9,17 @@ description: Install Uptime-Kuma to monitor your self-hosted services uptime, se
![picture](https://user-images.githubusercontent.com/1336778/212262296-e6205815-ad62-488c-83ec-a5b0d0689f7c.jpg)
## Installation
Folder structure
```text [Directory tree]
root
└── docker
└── uptime-kuma
├── date
└── compose.yaml
```
::file-tree
---
tree:
/:
- docker:
- uptime-kuma:
- data/
- compose.yaml
---
::
::steps{level="3"}
### Deploy the stack
+11 -7
View File
@@ -12,14 +12,18 @@ description: Install Dozzle to monitor Docker container logs in real time from a
![Dozzle](https://blog.unixhost.pro/wp-content/uploads/2023/03/image-5.png)
## Installation
Folder structure
```text [Directory tree]
root
└── docker
└── dozzle
└── data
```
::file-tree
---
tree:
/:
- docker:
- dozzle:
- compose.yaml
- .env
- data/
---
::
::steps{level="3"}
### Deploy the stack
@@ -24,15 +24,21 @@ description: Install Speedtest Tracker to automatically measure and log your int
We will use the Docker image maintained by [LinuxServer.io](https://docs.linuxserver.io/images/docker-speedtest-tracker/)
::
File structure:
::file-tree
---
tree:
/:
- docker:
- speedtest-tracker:
- compose.yaml
- .env
- data:
- config/
---
::
```text [Directory tree]
root
└── docker
└── speedtest-tracker
└── data
└── config
```
::steps{level="3"}
### Generate an app key
In a terminal, generate a key using the following command:
@@ -42,6 +48,8 @@ echo -n 'base64:'; openssl rand -base64 32;
Take note of the key.
### Deploy the stack
Open Dockge, click on `compose`, name the stack `speedtest-tracker`, then paste the following:
```yaml [compose.yaml]
@@ -67,6 +75,8 @@ services:
- /docker/speedtest-tracker/data/config:/config
```
### Set your environment variables
Find your `PUID` and `GUID` by running the following command:
```bash [Terminal]
@@ -89,7 +99,10 @@ PORT=3225 # port to access the web UI
Deploy the container and go to `http://yourserverip:3225`. Log in with the account `admin@exemple.com` and the password `password`. Dont forget to change your ID and password once logged in!
## Expose Speedtest Tracker
### Done !
::
## Exposing Speedtest Tracker with SWAG
::note
📋 **Prerequisites:**
We assume that you've already created a subdomain like `speedtest.yourdomain.com` in your [DNS zone](/general/networking/dns) with a `CNAME` pointing to `yourdomain.com`, and [unless youre using Cloudflare Zero Trust](/serveex/security/cloudflare), you've also forwarded port `443` from your router to port `443` of your server in your [NAT rules](/general/networking/nat).
@@ -102,6 +115,9 @@ Now we want to expose Speedtest Tracker to the internet so you can access it rem
Speedtest Tracker does not use multi-factor authentication. Exposing it on the internet could compromise connected devices. Do so only if you use a multi-factor system like [TinyAuth](/serveex/security/tinyauth) or [Authentik](/serveex/advanced/authentik/). Otherwise, avoid using SWAG and prefer a VPN like [Wireguard](/serveex/security/wireguard).
::
::steps{level="3"}
### Create the subdomain.conf file
Open the `speedtest.subdomain.conf` file:
```bash [Terminal]
@@ -155,6 +171,8 @@ server {
Save and exit. The configuration will update in a few seconds.
### Add Speedtest Tracker's network to SWAG
::note
By default, SWAG doesnt know the name "speedtest-tracker". To allow access, you need to add Speedtest Trackers network to SWAGs `compose.yml`.
@@ -186,6 +204,9 @@ Restart the stack by clicking "Deploy" and wait for SWAG to be fully up.
This assumes the Speedtest Tracker network is named `speedtest-tracker_default`. You can verify the connection by visiting SWAGs dashboard at `http://yourserverip:81`.
::
### Done !
::
Wait a moment, then visit `https://speedtest.yourdomain.com` in your browser. You should be redirected to Speedtest Tracker. You can check service status via the dashboard (`http://yourserverip:81` from the local network).
## Protecting Speedtest Tracker with TinyAuth
+12 -9
View File
@@ -24,15 +24,18 @@ Beszel includes a hub with a web UI and an agent that collects data from your se
## Installation
Folder structure
```text [Directory tree]
root
└── docker
└── beszel
├── data
└── socket
```
::file-tree
---
tree:
/:
- docker:
- beszel:
- compose.yaml
- .env
- data/
- socket/
---
::
Open Dockge, click `compose`, name the stack `beszel`, and paste the following:
+11 -8
View File
@@ -20,14 +20,17 @@ description: Install UpSnap to remotely wake up machines on your local network v
## Installation
Folder structure
```text [Directory tree]
root
└── docker
└── upsnap
└── data
```
::file-tree
---
tree:
/:
- docker:
- upsnap:
- compose.yaml
- .env
- data/
---
::
Open Dockge, click on `compose`, name the stack `upsnap`, then copy and paste the following:
+16 -13
View File
@@ -26,19 +26,22 @@ Unlike Plex, Jellyfin has no cloud relay: to access your server outside your loc
::
## Install Jellyfin
Folder structure:
```text [Directory tree]
root
├── docker
│ └── jellyfin
│ ├── compose.yaml
│ ├── .env
│ └── config
└── media
├── tvseries
├── movies
└── library
```
::file-tree
---
tree:
/:
- docker:
- jellyfin:
- compose.yaml
- .env
- config/
- media:
- tvseries/
- movies/
- library/
---
::
Create the `movies`, `tvseries`, and `library` folders in `/media`:
+17 -16
View File
@@ -29,23 +29,24 @@ Heres the system well set up:
![Picture](/img/serveex/qbit.svg)
## Configuration
Folder structure
```text [Directory tree]
root
├── docker
│ └── seedbox
│ ├── qbittorrent
│ │ └── config
│ ├── gluetun
│ ├── compose.yaml
│ └── .env
└── media #linked to Jellyfin and Qbittorrent
├── downloads #generic downloads, selected in settings
├── movies #used for downloading movies
└── tvseries #used for downloading TV shows
```
::file-tree
---
tree:
/:
- docker:
- seedbox:
- qbittorrent:
- config/
- gluetun/
- compose.yaml
- .env
- "media # linked to Jellyfin and Qbittorrent":
- "downloads/ # generic downloads, selected in settings"
- "movies/ # used for downloading movies"
- "tvseries/ # used for downloading TV shows"
---
::
If not already done, create the `downloads` folder under `/media`:
+26 -24
View File
@@ -28,30 +28,32 @@ Well start by deploying the stack and then proceed to configure each app and
### Docker Compose
Folder structure:
```text [Directory tree]
root
├── docker
├── jellyfin
├── compose.yml
│ │ └── config
│ ├── sonarr
│ │ └── config
│ ├── radarr
│ │ └── config
│ ├── bazarr
│ │ └── config
│ ├── prowlarr
│ │ └── config
│ └── seerr
│ └── config
└── media
├── downloads
├── tvseries
├── movies
└── library
```
::file-tree
---
tree:
/:
- docker:
- jellyfin:
- compose.yml
- .env
- config/
- sonarr:
- config/
- radarr:
- config/
- bazarr:
- config/
- prowlarr:
- config/
- seerr:
- config/
- media:
- downloads/
- tvseries/
- movies/
- library/
---
::
::warning
+11 -9
View File
@@ -16,16 +16,18 @@ description: Install Immich, a self-hosted alternative to Google Photos and iClo
![Picture](/img/serveex/immich.png)
## Installation
Folder structure
```text [Directory tree]
root
└── docker
└── immich
├── library
├── compose.yaml
└── .env
```
::file-tree
---
tree:
/:
- docker:
- immich:
- library/
- compose.yaml
- .env
---
::
Open Dockge, click on `compose`, name the stack `immich`, then copy and paste the latest `docker-compose.yml` [published here](https://github.com/immich-app/immich/blob/main/docker/docker-compose.yml).
+12 -11
View File
@@ -21,17 +21,18 @@ description: Install Nextcloud to self-host your files, photos, and calendar, a
We'll be using the Docker image maintained by [LinuxServer.io](https://docs.linuxserver.io/images/docker-nextcloud/)
::
File structure:
```text [Directory tree]
root
└── docker
└── nextcloud
├── config
├── data
├── compose.yaml
└── .env
```
::file-tree
---
tree:
/:
- docker:
- nextcloud:
- config/
- data/
- compose.yaml
- .env
---
::
Open Dockge, click on `compose`, name the stack `nextcloud` and paste the following:
@@ -19,16 +19,19 @@ description: Install File Browser Quantum, a modernized fork of File Browser, to
If you're already using File Browser and it fits your needs, there's no need to switch. The two are independent projects with their own configuration and can't share data directly.
## Installation
Folder structure:
```text [Directory tree]
root
└── docker
└── filebrowser-quantum
├── compose.yaml
└── data
├── config.yaml
└── filebrowser.sqlite
```
::file-tree
---
tree:
/:
- docker:
- filebrowser-quantum:
- compose.yaml
- data:
- config.yaml
- filebrowser.sqlite
---
::
Create the data folder:
@@ -25,15 +25,18 @@ description: Install code-server to run VS Code in your browser from your homela
For this setup, well use the [image maintained by LinuxServer.io](https://docs.linuxserver.io/images/docker-code-server/).
::
Folder structure
```text [Directory tree]
root
├── docker
│ └── code-server
│ └── config
└── #any folder you want to mount in VS Code
```
::file-tree
---
tree:
/:
- docker:
- code-server:
- compose.yaml
- .env
- config/
- (any folder you want to mount in VS Code)/
---
::
Open Dockge, click on `compose`, name the stack `code-server`, and paste the following:
@@ -17,14 +17,18 @@ description: Install Forgejo, a lightweight self-hosted Git service to manage yo
[Forgejo](https://forgejo.org/) is a self-hosted DevOps platform that allows you to manage repositories much like GitHub, but on your own infrastructure. It's a community-driven fork of Gitea.
## Installation
Folder structure
```text [Directory tree]
root
└── docker
└── forgejo
└── data
```
::file-tree
---
tree:
/:
- docker:
- forgejo:
- compose.yaml
- .env
- data/
---
::
Open Dockge, click on `compose`, name the stack `forgejo`, and paste the following content:
+12 -10
View File
@@ -38,17 +38,19 @@ This is how ads and malicious domains are blocked: Adguard blocks only the bad d
![Picture](/img/serveex/adguard.svg)
## Installation
Folder structure:
```text [Directory tree]
root
└── docker
└── adguard
├── confdir
├── workdir
├── compose.yaml
└── .env
```
::file-tree
---
tree:
/:
- docker:
- adguard:
- confdir/
- workdir/
- compose.yaml
- .env
---
::
::note
+11 -9
View File
@@ -18,16 +18,18 @@ description: Install Vaultwarden, a self-hosted Bitwarden-compatible password ma
Vaultwarden is a fork of [Bitwarden](https://bitwarden.com/fr-fr/help/).
## Installation
Folder structure:
```text [Directory tree]
root
└── docker
└── vaultwarden
├── data
├── compose.yaml
└── .env
```
::file-tree
---
tree:
/:
- docker:
- vaultwarden:
- data/
- compose.yaml
- .env
---
::
Open Dockge, click on `compose`, name the stack `vaultwarden`, and paste the following: