Added RTSP parser to dockerfiles
This commit is contained in:
+2
-1
@@ -8,11 +8,12 @@ RUN cargo build --release
|
|||||||
|
|
||||||
FROM debian:bookworm-slim
|
FROM debian:bookworm-slim
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends ca-certificates \
|
&& apt-get install -y --no-install-recommends ca-certificates ffmpeg redis-tools sqlite3 \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY --from=builder /app/target/release/camfinder /usr/local/bin/camfinder
|
COPY --from=builder /app/target/release/camfinder /usr/local/bin/camfinder
|
||||||
COPY cidrs.txt /app/cidrs.txt
|
COPY cidrs.txt /app/cidrs.txt
|
||||||
|
COPY rtsp_paths.txt /app/rtsp_paths.txt
|
||||||
|
|
||||||
ENTRYPOINT ["camfinder"]
|
ENTRYPOINT ["camfinder"]
|
||||||
|
|||||||
@@ -2,11 +2,12 @@
|
|||||||
|
|
||||||
Scanner TCP em Rust para descobrir hosts em CIDRs internos, testar a porta `554` e salvar progresso e endpoints abertos em PostgreSQL.
|
Scanner TCP em Rust para descobrir hosts em CIDRs internos, testar a porta `554` e salvar progresso e endpoints abertos em PostgreSQL.
|
||||||
|
|
||||||
O projeto tem três modos:
|
O projeto tem quatro modos:
|
||||||
|
|
||||||
- `local`: roda o scan inteiro no processo atual.
|
- `local`: roda o scan inteiro no processo atual.
|
||||||
- `coordinator`: recebe conexões de workers, distribui blocos e grava resultados no banco.
|
- `coordinator`: recebe conexões de workers, distribui blocos e grava resultados no banco.
|
||||||
- `worker`: conecta ao coordenador, recebe blocos e testa os hosts.
|
- `worker`: conecta ao coordenador, recebe blocos e testa os hosts.
|
||||||
|
- `rtsp`: lê destinos de um CSV e testa URLs RTSP com paths predefinidos.
|
||||||
|
|
||||||
O progresso é salvo por bloco, então o scan pode ser retomado sem repetir o que já foi concluído.
|
O progresso é salvo por bloco, então o scan pode ser retomado sem repetir o que já foi concluído.
|
||||||
|
|
||||||
@@ -15,6 +16,7 @@ O progresso é salvo por bloco, então o scan pode ser retomado sem repetir o qu
|
|||||||
1. Copie `.env.example` para `.env`.
|
1. Copie `.env.example` para `.env`.
|
||||||
2. Configure `DATABASE_URL` apontando para um Postgres acessível.
|
2. Configure `DATABASE_URL` apontando para um Postgres acessível.
|
||||||
3. Rode `cargo run -- local`, `cargo run -- coordinator` ou `cargo run -- worker`.
|
3. Rode `cargo run -- local`, `cargo run -- coordinator` ou `cargo run -- worker`.
|
||||||
|
4. Para RTSP, rode `cargo run -- rtsp --targets-file targets.csv`.
|
||||||
|
|
||||||
## Docker Compose
|
## Docker Compose
|
||||||
|
|
||||||
@@ -24,6 +26,12 @@ O `docker-compose.yml` já sobe:
|
|||||||
- `coordinator` exposto no host pela porta `666`.
|
- `coordinator` exposto no host pela porta `666`.
|
||||||
- `worker` conectado ao coordenador na rede interna do compose.
|
- `worker` conectado ao coordenador na rede interna do compose.
|
||||||
|
|
||||||
|
Para o fluxo RTSP com Redis, use `docker-compose.redis-rtsp.yml`:
|
||||||
|
|
||||||
|
- `redis` como fila.
|
||||||
|
- `coordinator` para ler `camfinder-open-rtsp.csv` e alimentar a fila.
|
||||||
|
- `worker-1` e `worker-2` para consumir IPs, testar paths RTSP e salvar screenshots e SQLite.
|
||||||
|
|
||||||
Para escalar workers:
|
Para escalar workers:
|
||||||
|
|
||||||
- `docker compose up --scale worker=3`
|
- `docker compose up --scale worker=3`
|
||||||
@@ -51,6 +59,34 @@ Para workers de outras máquinas, use `vps.valmo.dev:666` como endereço do coor
|
|||||||
- `COORDINATOR_BIND`
|
- `COORDINATOR_BIND`
|
||||||
- `COORDINATOR_ADDR`
|
- `COORDINATOR_ADDR`
|
||||||
- `WORKER_NAME`
|
- `WORKER_NAME`
|
||||||
|
- `RTSP_TARGETS`
|
||||||
|
- `RTSP_TARGETS_FILE`
|
||||||
|
- `RTSP_PATHS`
|
||||||
|
- `RTSP_PATHS_FILE`
|
||||||
|
- `REDIS_URL`
|
||||||
|
- `RTSP_QUEUE_NAME`
|
||||||
|
- `RTSP_INPUT_CSV`
|
||||||
|
- `RTSP_WORKER_COUNT`
|
||||||
|
- `RTSP_SNAPSHOT_DIR`
|
||||||
|
- `RTSP_SQLITE_PATH`
|
||||||
|
- `RTSP_CAPTURE_TIMEOUT_MS`
|
||||||
|
|
||||||
|
## Modo RTSP
|
||||||
|
|
||||||
|
O modo `rtsp` monta URLs no formato `rtsp://<host>:554/<path>` e testa a conexão
|
||||||
|
via `DESCRIBE`, sem tentar usuário, senha ou variações de autenticação.
|
||||||
|
|
||||||
|
Por padrão, ele lê os paths de [rtsp_paths.txt](/home/valmo/Documents/CamFinder/rtsp_paths.txt).
|
||||||
|
|
||||||
|
Exemplo:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo run -- rtsp --targets-file targets.csv
|
||||||
|
```
|
||||||
|
|
||||||
|
No fluxo `docker-compose.redis-rtsp.yml`, os workers salvam os frames em
|
||||||
|
`dump/feeds/<ip>_<timestamp>.png` e gravam os resultados em
|
||||||
|
`dump/rtsp-results.sqlite`.
|
||||||
|
|
||||||
## Restrições
|
## Restrições
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user