Go to file
2020-11-17 22:42:41 +01:00
dist add gitignores for pics and vids 2020-11-17 21:52:27 +01:00
inc initial commit 2020-11-17 21:44:32 +01:00
node_modules initial commit 2020-11-17 21:44:32 +01:00
views fix about page git repo url 2020-11-17 21:54:33 +01:00
.gitignore add root .gitignore 2020-11-17 22:11:43 +01:00
app.js initial commit 2020-11-17 21:44:32 +01:00
LICENSE add license file 2020-11-17 22:10:45 +01:00
package-lock.json initial commit 2020-11-17 21:44:32 +01:00
package.json initial commit 2020-11-17 21:44:32 +01:00
README.md fix guide 2020-11-17 22:42:41 +01:00
routes.js initial commit 2020-11-17 21:44:32 +01:00
setup_server.js initial commit 2020-11-17 21:44:32 +01:00

teddit

teddit.net

A free and open source alternative Reddit front-end focused on privacy. Inspired by the Nitter project.

  • No JavaScript or ads
  • All requests go through the backend, client never talks to Reddit
  • Prevents Reddit from tracking your IP or JavaScript fingerprint
  • Lightweight (teddit frontpage: ~30 HTTP requests with ~270 KB of data downloaded vs. Reddit frontpage: ~190 requests with ~24 MB)

XMR: 832ogRwuoSs2JGYg7wJTqshidK7dErgNdfpenQ9dzMghNXQTJRby1xGbqC3gW3GAifRM9E84J91VdMZRjoSJ32nkAZnaCEj

BTC: bc1qlcrmt2pvlh4eq69l3l4h6z5jg74z2m2q3pasan

Installation

This is a quick guide how to run teddit on your own server. Change teddit.net to your own domain in the following steps. Tested on fresh install of Debian 10. Run as root:

# apt update && apt upgrade

# curl -sL https://deb.nodesource.com/setup_14.x | bash -

# apt install -y nodejs redis-server ffmpeg git curl certbot leave ffmpeg out if you dont want video support

# adduser teddit

# mkdir -p /home/teddit/letsencrypt/

# mkdir -p /home/teddit/letsencrypt/

# mkdir -p /home/teddit/letsencrypt/logs/

# mkdir -p /home/teddit/letsencrypt/lib/

# chown teddit:teddit -R /home/teddit/letsencrypt/

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 route port 8080 to 80

# iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8088 route port 8088 to 443

# apt install iptables-persistent save iptables configuration to be persistent

Edit redis.conf file and set maxmemory value suitable for your server (e.g. 75% of your total RAM):

# nano /etc/redis/redis.conf

Add this to the end of the file:

maxmemory 2gb

Also add maxmemory-policy:

maxmemory-policy volatile-ttl

Save and exit the file.

Restart redis:

# systemctl restart redis

Lets log in for teddit user.

# su - teddit

$ git clone https://codeberg.org/teddit/teddit

$ cd teddit

$ npm install && npm update

Lets obtain certificates. Run HTTP server:

$ nohup node setup_server.js </dev/null &>/dev/null &

Then run certbot. Change your email (“ADD_YOUR_EMAIL_ADDRESS@SOMETHING.ORG”) and domain.

$ certbot certonly --webroot -w /home/teddit/teddit/dist/ -d teddit.net --agree-tos --no-eff-email --manual-public-ip-logging-ok --config-dir /home/teddit/letsencrypt/ --logs-dir /home/teddit/letsencrypt/logs/ --work-dir /home/teddit/letsencrypt/lib/ --email ADD_YOUR_EMAIL_ADDRESS@SOMETHING.ORG

Kill the node HTTP server:

$ ps aux | grep node

$ kill -9 [PID HERE]

Change config variables in app.js, domain and Reddit app ID. Note: Its recommended that you get your own Reddit app ID. For testing purposes its okay to use this projects default app ID. Create your Reddit app here: https://old.reddit.com/prefs/apps/ and update its ID to the app.js. Make sure to create an “installed app” type of app.

$ nano app.js

Save and exit.

Now lets start teddit:

$ nohup node app.js > output.log &

If everything went okay, you should have teddit instance running on your domain with a valid SSL certificate. If you see the output.log:

$ tail -f output.log

You should see something like:

Teddit running on https://teddit.net
Teddit running on http://teddit.net
Successfully obtained a reddit API key.