7 Commits

Author SHA1 Message Date
3bec3f6b1a ⬆️ Bumped up to v3.0 2024-02-24 22:06:48 -05:00
0116b98819 Merge pull request #4 from rishighan/original-folder-state
Original folder state
2023-01-09 10:10:59 -08:00
bb9474bf98 Merge pull request #3 from timbroder/patch-1
Updated Discord Link
2023-01-09 10:05:39 -08:00
Tim Broder
23b3033a94 Updated Discord LinkUpdate to a non-expiring link per [this](69ccbd3b55) commit 2023-01-09 10:08:13 -05:00
b927acad04 🔼 Bumped docusaurus and fixed malformed yaml 2022-09-12 12:51:28 -07:00
0ad5eeda71 ✏️ Added unRAID docker-compose install docs 2022-05-23 23:02:37 -07:00
652c97bdf0 Merge pull request #1 from rishighan/documentation
🚀 Added a logo
2021-10-12 13:08:45 -07:00
6 changed files with 6035 additions and 4289 deletions

View File

@@ -39,7 +39,7 @@ jobs:
- name: Release to GitHub Pages - name: Release to GitHub Pages
env: env:
USE_SSH: true USE_SSH: true
GIT_USER: git GIT_USER: rishighan
run: | run: |
git config --global user.email "rishi.ghan@gmail.com" git config --global user.email "rishi.ghan@gmail.com"
git config --global user.name "rishighan" git config --global user.name "rishighan"

View File

