Files
docker-compose-template/apps/nitter/compose.yaml
T
2025-07-08 23:32:44 +01:00

64 lines
1.7 KiB
YAML

services:
nitter:
image: zedeus/nitter:${NITTER_TAG:-latest}
container_name: nitter
restart: unless-stopped
user: ${PUID}:${PGID}
expose:
- 8080
labels:
- "traefik.enable=true"
- "traefik.http.routers.nitter.rule=Host(`${NITTER_HOSTNAME?}`)"
- "traefik.http.routers.nitter.entrypoints=websecure"
- "traefik.http.routers.nitter.tls.certresolver=letsencrypt"
- "traefik.http.services.nitter.loadbalancer.server.port=8080"
- "traefik.http.routers.nitter.middlewares=authelia@docker"
volumes:
- ./nitter.conf:/src/nitter.conf:Z,ro
- ./sessions/sessions.jsonl:/src/sessions.jsonl:Z,ro
depends_on:
nitter_redis:
condition: service_healthy
nitter_sessions:
condition: service_completed_successfully
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:8080/Jack/status/20 || exit 1
interval: 30s
timeout: 5s
start_period: 10s
retries: 2
profiles:
- nitter
- all
nitter_redis:
image: redis:6-alpine
container_name: nitter_redis
restart: unless-stopped
command: redis-server --save 60 1 --loglevel warning
volumes:
- ${DOCKER_DATA_DIR}/nitter:/data
healthcheck:
test: redis-cli ping
interval: 30s
timeout: 5s
retries: 2
profiles:
- nitter
- all
nitter_sessions:
build:
context: ./sessions
dockerfile: Dockerfile
container_name: nitter_sessions
restart: no
environment:
USERNAME: ${TW_USERNAME}
PASSWORD: ${TW_PASSWORD}
OTP_SECRET: ${TW_OTP_SECRET}
volumes:
- ./sessions:/app/sessions
profiles:
- nitter
- all