Alternative Reddit front-end focused on privacy.
Deploy this app to Linode with a free $100 credit!
Depends on a proprietary service outside the user's control
A free and open source alternative Reddit front-end focused on privacy. Inspired by the Nitter project.
Join the teddit discussion room on Matrix: #teddit:matrix.org
XMR: 832ogRwuoSs2JGYg7wJTqshidK7dErgNdfpenQ9dzMghNXQTJRby1xGbqC3gW3GAifRM9E84J91VdMZRjoSJ32nkAZnaCEj
https://teddit.net - Official instance
Community instances:
version: "3.8"
services:
teddit:
container_name: teddit
image: teddit/teddit:latest
environment:
- DOMAIN=teddit.net
- USE_HELMET=true
- USE_HELMET_HSTS=true
- TRUST_PROXY=true
- REDIS_HOST=teddit-redis
ports:
- "127.0.0.1:8080:8080"
networks:
- teddit_net
healthcheck:
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost:8080/about"]
interval: 1m
timeout: 3s
depends_on:
- teddit-redis
teddit-redis:
container_name: teddit-redis
image: redis:6.2.5-alpine
command: redis-server
environment:
- REDIS_REPLICATION_MODE=master
networks:
- teddit_net
networks:
teddit_net:
Note: This compose is made for a true "production" setup, and is made to be used to have teddit behind a reverse proxy, if you don't want that and prefer to directly access teddit via its port:
ports: - "127.0.0.1:8080:8080"
to ports: - "8080:8080"
DOMAIN=teddit.net
, USE_HELMET=true
, USE_HELMET_HSTS=true
, TRUST_PROXY=true
git clone https://codeberg.org/teddit/teddit
cd teddit
docker-compose build
docker-compose up
Teddit should now be running at http://localhost:8080.
Docker image is available at https://hub.docker.com/r/teddit/teddit.
The following variables may be set to customize your deployment at runtime.
Variable | Description |
---|---|
domain | Defines URL for Teddit to use (i.e. teddit.domain.com). Defaults to 127.0.0.1 |
use_reddit_oauth | Boolean If true, "reddit_app_id" must be set with your own Reddit app ID. If false, Teddit uses Reddit's public API. Defaults to false |
cert_dir | Defines location of certificates if using HTTPS (i.e. /home/teddit/le/live/teddit.net). No trailing slash. |
theme | Automatically theme the user's browser experience. Options are auto, dark, sepia, or you can set white by setting the variable to empty ( '' ). Defaults to auto |
flairs_enabled | Enables the rendering of user and link flairs on Teddit. Defaults to true |
highlight_controversial | Enables controversial comments to be indicated by a typographical dagger (†). Defaults to true |
api_enabled | Teddit API feature. Might increase loads significantly on your instance. Defaults to true |
api_force_https | Force HTTPS to Teddit API permalinks (see #285). Defaults to false |
video_enabled | Enables video playback within Teddit. Defaults to true |
redis_enabled | Enables Redis caching. If disabled, does not allow for any caching of Reddit API calls. Defaults to true |
redis_db | Sets the redis DB name, if required |
redis_host | Sets the redis host location, if required. Defaults to 127.0.0.1 |
redis_password | Sets the redis password, if required |
redis_port | Sets the redis port, if required. Defaults to 6379 |
ssl_port | Sets the SSL port Teddit listens on. Defaults to 8088 |
nonssl_port | Sets the non-SSL port Teddit listens on. Defaults to 8080 |
listen_address | Sets the address Teddit listens for requests on. Defaults to 0.0.0.0 |
https_enabled | Boolean Sets whether or not to enable HTTPS for Teddit. Defaults to false |
redirect_http_to_https | Boolean Sets whether to force redirection from HTTP to HTTPS. Defaults to false |
redirect_www | Boolean Redirects from www to non-www URL. For example, if true, Teddit will redirect https://www.teddit.com to https://teddit.com. Defaults to false |
use_compression | Boolean If set to true, Teddit will use the https://github.com/expressjs/compression to compress HTTP requests with deflate/gzip. Defaults to true |
use_view_cache | Boolean If this is set to true, view template compilation caching is enabled. Defaults to false |
use_helmet | Boolean Recommended to be true when using https. Defaults to false |
use_helmet_hsts | Boolean Recommended to be true when using https. Defaults to false |
trust_proxy | Boolean Enable trust_proxy if you are using a reverse proxy like nginx or traefik. Defaults to false |
trust_proxy_address | Location of trust_proxy. Defaults to 127.0.0.1 |
http_proxy | Set http/https proxy to use for outgoing requests. See https-proxy-agent for details |
nsfw_enabled | Boolean Enable NSFW (over 18) content. If false, a warning is shown to the user before opening any NSFW post. When the NFSW content is disabled, NSFW posts are hidden from subreddits and from user page feeds. Note: Users can set this to true or false from their preferences. Defaults to true |
videos_muted | Boolean Automatically mute all videos in posts. Defaults to true |
post_comments_sort | Defines default sort preference. Options are confidence (default sorting option in Reddit), top, new, controversal, old, random, qa, live. Defaults to confidence |
reddit_app_id | If "use_reddit_oauth" config key is set to true, you have to obtain your Reddit app ID. For testing purposes it's okay to use this project's default app ID. Create your Reddit app here: https://old.reddit.com/prefs/apps/. Make sure to create an "installed app" type of app. Default is ABfYqdDc9qPh1w |
domain_replacements | Replacements for domains in outgoing links. Tuples with regular expressions to match, and replacement values. This is in addition to user-level configuration of privacyDomains. Defaults to [] |
cache_control | Boolean If true, teddit will automatically remove all cached static files. Defaults to true |
cache_control_interval | How often the cache directory for static files is emptied (in hours). Default is every 24 hours. Requires cache_control to be true. Defaults to 24 |
suggested_subreddits | Array of suggested subreddits, which are displayed in the top bar (if the user doesn't have any subscriptions) and in the cleaned home page. Defaults to Reddit's default suggested subreddits. |
Install Node.js.
(Optional) Install redis-server.
Highly recommended – it works as a cache for Reddit API calls.
It's needed if you want to support videos.
# Linux
apt install redis-server ffmpeg
# macOS
brew install redis
git clone https://codeberg.org/teddit/teddit
cd teddit
npm install --no-optional
cp config.js.template config.js # edit the file to suit your environment
redis-server
npm start
Teddit should now be running at http://localhost:8080.
You can also run teddit from a process manager like pm2:
## To run:
npm install pm2 -g
pm2 start app.js --name teddit
## To run on startup:
pm2 startup
pm2 save ## if using systemd, see below.
## To restart or stop
pm2 restart teddit
pm2 stop teddit
See also the pm2 instructions for running a project on startup. In particular, if using systemd, see the section on how to modify the systemd init file so that it runs after your system connects to the network.
Teddit does not host any content. All content shown on any Teddit instances is from Reddit™. Reddit is a trademark of Reddit Inc. Teddit is not affiliated with Reddit Inc. Any issues with content shown on any Teddit instances need to be reported to Reddit, not the instance host's internet provider or domain provider.
Please login to review this project.
No reviews for this project yet.
Comments (0)
Please login to join the discussion on this project.