@@ -0,0 +1,203 @@
---
sidebar_position: 2
id: unRAID_dockercompose
title: Install ThreeTwo! on unRAID with the docker-compose plugin
---
### Notes
This guide goes over ThreeTwo! installation on unRAID using the [docker-compose manager](https://forums.unRAID.net/topic/114415-plugin-docker-compose-manager/) plugin. Currently, this is the recommended approach for unRAID users.
With the help of this plugin, you are able to pull the entire ThreeTwo! `docker-compose` stack up, down with the click of a button. It abstracts away a lot of complexity associated with writing out commands in the console.
That said, the plugin is still in beta, so you may experience strange behavior.
### Pre-requisites
First things first, let's go over what the pre-requisites are:
1. The `docker-compose` configuration for ThreeTwo! now resides in its own repo here: https://github.com/rishighan/threetwo-docker-compose You will be using this as reference.
2. A working `AirDC++` install is necessary for `DC++` searching/downloading to work. You can install it through the unRAID via the CA store or via a [docker](https://airdcpp.net/download#linux-nas-docker-other)
3. `comics` and `userdata` folders.
1. The `comics` folder _must_ be the folder `AirDC++` downloads comics to.
2. Create the `userdata` folder under `/mnt/user/appdata/threetwo`
4. To get ComicVine to work for metadata scraping and other functions, you _must_ have a ComicVine API key. You can get one [here](https://comicvine.gamespot.com/api/). Metadata scraping will not work unless you supply an API key.
5. Open an unRAID terminal and create an `.env` file:
1. Run this command: `nano /boot/config/plugins/compose.manager/projects/ThreeTwo/.env`
2. Paste this into the file, replacing anything within `<>` with actual values:
```bash
UNDERLYING_HOSTNAME=<UNRAID_HOSTNAME>
COMICS_DIRECTORY=<PATH_TO_COMICS_DIRECTORY>
USERDATA_DIRECTORY=/mnt/user/appdata/threetwo/userdata
COMICVINE_API_KEY=<YOUR_COMICVINE_API_KEY>
LOGGER=true
LOGLEVEL=info
SERVICEDIR=dist/services
CHOKIDAR_USEPOLLING=true
UNRAR_BIN_PATH=/usr/bin/unrar
SEVENZ_BINARY_PATH=/usr/bin/7za
MONGO_URI=mongodb://db:27017/threetwo
ELASTICSEARCH_URI=http://elasticsearch:9200
REDIS_URI=redis://redis:6379
TRANSPORTER=redis://redis:6379
CACHER=Memory
```
### Installation
1. Install the `docker-compose manager` plugin from the unRAID CA store. After installation, you can find the plugin UI under the `Docker` tab.
2. Create a new stack, give it a name.
3. Hover over the gear next to it and click on `Edit Stack`.
4. Copy-paste this into the textarea:
```yaml
version: "3.7"
x-userdata-volume: &userdata-volume
type: bind
source: ${USERDATA_DIRECTORY}
target: /userdata
x-comics-volume: &comics-volume
type: bind
source: ${COMICS_DIRECTORY}
target: /comics
services:
threetwo:
build:
context: https://github.com/rishighan/threetwo.git
dockerfile: Dockerfile
image: frishi/threetwo
container_name: threetwo-ui
env_file: /boot/config/plugins/compose.manager/projects/ThreeTwo/.env
restart: unless-stopped
ports:
- "8050:8050"
- "3050:3050"
links:
- core-services
depends_on:
- db
- elasticsearch
- redis
networks:
- proxy
metadata-service:
build:
context: https://github.com/rishighan/threetwo-metadata-service.git
image: frishi/threetwo-metadata-service
container_name: metadata-service
ports:
- "3080:3080"
environment:
SERVICES: api,comicvine
env_file: /boot/config/plugins/compose.manager/projects/ThreeTwo/.env
depends_on:
- redis
volumes:
- *comics-volume
- *userdata-volume
networks:
- proxy
core-services:
build:
context: https://github.com/rishighan/threetwo-core-service.git
image: frishi/threetwo-core-service
container_name: core-services
ports:
- "3000:3000"
- "3001:3001"
depends_on:
- db
- redis
- elasticsearch
environment:
name: core-services
SERVICES: api,library,importqueue,settings,search,socket,imagetransformation,opds
env_file: /boot/config/plugins/compose.manager/projects/ThreeTwo/.env
volumes:
- *comics-volume
- *userdata-volume
networks:
- proxy
db:
image: "bitnami/mongodb:latest"
container_name: database
networks:
- proxy
ports:
- "27017:27017"
volumes:
- "mongodb_data:/bitnami/mongodb"
redis:
image: "bitnami/redis:latest"
container_name: queue
environment:
ALLOW_EMPTY_PASSWORD: "yes"
networks:
- proxy
ports:
- "6379:6379"
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.16.2
container_name: elasticsearch
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "xpack.security.enabled=true"
- "xpack.security.authc.api_key.enabled=true"
- "ELASTIC_PASSWORD=password"
ulimits:
memlock:
soft: -1
hard: -1
ports:
- 9200:9200
networks:
- proxy
networks:
proxy:
external: true
volumes:
mongodb_data:
driver: local
elastic:
driver: local
```
5. Click `Save Changes`
6. Click `Compose Up` and check for errors.
7. If all goes well, you should see the following containers appear as icons without images in the unRAID `Docker Containers` panel:
1. `threetwo-ui`
2. `core-services`
3. `metadata-service`
4. `elasticsearch`
5. `database`
6. `queue`
8. You can look at the logs for these containers by clicking on their icons and then `Logs`
### Ports
1. `threetwo-ui`, runs on port 8050
2. `threetwo-core-service` on 3000
3. `threetwo-metadata-service` on 3080
### Getting Updates
Go to the `Docker Containers` tab from the unRAID web UI:
1. Click on `Compose Down`, and let the command finish running.
2. Click on `Compose Pull`, and let it finish running.
3. Click on `Compose Up` to bring up the stack.

View File

@@ -1,39 +1,40 @@
// @ts-check // @ts-check
// Note: type annotations allow type checking and IDEs autocompletion // Note: type annotations allow type checking and IDEs autocompletion
const lightCodeTheme = require('prism-react-renderer/themes/github'); // const lightCodeTheme = require("prism-react-renderer/themes/github");
const darkCodeTheme = require('prism-react-renderer/themes/dracula'); // const darkCodeTheme = require("prism-react-renderer/themes/dracula");
import { themes } from "prism-react-renderer";
console.log("endha", themes);
/** @type {import('@docusaurus/types').Config} */ /** @type {import('@docusaurus/types').Config} */
const config = { const config = {
title: 'ThreeTwo!', title: "ThreeTwo!",
tagline: 'Start Flipping!', tagline: "Start Flipping!",
url: 'https://rishighan.github.io', url: "https://rishighan.github.io",
baseUrl: '/threetwo-docs/', baseUrl: "/threetwo-docs/",
onBrokenLinks: 'throw', onBrokenLinks: "throw",
onBrokenMarkdownLinks: 'warn', onBrokenMarkdownLinks: "warn",
favicon: 'img/favicon.ico', favicon: "img/favicon.ico",
organizationName: 'rishighan', // Usually your GitHub org/user name. organizationName: "rishighan", // Usually your GitHub org/user name.
projectName: 'threetwo-docs', // Usually your repo name. projectName: "threetwo-docs", // Usually your repo name.
presets: [ presets: [
[ [
'@docusaurus/preset-classic', "@docusaurus/preset-classic",
/** @type {import('@docusaurus/preset-classic').Options} */ /** @type {import('@docusaurus/preset-classic').Options} */
({ ({
docs: { docs: {
sidebarPath: require.resolve('./sidebars.js'), sidebarPath: require.resolve("./sidebars.js"),
// Please change this to your repo. // Please change this to your repo.
editUrl: 'https://github.com/facebook/docusaurus/edit/main/website/', editUrl: "https://github.com/facebook/docusaurus/edit/main/website/",
}, },
blog: { blog: {
showReadingTime: true, showReadingTime: true,
// Please change this to your repo. // Please change this to your repo.
editUrl: editUrl:
'https://github.com/facebook/docusaurus/edit/main/website/blog/', "https://github.com/facebook/docusaurus/edit/main/website/blog/",
}, },
theme: { theme: {
customCss: require.resolve('./src/css/custom.css'), customCss: require.resolve("./src/css/custom.css"),
}, },
}), }),
], ],
@@ -43,61 +44,61 @@ const config = {
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */ /** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({ ({
navbar: { navbar: {
title: 'ThreeTwo!', title: "ThreeTwo!",
logo: { logo: {
alt: 'My Site Logo', alt: "My Site Logo",
src: 'img/threetwo.png', src: "img/threetwo.png",
}, },
items: [ items: [
{ {
type: 'doc', type: "doc",
docId: 'intro', docId: "intro",
position: 'left', position: "left",
label: 'Quick Start', label: "Quick Start",
}, },
{to: '/blog', label: 'Blog', position: 'left'}, { to: "/blog", label: "Blog", position: "left" },
{ {
href: 'https://github.com/rishighan/threetwo', href: "https://github.com/rishighan/threetwo",
label: 'GitHub', label: "GitHub",
position: 'right', position: "right",
}, },
], ],
}, },
footer: { footer: {
style: 'dark', style: "dark",
links: [ links: [
{ {
title: 'Docs', title: "Docs",
items: [ items: [
{ {
label: 'Tutorial', label: "Tutorial",
to: '/docs/intro', to: "/docs/intro",
}, },
], ],
}, },
{ {
title: 'Community', title: "Community",
items: [ items: [
{ {
label: 'Github', label: "Github",
href: 'https://github.com/rishighan/threetwo', href: "https://github.com/rishighan/threetwo",
}, },
{ {
label: 'Discord', label: "Discord",
href: 'https://discord.gg/DbpcSNuM', href: "https://discord.gg/n4HZ4j33uT",
}, },
], ],
}, },
{ {
title: 'More', title: "More",
items: [ items: [
{ {
label: 'Blog', label: "Blog",
to: '/blog', to: "/blog",
}, },
{ {
label: 'Rishi Ghan', label: "Rishi Ghan",
href: 'https://rishighan.com', href: "https://rishighan.com",
}, },
], ],
}, },
@@ -105,11 +106,12 @@ const config = {
copyright: `Copyright © ${new Date().getFullYear()} Quasar Software, LLC. Built with Docusaurus.`, copyright: `Copyright © ${new Date().getFullYear()} Quasar Software, LLC. Built with Docusaurus.`,
}, },
colorMode: { colorMode: {
disableSwitch: true, disableSwitch: false,
respectPrefersColorScheme: false,
}, },
prism: { prism: {
theme: lightCodeTheme, theme: themes.github,
darkTheme: darkCodeTheme, darkTheme: themes.dracula,
}, },
}), }),
}; };

View File

@@ -15,21 +15,25 @@
"typecheck": "tsc" "typecheck": "tsc"
}, },
"dependencies": { "dependencies": {
"@docusaurus/core": "^2.0.0-beta.6", "@docusaurus/core": "^3.1.1",
"@docusaurus/preset-classic": "^2.0.0-beta.6", "@docusaurus/preset-classic": "^3.1.1",
"@mdx-js/react": "^1.6.21", "@mdx-js/react": "^3.0.0",
"@svgr/webpack": "^5.5.0", "@svgr/webpack": "^5.5.0",
"clsx": "^1.1.1", "clsx": "^1.1.1",
"file-loader": "^6.2.0", "file-loader": "^6.2.0",
"prism-react-renderer": "^1.2.1", "prism-react-renderer": "^2.3.1",
"react": "^17.0.1", "react": "^18.2.0",
"react-dom": "^17.0.1", "react-dom": "^18.2.0",
"url-loader": "^4.1.1" "url-loader": "^4.1.1"
}, },
"devDependencies": { "devDependencies": {
"@docusaurus/module-type-aliases": "2.0.0-beta.6", "@docusaurus/module-type-aliases": "^3.1.1",
"@tsconfig/docusaurus": "^1.0.4", "@docusaurus/tsconfig": "^3.1.1",
"typescript": "^4.3.5" "@docusaurus/types": "^3.1.1",
"@types/react": "^18.2.29"
},
"engines": {
"node": ">=18.0"
}, },
"browserslist": { "browserslist": {
"production": [ "production": [

View File

@@ -17,7 +17,7 @@ function HomepageHeader() {
<Link <Link
className="button button--secondary button--lg" className="button button--secondary button--lg"
to="/docs/intro"> to="/docs/intro">
Introduce me! 🚀 Start Flipping!
</Link> </Link>
</div> </div>
</div> </div>

10003
yarn.lock

File diff suppressed because it is too large Load Diff