Files
threetwo-docs/docs/unraid_dockercompose.md

6.2 KiB

sidebar_position, id, title
sidebar_position id title
2 unRAID_dockercompose Install ThreeTwo! on unRAID with the docker-compose plugin

Notes

This guide goes over ThreeTwo! installation on unRAID using the 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
  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. 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:
    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:
    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
    elasticsearch:
       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.