Skip to content

Commit ca4fbd2

Browse files
authored
Merge pull request #1 from gentslava/feature/docker-container
Docker container
2 parents 93c1b7b + de2017b commit ca4fbd2

File tree

5 files changed

+219
-8
lines changed

5 files changed

+219
-8
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: MultiArchDockerLatest
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
docker:
10+
name: Build multi-arch Docker image.
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: tag number
14+
run : echo ${{ github.event.release.tag_name }}
15+
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
19+
- name: Set up QEMU
20+
uses: docker/setup-qemu-action@v3
21+
22+
- name: Set up Docker Buildx
23+
id: buildx
24+
uses: docker/setup-buildx-action@v3
25+
with:
26+
install: true
27+
28+
- name: Login to DockerHub
29+
uses: docker/login-action@v3
30+
with:
31+
username: ${{ secrets.DOCKERHUB_USERNAME }}
32+
password: ${{ secrets.DOCKERHUB_TOKEN }}
33+
34+
- name: Login to GitHub Container Registry
35+
uses: docker/login-action@v3
36+
with:
37+
registry: ghcr.io
38+
username: ${{ github.repository_owner }}
39+
password: ${{ secrets.GITHUB_TOKEN }}
40+
41+
- name: Set lower case owner name
42+
run: |
43+
echo "REG_REPO=${REPO,,}" >> ${GITHUB_ENV}
44+
env:
45+
REPO: '${{ github.repository }}'
46+
47+
- name: Check env
48+
run: |
49+
echo ${{ env.REG_REPO }}
50+
51+
- name: Build and push
52+
uses: docker/build-push-action@v5
53+
with:
54+
context: .
55+
platforms: linux/amd64,linux/arm64,linux/arm/v7
56+
push: true
57+
tags: |
58+
${{ secrets.DOCKERHUB_USERNAME }}/jacred:latest
59+
ghcr.io/${{ env.REG_REPO }}:latest
60+
cache-from: type=gha,scope=${{ github.workflow }}
61+
cache-to: type=gha,mode=max,scope=${{ github.workflow }}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
name: MultiArchDockerRelease
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
docker:
9+
name: Build multi-arch Docker image.
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: tag number
13+
run : echo ${{ github.event.release.tag_name }}
14+
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Set up QEMU
19+
uses: docker/setup-qemu-action@v3
20+
21+
- name: Set up Docker Buildx
22+
id: buildx
23+
uses: docker/setup-buildx-action@v3
24+
with:
25+
install: true
26+
27+
- name: Login to DockerHub
28+
uses: docker/login-action@v3
29+
with:
30+
username: ${{ secrets.DOCKERHUB_USERNAME }}
31+
password: ${{ secrets.DOCKERHUB_TOKEN }}
32+
33+
- name: Login to GitHub Container Registry
34+
uses: docker/login-action@v3
35+
with:
36+
registry: ghcr.io
37+
username: ${{ github.repository_owner }}
38+
password: ${{ secrets.GITHUB_TOKEN }}
39+
40+
- name: Set lower case owner name
41+
run: |
42+
echo "REG_REPO=${REPO,,}" >> ${GITHUB_ENV}
43+
env:
44+
REPO: '${{ github.repository }}'
45+
46+
- name: Check env
47+
run: |
48+
echo ${{ env.REG_REPO }}
49+
50+
- name: Build and push
51+
uses: docker/build-push-action@v5
52+
with:
53+
context: .
54+
platforms: linux/amd64,linux/arm64,linux/arm/v7
55+
push: true
56+
tags: |
57+
${{ secrets.DOCKERHUB_USERNAME }}/jacred:latest
58+
${{ secrets.DOCKERHUB_USERNAME }}/jacred:${{ github.event.release.tag_name }}
59+
ghcr.io/${{ env.REG_REPO }}:latest
60+
ghcr.io/${{ env.REG_REPO }}:${{ github.event.release.tag_name }}
61+
cache-from: type=gha,scope=${{ github.workflow }}
62+
cache-to: type=gha,mode=max,scope=${{ github.workflow }}

Dockerfile

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# ### BUILD MAIN IMAGE START ###
2+
FROM ubuntu
3+
4+
RUN apt update && apt -y install curl systemd tor tor-geoipdb privoxy
5+
COPY ./privoxy.config /etc/privoxy/config
6+
7+
COPY ./install.sh /
8+
COPY ./update.sh /
9+
10+
RUN sh /install.sh
11+
12+
WORKDIR /home/jacred
13+
14+
RUN crontab Data/crontab
15+
16+
EXPOSE 9117
17+
18+
VOLUME [ "/home/jacred/init.conf", "/home/jacred/Data" ]
19+
20+
ENTRYPOINT ["/lib/systemd/systemd"]
21+
### BUILD MAIN IMAGE end ###

