parent
9679a1f2a4
commit
e317ac9b92
@ -0,0 +1,43 @@ |
||||
version: "3" |
||||
|
||||
services: |
||||
nitter: |
||||
# image: zedeus/nitter:latest |
||||
build: |
||||
context: nitter |
||||
dockerfile: Dockerfile |
||||
container_name: nitter |
||||
volumes: |
||||
- ./nitter/nitter.conf:/src/nitter.conf.template: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 |
||||
env_file: |
||||
- ./env.production |
||||
environment: |
||||
# - DOMAIN_NAME=${DOMAIN_NAME} |
||||
# - NITTER_HOSTNAME=${NITTER_HOSTNAME} |
||||
- NITTER_SECRET=${NITTER_CLIENT_SECRET} |
||||
|
||||
nitter-redis: |
||||
image: redis:6-alpine |
||||
container_name: nitter-redis |
||||
command: redis-server --save 60 1 --loglevel warning |
||||
volumes: |
||||
- ./data/nitter/redis:/data |
||||
restart: unless-stopped |
||||
healthcheck: |
||||
test: redis-cli ping |
||||
interval: 30s |
||||
timeout: 5s |
||||
retries: 2 |
||||
|
||||
# add the nitter nginx configuration into the nginx volume |
||||
nginx: |
||||
volumes: |
||||
- ./nitter/nginx.conf:/etc/nginx/templates/nitter.conf.template:ro |
@ -0,0 +1,10 @@ |
||||
# |
||||
# Use the official image, but add envsubst so that we can use |
||||
# variable names in the configuration file. |
||||
# |
||||
FROM zedeus/nitter:latest |
||||
RUN apk --no-cache add gettext |
||||
|
||||
ENTRYPOINT ["/usr/bin/env"] |
||||
CMD ["/bin/sh", "-c", "envsubst < ./nitter.conf.template > ./nitter.conf && exec ./nitter"] |
||||
#CMD ["/bin/sh", "-c", "echo hello ; sleep 60" ] |
@ -0,0 +1,33 @@ |
||||
server { |
||||
server_name ${NITTER_HOSTNAME} ${NITTER_HOSTNAME}.${DOMAIN_NAME}; |
||||
|
||||
sendfile on; |
||||
tcp_nopush on; |
||||
tcp_nodelay on; |
||||
keepalive_timeout 65; |
||||
types_hash_max_size 2048; |
||||
#include /etc/nginx/mime.types; |
||||
#default_type application/octet-stream; |
||||
|
||||
client_max_body_size 160m; |
||||
gzip on; |
||||
gzip_disable "msie6"; |
||||
|
||||
proxy_read_timeout 1800s; |
||||
|
||||
# required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486) |
||||
chunked_transfer_encoding on; |
||||
|
||||
location / { |
||||
proxy_pass http://nitter:8080; |
||||
proxy_set_header Host $host; |
||||
proxy_set_header X-Real-IP $remote_addr; |
||||
} |
||||
|
||||
listen 443 ssl; |
||||
ssl_certificate /etc/letsencrypt/live/${DOMAIN_NAME}/fullchain.pem; |
||||
ssl_certificate_key /etc/letsencrypt/live/${DOMAIN_NAME}/privkey.pem; |
||||
include /etc/nginx/includes/options-ssl-nginx.conf; |
||||
include /etc/nginx/includes/challenge.conf; |
||||
ssl_dhparam /etc/nginx/includes/ssl-dhparams.pem; |
||||
} |
@ -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_HOSTNAME}.${DOMAIN_NAME}" |
||||
|
||||
[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 = "nitter-redis" |
||||
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 = "${NITTER_SECRET}" # 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_HOSTNAME}.${DOMAIN_NAME}" |
||||
replaceYouTube = "piped.kavin.rocks" |
||||
replaceReddit = "teddit.net" |
||||
replaceInstagram = "" |
||||
proxyVideos = true |
||||
hlsPlayback = false |
||||
infiniteScroll = true |
Loading…
Reference in new issue