Added Nitter

master
Meliurwen 4 years ago
parent 85e7dc0e4e
commit acc53bafc9
Signed by: meliurwen
GPG Key ID: 818A8B35E9F1CE10
  1. 2
      .gitignore
  2. 0
      build.bibliogram.sh
  3. 17
      build.nitter.sh
  4. 0
      config/bibliogram.config.js
  5. 39
      config/nitter.conf
  6. 14
      docker-compose.yml
  7. 4
      nginx.env.example
  8. 3
      nginx/Dockerfile
  9. 25
      nginx/root/etc/nginx/conf.d/default.template

2
.gitignore vendored

@ -1,3 +1,3 @@
*.env
bibliogram/
config.js
config/

@ -0,0 +1,17 @@
#!/bin/sh
set -e
REPO_URL=https://github.com/zedeus/nitter.git
REPO_DIR_PATH=nitter
# If repo exists update, else clone it
if [ -d "$REPO_DIR_PATH" ]; then
# Save the root dir path, enter the repo, pull new changes and come back
ROOT_DIR=$(pwd)
cd "$REPO_DIR_PATH"
git pull
cd "$ROOT_DIR"
else
git clone "$REPO_URL" "$REPO_DIR_PATH"
fi

@ -0,0 +1,39 @@
[Server]
address = "0.0.0.0"
port = 8080
https = false # disable to enable cookies when not using https
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"
redisPort = 6379
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
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 = "invidio.us"
replaceInstagram = ""
proxyVideos = true
hlsPlayback = false
infiniteScroll = false

@ -26,7 +26,19 @@ services:
- "10407"
volumes:
- db:/app/db
- ./config.js:/app/config.js
- .config/bibliogram.config.js:/app/config.js
networks:
- bibliogram
nitter:
build:
context: nitter/
container_name: ${NI_CONTAINER_NAME:-nitter}
restart: ${NI_RESTART:-unless-stopped}
expose:
- "8080"
volumes:
- .config/nitter.conf:/src/nitter.conf
networks:
- bibliogram

@ -6,6 +6,10 @@ BG_HOSTNAME=
BG_ADDR=bibliogram
BG_PORT=10407
BG_HOSTNAME=
NI_ADDR=nitter
NI_PORT=8080
NGINX_LISTEN_PORT=80
# Reverse-proxy and certbot

@ -10,6 +10,9 @@ COPY root/ /
ENV BG_HOSTNAME=
ENV BG_ADDR=bibliogram
ENV BG_PORT=10407
ENV BG_HOSTNAME=
ENV NI_ADDR=nitter
ENV NI_PORT=8080
ENV NGINX_LISTEN_PORT=80
ENTRYPOINT ["/entrypoint.sh"]

@ -13,6 +13,13 @@ upstream bibliogram {
server ${BG_ADDR}:${BG_PORT};
}
upstream nitter {
# Cannot connect to network of this container
server 127.0.0.1 down;
## Can be connected with the network
server ${NI_ADDR}:${NI_PORT};
}
server {
# This is a catch-all hostname (it will never trigger on a real hostname).
# If an access by IP or by an unhandled domain linking to this IP is tried,
@ -55,3 +62,21 @@ server {
}
}
server {
listen ${NGINX_LISTEN_PORT};
server_name ${NI_HOSTNAME};
# Disable do not add the server version in the header
server_tokens off;
location / {
proxy_pass http://nitter;
}
location = /robots.txt {
add_header Content-Type text/plain;
return 200 "User-agent: *\nDisallow: /\n";
}
}

Loading…
Cancel
Save