Files
threetwo/README.md

78 lines
3.2 KiB
Markdown

# ThreeTwo!
ThreeTwo! _aims to be_ a comic book curation app.
[![Docker Image CI](https://github.com/rishighan/threetwo/actions/workflows/docker-image.yml/badge.svg)](https://github.com/rishighan/threetwo/actions/workflows/docker-image.yml)
### 🦄 Early Development Support Channel
Please help me test the early builds of `ThreeTwo!` on its official [Discord](https://discord.gg/n4HZ4j33uT)
Discuss ideas and implementations with me, and get status, progress updates!
## Dependencies
ThreeTwo! currently is set up as:
1. The UI, this repo.
2. [threetwo-core-service](https://github.com/rishighan/threetwo-core-service)
3. [threetwo-metadata-service](https://github.com/rishighan/threetwo-metadata-service)
4. [threetwo-ui-typings](https://github.com/rishighan/threetwo-frontend-types) which are the types used across the UI, installable as an `npm` dependency.
## Docker Instructions
The recommended approach is to simply use `docker-compose` which spins up containers for the UI and all the associated microservices and data store.
Make sure that you have `docker` and `docker-compose` installed. Running `docker system prune -a` can help free up some space.
Then:
1. Clone this repo using `git clone https://github.com/rishighan/threetwo.git`
2. Currently, in the `docker-compose` setup, you will need to create the following folder structure:
```
- comics
- userdata
|- covers
|- expanded
|- temporary
```
3. Create an external docker network using `docker network create proxy`
4. Run `docker-compose up --build -d` to run the containers in detatched mode
5. For debugging, run `docker-compose up --build`
6. Note that the first time, the process could take up to 10 minutes, since it is building containers for `threetwo`, `threetwo-import-service`, `comicvine-service`, `mongo`, `nats`, `nginx`
7. For posterity, check that all containers are up using `docker ps`
### Ports
1. `threetwo`, the UI runs on port `8050`
2. `threetwo-core-service` service on `3000`
3. `threetwo-metadata-service` service on `3080`
## Local Development
For debugging and troubleshooting, you can run this app locally using these steps:
1. Clone this repo using `git clone https://github.com/rishighan/threetwo.git`
2. `yarn run dev` (you can ignore the warnings)
3. This will open `http://localhost:3050` in your default browser
4. For testing `OPDS` functionality, create a folder called `comics` under `/src/server` and put some comics in there. The `OPDS` feed is accessed to `http://localhost:8050/api/opds`
5. Note that this is simply the UI layer and won't offer anything beyond a scaffold. You have to spin up the microservices locally to get it to work.
## Troubleshooting
### Docker
1. `docker-compose up` is taking a long time
This is primarily because `threetwo-import-service` pulls `calibre` from the CDN and it has been known to be extremely slow. I can't find a more reliable alternative, so give it some time to finish downloading.
2. What folder do my comics go in?
Your comics go in the `comics` directory at the root of this project.
## Contribution Guidelines
See [contribution guidelines](https://github.com/rishighan/threetwo/blob/master/contributing.md)