diff --git a/apps/bitmagnet/config.json b/apps/bitmagnet/config.json new file mode 100644 index 00000000..8b0266b3 --- /dev/null +++ b/apps/bitmagnet/config.json @@ -0,0 +1,24 @@ +{ + "$schema": "../schema.json", + "name": "Bitmagnet", + "port": 3335, + "available": true, + "exposable": true, + "id": "bitmagnet", + "tipi_version": 1, + "version": "0.1.1", + "categories": ["media"], + "description": "A self-hosted BitTorrent indexer, DHT crawler, content classifier and torrent search engine with web UI, GraphQL API and Servarr stack integration. ", + "short_desc": "A self-hosted BitTorrent indexer.", + "author": "bitmagnet-io", + "source": "https://github.com/bitmagnet-io/bitmagnet", + "form_fields": [ + { + "type": "random", + "label": "BITMAGNENT_DB_PASSWORD", + "min": 40, + "env_variable": "BITMAGNENT_DB_PASSWORD" + } + ], + "supported_architectures": ["arm64", "amd64"] +} diff --git a/apps/bitmagnet/docker-compose.yml b/apps/bitmagnet/docker-compose.yml new file mode 100644 index 00000000..72783f50 --- /dev/null +++ b/apps/bitmagnet/docker-compose.yml @@ -0,0 +1,91 @@ +version: "3.7" + +services: + bitmagnet: + image: ghcr.io/bitmagnet-io/bitmagnet:0.1.1 + restart: unless-stopped + command: + - worker + - run + - --keys=http_server + - --keys=queue_server + # disable the next line to run without DHT crawler + - --keys=dht_crawler + container_name: bitmagnet + environment: + - POSTGRES_HOST=bitmagnet-db + - POSTGRES_NAME=bitmagnet + - POSTGRES_USER=tipi + - POSTGRES_PASSWORD=${BITMAGNENT_DB_PASSWORD} + - REDIS_ADDR=bitmagnet-redis:6379 + ports: + - "${APP_PORT}:3333" + - "3334:3334/tcp" + - "3334:3334/udp" + depends_on: + bitmagnet-db: + condition: service_healthy + bitmagnet-redis: + condition: service_started + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.bitmagnet-web-redirect.redirectscheme.scheme: https + traefik.http.services.bitmagnet.loadbalancer.server.port: 3333 + # Web + traefik.http.routers.bitmagnet-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.bitmagnet-insecure.entrypoints: web + traefik.http.routers.bitmagnet-insecure.service: bitmagnet + traefik.http.routers.bitmagnet-insecure.middlewares: bitmagnet-web-redirect + # Websecure + traefik.http.routers.bitmagnet.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.bitmagnet.entrypoints: websecure + traefik.http.routers.bitmagnet.service: bitmagnet + traefik.http.routers.bitmagnet.tls.certresolver: myresolver + # Local domain + traefik.http.routers.bitmagnet-local-insecure.rule: Host(`bitmagnet.${LOCAL_DOMAIN}`) + traefik.http.routers.bitmagnet-local-insecure.entrypoints: web + traefik.http.routers.bitmagnet-local-insecure.service: bitmagnet + traefik.http.routers.bitmagnet-local-insecure.middlewares: bitmagnet-web-redirect + # Local domain secure + traefik.http.routers.bitmagnet-local.rule: Host(`bitmagnet.${LOCAL_DOMAIN}`) + traefik.http.routers.bitmagnet-local.entrypoints: websecure + traefik.http.routers.bitmagnet-local.service: bitmagnet + traefik.http.routers.bitmagnet-local.tls: true + + bitmagnet-db: + container_name: bitmagnet-db + image: docker.io/library/postgres:16-alpine + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"] + start_period: 20s + interval: 30s + retries: 5 + timeout: 5s + volumes: + - ${APP_DATA_DIR}/data/postgres:/var/lib/postgresql/data + environment: + POSTGRES_PASSWORD: ${BITMAGNENT_DB_PASSWORD} + POSTGRES_USER: tipi + POSTGRES_DB: bitmagnet + networks: + - tipi_main_network + + bitmagnet-redis: + image: docker.io/library/redis:alpine + command: --save 60 1 --loglevel warning + container_name: bitmagnet-redis + restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "redis-cli ping | grep PONG"] + start_period: 20s + interval: 30s + retries: 5 + timeout: 3s + volumes: + - ${APP_DATA_DIR}/data/redis:/data + networks: + - tipi_main_network diff --git a/apps/bitmagnet/metadata/description.md b/apps/bitmagnet/metadata/description.md new file mode 100644 index 00000000..3ab66be4 --- /dev/null +++ b/apps/bitmagnet/metadata/description.md @@ -0,0 +1,3 @@ +A self-hosted BitTorrent indexer, DHT crawler, content classifier and torrent search engine with web UI, GraphQL API and Servarr stack integration. + +Visit the website at bitmagnet.io. \ No newline at end of file diff --git a/apps/bitmagnet/metadata/logo.jpg b/apps/bitmagnet/metadata/logo.jpg new file mode 100644 index 00000000..061e3e33 Binary files /dev/null and b/apps/bitmagnet/metadata/logo.jpg differ