diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14.json b/i18n/en/docusaurus-plugin-content-docs/version-0.14.json new file mode 100644 index 0000000..7a10c1e --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "0.14", + "description": "The label for version 0.14" + }, + "sidebar.docsSidebar.category.getting-started": { + "message": "getting-started", + "description": "The label for category getting-started in sidebar docsSidebar" + }, + "sidebar.docsSidebar.category.getting-started-install": { + "message": "getting-started-install", + "description": "The label for category getting-started-install in sidebar docsSidebar" + }, + "sidebar.docsSidebar.category.user-guide": { + "message": "user-guide", + "description": "The label for category user-guide in sidebar docsSidebar" + }, + "sidebar.docsSidebar.category.plugins": { + "message": "plugins", + "description": "The label for category plugins in sidebar docsSidebar" + } +} diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/about.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/about.md new file mode 100644 index 0000000..d7a51e1 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/about.md @@ -0,0 +1,17 @@ +--- +title: About the Documentation +sidebar_label: About +description: Information about this documentation site +--- + +:::note +This documentation site is built using [Docusaurus](https://docusaurus.io/). Thanks to the [Docusaurus community](https://github.com/facebook/docusaurus) for their contributions. +::: + +## Contributing + +:::tip +If you find any inaccuracies or have content to add, we welcome your contributions to the documentation. +::: + +The current repository for this documentation is located at [ikaros-dev/docs](https://github.com/ikaros-dev/docs). You can fork this repository, make your changes, and submit a pull request for us to review and merge. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/android-app.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/android-app.md new file mode 100644 index 0000000..5c44da6 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/android-app.md @@ -0,0 +1,14 @@ +--- +title: Android App (WIP) +description: Native Android App +--- + +## Introduction + +Native app for Android phones. + +GitHub: + +:::tip +CI packaging has not been set up yet. +::: diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/docker-compose.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/docker-compose.md new file mode 100644 index 0000000..ba05b3a --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/docker-compose.md @@ -0,0 +1,219 @@ +--- +title: Deploying with Docker Compose +description: Deploying with Docker Compose +--- + +import DockerArgs from "./slots/docker-args.md" + +:::info +Before proceeding, we recommend reading the [Introduction](../prepare.md), which can quickly help you understand Ikaros. +::: + +## Setting Up the Environment + +- Docker Installation Guide: +- Docker Compose Installation Guide: + +:::tip +We recommend installing Docker and Docker Compose following the official Docker documentation, as the Docker version in the software repositories of some Linux distributions may be outdated. +::: + +## Creating Container Group + +Available Docker images for Ikaros: + +- [ikarosrun/ikaros](https://hub.docker.com/r/ikarosrun/ikaros) + +:::info Note +Currently, Ikaros has not updated the Docker image with the `latest` tag, mainly because no official version has been released yet. We recommend using specific version tags, such as `ikarosrun/ikaros:v0.11.5`. + +- `ikarosrun/ikaros:v0.11.5`: Represents the latest available image. A new image is built for each release based on GitHub tags. +- `ikarosrun/ikaros:dev`: Represents the image in development. It is not recommended for use, as it is rebuilt and overwritten with each merged Pull Request into the main branch. + +Subsequent documentation will use `ikarosrun/ikaros:v0.11.5` as an example. +::: + +1. Create a folder anywhere in the system. This document uses `~/ikaros` as an example. + + ```bash + mkdir ~/ikaros && cd ~/ikaros + ``` + :::info + Note: In subsequent operations, all data generated by Ikaros will be saved in this directory. Please keep it safe. + ::: + +2. Create `docker-compose.yaml` + + This document provides Docker Compose configuration files for two scenarios. Please choose one based on your needs. + + 1. Create an instance of Ikaros + PostgreSQL: + + ```yaml {24-34,51} title="~/ikaros/docker-compose.yaml" + version: "3" + services: + # ikaros + ikaros: + image: ikarosrun/ikaros:v0.11.5 + container_name: ikaros + restart: on-failure:3 + depends_on: + ikaros_database: + condition: service_healthy + networks: + ikaros_networks: + volumes: + - ./:/root/.ikaros + ports: + - "9999:9999" + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:9999/actuator/health"] + interval: 30s + timeout: 5s + retries: 5 + start_period: 30s + environment: + - LANG=C.UTF-8 + - LC_ALL=C.UTF-8 + - TZ=Asia/Shanghai + command: + - --logging.charset.console=UTF-8 + - --logging.charset.file=UTF-8 + # log level for package, such as INFO or DEBUG + - --logging.level.run.ikaros.server=INFO + - --logging.level.run.ikaros.plugin=INFO + - --logging.level.run.ikaros.jellyfin=INFO + - --sun.jnu.encoding=UTF-8 + - --spring.r2dbc.url=r2dbc:pool:postgresql://ikaros_database/ikaros + - --spring.r2dbc.username=ikaros + # Make sure the password for PostgreSQL matches the value of the POSTGRES_PASSWORD variable below. + - --spring.r2dbc.password=openpostgresql + - --spring.sql.init.platform=postgresql + # Initial superuser username + - --ikaros.security.initializer.master-username=tomoki + # Initial superuser password + - --ikaros.security.initializer.master-password=tomoki + + # ikaros database + ikaros_database: + image: postgres:latest + container_name: ikaros_database + restart: on-failure:3 + networks: + ikaros_networks: + volumes: + - ./database:/var/lib/postgresql/data + healthcheck: + test: [ "CMD", "pg_isready" ] + interval: 10s + timeout: 5s + retries: 5 + environment: + - POSTGRES_DB=ikaros + - POSTGRES_USER=ikaros + - POSTGRES_PASSWORD=openpostgresql + + networks: + ikaros_networks: + driver: bridge + ``` + + 2. Create Ikaros instance only (using the default H2 database, **not recommended for production environment, suggested for experience and testing only**): + + ```yaml {19-24} title="~/ikaros/docker-compose.yaml" + version: "3" + services: + # ikaros + ikaros: + image: ikarosrun/ikaros:v0.11.5 + container_name: ikaros + restart: on-failure:3 + networks: + ikaros_networks: + volumes: + - ./:/root/.ikaros + ports: + - "9999:9999" + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:9999/actuator/health"] + interval: 30s + timeout: 5s + retries: 5 + start_period: 30s + environment: + - LANG=C.UTF-8 + - LC_ALL=C.UTF-8 + - TZ=Asia/Shanghai + command: + - --logging.charset.console=UTF-8 + - --logging.charset.file=UTF-8 + - --logging.level.run.ikaros.server=INFO + - --logging.level.run.ikaros.plugin=INFO + - --logging.level.run.ikaros.jellyfin=INFO + - --sun.jnu.encoding=UTF-8 + # Initial superuser username + - --ikaros.security.initializer.master-username=tomoki + # Initial superuser password + - --ikaros.security.initializer.master-password=tomoki + + networks: + ikaros_networks: + driver: bridge + ``` + + Parameter Details: + + + +3. Start the Ikaros service + + ```bash + docker-compose up -d + ``` + + View logs in real-time: + + ```bash + docker-compose logs -f ikaros + ``` + +4. Access the Ikaros management page by visiting `/console` in your browser. The username and password are the ones set in the `docker-compose.yaml` file as `master-username` and `master-password`. + +:::tip +If not started with these parameters, the default username is `tomoki`, and the password will be printed in the logs (printed only on the first run). +::: + +## Updating Container Group + +1. Stop the running container group. + + ```bash + cd ~/ikaros && docker-compose down + ``` + +2. Backup Data (Important) + + ```bash + cp -r ~/ikaros ~/ikaros.archive + ``` + + > It's worth noting that the `ikaros.archive` filename doesn't necessarily have to follow the naming convention in this document. This is just an example. + + +3. Update the Ikaros service + + Modify the image version configured in `docker-compose.yaml`. + + ```yaml {3} + services: + ikaros: + image: ikarosrun/ikaros:v0.11.5 + container_name: ikaros + ``` + + ```bash + docker-compose pull ikaros + ``` + + ```bash + docker-compose up -d + ``` diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/docker.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/docker.md new file mode 100644 index 0000000..8a6af89 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/docker.md @@ -0,0 +1,111 @@ +--- +title: Deploying with Docker +description: Deploying with Docker +--- + +import DockerArgs from "./slots/docker-args.md" + +:::info +Before proceeding, we recommend reading [Introduction](../prepare), which can quickly help you understand Ikaros. +::: + +:::tip +This document only provides a way to run Docker with the default H2 database, mainly for experience and testing. We do not recommend using the H2 database in a production environment. + +If you need to deploy with another database, we recommend using Docker Compose: [Deploying with Docker Compose](./docker-compose) +::: + +## Setting Up the Environment + +- Docker Installation Guide: + +:::tip +We recommend installing Docker following the official Docker documentation, as the Docker version in the software repositories of some Linux distributions may be outdated. +::: + +## Using Docker Image + +Available Docker images for Ikaros: + +- [ikarosrun/ikaros](https://hub.docker.com/r/ikarosrun/ikaros) + +:::info Note +Currently, Ikaros has not updated the Docker image with the `latest` tag, mainly because no official version has been released yet. We recommend using specific version tags, such as `ikarosrun/ikaros:v0.11.5`. + +- `ikarosrun/ikaros:v0.11.5`: Represents the latest available image. A new image is built for each release based on GitHub tags. +- `ikarosrun/ikaros:dev`: Represents the image in development. It is not recommended for use, as it is rebuilt and overwritten with each merged Pull Request into the main branch. + +Subsequent documentation will use `ikarosrun/ikaros:v0.11.5` as an example. +::: + +1. Create a Container + + ```bash + docker run \ + -it -d \ + --name ikaros \ + -p 9999:9999 \ + -v ~/.ikaros:/root/.ikaros \ + ikarosrun/ikaros:v0.11.5 \ + --ikaros.security.initializer.master-username=tomoki \ + --ikaros.security.initializer.master-password=tomoki + ``` + + :::info + Note: This command uses the built-in H2 Database by default. If you want to use PostgreSQL, please refer to: [Deploying with Docker Compose](./docker-compose) + ::: + + - **-it**: Enables input and connects to a pseudo-terminal. + - **-d**: Runs the container in the background. + - **--name**: Specifies a name for the container. + - **-p**: Port mapping, in the format of `host_port:container_port`. + - **-v**: Maps the working directory, in the form of `-v host_path:/root/.ikaros`, where the latter cannot be modified. + + Parameter Details: + + + + +1. Access the Ikaros management page by visiting `/console` in your browser. The username and password are the ones set in the startup parameters as `master-username` and `master-password`. + + :::tip + If not started with these parameters, the default username is `tomoki`, and the password will be printed in the logs (printed only on the first run). + ::: + +## Upgrade Version + +1. Pull the new version image (please choose the latest tag and replace `v0.11.5` below) + + ```bash + docker pull ikarosrun/ikaros:v0.11.5 + ``` + +2. Stop the running container + + ```bash + docker stop ikaros + docker rm ikaros + ``` + +3. Backup Data (Important) + + ```bash + cp -r ~/.ikaros ~/ikaros.archive + ``` + + > It's worth noting that the `ikaros.archive` filename doesn't necessarily have to follow the naming convention in this document. This is just an example. + +4. Update Ikaros + + After modifying the version number, recreate the container following the initial installation method. + + ```bash {6} + docker run \ + -it -d \ + --name ikaros \ + -p 9999:9999 \ + -v ~/.ikaros:/root/.ikaros \ + ikarosrun/ikaros:v0.11.5 \ + --ikaros.security.initializer.master-username=tomoki \ + --ikaros.security.initializer.master-password=tomoki + ``` diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/fast-jar.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/fast-jar.md new file mode 100644 index 0000000..670d6a8 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/fast-jar.md @@ -0,0 +1,26 @@ +--- +title: Deploying with Fast Jar +description: Deploying with Fast Jar +--- + +import DockerArgs from "./slots/docker-args.md" + +You need to have a `Java 17` runtime environment installed. + +Go to the `Assets` section of the GitHub `Release` page to download the JAR file: [https://github.com/ikaros-dev/ikaros/releases](https://github.com/ikaros-dev/ikaros/releases) + +Run the following command in Linux: + +```shell +java -jar ./ikaros-server.jar +``` + +In the directory where the packaged file is located, for running on Windows, you'll need to add the additional parameter `--spring.profiles.active=win`: + +```shell +java -jar ikaros-server.jar --spring.profiles.active=win +``` + +Parameter Details: + + \ No newline at end of file diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/flutter-app.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/flutter-app.md new file mode 100644 index 0000000..3f193b9 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/flutter-app.md @@ -0,0 +1,56 @@ +--- +title: Non-Native App +description: Cross-platform mobile app based on Flutter +--- + +## Introduction + +Cross-platform mobile app based on Flutter. + +GitHub: + +:::tip +Currently, the functionality is not complete. Feel free to experience and test. +::: + +## Feature Demo + + + + + +## Android Installation Package + +Go to this page: + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-27-53.png) + +Scroll down and download the compressed package. + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-31-38.png) + +After extraction, you will have the installation package. + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-34-29.png) + +## iOS Installation Package + +:::tip +The iOS installation package is not signed. You need to [self-sign](https://bing.com/search?q=ios%E8%87%AA%E7%AD%BE&ensearch=1) it to use it normally. +::: + +Go to this page: + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-40-35.png) + +Scroll down and download the compressed package. + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-41-09.png) + +After extraction, you will have the installation package. + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-44-00.png) + +## Other Platforms + +Currently not available. Only Android and iOS have been compiled, and no adaptation has been made for other platforms. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/slots/docker-args.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/slots/docker-args.md new file mode 100644 index 0000000..a9eecbc --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/install/slots/docker-args.md @@ -0,0 +1,15 @@ +| Parameter Name | Description | +| --------------------------------------------- | --------------------------------------------------------------------- | +| `spring.r2dbc.url` | Database connection URL, see `Database Configuration` below for details | +| `spring.r2dbc.username` | Database username | +| `spring.r2dbc.password` | Database password | +| `spring.sql.init.platform` | Database platform name, supports `postgresql`, `h2` | +| `ikaros.security.initializer.master-username` | Initial superuser username, default `tomoki` | +| `ikaros.security.initializer.master-password` | Initial superuser password, the first run of the program is printed in the log. | + +Database Configuration: + +| Connection Method | Connection Address Format | `spring.sql.init.platform` | +| ----------------- | ---------------------------------------------------------------------------------------------- | -------------------------- | +| PostgreSQL | `r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}` | postgresql | +| H2 Database | `r2dbc:h2:file:///${ikaros.work-dir}/db/ikaros?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE` | h2 | diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/prepare.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/prepare.md new file mode 100644 index 0000000..9c46ab8 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/getting-started/prepare.md @@ -0,0 +1,97 @@ +--- +title: Introduction +description: Things to Know Before Starting +--- + +## System Requirements + +This section will cover the hardware and software configurations required to run Ikaros. We recommend reviewing this page before running or deploying Ikaros. + +### Hardware Configuration + +:::tip +It is not recommended to deploy on cloud servers. Ikaros is designed for private use and is generally deployed within a home network, with no external access. +::: + +#### CPU + +No special requirements. You can use our [Docker image](https://hub.docker.com/r/ikarosrun/ikaros). + +#### RAM + +For a better experience, we recommend a minimum of 1GB of RAM. + +#### Disk + +No specific requirements. + +#### Network + +Do not expose the service to the public internet (relative to your home network). + +### Software Environment + +Ikaros can theoretically run on any platform that supports Docker and Java. + +#### Docker + +You must have [Docker](https://www.docker.com/) installed in your environment. Currently, Ikaros uses containers for all default installation methods. + +#### JRE (Optional) + +Currently, the default and recommended way to install Ikaros is by running it in a Docker container. If you choose to run the jar file, you will need to build the jar package yourself. + +:::info +JRE 17 is required. We recommend using OpenJDK 17. +::: + +#### PostgreSQL (Optional + Recommended) + +You can also use the system's built-in H2 Database, which does not require installation. However, we do not recommend using H2 Database in a production environment. + +#### Web Server (Optional) + +If you are deploying in a production environment, you may need to bind a domain. In this case, we recommend using web servers like [Nginx](http://nginx.org/) or [Caddy](https://caddyserver.com/) for reverse proxy. + +#### Wget (Optional) + +In the following documentation, we will use wget as an example for downloading the necessary files. Please make sure the server has this package installed. Of course, you are not limited to using wget; if you are familiar with other tools, feel free to use them. + +#### VIM (Optional) + +In the following documentation, we will use vim as an example for modifying some necessary configuration files. Similarly, please ensure that this software package is installed on your server. Currently, there is no limitation on the tool for modifying documents; if you are familiar with other editing software, you can use it. + +## Browser Support + +1. User Interface: Built with [Thymeleaf](https://www.thymeleaf.org/) template engine and [Bootstrap](https://getbootstrap.com/), it is theoretically supported by modern browsers in current scenarios. +2. Admin Interface: Supported by commonly used modern browsers, specific support may vary depending on the support of the [Vuejs](https://cn.vuejs.org/) framework. + +## Glossary + +This section will list some terms related to Ikaros mentioned in the following documents. + +### ~ (Symbol) + +Represents the [user directory](https://en.wikipedia.org/wiki/Home_directory) on the current system. + +### Image + +Refers to the [Docker image](https://docs.docker.com/engine/reference/commandline/images/) generated by Ikaros build. Users start the Ikaros application using this image. + +### Working Directory + +Refers to the working directory that Ikaros depends on. When Ikaros is running, a folder named `.ikaros` will be created in the user's home directory with an absolute path of `~/.ikaros`. Since this working directory is fixed, the location where the `runtime package` is stored is not restricted. It typically contains the following directories or files: + +1. `database`: Stores the physical files of the database. If you use a different database, the data will be in that database. +2. `indices`: Index data of the built-in [Lucene](https://lucene.apache.org/) search engine. +3. `plugins`: Contains the plugins installed by the user. +4. `files`: Directory for Ikaros files. +5. `logs`: Runtime log directory. + +### Plugin + +A software package used to extend the functionality of Ikaros. Plugins are independent of the Ikaros core application and can be installed and uninstalled separately. + +### More + +[User Guide](../category/user-guide) diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/intro.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/intro.md new file mode 100644 index 0000000..af489ac --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/intro.md @@ -0,0 +1,76 @@ +--- +id: intro +sidebar_label: Intro +title: "" +sidebar_position: 1 +hide_title: true +slug: / +--- + +

+ + Ikaros logo + +

+ +

Ikaros [Ίκαρος], Dedicated to ACGMN's Content Management System (CMS).

+ +

ACGMN stands for: Anime + Comic + Game + Music + Novel

+ +

+Github Releases +GitHub Stargazers +Docker pulls +code coverage +GitHub last commit +GitHub workflow build status +
+

+ +--- + +## Quick Start + +```bash +docker run \ + -it -d \ + --name ikaros \ + -p 9999:9999 \ + -v ~/.ikaros:/root/.ikaros \ + ikarosrun/ikaros:v0.11.5 \ + --ikaros.security.initializer.master-username=tomoki \ + --ikaros.security.initializer.master-password=tomoki +``` + +The console path is `/console`. +The default port is `9999`, and the default username and password are controlled by the above two parameters. If not specified, the default username is `tomoki`, and the password will be printed in the logs (only printed on the first run). + +The above is for demonstration purposes only. For detailed deployment instructions, please refer to: [Deploying with Docker Compose](./getting-started/install/docker-compose.md) + +## Plugins + +A collection of plugins can be found in this repository: + +## Videos + +- Feature Preview video: +- Installation Video: + +## Brief Help + +- To open global search, press `Ctrl` + `K`. + +## License + +[![license](https://img.shields.io/github/license/ikaros-dev/ikaros.svg?style=flat-square)](https://github.com/ikaros-dev/ikaros/blob/master/LICENSE) + +Ikaros is open-sourced under the AGPL-v3.0 license. Please comply with the open-source license. + +## Contribution + +Refer to [CONTRIBUTING](https://github.com/ikaros-dev/ikaros/blob/master/CONTRIBUTING.MD). + +## Status + +![Repobeats analytics](https://repobeats.axiom.co/api/embed/f7285853048ff09f313f6483901e2af0e638f666.svg "Repobeats analytics image") + diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/common.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/common.md new file mode 100644 index 0000000..23f1120 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/common.md @@ -0,0 +1,6 @@ +--- +title: Plugin Overview +description: Basic information about plugins +--- + +List of Plugins: [Awesome Ikaros](https://github.com/ikaros-dev/awesome) diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-baidupan.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-baidupan.md new file mode 100644 index 0000000..110e0f3 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-baidupan.md @@ -0,0 +1,6 @@ +--- +title: Baidu Netdisk Plugin (WIP) +description: Documentation for the Baidu Netdisk Plugin +--- + +WIP diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-bgmtv.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-bgmtv.md new file mode 100644 index 0000000..4631a07 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-bgmtv.md @@ -0,0 +1,29 @@ +--- +title: Bangumi Plugin +description: Documentation for the Bangumi Plugin +--- + +## GitHub + +[https://github.com/ikaros-dev/plugin-bgmtv](https://github.com/ikaros-dev/plugin-bgmtv) + +## Bangumi + +- Official Website: [https://bgm.tv/](https://bgm.tv/) +- Encyclopedia: [https://zh.moegirl.org.cn/Bangumi](https://zh.moegirl.org.cn/Bangumi) + +## Features + +### Implemented + +- Implemented the anime synchronization interface, allowing quick retrieval of entry data through Bangumi. + +### To Be Implemented + +- Implementation of anime collection synchronization with Bangumi. + +## Configuration + +You can configure the `TOKEN` of Bangumi and whether to enable the proxy in the backend. + +![Ikaros Console Plugin Config](/img/plugins-plugin-bgmtv/Snipaste_2023-07-30_15-42-22.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-jellyfin.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-jellyfin.md new file mode 100644 index 0000000..c297e39 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-jellyfin.md @@ -0,0 +1,47 @@ +--- +title: Jellyfin Plugin +description: Documentation for the Jellyfin Plugin +--- + +## GitHub + +[https://github.com/ikaros-dev/plugin-jellyfin](https://github.com/ikaros-dev/plugin-jellyfin) + +## Jellyfin + +- Official Website: [https://jellyfin.org/](https://jellyfin.org/) + +## Task for Generating Subject Directories + +After this plugin is started, it will execute a task to generate subject directories every 15 minutes. + +This task will generate two directories under the `jellyfin` directory in the application directory based on the database entry data: + +- `normal` directory: This directory contains directories generated for entries that are not marked as `NSFW`. +- `nsfw` directory: This directory contains directories generated for entries that are marked as `NSFW`. + +The name format of a single subject directory is: `Chinese Name of Subject + '-' + Original Name of Subject + '(' + yyyy-MM-hh + ')'`, for example, `K-On! - けいおん! (2009-04-02)`. + +In a single subject directory, a `poster.jpg` (soft link) and a `tvshow.nfo` file will be generated. + +If the subject's episodes are bound to resources, the corresponding episode files (soft links) will be generated. The episode file names are the names of the resource files. + +If a file with the corresponding name can be found in the database, with the suffix `.ass` (it does not need to be in the same directory managed by Ikaros), the corresponding subtitle file (soft link) will be generated. + +The generated files in the last subject directory are roughly as shown in the following image: + +![Ikaros Generate Jellyfin Subject Files](/img/plugins-plugin-jellyfin/Snipaste_2023-07-30_15-28-48.png) + +## How to Use the Generated Directories + +Add this directory to the mounting directory of the Jellyfin container, and then add a library in the backend. + +You can choose to mount either the `normal` or `nsfw` directory. + +For content type, select `TV shows`. + +:::tip +It is recommended to leave all metadata downloaders unchecked! If you really want to check, please install the Bangumi Plugin for Jellyfin, and check Bangumi. It is not recommended to check anything else. +::: + +After making some other settings, you can save them. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-local-files-import.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-local-files-import.md new file mode 100644 index 0000000..7cb0c62 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-local-files-import.md @@ -0,0 +1,180 @@ +--- +title: Local Files Import Plugin +description: Documentation for the Local Files Import Plugin +--- + +## GitHub + +[https://github.com/ikaros-dev/plugin-local-files-import](https://github.com/ikaros-dev/plugin-local-files-import) + +## Introduction + +Currently, the solution is to check if there is a `links` directory in the current application working directory when it starts. +If there are files or directories in this directory, after the plugin is started, all files will be imported into the file management of the database. +By default, it is a symbolic link, and if it fails, it will be copied. + +It is recommended to move existing resources to this directory, then start the plugin for import, and finally move the existing resources back. +If the symbolic link is successful, it will not occupy additional disk space. + +## Best Practices + +## Overall Steps + +1. Move or hard link existing resources to the `links` directory under the `ikaros` application directory in the file system. +2. Start the import plugin from the console and wait for the import to complete. +3. Disable the import plugin from the console. +4. Move or delete the files or directories under the `links` directory in the `ikaros` application directory in the file system. +5. Add items from the console. +6. Bind resources from the console. +7. (Optional) Move the logical directory `links` to the desired directory. + +### Video Demonstrations + +#### Importing via Hard Links (Recommended) + + + + + +#### Importing via Moving + + + + + +### Preparing Resources + +#### Importing via Moving + +Move files directly via NAS or SSH. + +#### Importing via Hard Links (Recommended) + +The script used here is from: + +First, enter the SSH backend, go to the parent directory of your resource directory, and create a script called `mklink.sh` with the following content: + +``` shell +#!/bin/sh +#auther: andycrusoe@gmail.com +#github:https://github.com/appotry/PTtool#readme + +#ls -ialh file.txt +#find . -inum 1234 + +SRC="/share/Download/tmp/src" +DST="/share/Download/tmp/dst" + +FILEGIG=1000000c + +SAVEIFS=$IFS +IFS=$(echo -en "\n\b") + +function servicectl_usage(){ + echo "Usage:mklink.sh sourcedir dstdir" + return 1 +} + +function servicectl(){ +[[ -z $1 || -z $2 ]] && servicectl_usage +} + +if [ $# -eq 2 ]; then + SRC=$1 + DST=$2 + echo "User set:" + echo "src:$SRC" + echo "dst:$DST" +else + servicectl_usage + echo "use default set:" + echo "源目录src:$SRC" + echo "目的目录dst:$DST" + exit -1 +fi + +for i in `find $SRC -size +$FILEGIG` +do + + echo "work:$i" + + if [ -d $i ]; then + echo "跳过处理目录1:$i" + echo "--" + continue + else if [ -e $i ]; then + echo "src file:$i" + fi + fi + + tmppth=`dirname $i` + pth=${tmppth/"$SRC"/"$DST"} + if [ ! -d $pth ]; then + echo "mkdir -p $pth" + mkdir -p $pth + + fi + + dstfile=$pth/`basename $i` + echo "dst file:${dstfile}" + + if [ ! -f $dstfile ]; then + echo "cp -l $i $dstfile" + cp -l $i $dstfile + fi + + echo "--" + +done + + + +for i in `find $SRC -size -$FILEGIG` +do + + echo "work:$i" + + if [ -d $i ]; then + echo "跳过处理目录3:$i" + echo "--" + continue + else if [ -e $i ]; then + echo "src file:$i" + fi + fi + + tmppth=`dirname $i` + pth=${tmppth/"$SRC"/"$DST"} + if [ ! -d $pth ]; then + echo "mkdir -p $pth" + mkdir -p $pth + fi + + dstfile=$pth/`basename $i` + echo "dst file:${dstfile}" + + if [ ! -f $dstfile ]; then + echo "cp $i $dstfile" + cp $i $dstfile + fi + + echo "--" + +done + +IFS=$SAVEIFS +``` +Grant execution permission + +``` shell +chmod +x mklink.sh +``` + +Hard link directory operation + +``` shell +./mklink.sh /share/downloads/script/test /share/application/ikaros/links/test +``` + +- The first path, `/share/downloads/script/test`, is the source directory path. Please note not to add a trailing `/` at the end, as it will ignore the files in the source directory. +- The second path, `/share/application/ikaros/links/test`, is the target directory path. It is recommended to use the same name as your source directory, which is `test` in this case. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-mikan.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-mikan.md new file mode 100644 index 0000000..959acb2 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/plugins/plugin-mikan.md @@ -0,0 +1,37 @@ +--- +title: Mikan Plugin +description: Documentation for the Mikan Plugin +--- + +## GitHub + +[https://github.com/ikaros-dev/plugin-mikan](https://github.com/ikaros-dev/plugin-mikan) + +## Mikan + +- Official Website: [https://mikanime.tv/](https://mikanime.tv/) + +## Configuration + +You can configure the RSS feed and Qbittorrent address for Mikan in the backend. + +![Ikaros Console Plugin Config](/img/plugins-plugin-mikan/Snipaste_2023-07-30_15-48-14.png) + +:::tip +The IP of qBittorrent here is the virtual IP of Docker. This is related to the deployment method. You need to ensure that you can connect to qBittorrent. You can deploy a Portainer and add your qBittorrent container to the network of Ikaros. This way, you will have a virtual IP. +::: + +## Functionality + +Two scheduled tasks will be started when the plugin is launched: + +- Parsing Mikan RSS feed: Every thirty minutes, parse the Mikan RSS feed, add the corresponding torrents to qBittorrent, categorize them as `ikaors`, and label the torrents with the item ID from Bangumi. +- Import downloaded files and add items: Every five minutes, check if the files in the `ikaors` category of qBittorrent have finished downloading. Import the completed downloads (as symbolic links) into Ikaros' file management, add the corresponding items, and match the item's episodes. If a match is found, an email will be sent to the user. The email address is configured in `Settings` => `Email Configuration` => `Enable Email` => `Recipient Email Address`. + +:::tip +You need to enable and configure the SMTP email server to receive emails properly.
The cover URL in your email client should be accessible for the cover images in the email to display correctly. +::: + +The email will look something like this: + +![Ikaros Subject Update Mail](/img/plugins-plugin-mikan/Snipaste_2023-07-30_16-04-21.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/collections.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/collections.md new file mode 100644 index 0000000..574d613 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/collections.md @@ -0,0 +1,14 @@ +--- +title: Collection +description: Functions related to collection display +--- + +## Management Panel + +![Ikaros Console Subject Manager](/img/user-guide-collections/Snipaste_2023-10-11_17-24-11.png) + +- 1: Filter condition, whether the collection is private or not public. +- 2: Collection type: Want to watch, Watching, Completed, On-hold, Dropped. +- 3: Pagination. +- 4: Single item card. Clicking will navigate to the corresponding item details page. + diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/common.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/common.md new file mode 100644 index 0000000..d20f074 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/common.md @@ -0,0 +1,52 @@ +--- +title: Basic Explanation +description: Basic concepts in Ikaros +--- + +Ikaros, as a powerful ACGMN content manager, coupled with various templates and plugins, can help you effectively manage your content. + +To make the most of Ikaros, there are some basic concepts you need to understand. + +## Console + +The console is the backend management system of an Ikaros site, and only logged-in users with appropriate permissions can use the console's functions. You can use the console to manage various content such as files, entries, plugins, and adjust various settings used by the site. + +:::info +The entrance to the console is `/console`. +::: + +![Ikaros Console](/img/user-guide-common/Snipaste_2023-07-30_13-15-30.png) + +## Metadata + +The collection of information or descriptions of elements. + +## Files + +Uploaded by users, files referenced by various places such as episodes, are also your resource files, stored in the `files` directory under the [working directory](../getting-started/prepare). + +## Episodes + +An episode is a file element with metadata, containing both data and files. The data is stored in the database, and the files are stored in the `files` directory under the [working directory](../getting-started/prepare). + +## Entries + +An entry is one of the core concepts in Ikaros. An entry is the basic unit for managing your content, including multiple episodes and metadata of the entry. This concept originates from [Bangumi Project](https://bgm.tv/). + +## Plugins + +Software packages used to extend the functionality of Ikaros. Plugins are independent of the core Ikaros application and can be installed, upgraded, and uninstalled separately. + +:::info +You can find plugins here: Awesome Ikaros: +::: + +### Version Compatibility Rules + +The major and minor versions of the plugin should be the same as the core. For example, a 0.3.z plugin requires a core version of 0.3.x to work properly. + +The z can be different, only the latest (highest z) is required. + +- Plugin 0.3.z can only work properly on Core 0.3.x +- Plugins 0.2.z or 0.4.z cannot work properly on Core 0.3.x +- Plugin 0.3.z cannot work properly on Core 0.2.x or 0.4.x diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/faq.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/faq.md new file mode 100644 index 0000000..f9ee03d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/faq.md @@ -0,0 +1,23 @@ +--- +title: Frequently Asked Questions +description: Common questions about using Ikaros +--- + +### What is Ikaros? + +**Ikaros** [Ίκαρος] is a personal content manager (CMS) dedicated to ACGMN, designed to conveniently manage your ACGMN content. + +### How can I import existing resources? + +For existing resource files, you can use the local import plugin. To import resources, follow these steps: + +1. Install the local import plugin and start it. +2. In the NAS web console file manager, move your existing resources to the links directory of Ikaros. +3. In the Ikaros backend, stop and then start the local import plugin. This process may take some time as Ikaros will import all the files from the links directory. By default, they are symbolic links, and if symbolic linking fails, they will be copied. +4. After a while, when the Ikaros backend can be accessed normally, it means that the import is complete. You will be able to see the corresponding files in the Ikaros backend. +5. In the NAS console file manager, move the files from the links directory back to their original location. + +After importing resources, follow these steps: + +6. In the Ikaros backend, add the corresponding entry. +7. Go to the entry details to bind the resources. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/files.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/files.md new file mode 100644 index 0000000..619ea83 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/files.md @@ -0,0 +1,37 @@ +--- +title: Files +description: Functions related to file management +--- + +## Management Dashboard + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_13-26-41.png) + +- 1: Select the file type to be queried, including `Images`, `Videos`, `Documents`, `Audio`, `Unknown`. After selection, the file list below will be updated. +- 2: Enter the file name and press `Enter` for a fuzzy search. The file list below will be updated. +- 3: Display the total number of files that meet the filtering conditions. +- 4: Select the number of files per page for paginated queries. +- 5: Click to go to the previous page. The file list below will be updated. If it is the first page, it cannot be clicked. +- 6: Go to a specified page. The file list below will be updated. +- 7: Enter the page number to go to a specified page. The file list below will be updated. +- 8: Open the file upload drawer on the right. +- 9: Control whether the current page's data is displayed in order by ID. +- 10: Double-click the current row to open the file details drawer on the left. +- 11: Modify the file name (it is not recommended to modify the file extension), and press `Enter` to update. +- 12: Open the file details drawer on the left. +- 13: Delete the file data of the current row. The backend will also delete the file. + +## Right File Upload Drawer + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_13-46-04.png) + +## Left File Details Drawer + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_13-48-50.png) + +- Upper area for file preview: You can preview some commonly used image and video file formats. Preview of other file formats is not supported at the moment. +- Lower area for file details: Displays some detailed information about the file. + +For the file name, double-click it to modify the file name. After modification, click elsewhere to save the name. + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_17-45-37.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/foldes.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/foldes.md new file mode 100644 index 0000000..e357da3 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/foldes.md @@ -0,0 +1,55 @@ +--- +title: Folders +description: Functions related to folder management +--- + +## Management Dashboard + +![Ikaros Console Foldes](/img/user-guide-foldes/Snipaste_2023-07-30_17-55-01.png) + +- 1: Open the right file upload drawer. +- 2: Open the new folder dialog. +- 3: Paste selected files into the selected folder. +- 4: Delete the selected folder. The folder must not contain any files or subfolders. +- 5: Current folder path. +- 6: List of folders. +- 7: Single row of folder. +- 8: List of files. +- 9: Single row of file. Double-click to open the left file details drawer. + +:::tip +Please do not delete files in the `/root/cover` directory, as these are mostly cover files for entry data. +::: + +## Selected Folder + +Click on a folder row to select it. The selected folder's background color will be different from other rows. If no folder row is clicked, the selected folder will be the parent folder of the current folder. + +There can only be one selected folder. + +## Selected Files + +Check the checkbox on the far left of each row in the file list to select files. + +There can be one or more selected files. + +## New Folder Dialog + +![Ikaros Console Foldes](/img/user-guide-foldes/Snipaste_2023-07-30_18-01-36.png) + +After submission, a subfolder of the specified parent folder will be created. + +## Right File Upload Drawer + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_13-46-04.png) + +## Left File Details Drawer + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_13-48-50.png) + +- Upper area for file preview: You can preview some commonly used image and video file formats. Preview of other file formats is not supported at the moment. +- Lower area for file details: Displays some detailed information about the file. + +For the file name, double-click it to modify the file name. After modification, click elsewhere to save the name. + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_17-45-37.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/plugins.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/plugins.md new file mode 100644 index 0000000..bf62b1b --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/plugins.md @@ -0,0 +1,28 @@ +--- +title: Plugins +description: Functions related to plugin management +--- + +## Management Dashboard + +![Ikaros Console Plugins](/img/user-guide-plugins/Snipaste_2023-07-30_14-33-46.png) + +- Reload All: Restart all plugins (not recommended). +- Install Plugin: Open the drawer for installing plugins, upload the plugin file (usually a `.jar` file), and install the plugin. +- Plugin Details: Go to the plugin details page. +- Start Plugin: Start the plugin. +- Stop Plugin: Stop the plugin. +- Disable Plugin: Disable the plugin (not recommended, it has no practical meaning. You can still start it after disabling). +- Reload Plugin: Restart the plugin. +- Uninstall Plugin: Delete the plugin. +- Reset Plugin: Functionality not implemented. + +### Plugin Details + +![Ikaros Console Plugins](/img/user-guide-plugins/Snipaste_2023-07-30_14-39-27.png) + +### Basic Plugin Settings + +![Ikaros Console Plugins](/img/user-guide-plugins/Snipaste_2023-07-30_14-39-56.png) + +Clicking "Save" will save the plugin configuration. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/settings.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/settings.md new file mode 100644 index 0000000..a46443d --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/settings.md @@ -0,0 +1,8 @@ +--- +title: Configuration +description: Functions related to system configuration +--- + +![Ikaros Console Settings](/img/user-guide-settings/Snipaste_2023-07-30_14-46-53.png) + +Please note that some features are not yet implemented and are currently in a non-interactive state. Remember to save and update the modified configurations. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/subjects.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/subjects.md new file mode 100644 index 0000000..d8db113 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/subjects.md @@ -0,0 +1,112 @@ +--- +title: Subjects +description: Functions related to subject management +--- + +## Management Panel + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_13-55-26.png) + +- 1: Enter the original subject name and press Enter to search. The original name is generally in Japanese. +- 2: Enter the Chinese subject name and press Enter to search. +- 3: Filter whether the subject belongs to `NSFW` (Not Safe/Suitable For Work). Learn more about `NSFW` [here](https://mzh.moegirl.org.cn/NSFW). +- 4: Filter by the type the subject belongs to, whether it's an animation or something else. +- 5: Open the `Subject Sync Dialog`. +- 6: Go to the `Add Subject Page`. +- 7: Individual subject card. The top displays the original subject name, and the bottom displays the subject cover. Click to go to the corresponding `Subject Details Page`. + +## Subject Sync Dialog + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-05-25.png) + +Clicking outside the dialog or the X can close it. If no subject synchronization implementation plugins are started, it will display a corresponding message instead of selectable options and input fields. + +## Add Subject Page + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-10-02.png) + +- 1: Click to open the `File Selection Dialog`. +- 2: Click to open the `Add Episode Dialog`. +- 3: Click the `Create` button to submit. + +### File Selection Dialog + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-13-50.png) + +Click to select a single row. The selected row will have a different background color from the others. After selecting a file, click Confirm to fill the file URL into the `Subject Cover` input field. + +:::tip +At this point, the data is not saved to the server's database. You need to click the `Create` button to submit it together. +::: + +### Add Episode Dialog + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-16-14.png) + +Enter the corresponding content. After clicking Confirm, a new record will be added to the `Episodes` table. + +:::tip +At this point, the data is not saved to the server's database. You need to click the `Create` button to submit it together. +::: + +## Subject Details Page + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-20-03.png) + +- 1: Go to the subject editing page. It's similar to adding a new subject, but with pre-filled data. You can make modifications and submit updates. +- 2: Delete the current subject. +- 3: Display the subject's cover, information, and episodes. +- 4: Display the subject's `InfoBox`. +- 5: Click to open the multi-selection dialog for files. After confirmation, it will match the selected files with episode numbers. The matching rule is: regular expression matching for `XXX[08]XXXX.XXX` and `XXXX 08 XXXX.XXX`. +- 6: Click to open the file episode details dialog. Alternatively, double-clicking on the current episode row will also open the dialog. +- 7: Click to open the file selection dialog for individual episodes. If a match is made, the button icon will be updated with a checkmark. +- 8: Mark the current episode as watched. +- 9: Favorite the current episode. After favoriting, it will appear in the menu under "Favorites." +- 10: Update the viewing progress of the subject's episodes. +- 11: Open the "Related Subjects" dialog. + +## Related Subjects Dialog + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_16-13-28.png) + +- 1: Main subject information. +- 2: Button to add new subject relationships. Click to open the "Add Subject Relationship" dialog. +- 3: Button to delete subject relationships. Click to open the "Delete Subject Relationship" dialog. +- 4: Display related subjects. +- 5: Cards for related subjects. Clicking will navigate to the details page of the corresponding subject. + +### Add Subject Relationship Dialog + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_16-19-33.png) + +- 1: ID of the main subject (not editable). +- 2: Array of IDs for related subjects (not editable). +- 3: Dropdown menu to select the relationship between the main subject and related subjects. +- 4: Cancel button to close the dialog without submitting. +- 5: Associate button to submit the request to add related subjects. +- 6: Open the "Subject Selection Right Drawer" to choose specific subjects as related subjects. + +### Subject Selection Right Drawer + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_17-04-51.png) + +- 1: Enter the original subject name and press Enter to search. +- 2: Enter the Chinese subject name and press Enter to search. +- 3: Filter for whether the subject belongs to "NSFW." +- 4: Filter for the subject's type. +- 5: Pagination. +- 6: Select all on the current page. +- 7: Select individual rows. + +After selecting subjects, click the dark area on the left or the `X` in the top-right corner of the drawer. The selected subjects will be filled into the "Related Subjects" box. + +### Delete Subject Relationship Dialog + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_17-10-14.png) + +- 1: ID of the main subject (not editable). +- 2: Array of IDs for related subjects (not editable). +- 3: Type of the selected related subjects (not editable). +- 4: Cancel button to close the dialog without submitting. +- 5: Remove Association button to submit the request to remove related subjects. +- 6: Open the "Subject Selection Right Drawer" to choose specific subjects as related subjects. Unlike the "Subject Selection Right Drawer" mentioned above, this drawer will only display related subjects that are already associated with the current main subject. diff --git a/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/users.md b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/users.md new file mode 100644 index 0000000..1f7fd09 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/version-0.14/user-guide/users.md @@ -0,0 +1,8 @@ +--- +title: Users +description: Functions related to user management +--- + +![Ikaros Console Users](/img/user-guide-users/Snipaste_2023-07-30_14-44-44.png) + +Update user information and update user password. diff --git a/i18n/zh/docusaurus-plugin-content-docs/version-0.14.json b/i18n/zh/docusaurus-plugin-content-docs/version-0.14.json new file mode 100644 index 0000000..7336846 --- /dev/null +++ b/i18n/zh/docusaurus-plugin-content-docs/version-0.14.json @@ -0,0 +1,22 @@ +{ + "version.label": { + "message": "0.14", + "description": "The label for version 0.13" + }, + "sidebar.docsSidebar.category.getting-started": { + "message": "入门", + "description": "The label for category getting-started in sidebar docsSidebar" + }, + "sidebar.docsSidebar.category.getting-started-install": { + "message": "安装指南", + "description": "The label for category getting-started-install in sidebar docsSidebar" + }, + "sidebar.docsSidebar.category.plugins": { + "message": "插件", + "description": "The label for category plugins in sidebar docsSidebar" + }, + "sidebar.docsSidebar.category.user-guide": { + "message": "用户指南", + "description": "The label for category user-guide in sidebar docsSidebar" + } +} diff --git a/versioned_docs/version-0.14/about.md b/versioned_docs/version-0.14/about.md new file mode 100644 index 0000000..35a8269 --- /dev/null +++ b/versioned_docs/version-0.14/about.md @@ -0,0 +1,16 @@ +--- +title: 关于文档 +description: 关于本文档站点的一些说明 +--- + +:::note +此文档使用 [Docusaurus](https://docusaurus.io/) 搭建,感谢 [Docusaurus](https://github.com/facebook/docusaurus) 社区所做的贡献。 +::: + +## 参与贡献 + +:::tip +如果你发现文档中有不正确或者需要添加的内容,非常欢迎参与到文档编辑当中。 +::: + +当前文档的仓库地址为 [ikaros-dev/docs](https://github.com/ikaros-dev/docs) ,所以你可以 fork 此仓库,修改之后提交 `Pull request` 等待我们合并即可。 diff --git a/versioned_docs/version-0.14/getting-started/install/android-app.md b/versioned_docs/version-0.14/getting-started/install/android-app.md new file mode 100644 index 0000000..5345aec --- /dev/null +++ b/versioned_docs/version-0.14/getting-started/install/android-app.md @@ -0,0 +1,14 @@ +--- +title: 安卓APP(WIP) +description: 安卓原生APP +--- + +## 介绍 + +安卓手机的原生APP + +GitHub: + +:::tip +还没配好CI打包 +::: diff --git a/versioned_docs/version-0.14/getting-started/install/docker-compose.md b/versioned_docs/version-0.14/getting-started/install/docker-compose.md new file mode 100644 index 0000000..45cea34 --- /dev/null +++ b/versioned_docs/version-0.14/getting-started/install/docker-compose.md @@ -0,0 +1,231 @@ +--- +title: 使用 Docker Compose 部署 +description: 使用 Docker Compose 部署 +--- + +import DockerArgs from "./slots/docker-args.md" + +:::info +在继续操作之前,我们推荐您先阅读[《写在前面》](../prepare.md),这可以快速帮助你了解 Ikaros。 +::: + +## 环境搭建 + +- Docker 安装文档: +- Docker Compose 安装文档: + +:::tip +我们推荐按照 Docker 官方文档安装 Docker 和 Docker Compose,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。 +::: + +## 创建容器组 + +可用的 Ikaros 的 Docker 镜像: + +- [ikarosrun/ikaros](https://hub.docker.com/r/ikarosrun/ikaros) + +:::info 注意 +目前 Ikaros 并未更新 Docker 的 latest 标签镜像,主要因为 暂未发布正式版本。我们推荐使用固定版本的标签,比如 `ikarosrun/ikaros:v0.14.1` 。 + +- `ikarosrun/ikaros:v0.14.1`:表示最新的可用镜像,每次发布时都会根据GitHub的标签构建一个新的镜像 +- `ikarosrun/ikaros:dev`:表示开发中的镜像,不推荐使用,每次Pull Request合并到主分支都会构建并覆盖该镜像。。 + +后续文档以 `ikarosrun/ikaros:v0.14.1` 为例。 +::: + +1. 在系统任意位置创建一个文件夹,此文档以 `~/ikaros` 为例。 + + ```bash + mkdir ~/ikaros && cd ~/ikaros + ``` + + :::info + 注意:后续操作中,Ikaros 产生的所有数据都会保存在这个目录,请妥善保存。 + ::: + +2. 创建 `docker-compose.yaml` + + 此文档提供两种场景的 Docker Compose 配置文件,请根据你的需要**选择一种**。 + + 1. 创建 Ikaros + PostgreSQL 的实例: + + ```yaml {24-34,51} title="~/ikaros/docker-compose.yaml" + version: "3" + services: + # ikaros + ikaros: + image: ikarosrun/ikaros:v0.14.1 + container_name: ikaros + restart: on-failure:3 + depends_on: + ikaros_database: + condition: service_healthy + networks: + ikaros_networks: + volumes: + - ./:/root/.ikaros + ports: + - "9999:9999" + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:9999/actuator/health"] + interval: 30s + timeout: 5s + retries: 5 + start_period: 30s + environment: + # 避免中日文文件名称乱码,需要设置文件编码,先通过命令 [locale -a] 查询下宿主机编码,有的是 [C] 有的是 [zh_CN],替换下方对应的字符 + - LANG=C.UTF-8 + - LANGUAGE=C:zh + - LC_ALL=C.UTF-8 + - TZ=Asia/Shanghai + command: + - --logging.charset.console=UTF-8 + - --logging.charset.file=UTF-8 + # log level for package, such as INFO or DEBUG + - --logging.level.run.ikaros.server=INFO + - --logging.level.run.ikaros.plugin=INFO + - --logging.level.run.ikaros.jellyfin=INFO + - --sun.jnu.encoding=UTF-8 + - --spring.r2dbc.url=r2dbc:pool:postgresql://ikaros_database/ikaros + - --spring.r2dbc.username=ikaros + # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。 + - --spring.r2dbc.password=openpostgresql + # Flayway + - --spring.flyway.url=jdbc:postgresql://ikaros_database/ikaros + - --spring.flyway.locations=classpath:db/postgresql/migration + - --spring.flyway.user=ikaros + - --spring.flyway.password=openpostgresql + # ikaros + - --ikaros.external-url=http(s)://domain.com + # 初始化的超级管理员用户名 + - --ikaros.security.initializer.master-username=tomoki + # 初始化的超级管理员密码 + - --ikaros.security.initializer.master-password=tomoki + + # ikaros database + ikaros_database: + image: postgres:latest + container_name: ikaros_database + restart: on-failure:3 + networks: + ikaros_networks: + volumes: + - ./database:/var/lib/postgresql/data + healthcheck: + test: [ "CMD", "pg_isready" ] + interval: 10s + timeout: 5s + retries: 5 + environment: + - POSTGRES_DB=ikaros + - POSTGRES_USER=ikaros + - POSTGRES_PASSWORD=openpostgresql + + networks: + ikaros_networks: + driver: bridge + ``` + + 2. 仅创建 Ikaros 实例(使用默认的 H2 数据库,**不推荐用于生产环境,建议体验和测试的时候使用**): + + ```yaml {19-24} title="~/ikaros/docker-compose.yaml" + version: "3" + services: + # ikaros + ikaros: + image: ikarosrun/ikaros:v0.14.1 + container_name: ikaros + restart: on-failure:3 + networks: + ikaros_networks: + volumes: + - ./:/root/.ikaros + ports: + - "9999:9999" + healthcheck: + test: [ "CMD", "curl", "-f", "http://localhost:9999/actuator/health"] + interval: 30s + timeout: 5s + retries: 5 + start_period: 30s + environment: + # 避免中日文文件名称乱码,需要设置文件编码,先通过命令 [locale -a] 查询下宿主机编码,有的是 [C] 有的是 [zh_CN],替换下方对应的字符 + - LANG=C.UTF-8 + - LANGUAGE=C:zh + - LC_ALL=C.UTF-8 + - TZ=Asia/Shanghai + command: + - --logging.charset.console=UTF-8 + - --logging.charset.file=UTF-8 + - --logging.level.run.ikaros.server=INFO + - --logging.level.run.ikaros.plugin=INFO + - --logging.level.run.ikaros.jellyfin=INFO + - --sun.jnu.encoding=UTF-8 + # ikaros + - --ikaros.external-url=http(s)://domain.com + # 初始化的超级管理员用户名 + - --ikaros.security.initializer.master-username=tomoki + # 初始化的超级管理员密码 + - --ikaros.security.initializer.master-password=tomoki + + networks: + ikaros_networks: + driver: bridge + ``` + + 参数详解: + + + +3. 启动 Ikaros 服务 + + ```bash + docker-compose up -d + ``` + + 实时查看日志: + + ```bash + docker-compose logs -f ikaros + ``` + +4. 用浏览器访问 `/console` 即可进入 Ikaros 管理页面,用户名和密码为在 `docker-compose.yaml` 文件中设置的 `master-username` 和 `master-password`。 + +:::tip +如没有用这两个参数启动,则默认的用户名是 `tomoki`,密码在打印在日志里(只有首次运行会打印密码)。 +::: + +## 更新容器组 + +1. 停止运行中的容器组 + + ```bash + cd ~/ikaros && docker-compose down + ``` + +2. 备份数据(重要) + + ```bash + cp -r ~/ikaros ~/ikaros.archive + ``` + + > 需要注意的是,`ikaros.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。 + +3. 更新 Ikaros 服务 + + 修改 `docker-compose.yaml` 中配置的镜像版本。 + + ```yaml {3} + services: + ikaros: + image: ikarosrun/ikaros:v0.14.1 + container_name: ikaros + ``` + + ```bash + docker-compose pull ikaros + ``` + + ```bash + docker-compose up -d + ``` diff --git a/versioned_docs/version-0.14/getting-started/install/docker.md b/versioned_docs/version-0.14/getting-started/install/docker.md new file mode 100644 index 0000000..00975a0 --- /dev/null +++ b/versioned_docs/version-0.14/getting-started/install/docker.md @@ -0,0 +1,110 @@ +--- +title: 使用 Docker 部署 +description: 使用 Docker 部署 +--- + +import DockerArgs from "./slots/docker-args.md" + +:::info +在继续操作之前,我们推荐您先阅读[《写在前面》](../prepare),这可以快速帮助你了解 Ikaros。 +::: + +:::tip +此文档仅提供使用默认 H2 数据库的 Docker 运行方式,主要用于体验和测试,在生产环境我们不推荐使用 H2 数据库。 + +如果需要使用其他数据库部署,我们推荐使用 Docker Compose 部署:[使用 Docker Compose 部署](./docker-compose) +::: + +## 环境搭建 + +- Docker 安装文档: + +:::tip +我们推荐按照 Docker 官方文档安装 Docker,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。 +::: + +## 使用 Docker 镜像 + +可用的 Ikaros 的 Docker 镜像: + +- [ikarosrun/ikaros](https://hub.docker.com/r/ikarosrun/ikaros) + +:::info 注意 +目前 Ikaros 并未更新 Docker 的 latest 标签镜像,主要因为 暂未发布正式版本。我们推荐使用固定版本的标签,比如 `ikarosrun/ikaros:v0.14.1` 。 + +- `ikarosrun/ikaros:v0.14.1`:表示最新的可用镜像,每次发布时都会根据GitHub的标签构建一个新的镜像 +- `ikarosrun/ikaros:dev`:表示开发中的镜像,不推荐使用,每次Pull Request合并到主分支都会构建并覆盖该镜像。。 + +后续文档以 `ikarosrun/ikaros:v0.14.1` 为例。 +::: + +1. 创建容器 + + ```bash + docker run \ + -it -d \ + --name ikaros \ + -p 9999:9999 \ + -v ~/.ikaros:/root/.ikaros \ + ikarosrun/ikaros:v0.14.1 \ + --ikaros.security.initializer.master-username=tomoki \ + --ikaros.security.initializer.master-password=tomoki + ``` + + :::info + 注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:[使用 Docker Compose 部署](./docker-compose) + ::: + + - **-it**:开启输入功能并连接伪终端 + - **-d**:后台运行容器 + - **--name**:为容器指定一个名称 + - **-p**:端口映射,格式为 `主机(宿主)端口:容器端口` 。 + - **-v**:工作目录映射。形式为:`-v 宿主机路径:/root/.ikaros`,后者不能修改。 + + 变量详解: + + + +1. 用浏览器访问 `/console` 即可进入 Ikaros 管理页面,用户名和密码为启动参数中的 `master-username` 和 `master-password`。 + + :::tip + 如没有用这两个参数启动,则默认的用户名是 `tomoki`,密码在打印在日志里(只有首次运行会打印密码)。 + ::: + +## 升级版本 + +1. 拉取新版本镜像(请选择最新的标签替换下方的`v0.14.1`) + + ```bash + docker pull ikarosrun/ikaros:v0.14.1 + ``` + +2. 停止运行中的容器 + + ```bash + docker stop ikaros + docker rm ikaros + ``` + +3. 备份数据(重要) + + ```bash + cp -r ~/.ikaros ~/ikaros.archive + ``` + + > 需要注意的是,`ikaros.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。 + +4. 更新 Ikaros + + 修改版本号后,按照最初安装的方式,重新创建容器即可。 + + ```bash {6} + docker run \ + -it -d \ + --name ikaros \ + -p 9999:9999 \ + -v ~/.ikaros:/root/.ikaros \ + ikarosrun/ikaros:v0.14.1 \ + --ikaros.security.initializer.master-username=tomoki \ + --ikaros.security.initializer.master-password=tomoki + ``` diff --git a/versioned_docs/version-0.14/getting-started/install/fast-jar.md b/versioned_docs/version-0.14/getting-started/install/fast-jar.md new file mode 100644 index 0000000..1ee87a2 --- /dev/null +++ b/versioned_docs/version-0.14/getting-started/install/fast-jar.md @@ -0,0 +1,25 @@ +--- +title: 使用 Fast Jar 部署 +description: 使用 Fast Jar 部署 +--- + +import DockerArgs from "./slots/docker-args.md" + +需要有`Java17`的运行环境 + +去`GitHub`的`Release`页`Assets`处下载`jar`包: + +在`Jar`文件所在目录,`Linux` 运行 +```shell +java -jar ./ikaros-server.jar +``` + +在打包文件所在目录,`Windwos` 运行, +需要加上额外参数`--spring.profiles.active=win` +```shell +java -jar ikaros-server.jar --spring.profiles.active=win +``` + +参数详解: + + \ No newline at end of file diff --git a/versioned_docs/version-0.14/getting-started/install/flutter-app.md b/versioned_docs/version-0.14/getting-started/install/flutter-app.md new file mode 100644 index 0000000..5cbb165 --- /dev/null +++ b/versioned_docs/version-0.14/getting-started/install/flutter-app.md @@ -0,0 +1,56 @@ +--- +title: 非原生APP +description: 基于Flutter的跨平台移动端APP +--- + +## 介绍 + +基于Flutter的跨平台移动端APP + +GitHub: + +:::tip +目前功能不完善,欢迎体验测试 +::: + +## 功能演示 + + + + + +## Android安装包 + +先进这个页面: + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-27-53.png) + +往下拉,下载压缩包 + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-31-38.png) + +解压后,就是安装包了 + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-34-29.png) + +## IOS安装包 + +:::tip +IOS安装包是未签名的,您需要进行[自签](https://bing.com/search?q=ios%E8%87%AA%E7%AD%BE&ensearch=1)才能正常使用。 +::: + +先进这个页面: + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-40-35.png) + +往下拉,下载压缩包 + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-41-09.png) + +解压后,就是安装包了 + +![Github Ikaros Flutter App Actions](/img/getting-started-install-flutter-app/Snipaste_2023-07-30_12-44-00.png) + +## 其它平台 + +暂时没有,就编译了`Android`和`IOS`,其它平台也没做适配。 diff --git a/versioned_docs/version-0.14/getting-started/install/slots/docker-args.md b/versioned_docs/version-0.14/getting-started/install/slots/docker-args.md new file mode 100644 index 0000000..9c444a2 --- /dev/null +++ b/versioned_docs/version-0.14/getting-started/install/slots/docker-args.md @@ -0,0 +1,16 @@ +| 参数名 | 描述 | +| ---------------------------------------------- | -------------------------------------------------------------------------------- | +| `spring.r2dbc.url` | 数据库连接地址,详细可查阅下方的 `数据库配置` | +| `spring.r2dbc.username` | 数据库用户名 | +| `spring.r2dbc.password` | 数据库密码 | +| `spring.sql.init.platform` | 数据库平台名称,支持 `postgresql`、`h2` | +| `ikaros.security.initializer.master-username` | 初始超级管理员用户名, 默认 `tomoki` | +| `ikaros.security.initializer.master-password` | 初始超级管理员密码, 第一次运行程序打印在控日志里 | +| `ikaros.external-url` | 外部访问地址,比如: https://demo.ikaros.run | + +数据库配置: + +| 链接方式 | 链接地址格式 | `spring.sql.init.platform` | +| ----------- | ---------------------------------------------------------------------------------- | -------------------------- | +| PostgreSQL | `r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}` | postgresql | +| H2 Database | `r2dbc:h2:file:///${ikaros.work-dir}/db/ikaros?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE` | h2 | diff --git a/versioned_docs/version-0.14/getting-started/prepare.md b/versioned_docs/version-0.14/getting-started/prepare.md new file mode 100644 index 0000000..6e8bd6b --- /dev/null +++ b/versioned_docs/version-0.14/getting-started/prepare.md @@ -0,0 +1,97 @@ +--- +title: 写在前面 +description: 在开始前,您需要了解的事项 +--- + +## 环境要求 + +这里将讲述运行 Ikaros 所要求的一些软硬件的配置,我们建议您在运行或者部署之前先浏览一遍此页面。 + +### 硬件配置 + +:::tip +不推荐使用云服务器部署,Ikaros默认用户是私人使用不公开的,一般部署在家庭的内网里,并且不会对外开放访问。 +::: + +#### CPU + +无特别要求。我们的 [Docker 镜像](https://hub.docker.com/r/ikarosrun/ikaros) 。 + +#### 内存 + +为了获得更好的体验,我们建议至少配置 1G 的 RAM。 + +#### 磁盘 + +无特别要求 + +#### 网络 + +请不要对外网(相对家里的内网)开放家里的服务。 + +### 软件环境 + +Ikaros 理论上可以运行在任何支持 Docker 及 Java 的平台。 + +#### Docker + +必须在运行环境安装好 [Docker](https://www.docker.com/) 环境,目前 Ikaros 的默认安装运行方式均使用容器。 + +#### JRE(可选) + +目前 Ikaros 的默认及推荐安装方式为 Docker 容器运行,使用 jar 包运行的方式需要用户自行构建 jar 包。 + +:::info +需要 JRE 17 的版本,推荐使用 OpenJDK 17。 +::: + +#### PostgreSQL(可选 + 推荐) + +也可以使用系统自带的 H2 Database 数据库,无需安装。但不推荐在生产环境中使用 H2 Database。 + +#### Web 服务器(可选) + +如果您部署在生产环境,那么你很可能需要进行域名绑定,这时候我们推荐使用诸如 [Nginx](http://nginx.org/)、[Caddy](https://caddyserver.com/) 之类的 Web 服务器进行反向代理。 + +#### Wget(可选) + +后续的文档中,我们会使用 wget 为例,用于下载所需要的文件,所以请确保服务器已经安装好了这个软件包。当然,下载文件不限制工具,如果你对其他工具熟悉,可以忽略。 + +#### VIM(可选) + +后续的文档中,我们会使用 vim 为例,用于修改一些必要的配置文件,所以同样请确保服务器已经安装了这个软件包。当前,修改文档也不限制工具,如果你对其他编辑软件熟悉,也可以忽略。 + +## 浏览器支持 + +1. 用户前台:使用 [Thymeleaf](https://www.thymeleaf.org/) 模板引擎 + [Bootstrap](https://getbootstrap.com/) 构建的简单的展示页面,理论上是支持目前场景的现代浏览器。 +2. 管理后台:支持目前常见的现代浏览器,具体视 [Vuejs](https://cn.vuejs.org/) 框架的支持情况而定。 + +## 名词解释 + +这里将列出后续文档中一些和 Ikaros 相关的名词含义。 + +### ~(符号) + +代表当前系统下的 [用户目录](https://zh.wikipedia.org/wiki/%E5%AE%B6%E7%9B%AE%E5%BD%95)。 + +### 镜像 + +指 Ikaros 构建所产生的 [Docker 镜像](https://docs.docker.com/engine/reference/commandline/images/)。用户通过该镜像启动 Ikaros 应用。 + +### 工作目录 + +指 Ikaros 所依赖的工作目录,在 Ikaros 运行的时候会在系统当前用户目录下产生一个 `.ikaros` 的文件夹,绝对路径为 `~/.ikaros`。由于这个工作目录是固定的,所以上面所说的 `运行包`不限制所存放的位置,里面通常包含下列目录或文件: + +1. `database`:存放 数据库 的物理文件,如果你使用其他数据库,那么数据在其它数据库那。 +2. `indices`:内置的 [Lucene](https://lucene.apache.org/) 搜索引擎的索引数据 +2. `plugins`:里面包含用户所安装的插件。 +4. `files`:Ikaros的文件目录。 +5. `logs`:运行日志目录。 + +### 插件 + +用于扩展 Ikaros 功能的软件包。插件独立于 Ikaros 核心应用,可以单独安装、卸载。 + +### 更多 + +[用户指南](../category/user-guide) diff --git a/versioned_docs/version-0.14/intro.md b/versioned_docs/version-0.14/intro.md new file mode 100644 index 0000000..8179343 --- /dev/null +++ b/versioned_docs/version-0.14/intro.md @@ -0,0 +1,80 @@ +--- +id: intro +sidebar_label: 简介 +title: "" +sidebar_position: 1 +hide_title: true +slug: / +--- + +

+ + Ikaros logo + +

+ +

Ikaros [Ίκαρος],专注于ACGMN的内容管理系统(CMS)。

+ +

ACGMN全拼是:Anime(动画) + Comic(漫画) + Game(游戏) + Music(音乐) + Novel(小说)

+ +

+Github Releases +GitHub Stargazers +Docker pulls +code coverage +GitHub last commit +GitHub workflow build status +
+

+ +--- + +## 快速开始 + +```bash +docker run \ + -it -d \ + --name ikaros \ + -p 9999:9999 \ + -v ~/.ikaros:/root/.ikaros \ + ikarosrun/ikaros:v0.14.1 \ + --ikaros.security.initializer.master-username=tomoki \ + --ikaros.security.initializer.master-password=tomoki +``` + +控制台的路径是 `/console` 。 +默认端口是`9999`,默认用户名密码是通过上述两个参数控制的, +如没有用这两个参数启动,则默认的用户名是 `tomoki`,密码在打印在日志里(只有首次运行会打印密码)。 + +以上仅作为体验使用,详细部署文档请查阅:[使用 Docker Compose 部署](./getting-started/install/docker-compose.md) + +## 插件 + +插件汇总在这个仓库: + +## 视频 + +- 功能预览视频: +- 安装视频: +- 最新日志介绍: + +## 简要帮助 + +- 打开全局搜索是按键盘 `Ctrl` + `/` . + +## 许可证 + +[![license](https://img.shields.io/github/license/ikaros-dev/ikaros.svg?style=flat-square)](https://github.com/ikaros-dev/ikaros/blob/master/LICENSE) + +ikaros 使用 AGPL-v3.0 协议开源,请遵守开源协议。 + +## 贡献 + +参考 [CONTRIBUTING](https://github.com/ikaros-dev/ikaros/blob/master/CONTRIBUTING.MD)。 + +## 状态 + +![Repobeats analytics](https://repobeats.axiom.co/api/embed/f7285853048ff09f313f6483901e2af0e638f666.svg "Repobeats analytics image") + +[![Stargazers over time](https://starchart.cc/ikaros-dev/ikaros.svg)](https://starchart.cc/ikaros-dev/ikaros) + diff --git a/versioned_docs/version-0.14/plugins/common.md b/versioned_docs/version-0.14/plugins/common.md new file mode 100644 index 0000000..7606ec6 --- /dev/null +++ b/versioned_docs/version-0.14/plugins/common.md @@ -0,0 +1,18 @@ +--- +title: 基础说明 +description: 关于插件的基本说明 +--- + +插件汇总: + +# 版本适配规则 +插件的大版本和小版本和本体保持相同, +比如 0.3.z 的插件,需要本体版本为 0.3.x 才可以正常工作 + +其中z无需相同,只需要最新(z最大)即可。 + +- 插件 0.3.z 只能在 本体 0.3.x 上正常使用 +- 插件 0.2.z 或 0.4.z 无法在 本体 0.3.x 上正常使用 +- 插件 0.3.z 无法在 本体 0.2.x 或 0.4.x 上正常使用 + + diff --git a/versioned_docs/version-0.14/plugins/plugin-alist.md b/versioned_docs/version-0.14/plugins/plugin-alist.md new file mode 100644 index 0000000..3f2b12d --- /dev/null +++ b/versioned_docs/version-0.14/plugins/plugin-alist.md @@ -0,0 +1,24 @@ +--- +title: AList插件 +description: AList插件说明 +--- + +# AList介绍 + +> 🗂️ 一个支持多种存储的文件列表程序,使用 Gin 和 Solidjs。 + +官网: + +GitHub: + +# 插件介绍 + +导入转化alist的文件成ikaros的附件。 + +# 操作指南 + +1. 去GitHub仓库release的asserts下下载alist插件的jar包,安装并启动。启动后会发现左边菜单栏多了个AList页面。 +2. 先进插件详情页,然后点击基本配置,输入您部署的alist的地址,格式:`http(s)://alist.domain.com`、用户名和密码,然后保存。 +3. 进入你的alist实例,进入要导入的目录,然后复制浏览器路径,到ikaros console 的 AList页面 上的 输入框内 +4. 点击提交,提交按钮会提示正在处理中,等待处理完成,会有个弹窗告知,期间不要做任何操作。此处耗时视您输入的alist目录下的文件数量而定,数量越多越耗时,如果提示响应超时,不用担心,服务器有正常在处理。 + diff --git a/versioned_docs/version-0.14/plugins/plugin-baidupan.md b/versioned_docs/version-0.14/plugins/plugin-baidupan.md new file mode 100644 index 0000000..1c909f8 --- /dev/null +++ b/versioned_docs/version-0.14/plugins/plugin-baidupan.md @@ -0,0 +1,6 @@ +--- +title: 百度网盘插件(WIP) +description: 百度网盘插件说明 +--- + +WIP diff --git a/versioned_docs/version-0.14/plugins/plugin-bgmtv.md b/versioned_docs/version-0.14/plugins/plugin-bgmtv.md new file mode 100644 index 0000000..36c45bc --- /dev/null +++ b/versioned_docs/version-0.14/plugins/plugin-bgmtv.md @@ -0,0 +1,29 @@ +--- +title: 番组计划插件 +description: 番组计划插件说明 +--- + +## GitHub + + + +## 番组计划 + +- 官网: +- 百科: + +## 功能 + +### 已实现 + +- 实现了番剧同步接口,可通过番组计划快速拉取条目数据 + +### 待实现 + +- 实现和番组计划的番剧收藏同步功能 + +## 配置 + +您可以在后台配置番组计划的`TOKEN`和是否开启代理 + +![Ikaros Console Plugin Config](/img/plugins-plugin-bgmtv/Snipaste_2023-07-30_15-42-22.png) diff --git a/versioned_docs/version-0.14/plugins/plugin-jellyfin.md b/versioned_docs/version-0.14/plugins/plugin-jellyfin.md new file mode 100644 index 0000000..80b9794 --- /dev/null +++ b/versioned_docs/version-0.14/plugins/plugin-jellyfin.md @@ -0,0 +1,46 @@ +--- +title: Jellyfin插件 +description: Jellyfin插件说明 +--- + +## GitHub + + + +## Jellyfin + +- 官网: + +## 条目目录生成任务 + +此插件启动后,每隔15分钟执行一次条目目录生成任务, + +该任务会根据数据库条目数据,在应用目录下的`jellyfin` 目录下生成两个目录: + +- `normal` 目录:这个目录下全是 不属于 `NSFW` 的 条目生成的目录 +- `nsfw` 目录:这个目录下全是 属于 `NSFW` 的 条目生成的目录 + +单个条目目录的名称格式是:`条目中文名 + '-' + 条目原始名 + '(' + yyyy-MM-hh + ')'`, 例如 `轻音少女 - けいおん! (2009-04-02)` + +单个条目目录里,会生成(硬链接) 封面文件 `poster.jpg` 和 生成`tvshow.nfo` 文件, + +如果条目的剧集绑定了资源,则会生成(硬链接)对应的剧集文件,剧集文件名就是资源文件的名称, + +如果对应文件名称在数据库里可以找到对应的 后缀为 `.ass` 的文件(不需要在ikaros管理的同一个目录里),则生成(硬链接)对应的字幕文件。 + +最后一个条目目录的生成文件大概如下图: + +![Ikaros Generate Jellyfin Subject Files](/img/plugins-plugin-jellyfin/Snipaste_2023-07-30_15-28-48.png) + +## 如何使用生成的目录 + +Jellyfin 的容器挂载目录添加这个目录,在后台添加库, +你可以选择挂载 `normal` 或者 `nsfw` 目录其中的哪个, + +内容类型选择 `节目` + +:::tip +元数据下载器建议全部不勾选!如果实在要勾选,请安装jellyfin的番组计划插件,勾选番组计划,其它的都不建议勾选。 +::: + +然后您做了一些其它设置后就可以保存了。 diff --git a/versioned_docs/version-0.14/plugins/plugin-local-files-import.md b/versioned_docs/version-0.14/plugins/plugin-local-files-import.md new file mode 100644 index 0000000..eff8b6a --- /dev/null +++ b/versioned_docs/version-0.14/plugins/plugin-local-files-import.md @@ -0,0 +1,196 @@ +--- +title: 本地导入插件 +description: 本地导入插件说明 +--- + +## GitHub + + + +## 介绍 + +目前的方案是,启动的时候,检查当前应用工作目录下,是否有 `links` 目录存在, +如果该目录下存在文件或者目录, 在当前插件启动后,会将所有文件导入到数据库的文件管理中, +默认是[硬链接](https://en.wikipedia.org/wiki/Hard_link),失败了会进行复制。 + +推荐将已有资源移动到这个目录,然后启动插件进行导入,最后再把已有资源移动回去;如果软连接成功并不会多占用磁盘空间。 + +## 最佳实践 + + +## 总体步骤 + +1. 通过移动或者硬链接的方式,将已经存在的资源,移动至文件系统的`ikaros`应用目录下的`links`目录 +2. 控制台启动导入插件,等待导入完成 +3. 控制台禁用导入插件 +4. 移动或者删除文件系统的`ikaros`应用目录下的`links`目录的文件或者目录 +5. 控制台添加条目 +6. 控制台绑定资源 +7. (可选)控制台将逻辑目录`links`的目录移动到自己想要移动的逻辑目录 + +### 视频演示 + +#### 硬链接方式导入(推荐) + + + + + + +#### 移动方式导入 + + + + + +### 准备资源 + +#### 移动方式导入 + +直接通过NAS或者进入SSH进行文件移动操作 + +#### 硬链接方式导入(推荐) + +这里使用的脚本来自: + +首先进入SSH后台,进入和你资源目录的父级目录,新建一个脚本`mklink.sh`,内容如下: + +``` shell +#!/bin/sh +#auther: andycrusoe@gmail.com +#使用说明:https://github.com/appotry/PTtool#readme +#结合du -b可以得到性能更快更好的版本,目前这个可用,先这样了 + + +#查找文件硬链接 +#ls -ialh file.txt +#find . -inum 1234 + +SRC="/share/Download/tmp/src" +DST="/share/Download/tmp/dst" + +FILEGIG=1000000c + +SAVEIFS=$IFS +IFS=$(echo -en "\n\b") + +function servicectl_usage(){ + echo "Usage:mklink.sh sourcedir dstdir" + return 1 +} + +function servicectl(){ +[[ -z $1 || -z $2 ]] && servicectl_usage +} + +if [ $# -eq 2 ]; then + SRC=$1 + DST=$2 + echo "User set:" + echo "src:$SRC" + echo "dst:$DST" +else + servicectl_usage + echo "use default set:" + echo "源目录src:$SRC" + echo "目的目录dst:$DST" + exit -1 +fi + +#查找大于1M的文件,硬链接 +for i in `find $SRC -size +$FILEGIG` +do + + echo "work:$i" + + if [ -d $i ]; then + echo "跳过处理目录1:$i" + echo "--" + continue + else if [ -e $i ]; then + echo "src file:$i" + fi + fi + + #判断目录是否已经存在 + tmppth=`dirname $i` + pth=${tmppth/"$SRC"/"$DST"} + if [ ! -d $pth ]; then + echo "mkdir -p $pth" + mkdir -p $pth + #else + # echo "跳过处理目录2:$i" + # echo "--" + # continue + fi + + dstfile=$pth/`basename $i` + echo "dst file:${dstfile}" + + #判断文件是否已经存在 + #不存在才复制 + if [ ! -f $dstfile ]; then + echo "cp -l $i $dstfile" + cp -l $i $dstfile + fi + + echo "--" + +done + + + +#查找小于1M的文件,复制小于1m的文件 +for i in `find $SRC -size -$FILEGIG` +do + + echo "work:$i" + + if [ -d $i ]; then + echo "跳过处理目录3:$i" + echo "--" + continue + else if [ -e $i ]; then + echo "src file:$i" + fi + fi + + #判断目录是否已经存在 + tmppth=`dirname $i` + pth=${tmppth/"$SRC"/"$DST"} + if [ ! -d $pth ]; then + echo "mkdir -p $pth" + mkdir -p $pth + fi + + dstfile=$pth/`basename $i` + echo "dst file:${dstfile}" + + #判断文件是否已经存在 + #不存在才复制 + if [ ! -f $dstfile ]; then + echo "cp $i $dstfile" + cp $i $dstfile + fi + + echo "--" + +done + +IFS=$SAVEIFS +``` + +赋予执行权限 + +``` shell +chmod +x mklink.sh +``` + +硬链接目录操作 + +``` shell +./mklink.sh /share/downloads/script/test /share/application/ikaros/links/test +``` + +- 前面`/share/downloads/script/test`是源目录路径,注意后面不能加`/`,否则会忽略源目录下的文件 +- 后面`/share/application/ikaros/links/test`是目标目录路径,这里的`test`建议和您源目录名称相同 diff --git a/versioned_docs/version-0.14/plugins/plugin-mikan.md b/versioned_docs/version-0.14/plugins/plugin-mikan.md new file mode 100644 index 0000000..8565e99 --- /dev/null +++ b/versioned_docs/version-0.14/plugins/plugin-mikan.md @@ -0,0 +1,44 @@ +--- +title: 蜜柑计划插件 +description: 蜜柑计划插件说明(不推荐使用) +--- + +## GitHub + + + +## 蜜柑计划 + +- 官网: + +## 不推荐理由 + +个人不建议使用。这个插件实在是有点难用, +主要问题还是在和第三方Qbittorrent交互上,这里涉及的用户容器权限问题比较复杂, +可能等未来 ikaros 通过插件实现了 BT下载,这个插件用起来才比较方便。 + + +## 配置 + +您可以在后台配置蜜柑计划的RSS和`Qbitorrent`的地址 + +![Ikaros Console Plugin Config](/img/plugins-plugin-mikan/Snipaste_2023-07-30_15-48-14.png) + +:::tip +这里的qbittorrent的ip是docker的虚拟ip。这个和部署方式有关,需要保证能够连通qbittorrent, 您可以通过部署一个portainer在ikaros的network里添加你的qbittorrent容器,这样就有了一个虚拟ip。 +::: + +## 功能说明 + +会在插件启动时,开启两个定时任务: + +- 解析蜜柑计划订阅任务:每隔三十分钟解析蜜柑计划订阅RSS,将对应的torrent添加到qbittorrent,分类是 `ikaors` ,并给torrent打上标签,标签值是番组计划的条目ID。 +- 导入下载文件并添加条目:每隔五分钟,查询下qbittorrent的`ikaros`分类的文件是否下载完成,将下载完成的导入(软链接)ikaros的文件管理,并添加对应的条目,并匹配条目剧集,如果匹配到剧集,则给用户发送邮件,邮件地址的配置在 `设置` => `邮件配置` => `开启邮件` => `收件方邮件地址` 。 + +:::tip +您需要开启并配置好SMTP邮件服务器配置,才可以正常接受邮件。
您的封面URL邮件客户端能够正常访问,邮件的封面图片才会正常显示。 +::: + +邮件大概如下图: + +![Ikaros Subject Update Mail](/img/plugins-plugin-mikan/Snipaste_2023-07-30_16-04-21.png) diff --git a/versioned_docs/version-0.14/user-guide/attachments.md b/versioned_docs/version-0.14/user-guide/attachments.md new file mode 100644 index 0000000..fe51b64 --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/attachments.md @@ -0,0 +1,104 @@ +--- +title: 附件 +description: 附件管理相关功能说明 +--- + +## 说明 + +- 附件分为`目录`类型附件和`文件`类型附件,需要注意的是:目录也是附件。 +- 文件类型附件,又分为`图片`、 `视频`、 `文档`、 `音声`、`未知`,各种类型有不同的图标。 +- 附件关联(AttachmentRelation):只涉及附件之间直接的关系,比如视频附件和对应的字幕附件; +- 附件引用(AttachmentReference):附件被其它地方引用,比如被条目引用为封面的图片附件,附件存在引用时无法删除; + +## 管理主面板 + +![Ikaros Console Attachment Manager](/img/user-guide-attachments/Snipaste_2024-05-17_22-18-16.png) + +- 1: 打开[上传附件右侧抽屉](#右边附件上传抽屉),用于上传附件,支持大附件分片上传,但没有断点续传(如资源较多则更推荐使用[本地导入插件](/docs/plugins/plugin-local-files-import)的本地导入功能); +- 2: 在当前目录新建目录; +- 3: 按关键词搜索当前目录下的所以附件,模糊匹配,多个关键词用空格隔开,会更新下方附件列表; +- 4: 当前目录下的所以附件总数,如目录附件数目少,则不显示; +- 5: 当前每页显示的附件数目,如目录附件数目少,则不显示; +- 6: 上一页按钮,当前处于第一页时不可用,如目录附件数目少,则不显示; +- 7: 页码,点击跳转到对应页数,如目录附件数目少,则不显示; +- 8: 输入页码数字,跳转到对应页数,如目录附件数目少,则不显示; +- 9: 当前所在的目录路径 +- 10: 当前所在的目录路径,按照目录类型附件进行分隔 +- 12: 目录类型的附件列表 +- 13: 文本文件类型的附件 +- 14: 视频文件类型的附件 + +## 附件列表操作 + +### 选中行操作 + +![Ikaros Console Attachment Manager Select Row Operate](/img/user-guide-attachments/Snipaste_2024-05-17_22-58-49.png) + +勾选每行前的小方框,则视为选中该行, +选中后,上方会出现两个操作按钮: +- 批量移动:将选中的目附件,移动到指定的目录; +- 批量删除:将选中的附件进行删除,危险操作请谨慎确认; + +### 目录类型附件 + +#### 单行双击 +双击目录类型附件,进入对应的目录,上方的当前所在目录路径会更新,下方的附件列表也会更新。 + +#### 单行右键 + +鼠标右键目录类型附件,会打开右键操作面板,可以进行一些操作。 + +![Ikaros Console Attachment Right Click Menu](/img/user-guide-attachments/Snipaste_2024-05-17_22-46-11.png) + +- 进入:点击进入当前目录; +- 复制简短名称:这个对目录类型附件无效,忘记加条件禁用了,后续优化; +- 复制完整名称:复制当前目录附件的名称,比如目录附件名为`Bonus`,则复制到剪贴板的字符串就是`Bonus`; +- 复制URL:目录类型附件无效,已禁用; +- 下载:不支持服务端将整个目录压缩打包进行下载,已禁用; +- 删除:删除当前目录,需要注意的是:**删除目录操作会递归删除该目录下的所以文件和目录**,操作还请小心; + +### 文件类型附件 + +#### 单行双击 +双击文件类型附件,会打开[右边附件详情抽屉](#右边附件详情抽屉),展示当前附件的一些详细信息,可预览的附件则支持预览。 + +#### 单行右键 + +![Ikaros Console Attachment Right Click Menu](/img/user-guide-attachments/Snipaste_2024-05-17_22-52-56.png) + +- 详情:打开[右边附件详情抽屉](#右边附件详情抽屉); +- 复制简短名称:复制当前文件附件的简短名称,不带后缀名,比如目录附件名为`[LPSub] BanG Dream! It's MyGO!!!!! 01 (BDRip 1080p HEVC-YUV420P10 FLAC).jpsc.ass`,则复制到剪贴板的字符串就是`[LPSub] BanG Dream! It's MyGO!!!!! 01 (BDRip 1080p HEVC-YUV420P10 FLAC).jpsc`,不带后缀名`.ass`; +- 复制完整名称:复制当前文件附件的完整名称,包括后缀名; +- 复制URL:复制当前文件附件的相对路径直链URL,比如`/files/2024/5/13/27374bdd766c45e19a1293d25e9924c8.mkv`; +- 下载:下载当前文件附件; +- 删除:删除当前文件附件,会彻底删除该文件的数据,危险操作还请谨慎; + + +
+ +## 右边附件上传抽屉 + +![Ikaros Console File Manager](/img/user-guide-files/Snipaste_2023-07-30_13-46-04.png) + +- 文件上传区域,可以点击选择文件上传,或者将文件拖动到对应的区域上传。 + +## 右边附件详情抽屉 + +![Ikaros Console Attachment Manager](/img/user-guide-attachments/Snipaste_2024-05-17_23-07-15.png) + +- 上方是文件预览的区域,图片、视频、音频类型文件附件可以进行预览; +- 名称这栏目,可以鼠标移动到具体的附件名称值上双击,进行重命名操作; +- 视频预览,这里用到了[artplayer.js](https://github.com/zhw2590582/ArtPlayer),支持挂载ASS类型的字幕; + - ![Ikaros Console Attachment Manager](/img/user-guide-attachments/Snipaste_2024-05-17_23-13-38.png) +- 下方`删除`按钮:删除当前附件,同时会删除文件,危险操作请谨慎确认; +- 下方`关联`按钮:打开[附件关联操作面板](#附件关联操作面板),进行视频字幕关联操作; + + +## 附件关联操作面板 + +![Ikaros Console Attachment Manager](/img/user-guide-attachments/Snipaste_2024-05-17_23-18-16.png) + +- 展示与当前附件想关联的附件,当前只有一种`VIDEO_SUBTITLE`视频字幕类型的附件关联关系; +- 列表每行的`删除`按钮,可以删除当前的附件关联关系; +- 底部的`添加`按钮,可以新增新的附件关联关系; + diff --git a/versioned_docs/version-0.14/user-guide/collections.md b/versioned_docs/version-0.14/user-guide/collections.md new file mode 100644 index 0000000..bbff303 --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/collections.md @@ -0,0 +1,13 @@ +--- +title: 收藏 +description: 收藏展示相关功能说明 +--- + +## 管理主面板 + +![Ikaros Console Subject Manager](/img/user-guide-collections/Snipaste_2023-10-11_17-24-11.png) + +- 1:筛选条件,收藏是否属于私有,不公开 +- 2:收藏类型,想看、在看、看完、搁置、抛弃 +- 3:分页查询 +- 4:单个条目卡片,点击可跳转至对应的条目详情页 diff --git a/versioned_docs/version-0.14/user-guide/common.md b/versioned_docs/version-0.14/user-guide/common.md new file mode 100644 index 0000000..c85a1a7 --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/common.md @@ -0,0 +1,64 @@ +--- +title: 基础说明 +description: Ikaros 中的基本概念说明 +--- +Ikaros 作为一款强大的ACGMN内容管理器,配合上不同的模板与插件,可以很好地帮助你管理自己的内容。 + +为了更好地发挥出 Ikaros 的价值,这里有一些基本概念需要你进行了解。 + +## 控制台 + +控制台是一个 Ikaros 站点的后台管理系统,只有具有权限的登录用户才可以正常使用控制台功能。你可以在控制台中管理站点中的文件、条目、插件等各种内容,调整站点使用的各种设置。 + +:::info +控制台的访问入口为 `/console`。 +::: + +![Ikaros Console](/img/user-guide-common/Snipaste_2024-05-17_23-43-04.png) + +## 元数据 + +元素的信息或者描述等因素的集合 + +## 附件 + +由用户上传的,供剧集等各个地方引用的附件,也是您的资源文件,存储在[工作目录](../getting-started/prepare)下的`files`目录里。 + +具体请看:[用户指南-附件](../user-guide/attachments) + +## 剧集 + +剧集是一个带有元数据的文件元素,同时包含数据和文件,数据存储在数据库里,文件存储在[工作目录](../getting-started/prepare)下的`files`目录里。 + +## 条目 + +条目是 Ikaros 中的核心概念之一。一个条目是管理您内容的基本单位,包括多个剧集和条目的元数据, +这个概念源自 [番组计划](https://bgm.tv/) 。 + +## 插件 + +用于扩展 Ikaros 功能的软件包。插件独立于 Ikaros 核心应用,可以单独安装、升级、卸载。 + +:::info +目前可以获取插件:Awesome Ikaros: +::: + +您需要去对应的仓库`release`下获取对应的插件安装用`jar`包文件,由于可能都是发布的`pre-release`, 主页查看 `release`区域不会显示有包,需要点击`release`进去看对应发布的详情。 + +## 全局搜索 + +全局搜索,能够方便快捷地寻找条目。 + +按键盘 `Ctrl` + `/` + + +## 版本适配规则 + +插件的大版本和小版本和本体保持相同, +比如 0.3.z 的插件,需要本体版本为 0.3.x 才可以正常工作 + +其中z无需相同,只需要最新(z最大)即可。 + +- 插件 0.3.z 只能在 本体 0.3.x 上正常使用 +- 插件 0.2.z 或 0.4.z 无法在 本体 0.3.x 上正常使用 +- 插件 0.3.z 无法在 本体 0.2.x 或 0.4.x 上正常使用 diff --git a/versioned_docs/version-0.14/user-guide/faq.md b/versioned_docs/version-0.14/user-guide/faq.md new file mode 100644 index 0000000..53393ab --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/faq.md @@ -0,0 +1,33 @@ +--- +title: 常见问题 +description: 使用上的常见问题 +--- + +### Ikaros 是什么? + +**Ikaros** [Ίκαρος],专注于ACGMN的个人内容管家(CMS),用于方便管理您的ACGMN内容的助手。 + +### 当前开发阶段 + +阿尔法内测阶段,功能不完善。 + +当前核心开发就我一人,个人精力有限,开发速度比较慢,还请见谅。 + +按照当前的速度,~~尽量争取两周一个小版本,一个季度一个中版本~~世事难料,看情况更新。 + +正式版估计少说也得几年的时间,另外Ikaros项目开始于2022年5月21日,距今已经500多天了。 + +### 如何导入已经存在的资源 + +对于已经存在的资源文件,可以借助本地导入插件 +关于资源导入,可以先按照以下步骤来 + +1. 安装本地导入插件并启动 +2. 进nas的web控制台文件管理,将你已经存在的资源,移动到ikaros的links目录 +3. 进ikaros后台,停止本地导入插件,再启动,这里会卡一段时间,因为ikaros在将links目录里的文件全部导入文件管理,默认是软链接,软链接失败会复制 +4 过段时间,等ikaros后台能正常访问了,代表导入结束了,能在ikaros后台看到对应的文件 +5 进nas控制台文件管理,将links目录文件移动会原来的位置。 + +资源导入结束,后续是: +6. ikaros后台添加对应条目 +7. 进入条目详情进行资源绑定 diff --git a/versioned_docs/version-0.14/user-guide/plugins.md b/versioned_docs/version-0.14/user-guide/plugins.md new file mode 100644 index 0000000..b053602 --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/plugins.md @@ -0,0 +1,28 @@ +--- +title: 插件 +description: 插件管理相关功能说明 +--- + +## 管理主面板 + +![Ikaros Console Plugins](/img/user-guide-plugins/Snipaste_2023-07-30_14-33-46.png) + +- 重载所有:重启所有插件,不建议使用; +- 安装插件:打开上方安装插件抽屉,上传插件文件(一般是`.jar`包),安装插件; +- 插件详情:前往插件详情页; +- 插件启动:启动插件; +- 插件停止:停止插件; +- 插件禁用:禁用插件,不建议使用,没啥意义,禁用后你点击启动一样能启动; +- 插件重载:重启插件; +- 插件卸载:删除插件; +- 插件重置:未实现功能; + +### 插件详情 + +![Ikaros Console Plugins](/img/user-guide-plugins/Snipaste_2023-07-30_14-39-27.png) + +### 插件基本设置 + +![Ikaros Console Plugins](/img/user-guide-plugins/Snipaste_2023-07-30_14-39-56.png) + +点击保存可以保存插件配置。 diff --git a/versioned_docs/version-0.14/user-guide/settings.md b/versioned_docs/version-0.14/user-guide/settings.md new file mode 100644 index 0000000..9eee49b --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/settings.md @@ -0,0 +1,14 @@ +--- +title: 配置 +description: 系统配置相关功能说明 +--- + +:::info +当前版本已经不适用。 +::: + + + +![Ikaros Console Settings](/img/user-guide-settings/Snipaste_2023-07-30_14-46-53.png) + +修改配置保存更新,需要注意的是有些功能尚未实现,暂时处于不可交互状态。 diff --git a/versioned_docs/version-0.14/user-guide/subjects.md b/versioned_docs/version-0.14/user-guide/subjects.md new file mode 100644 index 0000000..1874c17 --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/subjects.md @@ -0,0 +1,114 @@ +--- +title: 条目 +description: 条目管理相关功能说明 +--- + +## 管理主面板 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_13-55-26.png) + +- 1:输入条目原生名称回车搜索,原始名称一般都是日文的; +- 2:输入条目中文名称回车搜索; +- 3:筛选条件,是否条目是否属于`NSFW`(Not Safe/Suitable For Work), + 关于什么是`NSFW`请看: ; +- 4:筛选条件,条目所属类型,是动画还是其它的什么; +- 5:打开`条目同步弹框`; +- 6:前往`新增条目页`; +- 7:单个条目卡片,上方是条目原始名称,下方是条目的封面,点击前往对应`条目详情页`; + +## 条目同步弹框 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-05-25.png) + +点击弹框外部区域或者X可以关闭弹框,如果没有启动任何条目同步的实现插件,这里会提示对应的信息,而不是有可以选择的选择框和输入框。 + +## 新增条目页 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-10-02.png) + +- 1:点击打开`文件选择弹框`; +- 2:点击打开`添加剧集弹框`; +- 3:点击`创建`按钮提交; + +### 文件选择弹框 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-13-50.png) + +点击单行选中,选中的行背景色会和其它行不同, +选中一个文件后,点击确认,会将文件的URL填充到 `条目封面` 这个输入框内。 + +:::tip +此时数据并未保存到服务端数据库里,需要等点击`创建`按钮一起提交。 +::: + +### 添加剧集弹框 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-16-14.png) + +输入对应的内容,点击确认后,会在 `剧集` 表格里新增一条记录。 + +:::tip +此时数据并未保存到服务端数据库里,需要等点击`创建`按钮一起提交。 +::: + +## 条目详情页 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-07-30_14-20-03.png) + +- 1:前往条目编辑页,类似新增条目页,只是数据自动填充了,可以进行修改,并提交更新; +- 2:删除当前条目; +- 3:条目封面、信息、剧集展示; +- 4:条目`InfoBox`展示; +- 5:点击打开文件多选弹框,确认后会和选中的文件进行批量匹配剧集序号,批量匹配的规则是:正则匹配 `XXX[08]XXXX.XXX` 和 `XXXX 08 XXXX.XXX`; +- 6:点击打开文件剧集详情弹框,另外双击当前剧集行也可打开文件剧集详情弹框; +- 7:点击打开文件单选框,进行单个剧集和资源的匹配,如果匹配后,按钮图标将更新为 勾; +- 8:标记当前剧集已经看过 +- 9:收藏当前剧集,收藏后会出现在菜单栏`收藏`里 +- 10:更新番剧的剧集观看进度 +- 11:打开`番剧关联弹框` + +## 番剧关联弹框 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_16-13-28.png) + +- 1:主条目信息 +- 2:新增条目关系按钮,点击打开`新增条目关系弹框` +- 3:删除条目关系按钮,点击打开`删除条目关系弹框` +- 4:相关条目展示 +- 5:相关条目卡片,点击可跳转至对象的条目详情页 + +### 新增条目关系弹框 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_16-19-33.png) + +- 1:主条目的ID,不可编辑 +- 2:相关条目的ID数组,不可编辑 +- 3:选择框,选择主条目和相关条目的关系 +- 4:取消按钮,取消并关闭当前弹框 +- 5:关联按钮,提交新增相关条目请求 +- 6:打开`条目选择右抽屉`,选择指定的条目为相关条目 + +### 条目选择右抽屉 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_17-04-51.png) + +- 1:输入条目原始名称按回车键进行搜索 +- 2:输入条目中文名称按回车键进行搜索 +- 3:筛选条件,条目是否属于`NSFW` +- 4:筛选添加,条目所属类型 +- 5:分页查询 +- 6:全选当前页 +- 7:单选当前行条目 + +在已经选择条目之后,点击左边暗色区域,或者点击抽屉右上角的`X`,系统会将选中的条目填入`相关条目框`中。 + +### 删除条目关系弹框 + +![Ikaros Console Subject Manager](/img/user-guide-subjects/Snipaste_2023-10-11_17-10-14.png) + +- 1:主条目的ID,不可编辑 +- 2:相关条目的ID数组,不可编辑 +- 3:选中的相关条目的类型,不可编辑 +- 4:取消按钮,取消并关闭当前弹框 +- 5:移除关联按钮,提交移除相关条目请求 +- 6:打开条目选择右抽屉,选择指定的条目为相关条目,不同于上方的`条目选择右抽屉`,该抽屉只会显示已经和当前主条目进行关联的相关条目 \ No newline at end of file diff --git a/versioned_docs/version-0.14/user-guide/users.md b/versioned_docs/version-0.14/user-guide/users.md new file mode 100644 index 0000000..c1a68d6 --- /dev/null +++ b/versioned_docs/version-0.14/user-guide/users.md @@ -0,0 +1,8 @@ +--- +title: 个人 +description: 用户相关功能说明 +--- + +![Ikaros Console Users](/img/user-guide-users/Snipaste_2023-07-30_14-44-44.png) + +更新用户信息 和 更新用户密码。 diff --git a/versioned_sidebars/version-0.14-sidebars.json b/versioned_sidebars/version-0.14-sidebars.json new file mode 100644 index 0000000..9e4af4b --- /dev/null +++ b/versioned_sidebars/version-0.14-sidebars.json @@ -0,0 +1,64 @@ +{ + "docsSidebar": [ + "intro", + { + "type": "category", + "label": "getting-started", + "link": { + "type": "generated-index" + }, + "collapsed": false, + "items": [ + "getting-started/prepare", + { + "type": "category", + "label": "getting-started-install", + "link": { + "type": "generated-index" + }, + "items": [ + "getting-started/install/docker-compose", + "getting-started/install/docker", + "getting-started/install/fast-jar", + "getting-started/install/flutter-app", + "getting-started/install/android-app" + ] + } + ] + }, + { + "type": "category", + "label": "user-guide", + "link": { + "type": "generated-index" + }, + "items": [ + "user-guide/common", + "user-guide/attachments", + "user-guide/subjects", + "user-guide/plugins", + "user-guide/settings", + "user-guide/users", + "user-guide/collections", + "user-guide/faq" + ] + }, + { + "type": "category", + "label": "plugins", + "link": { + "type": "generated-index" + }, + "items": [ + "plugins/common", + "plugins/plugin-bgmtv", + "plugins/plugin-local-files-import", + "plugins/plugin-jellyfin", + "plugins/plugin-mikan", + "plugins/plugin-baidupan", + "plugins/plugin-alist" + ] + }, + "about" + ] +} diff --git a/versions.json b/versions.json index c289c7a..eb044fe 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,5 @@ [ + "0.14", "0.13", "0.12", "0.11",