invidious and nitter

This commit is contained in:
Lorenzo Carbonell 2022-09-11 18:46:07 +02:00
parent 62701a412f
commit 5195a0bd9d
7 changed files with 198 additions and 0 deletions

View File

@ -0,0 +1,13 @@
version: "3"
services:
invidious:
networks:
- proxy
labels:
- caddy="${FQDN}"
- caddy.reverse_proxy="{{upstreams 3000}}"
networks:
proxy:
external: true

View File

@ -0,0 +1,21 @@
version: "3"
services:
invidious:
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.services.invidious.loadbalancer.server.port=3000
- traefik.http.routers.invidious.entrypoints=web
- traefik.http.routers.invidious.rule=Host(`${FQDN}`)
- traefik.http.middlewares.invidious-https-redirect.redirectscheme.scheme=websecure
- traefik.http.routers.invidious.middlewares=invidious-https-redirect
- traefik.http.routers.invidious-secure.entrypoints=websecure
- traefik.http.routers.invidious-secure.rule=Host(`${FQDN}`)
- traefik.http.routers.invidious-secure.tls=true
- traefik.http.routers.invidious-secure.tls.certresolver=letsencrypt
networks:
proxy:
external: true

View File

@ -0,0 +1,49 @@
version: "3"
services:
postgres:
image: postgres:10
restart: unless-stopped
networks:
- invidious
volumes:
- ./postgresdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: invidious
POSTGRES_USER: kemal
POSTGRES_PASSWORD: kemal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER $$POSTGRES_DB"]
invidious:
image: sriegler/invidious-auth:latest
restart: unless-stopped
networks:
- invidious
mem_limit: 1024M
cpus: 0.5
environment:
INVIDIOUS_CONFIG: |
channel_threads: 1
check_tables: true
feed_threads: 1
db:
dbname: invidious
user: kemal
password: kemal
host: postgres
port: 5432
full_refresh: false
https_only: false
popular_enabled: false
statistics_enabled: false
domain: invidious.example.com
external_port: 443
registration_enabled: false
captcha_enabled: false
admins: []
disable_proxy: false
geo_bypass: false
depends_on:
- postgres
networks:
invidious:

View File

@ -0,0 +1,13 @@
version: "3"
services:
nitter:
networks:
- proxy
labels:
- caddy="${FQDN}"
- caddy.reverse_proxy="{{upstreams 8080}}"
networks:
proxy:
external: true

View File

@ -0,0 +1,21 @@
version: "3"
services:
nitter:
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.services.nitter.loadbalancer.server.port=8080
- traefik.http.routers.nitter.entrypoints=web
- traefik.http.routers.nitter.rule=Host(`${FQDN}`)
- traefik.http.middlewares.nitter-https-redirect.redirectscheme.scheme=websecure
- traefik.http.routers.nitter.middlewares=nitter-https-redirect
- traefik.http.routers.nitter-secure.entrypoints=websecure
- traefik.http.routers.nitter-secure.rule=Host(`${FQDN}`)
- traefik.http.routers.nitter-secure.tls=true
- traefik.http.routers.nitter-secure.tls.certresolver=letsencrypt
networks:
proxy:
external: true

36
nitter/docker-compose.yml Normal file
View File

@ -0,0 +1,36 @@
version: "3"
services:
nitter:
image: zedeus/nitter:latest
container_name: nitter
ports:
- "127.0.0.1:8080:8080" # Replace with "8080:8080" if you don't use a reverse proxy
volumes:
- ./nitter.conf:/src/nitter.conf:ro
depends_on:
- nitter-redis
restart: unless-stopped
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:8080/Jack/status/20 || exit 1
interval: 30s
timeout: 5s
retries: 2
nitter-redis:
image: redis:6-alpine
container_name: nitter-redis
command: redis-server --save 60 1 --loglevel warning
volumes:
- nitter-redis:/data
restart: unless-stopped
healthcheck:
test: redis-cli ping
interval: 30s
timeout: 5s
retries: 2
volumes:
nitter-redis:

View File

@ -0,0 +1,45 @@
[Server]
address = "0.0.0.0"
port = 8080
https = false # disable to enable cookies when not using https
httpMaxConnections = 100
staticDir = "./public"
title = "nitter"
hostname = "nitter.net"
[Cache]
listMinutes = 240 # how long to cache list info (not the tweets, so keep it high)
rssMinutes = 10 # how long to cache rss queries
redisHost = "localhost" # Change to "nitter-redis" if using docker-compose
redisPort = 6379
redisPassword = ""
redisConnections = 20 # connection pool size
redisMaxConnections = 30
# max, new connections are opened when none are available, but if the pool size
# goes above this, they're closed when released. don't worry about this unless
# you receive tons of requests per second
[Config]
hmacKey = "secretkey" # random key for cryptographic signing of video urls
base64Media = false # use base64 encoding for proxied media urls
enableRSS = true # set this to false to disable RSS feeds
enableDebug = false # enable request logs and debug endpoints
proxy = "" # http/https url, SOCKS proxies are not supported
proxyAuth = ""
tokenCount = 10
# minimum amount of usable tokens. tokens are used to authorize API requests,
# but they expire after ~1 hour, and have a limit of 187 requests.
# the limit gets reset every 15 minutes, and the pool is filled up so there's
# always at least $tokenCount usable tokens. again, only increase this if
# you receive major bursts all the time
# Change default preferences here, see src/prefs_impl.nim for a complete list
[Preferences]
theme = "Nitter"
replaceTwitter = "nitter.net"
replaceYouTube = "piped.kavin.rocks"
replaceReddit = "teddit.net"
replaceInstagram = ""
proxyVideos = true
hlsPlayback = false
infiniteScroll = false