I have been using LANraragi for a while and encountered some issues. I managed to resolve them, and I thought it would be a good idea to document my experience in a post. You can refer to my previous article on installing LANraragi first.
The recommended usage of Jellyfin is that users create folders according to the media rules and place media files in them. After that, the media titles are automatically generated based on the metadata obtained from the scraper. However, this rule is so compulsory that this simple functionality of using the original file name as the title is not even available. While manual updating media titles is possible, it can be cumbersome.
To fit this demand, I have created a script using jellyfin-apiclient-python to batch rename all media in a specific media library. Additionally, this article explores some previous solutions, none of which were satisfactory in my opinion.
Jellyfin is an open-source media server. Here is my way of using Jellyfin: download anime using qBittorrent, start Jellyfin, and then watch the anime on iPad through the client.
Previously, I have installed the portable version of Jellyfin on Windows because a Linux virtual machine can not utilize the graphics card for hardware transcoding. However, I discovered that the Android and iOS clients support most codecs, eliminating the need for server-side transcoding. Since I am already familiar with Jellyfin's usage and configuration, I decided to migrate it to Docker.
Although Jellyfin itself is cross-platform, its configuration is still OS-dependent, especially when moving from Windows to Docker. Despite the availability of a third-party script, I chose to reconfigure it for safety, which does not require much effort.
This article mainly talks about how to install Jellyfin using Docker, along with any issues encountered and their solutions.
In my previous post, I successfully set up a LANraragi server and shared it with other devices in my home LAN. However, new issues arose:
LANraragi could be accessed without logging in.
Even if LANraragi had a login feature, it still used HTTP plaintext transmission, which is equivalent to no password protection.
The root cause of these issues was that devices like smartphones and smart home devices, connected to the LAN, were not trustworthy. They could potentially have backdoors (or 'users voluntarily transmitting private data to improve service'). Anyway, these issues needed urgent resolution.
The solution is Nginx:
Use Nginx's built-in basic authentication to allow access only with a correct username and password.
Utilize Nginx's reverse proxy feature. Once Nginx is configured with HTTPS, any software being proxied can use the encrypted transmission.
Therefore, the key lies in the configuration of Nginx and SSL certificates. The challenge is that I need to request a certificate for an internal IP address without a corresponding domain name. This article explores these solutions, marking my first encounter with Nginx and SSL certificate configuration.
Recently, I've been looking into home media libraries, and most tutorials focus on NAS, but most of the applications actually run on Docker.
Now, I have the following demands for reading manga/doujinshi:
I have a large collection of manga archives on my computer and want various devices able to access these resources. —— A server capable of transmitting images via HTTP.
I want to manage the manga directory according to my preferences, not the rules of the server software.
When browsing manga on my phone/tablet, I want an easy-to-use interface. —— A user-friendly client or a Web UI.
The client should have a random manga selection feature. —— Due to the abundance of collected manga, randomly picking one for leisure is the most convenient.
Considering these, I chose LANraragi. Although Komga, Kavita, and Tachidesk (Sorayomi) are also open-source manga servers, they didn't quite meet my expectations.
This article includes some excerpts from the official documentation and my own insights.
The Remote SSH extension in VS Code provides the functionality to connect to other remote hosts. While the basic way of connection requires a username and password, using a key allows for direct login without the effort to type the password every time.
However, it's crucial to understand that VS Code merely provides a GUI, and how to use a SSH key to login is a separate matter. These two aspects should not be confused.
This article will primarily explain how to configure SSH keys on both the local machine and the remote machine. Subsequently, it will delve into the usage of the VS Code Remote SSH extension.
Python is renowned for its rich set of modules. However, unlike in Java development where Maven uses group Id, artifact Id, and version to uniquely identify a dependency, in practice, most Python projects differentiate modules solely by their names. Run pip install <module>, and you've got the module. But what about the module version? Most project requirements do not specify versions, leading to constant errors for those who run the project later.
Hence, the concept of a weakened version number undoubtedly does more harm than good. How to solve this issue? By using venv (virtual environment).
If you directly use pip install, all Python projects share these modules, leading to potential compatibility issues. Venv copies the original Python environment. The virtual environment runs only on the copied Python, and the installed modules exist only in that virtual environment. Multiple virtual environments are isolated from each other.
Usage
1️⃣Create venv:
1
python -m venv C:\Users\Gustav\Desktop\test\venv
The directory C:\Users\Gustav\Desktop\test\venv is the virtual environment.