Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/latest_docker_image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: MultiArchDockerLatest

on:
push:
branches:
- main

jobs:
docker:
name: Build multi-arch Docker image.
runs-on: ubuntu-latest
steps:
- name: tag number
run : echo ${{ github.event.release.tag_name }}

- name: Checkout
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
install: true

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set lower case owner name
run: |
echo "REG_REPO=${REPO,,}" >> ${GITHUB_ENV}
env:
REPO: '${{ github.repository }}'

- name: Check env
run: |
echo ${{ env.REG_REPO }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/jacred:latest
ghcr.io/${{ env.REG_REPO }}:latest
cache-from: type=gha,scope=${{ github.workflow }}
cache-to: type=gha,mode=max,scope=${{ github.workflow }}
62 changes: 62 additions & 0 deletions .github/workflows/release_docker_image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: MultiArchDockerRelease

on:
release:
types: [published]

jobs:
docker:
name: Build multi-arch Docker image.
runs-on: ubuntu-latest
steps:
- name: tag number
run : echo ${{ github.event.release.tag_name }}

- name: Checkout
uses: actions/checkout@v4

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
with:
install: true

- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set lower case owner name
run: |
echo "REG_REPO=${REPO,,}" >> ${GITHUB_ENV}
env:
REPO: '${{ github.repository }}'

- name: Check env
run: |
echo ${{ env.REG_REPO }}

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/jacred:latest
${{ secrets.DOCKERHUB_USERNAME }}/jacred:${{ github.event.release.tag_name }}
ghcr.io/${{ env.REG_REPO }}:latest
ghcr.io/${{ env.REG_REPO }}:${{ github.event.release.tag_name }}
cache-from: type=gha,scope=${{ github.workflow }}
cache-to: type=gha,mode=max,scope=${{ github.workflow }}
30 changes: 30 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
### BUILD JACRED MULTIARCH START ###
FROM --platform=$BUILDPLATFORM alpine AS builder

WORKDIR /app

# Get and unpack JacRed
RUN apk --no-cache --update add bash wget unzip
RUN wget https://github.com/immisterio/jacred-fdb/releases/latest/download/publish.zip
RUN unzip -o publish.zip
RUN rm -f publish.zip
### BUILD JACRED MULTIARCH END ###

# ### BUILD MAIN IMAGE START ###
FROM mcr.microsoft.com/dotnet/aspnet:6.0-alpine

ENV JACRED_HOME=/home/jacred
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false

COPY --from=builder /app $JACRED_HOME/

RUN apk --no-cache --update add icu-libs

WORKDIR $JACRED_HOME

EXPOSE 9117

VOLUME [ "$JACRED_HOME" ]

ENTRYPOINT ["dotnet", "JacRed.dll"]
### BUILD MAIN IMAGE end ###
58 changes: 50 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,47 @@
# Установка

#### Linux
```bash
curl -s https://raw.githubusercontent.com/immisterio/jacred-fdb/main/install.sh | bash
```

### Docker & Docker Compose

```bash
docker run --rm -d --privileged --name jacred -p 9117:9117 gentslava/jacred:latest
```

Для работы в режиме постоянного хранения просто подключите том к контейнеру, добавив `-v ~/jacred/Data:/home/jacred/Data`, где путь к папке `~/jacred/Data` — это базовый путь, можно указать свой. Пример команды:

```bash
docker run --rm -d --privileged --name jacred -v ~/jacred/Data:/home/jacred/Data -p 9117:9117 gentslava/jacred:latest
```

Вы можете указать путь до init.conf файла, где определены настройки работы приложения, добавив `-v ~/jacred/init.conf:/home/jacred/init.conf`. Пример команды:

```bash
docker run --rm -d --privileged --name jacred -v ~/jacred/init.conf:/home/jacred/init.conf -v ~/jacred/Data:/home/jacred/Data -p 9117:9117 gentslava/jacred:latest
```

#### Docker Compose

```yml
# docker-compose.yml

version: '3.3'
services:
jacred:
image: gentslava/jacred
container_name: jacred
volumes:
- ~/jacred/init.conf:/home/jacred/init.conf
- ~/jacred/Data:/home/jacred/Data
ports:
- 9117:9117
restart: unless-stopped
privileged: true

```

* ПО УМОЛЧАНИЯ НАСТРОЕНА СИНХРОНИЗАЦИЯ БАЗЫ С ВНЕШНЕГО СЕРВЕРА

Expand All @@ -8,32 +50,32 @@ Kinozal, Nnmclub, Rutor, Torrentby, Bitru, Rutracker, Megapeer, Selezen, Toloka

# Самостоятельный парсинг источников
1. Настроить init.conf (пример настроек в example.conf)
2. Перенести в crontab "Data/crontab" или указать сервер "syncapi" в init.conf
2. Перенести в crontab "Data/crontab" или указать сервер "syncapi" в init.conf

# Доступ к доменам .onion
1. Запустить tor на порту 9050
2. В init.conf указать .onion домен в host

# Параметры init.conf
* apikey - включение авторизации по ключу
* mergeduplicates - объединять дубликаты в выдаче
* openstats - открыть доступ к статистике
* mergeduplicates - объединять дубликаты в выдаче
* openstats - открыть доступ к статистике
* opensync - разрешить синхронизацию с базой через syncapi
* syncapi - источник с открытым opensync для синхронизации базы
* timeSync - интервал синхронизации с базой syncapi
* maxreadfile - максимальное количество открытых файлов за один поисковый запрос
* syncapi - источник с открытым opensync для синхронизации базы
* timeSync - интервал синхронизации с базой syncapi
* maxreadfile - максимальное количество открытых файлов за один поисковый запрос
* evercache - хранить открытые файлы в кеше (рекомендуется для общего доступа с высокой нагрузкой)
* timeStatsUpdate - интервал обновления статистики в минутах


# Пример init.conf
* Список всех параметров, а так же значения по умолчанию смотреть в example.conf
* Список всех параметров, а так же значения по умолчанию смотреть в example.conf
* В init.conf нужно указывать только те параметры, которые хотите изменить

```
{
"listenport": 9120, // изменили порт
"NNMClub": { // изменили домен на адрес из сети tor
"NNMClub": { // изменили домен на адрес из сети tor
"alias": "http://nnmclub2vvjqzjne6q4rrozkkkdmlvnrcsyes2bbkm7e5ut2aproy4id.onion"
},
"globalproxy": [
Expand Down
25 changes: 25 additions & 0 deletions privoxy.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Generally, this file goes in /etc/privoxy/config
#
# Tor listens as a SOCKS5 proxy here:
forward-socks5 / 127.0.0.1:9050 .
confdir /etc/privoxy
logdir /var/log/privoxy
# actionsfile standard # Internal purpose, recommended
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter

# Don't log interesting things, only startup messages, warnings and errors
logfile logfile
#jarfile jarfile
#debug 0 # show each GET/POST/CONNECT request
debug 4096 # Startup banner and warnings
debug 8192 # Errors - *we highly recommended enabling this*

user-manual /usr/share/doc/privoxy/user-manual
listen-address 127.0.0.1:8118
toggle 1
enable-remote-toggle 0
enable-edit-actions 0
enable-remote-http-toggle 0
buffer-limit 4096