diff --git a/content/posts/how-to/how-to-install-Opengist-on-your-nas/index.en.md b/content/posts/how-to/how-to-install-Opengist-on-your-nas/index.en.md new file mode 100644 index 0000000..d4cdb31 --- /dev/null +++ b/content/posts/how-to/how-to-install-Opengist-on-your-nas/index.en.md @@ -0,0 +1,135 @@ +--- +title: "Upgrade Your NAS Functionality: How to Build Your Own Opengist Platform" +date: 2023-06-27T18:26:40+08:00 +categories: +- NAS Tutorials +draft: false +toc: true +--- + +## 1. Introduction + +Do you know how you and your friends share documents, tutorials, notes, or code snippets? + +This is a typical use case where you need a dedicated place, a place where you can easily upload, share, view, and manage code. This is why we need to build our own Opengist. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306081450369.png "Pic") + +--- + +## Introducing Opengist + +Opengist is a self-hosted pastebin powered by Git. It is an online platform where you can create, share, and manage your code snippets. It has many features: + +- **Create public or hidden documents/code snippets**: You can create public code snippets or snippets that can only be accessed through a link, depending on your needs. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306081426720.png "Pic") + +- **Clone/Pull/Push code snippets using Git**: You can use familiar Git operations to handle your code snippets. +- **Revision history**: You can see all the modification records of your code snippets and understand their development process. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306081429750.png "Pic") + +- **Code highlighting, support for Markdown and CSV**: Your code will be automatically highlighted and supports Markdown and CSV file formats, making your code more readable. +- **Like/Share code snippets**: You can like other people's code and share your code with others. +- **Search for all code snippets or code snippets from specific users**: Conveniently find the code you need. +- **Light/Dark mode**: Set the interface theme according to your preference. +- **Responsive user interface**: The interface will automatically adapt to your screen size, whether you are on a computer or a mobile phone. + +In addition, as an administrator, you have the following permissions: + +- **Enable or disable registration**: You can control who can register on your Opengist platform. +- **Restrict or remove restrictions on the visibility of snippets for anonymous users**: You can control which code snippets anonymous users can see. +- **Admin panel: Delete users/code snippets, clean up the database/file system by synchronizing code snippets**: You can easily manage your Opengist platform. + +That's the basic introduction to Opengist. Next, I will show you how to build your own Opengist. + +--- + +Installation Steps: + +## 1. Key Point + +`Follow for free` and don't get lost + +## 2. Install Portainer + +Tutorial reference: +[30-second Installation of Portainer, a Must-Have Tool for NAS](/how-to-install-portainer-in-nas/) + +## 3. File Station + +Open File Station and create an `opengist` folder in the docker folder. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306081433610.png "Pic") + +## 4. Create Stack + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061552130.png "Pic") + +## 5. Deployment + +```yaml +version: "3.9" + +``` + +services: + opengist: + container_name: Opengist + image: ghcr.io/thomiceli/opengist:1 + healthcheck: + test: curl -f http://localhost:6157/ || exit 1 + mem_limit: 2g + cpu_shares: 768 + security_opt: + - no-new-privileges:true + restart: on-failure:5 + ports: + - 6157:6157 + #- 2222:2222 # SSH port, if not needed, can be removed + volumes: + - /volume1/docker/opengist:/root/.opengist + environment: + CONFIG: | + log-level: info +``` + +1. Select stack +2. Enter "opengist" in the name field +3. Enter the above code in the editor +4. Click deploy + +## 6. Success + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061556495.png "Pic") + + + +## 7. Usage + +Access the program in your browser: [ip]:[port] + +> The IP is the IP address of your NAS (mine is 172.16.23.106), and the port is defined in the configuration file above. If you followed my tutorial, it would be 6157. + + + +## 8. Register + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306081436748.png "Pic") + + + +## 9. Create gist + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306081445674.png "Pic") + +## 10. Disable registration + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306081445370.png "Pic") + +## Finally + +If you liked this article, please remember to like, bookmark, and follow "Dad's Digital Garden". We will continue to bring you more practical self-hosted application guides. Together, let's take control of our data and create our own digital world! + +If you encounter any problems or have any suggestions during the setup process, feel free to leave a comment below. Let's discuss and learn together. \ No newline at end of file diff --git a/content/posts/how-to/how-to-install-Reactive-Resume-on-your-nas/index.en.md b/content/posts/how-to/how-to-install-Reactive-Resume-on-your-nas/index.en.md new file mode 100644 index 0000000..6264626 --- /dev/null +++ b/content/posts/how-to/how-to-install-Reactive-Resume-on-your-nas/index.en.md @@ -0,0 +1,188 @@ +--- +title: "A New Tool for NAS Users: Create Personalized Resumes with Reactive-Resume to Boost Your Career Competitiveness" +date: 2023-06-27T18:37:01+08:00 +categories: +- NAS Tutorials +draft: false +toc: true +--- + +## 1. Introduction + +A resume plays a crucial role in job hunting, applying for schools, or showcasing personal abilities. + +Many working individuals may have experienced the frustration of working hard on a resume, only to be rejected by HR due to formatting or template issues. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141253235.gif "Pic") + +So, how can you create a professional and appealing resume? + +In today's tutorial, I will help you build a service that allows you to easily create, update, and share your resume: Reactive-Resume. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141252179.png "Pic") + +Why do we need to build our own resume generator? There are two main reasons: + +- It can meet your personalized resume needs, allowing you to freely adjust layouts, choose colors and templates, and even create resumes with dark mode. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141254504.png "Pic") + +- No ads, no user tracking, ensuring the integrity and privacy of your data to the greatest extent. + +## 2. Reactive-Resume: Your Personalized Resume Generator + +Reactive-Resume is an open-source online resume generator with the following main features: + +- **Free**: Reactive-Resume is always free, with no ads or user tracking. +- **Real-time Sync**: You can sync your data across different devices without worrying about data loss. +- **Data Import**: You can import data from LinkedIn or JSON resumes, greatly simplifying the resume creation process. +- **Resume Management**: With just one account, you can manage multiple resumes. +- **Share Resumes**: You can share your resume with others through a unique link or export it as a PDF. +- **Customize Resumes**: You can choose any font from Google Fonts and select various templates and colors, including dark mode. + +Reactive-Resume is a powerful and user-friendly tool that makes resume creation, updating, and sharing simple and easy. + +--- + +Now let's move on to the steps to build it: + +## 1. Key Point + +`Follow for free` to avoid getting lost. + +## 2. Install Portainer + +Tutorial reference: +[30-Second Installation of Portainer, a Must-Have Tool for NAS](/how-to-install-portainer-in-nas/) + +## 3. File Station + +Open File Station and create a `resume_data` folder in the Docker folder. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141256268.png "Pic") + +## 4. Create Stack + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061552130.png "Pic") + +## 5. Deployment + +```yaml +version: "3.8" + +services: + postgres: + image: postgres:alpine + container_name: resume_db + restart: always + volumes: + - /volume1/docker/resume_data:/var/lib/postgresql/data # Save resumes and important service data + healthcheck: + test: ["CMD-SHELL", "pg_isready -U postgres"] + start_period: 15s + interval: 30s + timeout: 30s + retries: 3 + environment: + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres +``` + +```markdown + server: + image: amruthpillai/reactive-resume:server-latest + container_name: resume_server + restart: always + ports: + - 3100:3100 + depends_on: + - postgres + environment: + - PUBLIC_URL=http://172.16.23.106:13000 # Replace with your IP, or domain if publicly mapped + - PUBLIC_SERVER_URL=http://172.16.23.106:3100 # Replace with your IP, or domain if publicly mapped + - POSTGRES_DB=postgres + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=postgres + - SECRET_KEY=change-me-to-something-secure + - POSTGRES_HOST=postgres + - POSTGRES_PORT=5432 + - JWT_SECRET=change-me-to-something-secure + - JWT_EXPIRY_TIME=604800 + + client: + image: amruthpillai/reactive-resume:client-latest + container_name: resume_client + restart: always + ports: + - 13000:3000 + depends_on: + - server + environment: + - PUBLIC_URL=http://172.16.23.106:13000 # Replace with your IP, or domain if publicly mapped + - PUBLIC_SERVER_URL=http://172.16.23.106:3100 # Replace with your IP, or domain if publicly mapped +``` + +1. Select stack +2. Enter "reactive-resume" in the name field +3. Enter the above code in the editor +4. Click deploy + +> Note: Replace PUBLIC_URL and PUBLIC_SERVER_URL with your internal IP address, such as 192.168.1.32:13000, or domain name (public) + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141300579.png "Pic") + +## 6. Success + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061556495.png "Pic") + +## 7. Usage + +Open the program in your browser: [ip]:[port] + +> Replace ip with the IP address of your NAS (in this case, mine is 172.16.23.106), and port with the one defined in the configuration file (if you followed my tutorial, it would be 13000) + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141307218.png "Pic") + +## 8. Register + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141302503.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141302865.png "Pic") + +## 9. Create Resume + +Two ways: + +1. Import from JSON +2. Create new + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141308151.png "Pic") + +## 10. Edit Resume + +### Edit freely, change module names: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141311943.png "Pic") + +### Export and Share + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141310799.png "Pic") + +### Change layout and DIY + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141311553.png "Pic") + +### Multiple templates to choose from + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306141313755.png "Pic") + +## Finally + +Reactive-Resume will be your helpful assistant, helping you stand out among many applicants. + +You can share it with your family, even your wife. I believe this time, your wife will agree to let you buy that NAS you've been longing for 😂 + +If you like this article, please remember to like, bookmark, and follow "Dad's Digital Garden". We will continue to bring you more practical self-hosted application guides. Together, let's take control of our own data and create our own digital world! + +If you encounter any problems during the setup process or have any suggestions, feel free to leave a comment below for discussion and learning. \ No newline at end of file diff --git a/content/posts/how-to/how-to-install-RomM-on-your-nas/index.en.md b/content/posts/how-to/how-to-install-RomM-on-your-nas/index.en.md new file mode 100644 index 0000000..7ccc989 --- /dev/null +++ b/content/posts/how-to/how-to-install-RomM-on-your-nas/index.en.md @@ -0,0 +1,178 @@ +--- +title: "Building Your RomM Game Library: How to Set Up Your RomM Game Library?" +date: 2023-06-27T18:47:37+08:00 +categories: +- NAS Tutorials +draft: false +toc: true +--- + +## 1. Introduction + +If you are like me, a retro game enthusiast who has collected many old game ROMs, but struggles to organize them properly on your NAS, then RomM might be able to solve your problem. + +It can manage and organize all your games and can be accessed through a web browser. Additionally, you can enrich your game information using RomM. + +![Alt text](https://github.com/zurdi15/romm/raw/master/.github/screenshots/gallery.png "Pic") + +--- + +## Introducing RomM + +RomM is a game library manager focused on retro games. You can manage and organize all your games through a web browser. Inspired by Jellyfin, it allows you to manage all your games using a modern interface and enriches your game information using IGDB metadata. + +RomM has powerful features and functionalities: + +- It can scan your game library (all or by platform) and enrich it with IGDB metadata. +- You can access your game library through your web browser. + +![Alt text](https://github.com/zurdi15/romm/raw/master/.github/screenshots/home.png "Pic") + +- If the scan results are inaccurate, you can choose matching IGDB results. + +![Alt text](https://github.com/zurdi15/romm/raw/master/.github/screenshots/search.png "Pic") + +- RomM is compatible with EmuDeck file structure. +- RomM supports multi-file games. +- You can download games directly from your web browser. +- You can edit your game files directly from your web browser. +- RomM supports regions, revisions/versions, and additional tags. +- RomM can use SQLite or MaridDB (default is SQLite). +- Mobile support + +![Alt text](https://github.com/zurdi15/romm/raw/master/.github/screenshots/m_gallery.png "Pic") + +--- + +Setup Steps: + +## 1. Key Points + +`Follow for free` to stay on track + +## 2. Install Portainer + +Tutorial reference: +[Install Portainer, a Must-Have Tool for NAS, in 30 Seconds](/how-to-install-portainer-in-nas/) + +## 3. File Station + +Open File Station and navigate to the docker folder, create a `romm` folder + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262345210.png "Pic") + +1. Create a `romm` folder under the docker directory. +2. Under the `romm` folder, create the following subfolders: `database` (I chose SQLite), `resources` (static resources downloaded by RomM, such as covers and descriptions), and `library` (your game directory). + +The author provides two supported `directory structures`, and I chose the `first one`: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262345528.png "Pic") + +## 4. Create an IGDB Account + +1. Register on [Twitch](https://dev.twitch.tv/login). +2. Enable two-factor authentication, you can use Google Authenticator [enabled](https://www.twitch.tv/settings/security). + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262345720.png "Pic") + +1. Register your Twitch application on this page [Twitch Developer Portal](https://dev.twitch.tv/console/apps/create). +2. Create a secret key. +3. Copy the client ID and secret key. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262345436.png "Pic") + +## 5. Create a Stack + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061552130.png "Pic") + +## 6. Deploy the Code + +```yaml +version: '3' +services: + romm: + image: zurdi15/romm:latest + container_name: romm + environment: + - ROMM_DB_DRIVER=sqlite # Here I chose sqlite, you can choose mysql + - CLIENT_ID=XXX # Fill in the client ID from the previous step + - CLIENT_SECRET=XXX # Fill in the client secret from the previous step + volumes: + - '/volume1/docker/library:/romm/library' + - '/volume1/docker/resources:/romm/resources' + - '/volume1/docker/database:/romm/database' + dns: + - 8.8.8.8 + ports: + - 13280:80 + restart: "unless-stopped" +``` + +1. Choose stack +2. Enter "romm" in the name field +3. Enter the above code in the editor +4. Click deploy + +## 7. Success + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061556495.png "Pic") + +## 8. Usage + +Access the program in your browser: [ip]:[port] + +> The IP is the IP address of your NAS (mine is 172.16.23.106), and the port is defined in the configuration file above. If you followed my tutorial, it should be 13280. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262346663.png "Pic") + +## 9. Add ROMs + +Place ROM files in the directory you set up earlier, following the specified format. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262346631.png "Pic") + +## 10. Start scanning + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262346339.png "Pic") + +If the file names are in the correct format, the covers and descriptions will be scanned automatically. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262347274.png "Pic") + +If the file names are not in the correct format, manual scanning may be required. + +Select a ROM. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262347280.png "Pic") + +After searching, you can select "Rename Rom" to modify the file name. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262347425.png "Pic") + +## 10. Finally, enjoy + +When I feel nostalgic and want to play on my 3DS, I can simply download the ROMs. + +Select multiple files, including DLCs, and download them together. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/202306262347828.png "Pic") + +## Finally + +Romm is still not perfect, as it only supports English names and has rigid matching rules. + +But there is great potential for the future, and the following features are currently being developed: + +1. Online upload +2. Save management +3. Custom covers + +I am also interested in this project and intend to contribute to it. In the future, I may: + +- Add Chinese language support +- Enable ROM downloads (may use qb, jackett) +- Integrate emulators (the author and many other interested people are working on this) + +If you like this article, please remember to like, bookmark, and follow "Dad's Digital Garden". We will continue to bring you more practical self-hosted application guides. Together, let's take control of our own data and create our own digital world! + +If you encounter any problems or have any suggestions during the setup process, feel free to leave a comment below. Let's explore and learn together. \ No newline at end of file diff --git a/content/posts/how-to/how-to-install-Stirling-PDF-on-your-nas/index.en.md b/content/posts/how-to/how-to-install-Stirling-PDF-on-your-nas/index.en.md new file mode 100644 index 0000000..84197eb --- /dev/null +++ b/content/posts/how-to/how-to-install-Stirling-PDF-on-your-nas/index.en.md @@ -0,0 +1,143 @@ +--- +title: "NAS Enthusiasts' Gospel, the Ultimate PDF Processing Tool to Enhance the Value of Your NAS!" +date: 2023-06-27T18:30:40+08:00 +categories: +- NAS Tutorials +draft: false +toc: true +--- + +## 1. Introduction + +We have all experienced the frustration of dealing with a pile of PDF documents, whether it's merging several PDFs, splitting a PDF file, rearranging pages in a PDF, or any other PDF-related tasks. Online tools you find either bombard you with ads, require payment, or raise concerns about privacy. If you're facing these issues, then the self-hosted PDF processing tool, Stirling-PDF, might be the solution you need. + +--- + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121301570.png "Pic") + +## Introducing Stirling-PDF + +Stirling-PDF is a powerful locally hosted web-based PDF manipulation tool that runs on Docker. It allows you to perform various operations on PDF files, such as splitting, merging, converting, rearranging, adding images, rotating, compressing, and more. It can handle all your PDF needs. + +All files and PDFs exist only on the client side, and any downloaded files are deleted from the server at that time. + +> You don't have to worry about this service taking up too much space. It's the most hassle-free and space-saving PDF assistant you can find. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121302070.gif "Pic") + +#### Key Features: + +- Full web GUI for merging/splitting/rotating/moving PDFs and their pages. +- Splitting PDF into multiple files +- Merging multiple PDFs into one +- Converting PDF to images and vice versa +- Fixing PDFs +- Detecting and removing blank pages +- Comparing two PDFs and displaying text differences +- Adding images to PDFs +- Rotating PDFs in 90-degree increments +- Compressing PDFs to reduce file size +- Adding and removing passwords +- Adding watermarks +- Converting any common file to PDF +- Converting PDF to Word/Powerpoint/other formats +- Extracting images from PDFs +- Performing OCR on PDFs + +--- + +Alright, enough talk. Let's move on to the specific setup steps: + +## 1. Key Point + +`Click to follow for free` and never get lost. + +## 2. Install Portainer + +Tutorial reference: +[Install Portainer, a Must-Have Tool for NAS, in 30 Seconds](/how-to-install-portainer-in-nas/) + +## 3. File Station + +Open File Station and create a `stirling-pdf` folder in the docker folder. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121329615.png "Pic") + +## 4. Create Stack + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061552130.png "Pic") + +## 5. Deploy the Code + +```yaml +version: '3.3' +services: + stirling-pdf: + image: frooodle/s-pdf:latest + ports: + - '13260:8080' + volumes: + - /volume1/docker/stirling-pdf:/usr/share/tesseract-ocr/4.00/tessdata #Required for extra OCR languages + environment: + APP_LOCALE: zh_CN + APP_HOME_NAME: NasDaddy PDF # Main title for the web interface + APP_HOME_DESCRIPTION: Dad's PDF Toolbox # Website description + APP_NAVBAR_NAME: NasDaddy PDF # Title for the navigation page + APP_ROOT_PATH: / +``` + +1. Select stack. +2. Enter `stirling-pdf` in the name field. +3. Enter the above code in the editor. +4. Click on deploy. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121254282.png "Pic") + +## 6. Success + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061556495.png "Pic") + +## 7. Usage + +Access the program in your browser: [ip]:[port] + +> Replace `[ip]` with the IP address of your NAS (mine is 172.16.23.106 here), and `[port]` with the port defined in the configuration file. If you followed my tutorial, it would be 13260. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121255093.png "Pic") + +## 8. Chinese Support for OCR + +Stirling-PDF has a very powerful OCR function. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121320624.gif "Pic") + +By applying OCR to the images in the PDF, the text can be extracted, just like this: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121321938.png "Pic") + +By default, OCR uses the English character library. If we want to support Chinese, we need to download the Chinese training package ourselves: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121322707.png "Pic") + +1. Download link: + + stirling-pdf-traindata: [Access code: xztp](https://pan.baidu.com/s/1_LguqxLBqWxn5fHJq_IWwQ) + +2. There are two training packages available: + + - normal (larger, more comprehensive, slower recognition speed) + - fast (smaller, more streamlined, faster recognition speed) + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121340441.png "Pic") + +3. Place the training files in the following location: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306121331819.png "Pic") + +## Finally + +By building your own Stirling-PDF, you can not only process PDFs anytime and anywhere, but also ensure that your data is always under your control and not accessible to unnecessary third parties. + +If you like this article, please remember to like, bookmark, and follow "Dad's Digital Garden". We will continue to bring more practical self-built application guides. Together, let's take control of our own data and create our own digital world! + +If you encounter any problems during the setup process or have any suggestions, please feel free to leave a comment below for discussion and learning. \ No newline at end of file diff --git a/content/posts/how-to/how-to-install-TubeArchivist-on-your-nas/index.en.md b/content/posts/how-to/how-to-install-TubeArchivist-on-your-nas/index.en.md new file mode 100644 index 0000000..5926f3f --- /dev/null +++ b/content/posts/how-to/how-to-install-TubeArchivist-on-your-nas/index.en.md @@ -0,0 +1,295 @@ +--- +title: "How to Play with NAS? Build TubeArchivist Yourself, Watch YouTube Learning Videos Offline with Automatic Chinese Subtitles and Subscription Downloads" +date: 2023-06-27T18:41:38+08:00 +categories: +- NAS Tutorials +draft: false +toc: true +--- + + +## 1. Introduction + +Perhaps like me, you often search for various interesting and educational videos on YouTube, but + +- **Messy bookmarks**: Too much knowledge, `constantly bookmarking but never watching` +- **Unable to download**: Want to `download, but always troublesome` +- **Difficult to find videos**: As the number of bookmarks increases, it becomes very difficult to find specific videos +- **Video preservation**: If the author deletes a video, you may never be able to see these wonderful videos again + +Today, I will introduce how to use NAS to build TubeArchivist, helping you organize, search, and watch your YouTube videos offline. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191504270.png "Pic") + + + +> This tutorial requires having a learning environment in a foreign company or being abroad. It does not involve this part of the content. + +--- + +## Introduction to TubeArchivist + +TubeArchivist is a software that allows you to subscribe to your favorite YouTube channels, download and index videos, making them searchable. It can also play videos and keep track of your watched and unwatched videos. + +Here are the main features of TubeArchivist: + +- **Subscribe to your favorite YouTube channels (automatic downloads)**: Simply enter the URL of the channel, and TubeArchivist will automatically subscribe to the channel and start downloading its videos. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191507114.png "Pic") + +- **Download videos**: TubeArchivist can help you download videos from the channels you subscribe to, so you can watch them offline. +- **Powerful search function**: TubeArchivist indexes your video collection using YouTube's metadata, allowing you to easily search and organize them through the web interface. + +**Search by title** + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191508747.png "Pic") + +**Search within video content!** + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191508059.png "Pic") + +- **Play videos**: TubeArchivist is not just a video management tool, it is also a video player that can directly play your favorite videos. +- **Track watched and unwatched videos**: TubeArchivist can keep track of the videos you have watched and the ones you haven't, helping you better manage your collection. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191509481.png "Pic") + +**Automatic download of Chinese subtitles**: TubeArchivist automatically downloads Chinese subtitles, removing language barriers from your learning experience. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191535010.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191535070.png "Pic") + + + +**You can even integrate with Emby Jellyfin**: TubeArchivist automatically downloads Chinese subtitles, removing language barriers from your learning experience. + + + +TubeArchivist is a powerful tool that allows you to better manage and enjoy your YouTube video collection. + +Here is a tutorial on how to build TubeArchivist: + +## 1. Key Points + +`Follow for free`, don't get lost + +## 2. Install Portainer + +Tutorial reference: +[30-Second Installation of Portainer, a Must-Have Tool for NAS](/how-to-install-portainer-in-nas/) + +## 3. File Station + +Open the "docker" folder in File Station and create a folder named "TubeArchivist". + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191512612.png "Pic") + +## 4. Create stack + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061552130.png "Pic") + +## 5. Deploy the code + +```yaml +version: '3.3' + +services: + tubearchivist: + container_name: tubearchivist + restart: unless-stopped + image: bbilly1/tubearchivist + ports: + - 18001:8000 + volumes: + - /volume1/docker/tubeArchivist/media_data:/youtube + - /volume1/docker/tubeArchivist/cache_data:/cache + environment: + - ES_URL=http://archivist-es:9200 # needs protocol e.g. http and port + - REDIS_HOST=archivist-redis # don't add protocol + - HOST_UID=0 + - HOST_GID=0 + - TA_HOST=http://172.16.23.149:18001 # set your nas ip, if it is a domain, set the domain + - TA_USERNAME=tubearchivist # web account + - TA_PASSWORD=verysecret # web password + - ELASTIC_PASSWORD=verysecret # set password for Elasticsearch + - TZ=Asia/Shanghai # set your time zone + - http_proxy=http://v2ray:11809 # set proxy address + - no_proxy=archivist-es, archivist-redis # do not proxy internal es, redis containers + depends_on: + - archivist-es + - archivist-redis + + archivist-redis: + image: redis/redis-stack-server + container_name: archivist-redis + restart: unless-stopped + expose: + - "6379" + volumes: + - /volume1/docker/tubeArchivist/redis_data:/data + depends_on: + - archivist-es + archivist-es: + image: bbilly1/tubearchivist-es # only for amd64, or use official es 8.7.0 + container_name: archivist-es + restart: unless-stopped + environment: + - "ELASTIC_PASSWORD=verysecret" # matching Elasticsearch password + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + - "xpack.security.enabled=true" + - "discovery.type=single-node" + - "path.repo=/usr/share/elasticsearch/data/snapshot" + ulimits: + memlock: + soft: -1 + hard: -1 + volumes: + - /volume1/docker/tubeArchivist/es_data:/usr/share/elasticsearch/data # check for permission error when using bind mount, see readme + expose: + - "9200" + # This tutorial does not elaborate on external tools + +``` + +1. Select stack. +2. Enter "tubearchivist" in the name field. +3. Enter the above code in the editor. +4. Click on deploy. + +## 6. Success + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306061556495.png "Pic") + +## 7. Usage + +Access the program in your browser: [ip]:[port] + +> The IP is the IP of your NAS (mine is 172.16.23.149), and the port is defined in the configuration file above. If you follow my tutorial, it is 18001. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191524410.png "Pic") + +The account and password are set in the compose file. + +If you haven't made any changes, they are: + +Account: tubearchivist + +Password: verysecret + +## 8. Set download quality + +**Set download size** + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191527815.png "Pic") + +I set a relatively small quality: + +``` +bestvideo[height<=720]+bestaudio/best[height<=720] +``` + +Meta language (some videos may have internationalization, if there is Chinese, set it to Chinese) + +``` +zh-CN +``` + +## 9. Set subtitles (important) + +Most YouTube videos are high-quality foreign language resources, and YouTube also provides voiceover and translation subtitle functions. This step is to set up this process. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191530402.png "Pic") + +Subtitles download setting: Set the subtitle language + +``` +zh-Hans +``` + +Subtitle source settings: Set whether to generate subtitles automatically (many videos do not have embedded Chinese subtitles, so choose to use YouTube's subtitle translation service) + +``` +also download auto generated +``` + +Index and make subtitles searchable: This feature is very powerful as it allows you to search for subtitles directly and find videos, like this: + +``` +enable +``` + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191532814.png "Pic") + + + +## 10. Usage + +downloads 下载: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191546349.png "Pic") + + + +Start downloading: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191547537.png "Pic") + + + +Download complete: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191548424.png "Pic") + +Play online: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191549205.png "Pic") + + + +> Since the online player does not support subtitles, if you want to view subtitles, you can use other players. If you have Emby, Jellyfin, or Plex, they can be automatically linked. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191550573.png "Pic") + +## Browser Extension (optional) + +Search in the Google Chrome Web Store: + +``` +TubeArchivist Companion +``` + + + +**Get the key** + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191552629.png "Pic") + + + +**Configure the extension** + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191552826.png "Pic") + + + +**Use the extension** + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202306191553113.png "Pic") + + + +## Finally + +In conclusion: + +`Education is the key to eliminating poverty` + +`Knowledge should be spread more efficiently` + +I hope this tutorial can allow knowledge to `break through geographical and language limitations`, so that everyone can enjoy the benefits of knowledge, different cultures, and different perspectives. + + + +If you like this article, please remember to like, bookmark, and follow `Unique ID across the Internet: [Dad's Digital Garden]`. We will continue to bring more practical self-built application guides. Together, let's take control of our own data and create our own digital world! + +If you encounter any problems during the setup process or have any suggestions, please feel free to leave a comment below. Let's explore and learn together. \ No newline at end of file diff --git a/content/posts/how-to/how-to-install-portainer-in-nas/index.en.md b/content/posts/how-to/how-to-install-portainer-in-nas/index.en.md new file mode 100644 index 0000000..035e1e7 --- /dev/null +++ b/content/posts/how-to/how-to-install-portainer-in-nas/index.en.md @@ -0,0 +1,185 @@ +--- +title: "30-Second Installation of Portainer, a Must-Have Tool for Nas" +date: 2023-05-24T18:32:11+08:00 +categories: +- Nas Tutorials +draft: false +--- + +## Introduction + +😒 Have you ever envied others for being able to build so many fun applications while you struggle with "not knowing how to code"? + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305222015365.gif "Pic") + +And their so-called "simple tutorials" are like this: + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221850159.gif "Pic") + +Have you ever been intimidated by tutorials that are "too complicated"? + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221843307.gif "Pic") + +Do you wish to make everything "a little simpler"? + +Today, I will teach you how to install Portainer, a must-have tool for Nas, in just 30 seconds. + +## **How to Build Your Own Weibo** + +1. Randomly express your thoughts without worrying about others seeing them. +2. Completely save them on your Nas. +3. Invite your good friends to come and have fun, share funny pictures. + +How much trouble do you think this would be? With Portainer, it only takes 2 steps: + +## Create a Directory + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221854783.png "Pic") + +## Create a Stack + +```yaml +version: "3.0" +services: + memos: + image: neosmemo/memos:latest + container_name: memos + volumes: + - /volume1/docker/memos/:/var/opt/memos + ports: + - 5230:5230 +``` + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221855734.png "Pic") + +💕**Done!** + +> In the future, this channel will share many interesting and fun private services in Nas, all taught simply using Portainer. + +Next, let's get to the point of "how to build Portainer in Synology Nas". + +The whole process "does not require any code", just use Synology's ["Task Scheduler"](#task-scheduler). + +## Introduction to Portainer +Portainer is a lightweight Docker container management tool. + +Its advantages are: + +1. UI interface (easy operation) +2. Easy deployment (more useful and fun services will be shared in the future) +3. Multi-platform support (Synology, QNAP, Linux, Windows) +4. Easy management (network, images, containers) + +With it, we can easily build various services in Nas. In the future, I will also share various services I have built in Nas, and Portainer is indispensable here. + +--- + +## 1. Key Point + +Follow for free, never get lost. + +## 2. Install Packages + +In Synology Package Center, search for: + +1. Docker (for Synology versions below 7.2) +2. Container Manager (for Synology versions 7.2 and above) + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221520122.png "Pic") + +## 3. File Station + +Open File Station, go to the "docker" folder, and create a "portainer" folder. + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221524888.png "Pic") + +## 4. Task Scheduler + +In Synology "Control Panel", find "Task Scheduler", click on "User-defined script" in "Scheduled Tasks". + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221525216.png "Pic") + +## 5. Installation + +First, configure the settings: Schedule Settings -> Task Settings + +Paste the code: + +```yaml +docker run -d --name=portainer \ +-p 8000:8000 \ +-p 9000:9000 \ +-v /var/run/docker.sock:/var/run/docker.sock \ +-v /volume1/docker/portainer:/data \ +--restart=always \ +portainer/portainer-ce +``` + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221525969.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221525125.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221525244.png "Pic") + +## 6. Run the Script + +Click on "Run". + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221526280.png "Pic") + +## 7. Check if it is completed (optional step) + +> Due to issues with the domestic network, there may be situations where the image cannot be pulled. Therefore, it is necessary to confirm. If it still doesn't work, you can `set up a domestic source`. + +Two verification methods - choose one + + + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221526350.png "Pic") + +You can also check if Portainer has been successfully pulled in the `docker suite` + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221526399.png "Pic") + + + +## 8. Enter Portainer + +Set a password + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221526832.png "Pic") + + + +## 9. Settings + +1. Initialize environment variables +2. Set the local IP in the environment variables for easy access (the local IP is the IP address of your local Synology NAS) + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221527432.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221527890.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221527142.png "Pic") + +## 10. Block ads (optional) + +What to do with annoying Business upgrade reminders in Portainer? + +Use various browser ad blockers to block them + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221528554.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305222008586.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221528655.png "Pic") + +![Alt text](https://img-nasdaddy.liuxingoo.cn/img/202305221528751.png "Pic") + + + +Congratulations, you have entered the brand new NAS world + +Follow [Daddy's Digital Garden](https://www.daddycoco.com/) + +Share interesting NAS toys and private cloud deployments. \ No newline at end of file diff --git a/content/posts/how-to/how-to-install-ryot-on-your-nas/index.en.md b/content/posts/how-to/how-to-install-ryot-on-your-nas/index.en.md new file mode 100644 index 0000000..a5913da --- /dev/null +++ b/content/posts/how-to/how-to-install-ryot-on-your-nas/index.en.md @@ -0,0 +1,346 @@ +--- +title: "How to Build Your Own 'Douban' on Nas: Step-by-Step Guide to Building Ryot and Creating a Brand New Digital Life Experience to Record Every Moment" +date: 2023-07-06T15:45:10+08:00 +categories: +- Nas Tutorial +draft: false +# url : /posts/xxx # Specify URL +toc: true +description: Technology Empowers Life: Build Ryot Yourself to Record Your Reading, Watching, Gaming, and Fitness. +--- +Technology Empowers Life: Build Ryot Yourself to Record Your Reading, Watching, Gaming, and Fitness. + + + +## 1. Introduction + +I can't wait to introduce my new Nas toy to you and teach you how to build your own "private Douban". + +![roty](./roty.gif) + +If you meet any of the following criteria: + +- Electronic collection enthusiast +- Literature and art lover +- Movie and TV series enthusiast +- Gaming enthusiast +- Manga and anime lover +- Book lover + +Then this toy will definitely not disappoint you. + +It is a collection of "searching, scraping, movie reviews, book reviews" in one, comprehensively managing your digital life (movies, manga, TV series, books, games). + +In addition, it has a great interface. As the saying goes, whether to use it or not is up to me, but "the photo wall must be there". + +![image-20230706145254507](image-20230706145254507.png) + +Here, I must be able to express my thoughts, write movie reviews, book reviews, and game reviews. + +![image-20230706030203072](./image-20230706030203072.png) + + + +--- + +## Introduction to Ryot + +Ryot (Roll Your Own Tracker) helps you track various aspects of your life, including the books you read, the movies you watch, and the games you play. + +Ryot has a very user-friendly interface. It provides many beautiful charts and summaries to help you better understand and summarize your life. + +The main features of Ryot are as follows: + +- Supports recording all your digital media (comics, books, podcasts, movies, TV series, games) +- Like Douban, it has movie reviews, ratings, progress tracking, and more importantly, my favorite games. + +![image-20230706024702055](./image-20230706024702055.png) + + + +- Deploy on Nas for private data. +- Extremely fast (Ryot is written in Rust). +- Free and open source. +- The interface is in English, but supports Chinese search (Chinese support will be available in the future). + +![image-20230706151701194](image-20230706151701194.png) + + + +--- + +Setup Steps: + +## 1. Key Points + +"Click to follow for free" so you won't get lost. + +## 2. Install Portainer + +Tutorial reference: +[30-Second Installation of Portainer, a Must-Have Tool for Nas](/how-to-install-portainer-in-nas/) + +## 3. File Station + +Open File Station and create a "Ryot" folder in the docker folder. + +![image-20230706143134831](image-20230706143134831.png) + +## 4. Create Stack + +![1 Synology Portainer Add Stack](https://img-nasdaddy.liuxingoo.cn/img/202306061552130.png) + +## 5. Deploy the Code + +```yaml +version: '3.9' +services: + ignisda: + image: 'ghcr.io/ignisda/ryot:latest' + volumes: + - ./ryot-data:/data + environment: + - WEB_INSECURE_COOKIE=true + - VIDEO_GAMES_TWITCH_CLIENT_ID=xxxx # Optional, your Twitch ID, explained in detail below + - VIDEO_GAMES_TWITCH_CLIENT_SECRET=xxxx # Optional, your Twitch secret, explained in detail below + - MOVIES_TMDB_LOCALE=zh + - SHOWS_TMDB_LOCALE=zh + # - MOVIES_TMDB_ACCESS_TOKEN=XXX + # - SHOWS_TMDB_ACCESS_TOKEN=XXX + - ITUNES_LOCALE=en + - USERS_ALLOW_REGISTRATION=true + ports: + - '18030:8000' + pull_policy: always + container_name: ryot + restart: unless-stopped +``` + +1. Select stack. +2. Enter "Ryot" in the name field. +3. Enter the above code in the editor. +4. Click on deploy. + +### Parameter Explanation + +- WEB_INSECURE_COOKIE + +Set this to true if you are not using `https`. + +- VIDEO_GAMES_TWITCH_CLIENT_ID VIDEO_GAMES_TWITCH_CLIENT_SECRET + +These two parameters are optional. If not set, the "Games" section will not be available. You can refer to this article for setting up these parameters: [30-second installation of Portainer](/how-to-install-romm-on-your-nas/) + +- MOVIES_TMDB_LOCALE SHOWS_TMDB_LOCALE + +These two parameters are for selecting the Chinese option in TMDB. + +- MOVIES_TMDB_ACCESS_TOKEN SHOWS_TMDB_ACCESS_TOKEN + +These parameters are used for setting up the TMDB token. If left empty, it will not affect the scraping process. However, it is recommended to fill in your own token or fill it in later if it becomes invalid. + +- USERS_ALLOW_REGISTRATION + +Set this to true for the first time to allow user registration. If you are not using multiple users, you can set it to false later. + +## 6. Success + +![Excalidraw Synology NAS Set up 3](https://img-nasdaddy.liuxingoo.cn/img/202306061556495.png) + +## 7. Usage + +Access the program in your browser: [ip]:[port] + +> Replace "ip" with the IP address of your NAS (e.g., 172.16.23.106) and "port" with the port defined in the configuration file (e.g., 18030 if you followed the tutorial). + +![image-20230706143816983](image-20230706143816983.png) + +## 8. Registration + +Click on "register" to create an account. + +![image-20230706144041905](image-20230706144041905.png) + +## 9. Detailed Usage + +Next, I will demonstrate the functionality of each module. + +### Search Books (Using Google Books) + +Search for the best-selling book "长安的荔枝" from last year. + +![image-20230706022436912](./image-20230706022436912.png) + +Great, all the information is available. + +Now, search for "始于极限" by 上野千鹤子 from last year. Unfortunately, there is no cover image. + +![image-20230706022205810](./image-20230706022205810.png) + +Fortunately, the content is still available. Just paste the cover image manually. + +![image-20230706022337739](./image-20230706022337739.png) + +### Comics + +There are two types of comics: "animes" and "mangas". Let me explain the difference between the two. + +`Difference between "animes" and "mangas"` + +【Animes - Japanese Animation】 + +Format: Dynamic visual product, played through TV, movies, etc. + +Production: Involves animators, voice actors, etc., with long production cycles and high budgets. + +Features: Strong visual effects and sound effects, with strong plot and character development. + +Representative works: "Slam Dunk", "Ghost in the Shell", "Death Note", etc. + +【Mangas - Japanese Comics】 + +Format: Static printed material, distributed through books, magazines, etc. + +Creation: Mainly completed by one or a few manga artists, with a short production cycle and low cost. + +Characteristics: Static images, not as visually and audibly immersive as animes, slightly inferior in plot and character portrayal. + +Representative works: "Dragon Ball", "Detective Conan", "One Piece", "Naruto", etc. + +### Manga Functionality (Animes) + +Search in Chinese: Death Note + +![image-20230706022809791](./image-20230706022809791.png) + +Not bad, let's check the details page + +![image-20230706022855457](./image-20230706022855457.png) + +Although it's in English, it fits our photo wall + +Here, let's focus on `action`, which is also a major feature of ryot, `track all your media`, track all your progress + +![image-20230706022955344](./image-20230706022955344.png) + +1. I'm currently watching +2. Add to watched list +3. Write a review +4. Add to collection +5. Update the latest meta information + +This way, you can clearly know which ones you haven't finished watching and which ones you have already watched + +![image-20230706023304577](./image-20230706023304577.png) + +Here you can `write a review`, which is also the biggest reason why I can't give up Douban. There is no good tool to mark and write down the review at that time. + +![image-20230706023447810](./image-20230706023447810.png) + +Support `multiple reviews`, such as for a specific episode + +![image-20230706023544225](./image-20230706023544225.png) + +### Movies + +Next is the movie section, let's start with a classic: "Gone Girl" + +![image-20230706023716999](./image-20230706023716999.png) + +tmdb resources are indeed abundant + +Now let's take a look at a recent movie similar to it, "Her" + +![image-20230706023753489](./image-20230706023753489.png) + +For "Her", there are more than ten posters, scraping a large number of posters at once, enough for you to show off + +![image-20230706023820249](./image-20230706023820249.png) + +![image-20230706023841885](./image-20230706023841885.png) + +Same for reviews, standard operation: + +![image-20230706023920552](./image-20230706023920552.png) + +### Podcasts + +Search in English + +![image-20230706023945856](./image-20230706023945856.png) + +Search for Chinese channels + +![image-20230706024001736](./image-20230706024001736.png) + +### TV Shows + +Search in Chinese + +![image-20230706024106001](./image-20230706024106001.png) + +![image-20230706024151656](./image-20230706024151656.png) + +`All the episodes are scraped`, there are also introductions, and you can also `track the progress of each episode`, each episode has a watched or unwatched status + +![image-20230706024322318](./image-20230706024322318.png) + +Let's try a less popular one: + +![image-20230706024528073](./image-20230706024528073.png) + +Try an English one, no problem: + +![image-20230706024350559](./image-20230706024350559.png) + +![image-20230706024448119](./image-20230706024448119.png) + +### Games (My favorite) + +That's right, `ryot can also track your game progress`! + +Last year's "Elden Ring" + +![image-20230706024625522](./image-20230706024625522.png) + +My favorite "Arthur Morgan": + +![image-20230706024646254](./image-20230706024646254.png) + +`Only one game in the US`: + +![image-20230706024702055](./image-20230706024702055.png) + +On the list page, you can easily `sort` by whether you have played it, release date, and rating: + +![image-20230706024750215](./image-20230706024750215.png) + +Finally, the homepage: + +![image-20230706024923233](./image-20230706024923233.png) + +## Finally + +There are still some issues with the homepage. + +1. The content in the summary section has not been updated. I suspect that I may be using SQLite as the database or there may be a bug. +2. The concept of "collection" is not reflected here. The author has designed a concept called "collection", where you can create your own collection according to your preferences. For example, if you are interested in entrepreneurship, you can gather all the books, TV shows, and movies related to entrepreneurship in this collection. + +What can be expected in the future: + +1. This project is working hard to integrate with other projects (currently integrated with audiobookshelf, but I have not been able to deploy it successfully), I don't know the reason. + +![image-20230706025158329](./image-20230706025158329.png) + +2. There are also other projects like Plex, Emby, etc. I believe that in due course, they will catch up with the schedule. +3. If I have time, I will also contribute to the open-source community to improve this project. + +For now, although the functionality is not perfect, I think it is sufficient. I will continue to pay attention to this project in the future, and if there are any new features and characteristics, I will synchronize with everyone in a timely manner. + +--- + +Finally, let me introduce my devices: "1 white dress, 1 QNAP, 1 Snail (black dress), 1 PVE server". I do not recommend beginners to tinker with these devices like I do. It is more recommended for novice players to choose a white dress or QNAP. + +If you like this article, please remember to like, bookmark, and follow "Dad's Digital Garden". We will continue to bring more practical self-built application guides. Together, let's take control of our own data and create our own digital world! + +If you encounter any problems during the setup process or have any suggestions, please feel free to leave a comment below for discussion and learning. \ No newline at end of file