diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..65dedd3d8 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index abd99f592..0b25d8371 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -6,7 +6,7 @@ jobs: editorconfig-checker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v2.3.4 - name: editorconfig-checker run: | docker run --rm -v ${GITHUB_WORKSPACE}:/check mstruebing/editorconfig-checker @@ -14,7 +14,7 @@ jobs: markdownlint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v2.3.4 - name: markdownlint run: | find ~+ ${github_workspace} -name '*.md' | xargs docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} markdownlint/markdownlint -r ~MD013,~MD033,~MD034,~MD046 @@ -22,7 +22,7 @@ jobs: yamllint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v2.3.4 - name: yamllint run: | find ~+ ${github_workspace} -name '*.yaml' -o -name '*.yml' | xargs docker run --rm -v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} peterdavehello/yamllint yamllint -d '{extends: default, rules: {document-start: {present: false}, line-length: disable}}' diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index cc15660ec..46fb9e5fc 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -10,7 +10,9 @@ jobs: name: Deploy docs runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2.3.3 + - uses: actions/checkout@v2.3.4 + with: + fetch-depth: 0 - uses: actions/setup-python@v2.1.4 with: diff --git a/docs/Misc/Discord-Notifier-Basic-Setup.md b/docs/Misc/Discord-Notifier-Basic-Setup.md index 6cdfa8881..6d925cea6 100644 --- a/docs/Misc/Discord-Notifier-Basic-Setup.md +++ b/docs/Misc/Discord-Notifier-Basic-Setup.md @@ -30,7 +30,7 @@ First we're going to visit the [Discord Notifier](https://discordnotifier.com/in ## Profile -After you logged in you will be redirected to your profile screen where you need to do a few things. +After you have logged in, you will be redirected to your profile screen. ![image-20201107184811997](images/image-20201107184811997.png) @@ -44,7 +44,7 @@ After you logged in you will be redirected to your profile screen where you need ## Notification Setup -Here you will be able to setup the following things: +Here, you can setup the following items: - Notifications Settings => Setup which notifications you want to receive. - Discord Settings => Setup your discord channels and your reactions and invite the bot into your channel. @@ -157,10 +157,10 @@ This section exist of 2 parts. First we're going to download the emoji's and you can do that in 2 ways. -1. One by One - Right click -> save as for these emoji images. +1. 1 at a time - Right click -> Save As... - for these emoji images to some location on your computer. 1. Pack Download - Click [here](https://discordnotifier.com/setup.php?grab=reactions){:target="_blank"} to download a zip of all the current reaction images. -For this Example we will be using the Pack Download, that you need to unpack to your computer and then add them to your Discord Server +For this example, we will be using Pack Download. You'll need download the file and then unpack it somewhere on your computer. After which, you can then add the emoji's to your Discord Server easily. How to add your own Emoji's => [LINK](https://support.discord.com/hc/en-us/articles/360036479811-Custom-Emojis){:target="_blank"} @@ -170,7 +170,7 @@ After you've added them to your Discord Server it's time to get the ID's from yo \:emoji_name: ``` -??? summary "Example" +??? example "Example" ![image-20201108092738752](images/image-20201108092738752.png) What results in to. @@ -192,7 +192,7 @@ Do this for all the other boxes also including your Trackers/Indexers. 1. Paste here the the emoji ID. 1. The actual indexer name you're using in Sonarr/Radarr. -??? summary "Example" +??? example "Example" ![image-20201108094627415](images/image-20201108094627415.png) @@ -217,11 +217,11 @@ This is where we add all this to your *arr and Plex. ### Radarr, Readarr and Lidarr -Radarr, Readarr and Lidarr supports Discord Notifier native so that's a easy one to add. +Radarr, Readarr and Lidarr supports Discord Notifier natively so that's an easy one to add. `Settings` => `Connect` => click on ![image-20201108174654550.png](images/image-20201108174654550.png) and select `Discord Notifier` add your API key and you're done. -??? summary "Radarr Example" +??? example "Radarr Example" In Radarr go to `Settings` => `Connect` => Click on ![image-20201108174654550](images/image-20201108174654550.png) and select `DiscordNotifier.com`. ![image-20201108154540683](images/image-20201108154540683.png) @@ -245,7 +245,7 @@ That's why we're going to use the webhook method. `Settings` => `Connect` > Click on ![image-20201108174654550.png](images/image-20201108174654550.png) and select `Webhook`. -Add the following info. +Add the following info: **Name**: Discord Notifier @@ -255,7 +255,7 @@ Add the following info. Click **Save** -??? summary "Sonarr Example" +??? example "Sonarr Example" `Settings` => `Connect` > Click on ![image-20201108174654550.png](images/image-20201108174654550.png) and select `Webhook`. @@ -282,11 +282,11 @@ For Bazarr you need to make use of JSON method. On the top click on ![image-20201108191244845](images/image-20201108191244845.png) `Edit` icon and Enable the notification type. -Add the JSON URL that you can copy/paste from the integrations page. +Add the JSON URL that you copy/pasted from the integrations page. Scroll up and save -??? summary "Bazarr Example" +??? example "Bazarr Example" `Settings` => `Notifications` => and select`JSON` @@ -299,7 +299,7 @@ Scroll up and save ![image-20201108190148938](images/image-20201108190148938.png) 1. Enable the JSON Notification. - 2. Add the JSON URL that you can copy/paste from the integrations page. + 2. Add the JSON URL that you copy/pasted from the integrations page. 3. Click on `Test` to see if it works. 4. If everything is correct click on `Ok` @@ -315,7 +315,7 @@ Scroll up and save `Settings` => `Webhooks` => click on `ADD WEBHOOK` and add the URL that you can copy/paste from the integrations page and click on `SAVE CHANGES` -??? summary "Plex Example" +??? example "Plex Example" `Settings` => `Webhooks` => click on `ADD WEBHOOK` @@ -372,3 +372,4 @@ On the top of the integrations page you will now have the ability to test your s ![image-20201108195808555](images/image-20201108195808555.png) Click on the icons to test your notifications. +After going through this tutorial and you still arent getting notifications in your discord channel from the respective logos, then retry the steps outlined above. If there is still an issue, try asking in the Discord Notifier [discord channel](https://discord.gg/AURf8Yz){:target="_blank"} for additional support. diff --git a/docs/Misc/How-to-provide-a-docker-compose-when-you-need-help-on-Discord.md b/docs/Misc/how-to-provide-a-docker-compose.md similarity index 98% rename from docs/Misc/How-to-provide-a-docker-compose-when-you-need-help-on-Discord.md rename to docs/Misc/how-to-provide-a-docker-compose.md index d1909a908..4b98f9cb3 100644 --- a/docs/Misc/How-to-provide-a-docker-compose-when-you-need-help-on-Discord.md +++ b/docs/Misc/how-to-provide-a-docker-compose.md @@ -20,7 +20,7 @@ sudo docker run --rm \ CONTAINER_NAME CONTAINER_NAME2 ``` -??? summary "Example:" +??? example "Example:" ```bash sudo docker run --rm \ diff --git a/docs/Misc/how-to-set-up-hardlinks-and-atomic-moves.md b/docs/Misc/how-to-set-up-hardlinks-and-atomic-moves.md new file mode 100644 index 000000000..70f514512 --- /dev/null +++ b/docs/Misc/how-to-set-up-hardlinks-and-atomic-moves.md @@ -0,0 +1,395 @@ +# How To Set Up Hardlinks and Atomic-Moves + +## Description + +!!! info + + If you’re wondering why hard links aren’t working or why a simple move is taking far longer than it should. + + Here we will try to explains it. + + The paths you use on the inside matter. Because of how Docker’s volumes work, passing in two or three volumes such as the commonly suggested `/tv`, `/movies` and `/downloads` makes them look like two or three file systems, even if they aren’t. This means hard links won’t work and instead of an instant move, a slower and more I/O intensive copy + delete is used. + +So you want one of the following ? + +- Instant moves (Atomic-Moves) during import of the *arr (useful when using Usenet)? +- You don't want to use twice the storage when using torrents. (hardlinks)? +- You want to perma seed? + +Then keep reading. + +### FAQ + +??? faq "FAQ" + + 1. Q: **What are the `*arr`?** + + - Sonarr, Radarr, Lidarr, etc. + + 1. Q: **What are hardlinks?** + + - Short answer is "having a file in multiple folders" without using up your storage, [Long Answer](https://medium.com/@krisbredemeier/the-difference-between-hard-links-and-soft-or-symbolic-links-780149244f7d){:target="_blank"}. + + 1. Q: **What's Atomic Moves?** + + - A real move and not a copy file from download folder to media folder and then delete file from download folder. + +------ + +### How to Setup for + +- [DockSTARTer](#dockstarter) +- [UnRaid](#unraid) + +#### DockSTARTer + +??? summary "DockSTARTer" + + !!! note + + I'm using the default paths in this example, and will keep the other paths unchanged so nothing will break if you make a mistake. + + We're going to use a mounted drive that we're going to use as storage for downloads and your media. + In this example the mounted drive will be mounted to `/mnt/` with the following folder structure. + + ``` + storage + ├── downloads + | ├── torrents + │ | ├── movies + │ | ├── music + │ | └── tv + | └── usenet + │ ├── movies + │ ├── music + │ └── tv + └── medialibrary + ├── movies + ├── music + └── tv + ``` + + ##### Step 1 + To accomplisch this we need to change first a few paths in your `.env` (Usually `~/.docker/compose/.env`) + + ```yaml + # Global Settings + COMPOSE_HTTP_TIMEOUT=60 + DOCKERCONFDIR=~/.config/appdata + DOCKERGID=999 + DOCKERHOSTNAME=DockSTARTer + DOCKERLOGGING_MAXFILE=10 + DOCKERLOGGING_MAXSIZE=200k + DOCKERSTORAGEDIR=/mnt/storage + PGID=1000 + PUID=1000 + TZ=America/Chicago + + # DEPRECATED Settings (will be removed at the end of 2020) + DOCKERSHAREDDIR=~/shared + DOWNLOADSDIR=/mnt/downloads + MEDIADIR_AUDIOBOOKS=/mnt/medialibrary/audiobooks + MEDIADIR_BOOKS=/mnt/medialibrary/books + MEDIADIR_COMICS=/mnt/medialibrary/comics + MEDIADIR_MOVIES=/mnt/medialibrary/movies + MEDIADIR_MUSIC=/mnt/medialibrary/music + MEDIADIR_TV=/mnt/medialibrary/tv + ``` + + ##### Step 2 + + When that's all set then you will need to change the paths you're going to use in the containers from: + + `/downloads` => `/storage/downloads` + + `/audiobooks` => `/storage/medialibrary/audiobooks` + + `/books` => `/storage/medialibrary/books` + + `/comics` => `/storage/medialibrary/comics` + + `/movies` => `/storage/medialibrary/movies` + + `/music` => `/storage/medialibrary/music` + + `/tv` => `/storage/medialibrary/tv` + +#### UnRaid + +??? summary "UnRaid" + + !!! note + + The first thing you need to do is forget the suggested paths from the Spaceinvader One YouTube Tutorials, + + and don't use the predefined paths from the unraid templates. + + (Spaceinvader One YouTube guides are great to learn how to start with unraid or how to setup certain applications, and yes I did and still do use them. Probably the main reason why he's using those path is because they are predefined in the template) + + !!! attention + + To get Hardlinks and Atomic-Moves working with Unraid you will need to make use of **ONE** share with subfolders. + + ##### Create the main share + + For this example I'm using my own setup and preferred share `data`. + + Go to your dashboard and on the top select `shares` select `add share` . + + [![main-share](images/image-20201111225320772.png)](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/Misc/images/image-20201111225320772.png){:target="_blank"} + + 1. use `data` + 1. if you got a cache drive and want to make use of it put it on `Yes` or keep it disabled (Hardlinks will stay in tact if you're using the cache) + 1. click on `ADD SHARE` + + !!! note + + Keep in mind regarding the use of the Cache drive, The mover can't move files that are in use, like when `seeding` with torrents. You will need to shutdown your client or stop/pause the torrents so the mover can move them to your Array. + + With Usenet you won't have any issues. + + ##### Folder Structure + + On the host (Unraid) you will need to add /mnt/user before it. **So /mnt/user/data** + + The `data` folder has sub-folders for `torrents` and `usenet` and each of these have sub-folders for `tv`, `movie` and `music` downloads to keep things neat. The `media` folder has nicely named `TV`, `Movies` and `Music` sub-folders, this is your library and what you’d pass to Plex, Emby or JellyFin. + + These subfolders you need to create your self, you can use krusader or winscp to create them or any other way you prefer. + + ```none + data + ├── torrents + │ ├── movies + │ ├── music + │ └── tv + ├── usenet + │ ├── movies + │ ├── music + │ └── tv + └── media + ├── movies + ├── music + └── tv + ``` + + *I'm using lower case on all folder on purpose, being Linux is case sensitive.* + + ##### Setting up the containers + + After you created all the needed folders it's time to setup the paths in the docker containers. + + Go to your dashboard and select your docker container you want to edit or if you're starting fresh add the docker containers you want to use or prefer. + + Unraid makes it actually pretty clear what's the Host Path and what's the Container Path. + + `Container Path:` => The path that will be used inside the container. + + `Host Path:` => The path on your Unraid Server (The Host). + + ##### Torrent clients + + qBittorrent, Deluge, ruTorrent + + ![unraid-torrent-clients](images/image-20201112201012153.png) + + `Container Path:` => `/data/torrent` + + `Host Path`: => `/mnt/user/data/torrents` + + !!! info + + The reason why we use `/data/torrent` for the torrent client is because it only needs access to the torrent files. In the torrent software settings, you’ll need to reconfigure paths and you can sort into sub-folders like/data/torrents/{tv|movies|music}. + + ```none + data + └── torrents + ├── movies + ├── music + └── tv + ``` + + ##### Usenet clients + + NZBGet or SABnzbd + + ![unraid-usenet-client](images/image-20201112203013210.png) + + `Container Path:` => `/data/usenet` + + `Host Path:` => `/mnt/user/data/usenet` + + !!! info + + The reason why we use `/data/usenet` for the usenet client is because it only needs access to the usenet files. In the usenet software settings, you’ll need to reconfigure paths and you can sort into sub-folders like/data/usenet/{tv|movies|music}. + + ```none + data + └── usenet + ├── movies + ├── music + └── tv + ``` + + ##### The arr(s) + + Sonarr, Radarr and Lidarr + + ![unraid-arr](images/image-20201112204406692.png) + + `Container Path:` => `/data` + + `Host Path:` => `/mnt/user/data/` + + !!! info + + Sonarr, Radarr and Lidarr get's access to everything because the download folder(s) and media folder will look like and be one file system. Hard links will work and moves will be atomic, instead of copy + delete. + + ```none + data + ├── torrents + │ ├── movies + │ ├── music + │ └── tv + ├── usenet + │ ├── movies + │ ├── music + │ └── tv + └── media + ├── movies + ├── music + └── tv + ``` + + ##### Media Server + + Plex, Emby, JellyFin and Bazarr + + ![unraid-media-server](images/image-20201112205218382.png) + + `Container Path:` => `/data/media` + + `Host Path:` => `/mnt/user/data/media/` + + !!! info + + Plex, Emby, JellyFin and Bazarr only needs access to your media library, which can have any number of sub folders like Movies, Kids Movies, TV, Documentary TV and/or Music as sub folders. + + ```none + data + └── media + ├── movies + ├── music + └── tv + ``` + + ##### Final Result + + [![final-results](images/image-20201112210400294.png)](https://raw.githubusercontent.com/TRaSH-/Guides/master/docs/Misc/images/image-20201112210400294.png){:target="_blank"} + +------ + +### Examples + +!!! info + + Pick one path layout and use it for all of them. + + It doesn't matter if you prefer to use `/data`, `/shared`, `/storage` or whatever. + + The screenshots in the examples are using the following root path `/storage` + +- [Sonarr](#sonarr) +- [Radarr](#radarr) +- [SABnzbd](#sabnzbd) +- [NZBGet](#nzbget) +- [qBittorrent](#qbittorent) +- [Deluge](#deluge) +- [ruTorrent](#rutorrent) + +#### Sonarr + +??? example "Sonarr Examples" + + `Settings` => `Media Managemen` => `Root Folders` + + ![sonarr-root-folder](images/image-20201111190131842.png) + + `Series` => `Add New` + + ![image-20201111190300091](images/image-20201111190300091.png) + + ![image-20201111184955092](images/image-20201111184955092.png) + +#### Radarr + +??? example "Radarr Examples" + + `Settings` => `Media Managemen` => `Root Folders` + + ![radarr-root-folder](images/image-20201111185454928.png) + + `Movies` => `Add New` + + ![image-20201111185158391](images/image-20201111185158391.png) + + ![image-20201111185304391](images/image-20201111185304391.png) + +#### SABnzbd config + +??? example "SABnzbd Examples" + + `SABnzbd config` => `Folders` + + ![sabnzbd-folders](images/image-20201111190431670.png) + + `SABnzbd config` => `Categories` + + ![sabnzbd-categories](images/image-20201111190616235.png) + +#### NZBGet + +??? example "NZBGet Examples" + + `Settings` => `PATHS` + + ![settings-paths](images/image-20201111191413616.png) + + `Settings` => `CATEGORIES` + + ![settings-categories](images/image-20201111191615112.png) + +#### qBittorrent + +??? example "qBittorrent Examples" + + `Options` => `Downloads` + + ![options-downloads](images/image-20201111191744466.png) + +#### Deluge + +??? example "Deluge Example" + + `Preferences` => `Downloads` + + ![preferences-downloads](images/image-20201111191831583.png) + +#### ruTorrent + +??? example "ruTorrent Examples" + + `../config/rtorrent/config/rtorrent.rc` (path to your appdata) + + ![rtorrent.rc](images/image-20201111201032265.png) + + `Settings` => `Downloads` + + ![settings-downloads](images/image-20201111202759459.png) + + `Settings` => `Autotools` + + ![settings-autotools](images/image-20201111202945331.png) + +------ + +Big Thnx to [fryfrog](https://github.com/fryfrog){:target="_blank"} for his [Docker Guide](https://wiki.servarr.com/Docker_Guide){:target="_blank"} that I used as basis for this guide. diff --git a/docs/Misc/images/image-20201111184955092.png b/docs/Misc/images/image-20201111184955092.png new file mode 100644 index 000000000..bffca9eae Binary files /dev/null and b/docs/Misc/images/image-20201111184955092.png differ diff --git a/docs/Misc/images/image-20201111185158391.png b/docs/Misc/images/image-20201111185158391.png new file mode 100644 index 000000000..0f32b980d Binary files /dev/null and b/docs/Misc/images/image-20201111185158391.png differ diff --git a/docs/Misc/images/image-20201111185304391.png b/docs/Misc/images/image-20201111185304391.png new file mode 100644 index 000000000..e24ea4bd7 Binary files /dev/null and b/docs/Misc/images/image-20201111185304391.png differ diff --git a/docs/Misc/images/image-20201111185454928.png b/docs/Misc/images/image-20201111185454928.png new file mode 100644 index 000000000..f9741fc2a Binary files /dev/null and b/docs/Misc/images/image-20201111185454928.png differ diff --git a/docs/Misc/images/image-20201111190131842.png b/docs/Misc/images/image-20201111190131842.png new file mode 100644 index 000000000..db69c3d90 Binary files /dev/null and b/docs/Misc/images/image-20201111190131842.png differ diff --git a/docs/Misc/images/image-20201111190300091.png b/docs/Misc/images/image-20201111190300091.png new file mode 100644 index 000000000..006bc28ab Binary files /dev/null and b/docs/Misc/images/image-20201111190300091.png differ diff --git a/docs/Misc/images/image-20201111190431670.png b/docs/Misc/images/image-20201111190431670.png new file mode 100644 index 000000000..711e7f3b9 Binary files /dev/null and b/docs/Misc/images/image-20201111190431670.png differ diff --git a/docs/Misc/images/image-20201111190616235.png b/docs/Misc/images/image-20201111190616235.png new file mode 100644 index 000000000..73a3636b4 Binary files /dev/null and b/docs/Misc/images/image-20201111190616235.png differ diff --git a/docs/Misc/images/image-20201111191413616.png b/docs/Misc/images/image-20201111191413616.png new file mode 100644 index 000000000..d870081ef Binary files /dev/null and b/docs/Misc/images/image-20201111191413616.png differ diff --git a/docs/Misc/images/image-20201111191615112.png b/docs/Misc/images/image-20201111191615112.png new file mode 100644 index 000000000..f1b1c2324 Binary files /dev/null and b/docs/Misc/images/image-20201111191615112.png differ diff --git a/docs/Misc/images/image-20201111191744466.png b/docs/Misc/images/image-20201111191744466.png new file mode 100644 index 000000000..c601b6b9e Binary files /dev/null and b/docs/Misc/images/image-20201111191744466.png differ diff --git a/docs/Misc/images/image-20201111191831583.png b/docs/Misc/images/image-20201111191831583.png new file mode 100644 index 000000000..991f6a61d Binary files /dev/null and b/docs/Misc/images/image-20201111191831583.png differ diff --git a/docs/Misc/images/image-20201111201032265.png b/docs/Misc/images/image-20201111201032265.png new file mode 100644 index 000000000..97d5cbbd3 Binary files /dev/null and b/docs/Misc/images/image-20201111201032265.png differ diff --git a/docs/Misc/images/image-20201111202759459.png b/docs/Misc/images/image-20201111202759459.png new file mode 100644 index 000000000..400a14ac7 Binary files /dev/null and b/docs/Misc/images/image-20201111202759459.png differ diff --git a/docs/Misc/images/image-20201111202945331.png b/docs/Misc/images/image-20201111202945331.png new file mode 100644 index 000000000..08825403e Binary files /dev/null and b/docs/Misc/images/image-20201111202945331.png differ diff --git a/docs/Misc/images/image-20201111225320772.png b/docs/Misc/images/image-20201111225320772.png new file mode 100644 index 000000000..1535700c4 Binary files /dev/null and b/docs/Misc/images/image-20201111225320772.png differ diff --git a/docs/Misc/images/image-20201112201012153.png b/docs/Misc/images/image-20201112201012153.png new file mode 100644 index 000000000..16db0be1a Binary files /dev/null and b/docs/Misc/images/image-20201112201012153.png differ diff --git a/docs/Misc/images/image-20201112203013210.png b/docs/Misc/images/image-20201112203013210.png new file mode 100644 index 000000000..f250d4a70 Binary files /dev/null and b/docs/Misc/images/image-20201112203013210.png differ diff --git a/docs/Misc/images/image-20201112204406692.png b/docs/Misc/images/image-20201112204406692.png new file mode 100644 index 000000000..766bf7000 Binary files /dev/null and b/docs/Misc/images/image-20201112204406692.png differ diff --git a/docs/Misc/images/image-20201112205218382.png b/docs/Misc/images/image-20201112205218382.png new file mode 100644 index 000000000..78debc6d5 Binary files /dev/null and b/docs/Misc/images/image-20201112205218382.png differ diff --git a/docs/Misc/images/image-20201112210400294.png b/docs/Misc/images/image-20201112210400294.png new file mode 100644 index 000000000..24ef4f24d Binary files /dev/null and b/docs/Misc/images/image-20201112210400294.png differ diff --git a/docs/Misc/README.md b/docs/Misc/index.md similarity index 100% rename from docs/Misc/README.md rename to docs/Misc/index.md diff --git a/mkdocs.yml b/mkdocs.yml index a4783d771..5f0660771 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -32,6 +32,10 @@ markdown_extensions: plugins: - search + - git-revision-date-localized: + type: timeago + locale: en + fallback_to_build_date: false - awesome-pages - macros: j2_block_start_string: "[[%" diff --git a/requirements.txt b/requirements.txt index b9be102cd..b7dc40ba6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,5 @@ mkdocs-material>=6.1.0 pymdown-extensions>=3.3.2 mkdocs-macros-plugin>=0.4.18 mkdocs-awesome-pages-plugin>=2.4.0 -mkdocs-redirects>=1.0.1 \ No newline at end of file +mkdocs-redirects>=1.0.1 +mkdocs-git-revision-date-localized-plugin>=0.7.3