Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
41adec1bf7 |
0
homelabbing/docs/hardware/index.md
Normal file
0
homelabbing/docs/hardware/index.md
Normal file
0
homelabbing/docs/hardware/server/index.md
Normal file
0
homelabbing/docs/hardware/server/index.md
Normal file
85
homelabbing/docs/how-to-use-this-guide.md
Normal file
85
homelabbing/docs/how-to-use-this-guide.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# How to Use This Documentation
|
||||
|
||||
Welcome to the **Homelab Documentation** – a complete reference for planning, building, and maintaining your self-hosted infrastructure.
|
||||
|
||||
This knowledge base is organized into **three main categories** in the top navigation:
|
||||
- **Software** – Applications and services you can self-host
|
||||
- **Hardware** – Physical servers, storage, and network equipment
|
||||
- **Know-How** – Linux fundamentals, networking, and security
|
||||
|
||||
---
|
||||
|
||||
## 📂 Category Structure
|
||||
|
||||
### **Software**
|
||||
Guides for installing, configuring, and running self-hosted applications.
|
||||
- **Media Services** – Streaming, automation, indexing, transcoding
|
||||
- **Productivity Tools** – File sync, document management, collaboration
|
||||
- **Monitoring & Management** – Metrics, logs, automation, backups
|
||||
- **Other Applications** – Any other useful self-hosted services
|
||||
|
||||
**Example:**
|
||||
[Docker Installation Guide](knowhow/docker)
|
||||
[Service Installation Example](software/mediastack)
|
||||
|
||||
---
|
||||
|
||||
### **Hardware**
|
||||
Documentation about your physical homelab setup.
|
||||
- **Servers** – Build guides for different performance tiers
|
||||
- **Storage** – RAID, ZFS, NAS integration
|
||||
- **Networking Equipment** – Routers, switches, WiFi APs
|
||||
- **Power & UPS** – Power protection and energy efficiency
|
||||
|
||||
**Example:**
|
||||
[Starter Server Build](hardware/server)
|
||||
|
||||
---
|
||||
|
||||
### **Know-How**
|
||||
General technical knowledge for running and securing a homelab.
|
||||
- **Linux**
|
||||
- Basics – Commands, filesystem, permissions
|
||||
- Docker – Installation, Compose, Swarm Mode
|
||||
- **Networking**
|
||||
- VLANs, subnets, DNS, VPN setup
|
||||
- **Security**
|
||||
- TLS/SSL, reverse proxy configuration
|
||||
- MFA, firewall, access control
|
||||
- Backup strategies
|
||||
|
||||
**Example:**
|
||||
[Linux Basics](knowhow/linux/basics)
|
||||
|
||||
---
|
||||
|
||||
## 🛠 How to Navigate
|
||||
|
||||
1. **Choose a Category** – Use the top navigation to open *Software*, *Hardware*, or *Know-How*.
|
||||
2. **Expand the Sidebar** – Each category contains subtopics with their own guides.
|
||||
3. **Follow Links** – Many guides link to related topics for better context.
|
||||
4. **Copy & Paste** – All commands are provided in ready-to-use code blocks.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Suggested Starting Path
|
||||
|
||||
If you’re new to self-hosting:
|
||||
1. Follow the [Docker Installation Guide](knowhow/docker)
|
||||
2. Deploy a basic service of your choice
|
||||
3. Set up reverse proxy and SSL for secure access
|
||||
4. Learn networking and security basics in *Know-How*
|
||||
5. Expand with automation, backups, and monitoring
|
||||
|
||||
---
|
||||
|
||||
## 📚 Resources
|
||||
|
||||
- [Docker Documentation](https://docs.docker.com/)
|
||||
- [Jellyfin Docs](https://jellyfin.org/docs/)
|
||||
- [Awesome-Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted)
|
||||
- [selfh.st – Self-Hosting Knowledge Base](https://selfh.st/)
|
||||
|
||||
---
|
||||
|
||||
**Tip:** Keep your configuration files, `docker-compose.yml` files, and infrastructure documentation in version control for easy recovery.
|
@@ -1,47 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Tutorial Intro
|
||||
|
||||
Let's discover **Docusaurus in less than 5 minutes**.
|
||||
|
||||
## Getting Started
|
||||
|
||||
Get started by **creating a new site**.
|
||||
|
||||
Or **try Docusaurus immediately** with **[docusaurus.new](https://docusaurus.new)**.
|
||||
|
||||
### What you'll need
|
||||
|
||||
- [Node.js](https://nodejs.org/en/download/) version 18.0 or above:
|
||||
- When installing Node.js, you are recommended to check all checkboxes related to dependencies.
|
||||
|
||||
## Generate a new site
|
||||
|
||||
Generate a new Docusaurus site using the **classic template**.
|
||||
|
||||
The classic template will automatically be added to your project after you run the command:
|
||||
|
||||
```bash
|
||||
npm init docusaurus@latest my-website classic
|
||||
```
|
||||
|
||||
You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.
|
||||
|
||||
The command also installs all necessary dependencies you need to run Docusaurus.
|
||||
|
||||
## Start your site
|
||||
|
||||
Run the development server:
|
||||
|
||||
```bash
|
||||
cd my-website
|
||||
npm run start
|
||||
```
|
||||
|
||||
The `cd` command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.
|
||||
|
||||
The `npm run start` command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.
|
||||
|
||||
Open `docs/intro.md` (this page) and edit some lines: the site **reloads automatically** and displays your changes.
|
89
homelabbing/docs/knowhow/docker/index.md
Normal file
89
homelabbing/docs/knowhow/docker/index.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# Installation
|
||||
|
||||
This guide explains how to install Docker Engine using the official Docker repository.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Root or `sudo` privileges
|
||||
- Supported OS: Debian 10/11/12 or Ubuntu 20.04/22.04
|
||||
|
||||
---
|
||||
|
||||
## 1. Remove old versions (if any)
|
||||
|
||||
```bash
|
||||
sudo apt-get remove docker docker-engine docker.io containerd runc
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Set up the repository
|
||||
|
||||
### 2.1 Install required packages
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
ca-certificates \
|
||||
curl \
|
||||
gnupg \
|
||||
lsb-release
|
||||
```
|
||||
|
||||
### 2.2 Add Docker’s official GPG key
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
```
|
||||
|
||||
### 2.3 Set up the Docker repository
|
||||
|
||||
```bash
|
||||
echo \
|
||||
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
|
||||
https://download.docker.com/linux/$(. /etc/os-release && echo \"$ID\") \
|
||||
$(lsb_release -cs) stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Install Docker Engine
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Enable and start the Docker service
|
||||
|
||||
```bash
|
||||
sudo systemctl enable docker
|
||||
sudo systemctl start docker
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Verify installation
|
||||
|
||||
```bash
|
||||
sudo docker run hello-world
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Optional: Add your user to the `docker` group
|
||||
|
||||
```bash
|
||||
sudo usermod -aG docker $USER
|
||||
newgrp docker
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- https://docs.docker.com/engine/install/
|
0
homelabbing/docs/knowhow/index.md
Normal file
0
homelabbing/docs/knowhow/index.md
Normal file
0
homelabbing/docs/knowhow/linux/basics/index.md
Normal file
0
homelabbing/docs/knowhow/linux/basics/index.md
Normal file
0
homelabbing/docs/knowhow/linux/index.md
Normal file
0
homelabbing/docs/knowhow/linux/index.md
Normal file
BIN
homelabbing/docs/software/img/mediastack-diagram.png
Normal file
BIN
homelabbing/docs/software/img/mediastack-diagram.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 263 KiB |
0
homelabbing/docs/software/index.md
Normal file
0
homelabbing/docs/software/index.md
Normal file
101
homelabbing/docs/software/mediastack/introduction.md
Normal file
101
homelabbing/docs/software/mediastack/introduction.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# Introduction
|
||||
|
||||
This documentation describes a self-hosted, Docker-based media automation stack that handles everything from user requests to content playback, fully integrated with Jellyfin as the central media server.
|
||||
|
||||
The stack includes download automation (Usenet), metadata scraping, transcoding, user interface for media requests, monitoring, and search. Everything is containerized and orchestrated with Docker Compose.
|
||||
|
||||
---
|
||||
|
||||
## 1. Prerequisites
|
||||
|
||||
Before continuing, make sure Docker and Docker Compose are installed on your system.
|
||||
You can follow the installation guide here:
|
||||
👉 [Install Docker on Debian/Ubuntu](../../knowhow/docker/)
|
||||
|
||||
---
|
||||
|
||||
## 2. Stack Overview
|
||||
|
||||
The following diagram illustrates how the various components in the media stack interact:
|
||||
|
||||

|
||||
|
||||
**Legend / Component Highlights:**
|
||||
|
||||
- **Jellyfin**: the main media server for playback and library management
|
||||
- **Jellyseerr**: user-facing request portal
|
||||
- **Radarr/Sonarr**: automation for movies and series
|
||||
- **Prowlarr**: indexer aggregator for both Radarr and Sonarr
|
||||
- **SABnzbd**: Usenet downloader
|
||||
- **Tdarr**: automated transcoding engine
|
||||
- **Meilisearch**: search backend for metadata (used by Scraparr/Suggestarr)
|
||||
- **Wizarr**: user invite and account management
|
||||
- **Trailarr & Huntarr**: UI enhancements and support tooling
|
||||
- **Scraparr & Suggestarr**: metadata and suggestion automation
|
||||
|
||||
---
|
||||
|
||||
## 3. Directory Structure
|
||||
|
||||
Your directory tree is organized to clearly separate persistent data and component configuration:
|
||||
|
||||
```
|
||||
/mediastack
|
||||
├── 4k-radarr # Radarr instance for 4K content
|
||||
├── jellyfin # Config/data for Jellyfin
|
||||
├── jellyseerr # Request frontend
|
||||
├── radarr # Main movie automation
|
||||
├── sonarr # Series automation
|
||||
├── sabnzbd # Usenet download client
|
||||
├── tdarr # Transcoding
|
||||
├── prowlarr # Indexer management
|
||||
├── wizarr # Invite portal
|
||||
├── postgres # Database service
|
||||
├── huntarr, trailarr* # Visual/UX enhancements
|
||||
├── scraparr, suggestarr # Metadata and recommendation tooling
|
||||
├── cache/
|
||||
│ ├── jellyfin
|
||||
│ ├── sabnzbd
|
||||
│ ├── tdarr
|
||||
│ └── meilisearch
|
||||
├── media/
|
||||
│ ├── 4k-filme
|
||||
│ ├── anime_filme
|
||||
│ ├── animes
|
||||
│ ├── filme
|
||||
│ ├── serien
|
||||
│ └── posters
|
||||
```
|
||||
|
||||
> All services are managed using Docker Compose with volume mounts mapped into the above directories.
|
||||
|
||||
---
|
||||
|
||||
## 4. Benefits
|
||||
|
||||
- 🧩 Modular: You can scale or swap components easily
|
||||
- 🐳 Containerized: Consistent and portable deployments
|
||||
- 🧠 Automated: Minimal manual work once configured
|
||||
- 📦 Composable: All services communicate via APIs or shared volumes
|
||||
- 🔐 Local-first & private
|
||||
|
||||
---
|
||||
|
||||
## 5. Next Steps
|
||||
|
||||
- Set up Docker and Docker Compose if you haven't yet
|
||||
- Start configuring the services one by one (see individual `.md` files)
|
||||
- Secure access via reverse proxy (e.g., Traefik or Nginx)
|
||||
- Enjoy your fully automated media center 🎬
|
||||
|
||||
---
|
||||
|
||||
## Links
|
||||
|
||||
- Jellyfin: https://jellyfin.org
|
||||
- Jellyseerr: https://github.com/Fallenbagel/jellyseerr
|
||||
- Tdarr: https://github.com/HaveAGitGat/Tdarr
|
||||
- SABnzbd: https://sabnzbd.org
|
||||
- Radarr: https://radarr.video
|
||||
- Sonarr: https://sonarr.tv
|
||||
- Prowlarr: https://github.com/Prowlarr/Prowlarr
|
@@ -0,0 +1,82 @@
|
||||
# Installation
|
||||
|
||||
This guide shows you how to install [Jellyfin](https://jellyfin.org/) via Docker Compose. Make sure Docker Engine is already installed on your system.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker Engine installed (follow the official guide linked above)
|
||||
- Docker Compose available
|
||||
- Linux host system
|
||||
|
||||
---
|
||||
|
||||
## 1. Create a project directory
|
||||
|
||||
```bash
|
||||
mkdir jellyfin
|
||||
cd jellyfin
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Create `docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
jellyfin:
|
||||
image: jellyfin/jellyfin
|
||||
container_name: jellyfin
|
||||
user: uid:gid # replace uid:gid with your actual user ID and group ID
|
||||
network_mode: "host" # optional: needed for DLNA and certain integrations
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- ./cache:/cache
|
||||
- /path/to/media:/media
|
||||
# Add more media folders if needed
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- JELLYFIN_PublishedServerUrl=http://your-domain-or-ip
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Start Jellyfin
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Access Jellyfin
|
||||
|
||||
Open a browser and navigate to `http://<your-host-ip>:8096` to begin setup via the web UI.
|
||||
|
||||
---
|
||||
|
||||
## 5. (Optional) Manage updates
|
||||
|
||||
When a new version is available:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Ensure user ID (`uid`) and group ID (`gid`) match your Linux user to prevent permissions issues.
|
||||
- Host network mode is required for DLNA and some integrations only; you can remove it if not needed.
|
||||
- This setup uses bind-mounted folders (`./config`, `./cache`, `/path/to/media`) for persistent data.
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- Official Docker installation guide: https://docs.docker.com/engine/install/
|
||||
- Jellyfin Docker Compose instructions
|
@@ -0,0 +1,60 @@
|
||||
# Introduction
|
||||
|
||||
**Jellyfin** is a free, open-source media server software that lets you collect, manage, and stream your personal media—such as movies, TV shows, music, and photos—across devices. It is a community-driven alternative to proprietary platforms like Plex and Emby.
|
||||
|
||||
---
|
||||
|
||||
## Key Features
|
||||
|
||||
- 🆓 **Completely Free**: No paid licenses, subscriptions, or locked features.
|
||||
- 🛡️ **Privacy-Focused**: No telemetry, no third-party tracking.
|
||||
- 📺 **Streaming**: Access your media from web browsers, smart TVs, mobile apps, or Kodi.
|
||||
- 🧠 **Metadata Management**: Automatic retrieval of posters, fanart, episode guides, and more.
|
||||
- 🎚️ **Transcoding**: On-the-fly conversion for devices with limited format support.
|
||||
- 🎛️ **Plugin System**: Extend functionality with community-made plugins.
|
||||
|
||||
---
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
- **Server**: Windows, Linux, macOS, Docker, and more
|
||||
- **Clients**:
|
||||
- Web browser
|
||||
- Android / iOS apps
|
||||
- Smart TVs (via apps or DLNA)
|
||||
- Kodi (via Jellyfin add-on)
|
||||
- Chromecast
|
||||
|
||||
---
|
||||
|
||||
## Ideal Use Cases
|
||||
|
||||
- Home media streaming over LAN or internet
|
||||
- Centralized media hub for a household
|
||||
- Replacement for paid services (e.g., Plex, Netflix for local content)
|
||||
|
||||
---
|
||||
|
||||
## Comparison to Plex & Emby
|
||||
|
||||
| Feature | Jellyfin | Plex | Emby |
|
||||
|--------------------|-----------------|------------------|------------------|
|
||||
| Open Source | ✅ Yes | ❌ No | ⚠️ Partial |
|
||||
| Free Features | ✅ All | ❌ Some Locked | ⚠️ Limited |
|
||||
| No Account Needed | ✅ Yes | ❌ No | ⚠️ Mostly |
|
||||
| Community-Driven | ✅ 100% | ❌ | ⚠️ Limited |
|
||||
|
||||
---
|
||||
|
||||
## Quick Start
|
||||
|
||||
If you haven’t installed Jellyfin yet, check the [Docker Compose installation guide](./jellyfin-docker-compose.md) or visit the [official documentation](https://jellyfin.org/docs/).
|
||||
|
||||
---
|
||||
|
||||
## Links
|
||||
|
||||
- 🌐 Website: https://jellyfin.org
|
||||
- 📘 Docs: https://jellyfin.org/docs/
|
||||
- 🐙 GitHub: https://github.com/jellyfin/jellyfin
|
||||
- 💬 Community: https://matrix.to/#/#jellyfin:matrix.org
|
@@ -0,0 +1,95 @@
|
||||
# Installation
|
||||
|
||||
[Jellyseerr](https://github.com/Fallenbagel/jellyseerr) is a free and open-source request management and media discovery tool for Jellyfin. It allows users to search for and request media directly from your Jellyfin library or through external indexers.
|
||||
|
||||
---
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker and Docker Compose installed
|
||||
- A running Jellyfin instance (optional but recommended)
|
||||
- Optional: Sonarr, Radarr, and download clients for full automation
|
||||
|
||||
---
|
||||
|
||||
## 1. Create Project Directory
|
||||
|
||||
```bash
|
||||
mkdir jellyseerr
|
||||
cd jellyseerr
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Create `docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
services:
|
||||
jellyseerr:
|
||||
image: fallenbagel/jellyseerr:latest
|
||||
container_name: jellyseerr
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "5055:5055"
|
||||
environment:
|
||||
- LOG_LEVEL=info
|
||||
volumes:
|
||||
- ./config:/app/config
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Start Jellyseerr
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Access Web UI
|
||||
|
||||
Open your browser and go to:
|
||||
|
||||
```
|
||||
http://<your-server-ip>:5055
|
||||
```
|
||||
|
||||
You'll be guided through the setup process:
|
||||
- Create admin account
|
||||
- Connect Jellyfin server
|
||||
- (Optional) Connect Sonarr, Radarr, etc.
|
||||
|
||||
---
|
||||
|
||||
## 5. Update Instructions
|
||||
|
||||
To update Jellyseerr:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Optional: Enable Reverse Proxy
|
||||
|
||||
To expose Jellyseerr via a domain name (e.g. `requests.example.com`), set up a reverse proxy using [Traefik](https://doc.traefik.io/traefik/), Nginx, or Caddy. A basic Traefik label example:
|
||||
|
||||
```yaml
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.jellyseerr.rule=Host(`requests.example.com`)"
|
||||
- "traefik.http.routers.jellyseerr.entrypoints=websecure"
|
||||
- "traefik.http.routers.jellyseerr.tls.certresolver=myresolver"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- Jellyseerr GitHub: https://github.com/Fallenbagel/jellyseerr
|
||||
- Docker Hub: https://hub.docker.com/r/fallenbagel/jellyseerr
|
||||
- Official Documentation: https://docs.jellyseerr.com
|
@@ -0,0 +1,61 @@
|
||||
# Introduction
|
||||
|
||||
[**Jellyseerr**](https://docs.jellyseerr.dev/) is a free and open-source media request and discovery platform designed specifically for [**Jellyfin**](https://jellyfin.org). It provides a user-friendly interface for browsing, searching, and requesting movies and TV shows, bridging the gap between your users and your media automation stack (e.g., Jellyfin + Sonarr/Radarr).
|
||||
|
||||
---
|
||||
|
||||
## Key Features
|
||||
|
||||
- 🔎 **Search & Discover**: Browse and search for movies and series from TMDB.
|
||||
- 🎯 **Direct Requests**: Request content directly from the UI, linked to Sonarr and Radarr.
|
||||
- 🔐 **User Management**: Role-based permissions and Jellyfin authentication.
|
||||
- 📅 **Release Tracking**: View upcoming or recently added media.
|
||||
- 💬 **Request Comments**: Users can comment and track the status of their requests.
|
||||
- 🌍 **Multi-language** support with a responsive web UI.
|
||||
|
||||
---
|
||||
|
||||
## Target Audience
|
||||
|
||||
- Jellyfin server admins who want to delegate content requests to users
|
||||
- Home media server users looking to streamline their request workflow
|
||||
- Those looking for a self-hosted alternative to Overseerr (Plex-only)
|
||||
|
||||
---
|
||||
|
||||
## Jellyseerr vs Overseerr
|
||||
|
||||
| Feature | Jellyseerr | Overseerr |
|
||||
|-----------------------------|------------------|---------------|
|
||||
| Media Server Integration | ✅ Jellyfin only | ❌ Plex only |
|
||||
| Open Source | ✅ Yes | ✅ Yes |
|
||||
| Actively Maintained | ✅ Yes | ✅ Yes |
|
||||
| UI and Features | ⭐ Comparable | ⭐ Comparable |
|
||||
| Login with Media Server | ✅ Jellyfin SSO | ✅ Plex OAuth |
|
||||
|
||||
---
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **User logs in** (via Jellyfin)
|
||||
2. **Searches for media** via TMDB integration
|
||||
3. **Requests are submitted** through the UI
|
||||
4. **Sonarr/Radarr handle automation** (optional)
|
||||
5. **Jellyfin picks up downloaded content automatically**
|
||||
|
||||
---
|
||||
|
||||
## Requirements
|
||||
|
||||
- Jellyfin server
|
||||
- Docker or Node.js environment
|
||||
- (Optional) Sonarr, Radarr, and download clients (e.g., qBittorrent, NZBGet)
|
||||
|
||||
---
|
||||
|
||||
## Links
|
||||
|
||||
- 🌐 Project: https://github.com/Fallenbagel/jellyseerr
|
||||
- 📘 Docs: https://docs.jellyseerr.com
|
||||
- 🐳 Docker Hub: https://hub.docker.com/r/fallenbagel/jellyseerr
|
||||
- 💬 Community: https://discord.gg/mVJcS4tq3q
|
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"label": "Tutorial - Basics",
|
||||
"position": 2,
|
||||
"link": {
|
||||
"type": "generated-index",
|
||||
"description": "5 minutes to learn the most important Docusaurus concepts."
|
||||
}
|
||||
}
|
@@ -1,23 +0,0 @@
|
||||
---
|
||||
sidebar_position: 6
|
||||
---
|
||||
|
||||
# Congratulations!
|
||||
|
||||
You have just learned the **basics of Docusaurus** and made some changes to the **initial template**.
|
||||
|
||||
Docusaurus has **much more to offer**!
|
||||
|
||||
Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**.
|
||||
|
||||
Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610)
|
||||
|
||||
## What's next?
|
||||
|
||||
- Read the [official documentation](https://docusaurus.io/)
|
||||
- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config)
|
||||
- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration)
|
||||
- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout)
|
||||
- Add a [search bar](https://docusaurus.io/docs/search)
|
||||
- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase)
|
||||
- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support)
|
@@ -1,34 +0,0 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Create a Blog Post
|
||||
|
||||
Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed...
|
||||
|
||||
## Create your first Post
|
||||
|
||||
Create a file at `blog/2021-02-28-greetings.md`:
|
||||
|
||||
```md title="blog/2021-02-28-greetings.md"
|
||||
---
|
||||
slug: greetings
|
||||
title: Greetings!
|
||||
authors:
|
||||
- name: Joel Marcey
|
||||
title: Co-creator of Docusaurus 1
|
||||
url: https://github.com/JoelMarcey
|
||||
image_url: https://github.com/JoelMarcey.png
|
||||
- name: Sébastien Lorber
|
||||
title: Docusaurus maintainer
|
||||
url: https://sebastienlorber.com
|
||||
image_url: https://github.com/slorber.png
|
||||
tags: [greetings]
|
||||
---
|
||||
|
||||
Congratulations, you have made your first post!
|
||||
|
||||
Feel free to play around and edit this post as much as you like.
|
||||
```
|
||||
|
||||
A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings).
|
@@ -1,57 +0,0 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Create a Document
|
||||
|
||||
Documents are **groups of pages** connected through:
|
||||
|
||||
- a **sidebar**
|
||||
- **previous/next navigation**
|
||||
- **versioning**
|
||||
|
||||
## Create your first Doc
|
||||
|
||||
Create a Markdown file at `docs/hello.md`:
|
||||
|
||||
```md title="docs/hello.md"
|
||||
# Hello
|
||||
|
||||
This is my **first Docusaurus document**!
|
||||
```
|
||||
|
||||
A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello).
|
||||
|
||||
## Configure the Sidebar
|
||||
|
||||
Docusaurus automatically **creates a sidebar** from the `docs` folder.
|
||||
|
||||
Add metadata to customize the sidebar label and position:
|
||||
|
||||
```md title="docs/hello.md" {1-4}
|
||||
---
|
||||
sidebar_label: 'Hi!'
|
||||
sidebar_position: 3
|
||||
---
|
||||
|
||||
# Hello
|
||||
|
||||
This is my **first Docusaurus document**!
|
||||
```
|
||||
|
||||
It is also possible to create your sidebar explicitly in `sidebars.js`:
|
||||
|
||||
```js title="sidebars.js"
|
||||
export default {
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
// highlight-next-line
|
||||
'hello',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
},
|
||||
],
|
||||
};
|
||||
```
|
@@ -1,43 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Create a Page
|
||||
|
||||
Add **Markdown or React** files to `src/pages` to create a **standalone page**:
|
||||
|
||||
- `src/pages/index.js` → `localhost:3000/`
|
||||
- `src/pages/foo.md` → `localhost:3000/foo`
|
||||
- `src/pages/foo/bar.js` → `localhost:3000/foo/bar`
|
||||
|
||||
## Create your first React Page
|
||||
|
||||
Create a file at `src/pages/my-react-page.js`:
|
||||
|
||||
```jsx title="src/pages/my-react-page.js"
|
||||
import React from 'react';
|
||||
import Layout from '@theme/Layout';
|
||||
|
||||
export default function MyReactPage() {
|
||||
return (
|
||||
<Layout>
|
||||
<h1>My React page</h1>
|
||||
<p>This is a React page</p>
|
||||
</Layout>
|
||||
);
|
||||
}
|
||||
```
|
||||
|
||||
A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page).
|
||||
|
||||
## Create your first Markdown Page
|
||||
|
||||
Create a file at `src/pages/my-markdown-page.md`:
|
||||
|
||||
```mdx title="src/pages/my-markdown-page.md"
|
||||
# My Markdown page
|
||||
|
||||
This is a Markdown page
|
||||
```
|
||||
|
||||
A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page).
|
@@ -1,31 +0,0 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
# Deploy your site
|
||||
|
||||
Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**).
|
||||
|
||||
It builds your site as simple **static HTML, JavaScript and CSS files**.
|
||||
|
||||
## Build your site
|
||||
|
||||
Build your site **for production**:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
The static files are generated in the `build` folder.
|
||||
|
||||
## Deploy your site
|
||||
|
||||
Test your production build locally:
|
||||
|
||||
```bash
|
||||
npm run serve
|
||||
```
|
||||
|
||||
The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/).
|
||||
|
||||
You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**).
|
@@ -1,152 +0,0 @@
|
||||
---
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Markdown Features
|
||||
|
||||
Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**.
|
||||
|
||||
## Front Matter
|
||||
|
||||
Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/):
|
||||
|
||||
```text title="my-doc.md"
|
||||
// highlight-start
|
||||
---
|
||||
id: my-doc-id
|
||||
title: My document title
|
||||
description: My document description
|
||||
slug: /my-custom-url
|
||||
---
|
||||
// highlight-end
|
||||
|
||||
## Markdown heading
|
||||
|
||||
Markdown text with [links](./hello.md)
|
||||
```
|
||||
|
||||
## Links
|
||||
|
||||
Regular Markdown links are supported, using url paths or relative file paths.
|
||||
|
||||
```md
|
||||
Let's see how to [Create a page](/create-a-page).
|
||||
```
|
||||
|
||||
```md
|
||||
Let's see how to [Create a page](./create-a-page.md).
|
||||
```
|
||||
|
||||
**Result:** Let's see how to [Create a page](./create-a-page.md).
|
||||
|
||||
## Images
|
||||
|
||||
Regular Markdown images are supported.
|
||||
|
||||
You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`):
|
||||
|
||||
```md
|
||||

|
||||
```
|
||||
|
||||

|
||||
|
||||
You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them:
|
||||
|
||||
```md
|
||||

|
||||
```
|
||||
|
||||
## Code Blocks
|
||||
|
||||
Markdown code blocks are supported with Syntax highlighting.
|
||||
|
||||
````md
|
||||
```jsx title="src/components/HelloDocusaurus.js"
|
||||
function HelloDocusaurus() {
|
||||
return <h1>Hello, Docusaurus!</h1>;
|
||||
}
|
||||
```
|
||||
````
|
||||
|
||||
```jsx title="src/components/HelloDocusaurus.js"
|
||||
function HelloDocusaurus() {
|
||||
return <h1>Hello, Docusaurus!</h1>;
|
||||
}
|
||||
```
|
||||
|
||||
## Admonitions
|
||||
|
||||
Docusaurus has a special syntax to create admonitions and callouts:
|
||||
|
||||
```md
|
||||
:::tip My tip
|
||||
|
||||
Use this awesome feature option
|
||||
|
||||
:::
|
||||
|
||||
:::danger Take care
|
||||
|
||||
This action is dangerous
|
||||
|
||||
:::
|
||||
```
|
||||
|
||||
:::tip My tip
|
||||
|
||||
Use this awesome feature option
|
||||
|
||||
:::
|
||||
|
||||
:::danger Take care
|
||||
|
||||
This action is dangerous
|
||||
|
||||
:::
|
||||
|
||||
## MDX and React Components
|
||||
|
||||
[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**:
|
||||
|
||||
```jsx
|
||||
export const Highlight = ({children, color}) => (
|
||||
<span
|
||||
style={{
|
||||
backgroundColor: color,
|
||||
borderRadius: '20px',
|
||||
color: '#fff',
|
||||
padding: '10px',
|
||||
cursor: 'pointer',
|
||||
}}
|
||||
onClick={() => {
|
||||
alert(`You clicked the color ${color} with label ${children}`)
|
||||
}}>
|
||||
{children}
|
||||
</span>
|
||||
);
|
||||
|
||||
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
|
||||
|
||||
This is <Highlight color="#1877F2">Facebook blue</Highlight> !
|
||||
```
|
||||
|
||||
export const Highlight = ({children, color}) => (
|
||||
<span
|
||||
style={{
|
||||
backgroundColor: color,
|
||||
borderRadius: '20px',
|
||||
color: '#fff',
|
||||
padding: '10px',
|
||||
cursor: 'pointer',
|
||||
}}
|
||||
onClick={() => {
|
||||
alert(`You clicked the color ${color} with label ${children}`);
|
||||
}}>
|
||||
{children}
|
||||
</span>
|
||||
);
|
||||
|
||||
This is <Highlight color="#25c2a0">Docusaurus green</Highlight> !
|
||||
|
||||
This is <Highlight color="#1877F2">Facebook blue</Highlight> !
|
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"label": "Tutorial - Extras",
|
||||
"position": 3,
|
||||
"link": {
|
||||
"type": "generated-index"
|
||||
}
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB |
Binary file not shown.
Before Width: | Height: | Size: 27 KiB |
@@ -1,55 +0,0 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Manage Docs Versions
|
||||
|
||||
Docusaurus can manage multiple versions of your docs.
|
||||
|
||||
## Create a docs version
|
||||
|
||||
Release a version 1.0 of your project:
|
||||
|
||||
```bash
|
||||
npm run docusaurus docs:version 1.0
|
||||
```
|
||||
|
||||
The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created.
|
||||
|
||||
Your docs now have 2 versions:
|
||||
|
||||
- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs
|
||||
- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs**
|
||||
|
||||
## Add a Version Dropdown
|
||||
|
||||
To navigate seamlessly across versions, add a version dropdown.
|
||||
|
||||
Modify the `docusaurus.config.js` file:
|
||||
|
||||
```js title="docusaurus.config.js"
|
||||
export default {
|
||||
themeConfig: {
|
||||
navbar: {
|
||||
items: [
|
||||
// highlight-start
|
||||
{
|
||||
type: 'docsVersionDropdown',
|
||||
},
|
||||
// highlight-end
|
||||
],
|
||||
},
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
The docs version dropdown appears in your navbar:
|
||||
|
||||

|
||||
|
||||
## Update an existing version
|
||||
|
||||
It is possible to edit versioned docs in their respective folder:
|
||||
|
||||
- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello`
|
||||
- `docs/hello.md` updates `http://localhost:3000/docs/next/hello`
|
@@ -1,88 +0,0 @@
|
||||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Translate your site
|
||||
|
||||
Let's translate `docs/intro.md` to French.
|
||||
|
||||
## Configure i18n
|
||||
|
||||
Modify `docusaurus.config.js` to add support for the `fr` locale:
|
||||
|
||||
```js title="docusaurus.config.js"
|
||||
export default {
|
||||
i18n: {
|
||||
defaultLocale: 'en',
|
||||
locales: ['en', 'fr'],
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
## Translate a doc
|
||||
|
||||
Copy the `docs/intro.md` file to the `i18n/fr` folder:
|
||||
|
||||
```bash
|
||||
mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/
|
||||
|
||||
cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md
|
||||
```
|
||||
|
||||
Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French.
|
||||
|
||||
## Start your localized site
|
||||
|
||||
Start your site on the French locale:
|
||||
|
||||
```bash
|
||||
npm run start -- --locale fr
|
||||
```
|
||||
|
||||
Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated.
|
||||
|
||||
:::caution
|
||||
|
||||
In development, you can only use one locale at a time.
|
||||
|
||||
:::
|
||||
|
||||
## Add a Locale Dropdown
|
||||
|
||||
To navigate seamlessly across languages, add a locale dropdown.
|
||||
|
||||
Modify the `docusaurus.config.js` file:
|
||||
|
||||
```js title="docusaurus.config.js"
|
||||
export default {
|
||||
themeConfig: {
|
||||
navbar: {
|
||||
items: [
|
||||
// highlight-start
|
||||
{
|
||||
type: 'localeDropdown',
|
||||
},
|
||||
// highlight-end
|
||||
],
|
||||
},
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
The locale dropdown now appears in your navbar:
|
||||
|
||||

|
||||
|
||||
## Build your localized site
|
||||
|
||||
Build your site for a specific locale:
|
||||
|
||||
```bash
|
||||
npm run build -- --locale fr
|
||||
```
|
||||
|
||||
Or build your site to include all the locales at once:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
@@ -10,8 +10,8 @@ import {themes as prismThemes} from 'prism-react-renderer';
|
||||
|
||||
/** @type {import('@docusaurus/types').Config} */
|
||||
const config = {
|
||||
title: 'My Site',
|
||||
tagline: 'Dinosaurs are cool',
|
||||
title: 'Homelabbing',
|
||||
tagline: 'Your guide for a perfect homelab',
|
||||
favicon: 'img/favicon.ico',
|
||||
|
||||
// Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future
|
||||
@@ -89,14 +89,26 @@ const config = {
|
||||
items: [
|
||||
{
|
||||
type: 'docSidebar',
|
||||
sidebarId: 'tutorialSidebar',
|
||||
sidebarId: 'software',
|
||||
position: 'left',
|
||||
label: 'Tutorial',
|
||||
label: 'Software',
|
||||
},
|
||||
{to: '/blog', label: 'Blog', position: 'left'},
|
||||
{
|
||||
href: 'https://github.com/facebook/docusaurus',
|
||||
label: 'GitHub',
|
||||
type: 'docSidebar',
|
||||
sidebarId: 'hardware',
|
||||
position: 'left',
|
||||
label: 'Hardware',
|
||||
},
|
||||
{
|
||||
type: 'docSidebar',
|
||||
sidebarId: 'knowhow',
|
||||
position: 'left',
|
||||
label: 'Know-How',
|
||||
},
|
||||
{to: '/blog', label: 'Blog', position: 'right'},
|
||||
{
|
||||
href: 'https://gitea.js-devop.de/jschaufuss/Homelabbing',
|
||||
label: 'Gitea',
|
||||
position: 'right',
|
||||
},
|
||||
],
|
||||
@@ -108,8 +120,16 @@ const config = {
|
||||
title: 'Docs',
|
||||
items: [
|
||||
{
|
||||
label: 'Tutorial',
|
||||
to: '/docs/intro',
|
||||
label: 'Software',
|
||||
to: '/docs/software/',
|
||||
},
|
||||
{
|
||||
label: 'Hardware',
|
||||
to: '/docs/hardware/',
|
||||
},
|
||||
{
|
||||
label: 'Know-How',
|
||||
to: '/docs/knowhow/',
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -138,8 +158,8 @@ const config = {
|
||||
to: '/blog',
|
||||
},
|
||||
{
|
||||
label: 'GitHub',
|
||||
href: 'https://github.com/facebook/docusaurus',
|
||||
label: 'Gitea',
|
||||
href: 'https://gitea.js-devop.de/jschaufuss/Homelabbing',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
44
homelabbing/package.json
Normal file
44
homelabbing/package.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "homelabbing",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"docusaurus": "docusaurus",
|
||||
"start": "docusaurus start",
|
||||
"build": "docusaurus build",
|
||||
"swizzle": "docusaurus swizzle",
|
||||
"deploy": "docusaurus deploy",
|
||||
"clear": "docusaurus clear",
|
||||
"serve": "docusaurus serve",
|
||||
"write-translations": "docusaurus write-translations",
|
||||
"write-heading-ids": "docusaurus write-heading-ids"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "3.8.1",
|
||||
"@docusaurus/preset-classic": "3.8.1",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
"clsx": "^2.0.0",
|
||||
"prism-react-renderer": "^2.3.0",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "3.8.1",
|
||||
"@docusaurus/types": "3.8.1"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.5%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 3 chrome version",
|
||||
"last 3 firefox version",
|
||||
"last 5 safari version"
|
||||
]
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0"
|
||||
}
|
||||
}
|
@@ -15,21 +15,77 @@
|
||||
@type {import('@docusaurus/plugin-content-docs').SidebarsConfig}
|
||||
*/
|
||||
const sidebars = {
|
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
|
||||
|
||||
// But you can create a sidebar manually
|
||||
/*
|
||||
tutorialSidebar: [
|
||||
'intro',
|
||||
'hello',
|
||||
software: [
|
||||
'software/index',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Tutorial',
|
||||
items: ['tutorial-basics/create-a-document'],
|
||||
label: 'Mediastack',
|
||||
items: [
|
||||
'software/mediastack/introduction',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Jellyfin',
|
||||
items: [
|
||||
'software/mediastack/jellyfin/introduction',
|
||||
'software/mediastack/jellyfin/installation',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Jellyseerr',
|
||||
items: [
|
||||
'software/mediastack/jellyseerr/introduction',
|
||||
'software/mediastack/jellyseerr/installation',
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
hardware: [
|
||||
'hardware/index',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Server',
|
||||
items: [
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Starter-Server',
|
||||
items: ['hardware/server/starter-server/index'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
knowhow: [
|
||||
'knowhow/index',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Linux',
|
||||
items: [
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Basics',
|
||||
items: ['knowhow/linux/basics/index'],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Docker',
|
||||
items: [
|
||||
'knowhow/docker/index',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Docker Compose',
|
||||
items: ['knowhow/docker/docker-compose/index'],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Docker Swarm Mode',
|
||||
items: ['knowhow/docker/docker-swarm/index'],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
*/
|
||||
};
|
||||
|
||||
export default sidebars;
|
||||
|
@@ -19,8 +19,8 @@ function HomepageHeader() {
|
||||
<div className={styles.buttons}>
|
||||
<Link
|
||||
className="button button--secondary button--lg"
|
||||
to="/docs/intro">
|
||||
Docusaurus Tutorial - 5min ⏱️
|
||||
to="/docs/how-to-use-this-guide">
|
||||
How to use this Guide
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user