README.md

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,47 @@
11
# Установка
2+
3+
#### Linux
4+
```bash
25
curl -s https://raw.githubusercontent.com/immisterio/jacred-fdb/main/install.sh | bash
6+
```
7+
8+
### Docker & Docker Compose
9+
10+
```bash
11+
docker run --rm -d --privileged --name jacred -p 9117:9117 gentslava/jacred:latest
12+
```
13+
14+
Для работы в режиме постоянного хранения просто подключите том к контейнеру, добавив `-v ~/jacred/Data:/home/jacred/Data`, где путь к папке `~/jacred/Data` — это базовый путь, можно указать свой. Пример команды:
15+
16+
```bash
17+
docker run --rm -d --privileged --name jacred -v ~/jacred/Data:/home/jacred/Data -p 9117:9117 gentslava/jacred:latest
18+
```
19+
20+
Вы можете указать путь до init.conf файла, где определены настройки работы приложения, добавив `-v ~/jacred/init.conf:/home/jacred/init.conf`. Пример команды:
21+
22+
```bash
23+
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
24+
```
25+
26+
#### Docker Compose
27+
28+
```yml
29+
# docker-compose.yml
30+
31+
version: '3.3'
32+
services:
33+
jacred:
34+
image: gentslava/jacred
35+
container_name: jacred
36+
volumes:
37+
- ~/jacred/init.conf:/home/jacred/init.conf
38+
- ~/jacred/Data:/home/jacred/Data
39+
ports:
40+
- 9117:9117
41+
restart: unless-stopped
42+
privileged: true
43+
44+
```
345

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

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

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

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

1759
# Параметры init.conf
1860
* apikey - включение авторизации по ключу
19-
* mergeduplicates - объединять дубликаты в выдаче
20-
* openstats - открыть доступ к статистике
61+
* mergeduplicates - объединять дубликаты в выдаче
62+
* openstats - открыть доступ к статистике
2163
* opensync - разрешить синхронизацию с базой через syncapi
22-
* syncapi - источник с открытым opensync для синхронизации базы
23-
* timeSync - интервал синхронизации с базой syncapi
24-
* maxreadfile - максимальное количество открытых файлов за один поисковый запрос
64+
* syncapi - источник с открытым opensync для синхронизации базы
65+
* timeSync - интервал синхронизации с базой syncapi
66+
* maxreadfile - максимальное количество открытых файлов за один поисковый запрос
2567
* evercache - хранить открытые файлы в кеше (рекомендуется для общего доступа с высокой нагрузкой)
2668
* timeStatsUpdate - интервал обновления статистики в минутах
2769

2870

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

3375
```
3476
{
3577
"listenport": 9120, // изменили порт
36-
"NNMClub": { // изменили домен на адрес из сети tor
78+
"NNMClub": { // изменили домен на адрес из сети tor
3779
"alias": "http://nnmclub2vvjqzjne6q4rrozkkkdmlvnrcsyes2bbkm7e5ut2aproy4id.onion"
3880
},
3981
"globalproxy": [

privoxy.config

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Generally, this file goes in /etc/privoxy/config
2+
#
3+
# Tor listens as a SOCKS5 proxy here:
4+
forward-socks5 / 127.0.0.1:9050 .
5+
confdir /etc/privoxy
6+
logdir /var/log/privoxy
7+
# actionsfile standard # Internal purpose, recommended
8+
actionsfile default.action # Main actions file
9+
actionsfile user.action # User customizations
10+
filterfile default.filter
11+
12+
# Don't log interesting things, only startup messages, warnings and errors
13+
logfile logfile
14+
#jarfile jarfile
15+
#debug 0 # show each GET/POST/CONNECT request
16+
debug 4096 # Startup banner and warnings
17+
debug 8192 # Errors - *we highly recommended enabling this*
18+
19+
user-manual /usr/share/doc/privoxy/user-manual
20+
listen-address 127.0.0.1:8118
21+
toggle 1
22+
enable-remote-toggle 0
23+
enable-edit-actions 0
24+
enable-remote-http-toggle 0
25+
buffer-limit 4096

0 commit comments

Comments
 (0)