1
0
Fork 0
mirror of https://github.com/benbusby/farside.git synced 2025-04-19 18:38:42 +00:00
A smart redirecting gateway for various frontend services
Find a file
Ben Busby 2d988a1239
Throttle incoming requests to 1/sec per ip
This introduces a way of throttling requests in a way that makes sense
for the purpose of the app. The app only supports redirecting to one
particular service when browsing, which would seldom be required more
than once per second for normal "human" browsing.

Without this, the service could easily be used to DOS multiple instances
at once. That being said, anyone concerned about someone DOS-ing
multiple instances at once should be aware that this would be trivial to
do with a simple bash script. This is simply a preventative measure to
hopefully deter people from trying to attack all public instances of
private frontends using farside.link.

Note that this throttling applies to all routes in the app, including
the homepage. This could be updated to exclude the homepage I guess,
but I'm not really sure what the use case would be for that.
2021-11-12 14:34:36 -07:00
.github/workflows Test for valid service redirects 2021-11-10 11:47:03 -07:00
config Prevent same instance from being selected twice in a row 2021-11-10 12:19:37 -07:00
img Add readme banner 2021-11-08 17:30:45 -07:00
lib Throttle incoming requests to 1/sec per ip 2021-11-12 14:34:36 -07:00
test Throttle incoming requests to 1/sec per ip 2021-11-12 14:34:36 -07:00
.formatter.exs Setup basic Plug.Router framework for serving requests 2021-10-22 18:28:12 -06:00
.gitignore Write results of update script to file for debugging 2021-10-22 18:07:59 -06:00
index.eex Display list of available instances on home page 2021-11-08 17:08:19 -07:00
LICENSE Initial commit 2021-10-21 15:50:04 -06:00
mix.exs Throttle incoming requests to 1/sec per ip 2021-11-12 14:34:36 -07:00
mix.lock Throttle incoming requests to 1/sec per ip 2021-11-12 14:34:36 -07:00
README.md Update README.md 2021-11-08 17:32:55 -07:00
services.json Display list of available instances on home page 2021-11-08 17:08:19 -07:00
update.exs Prevent same instance from being selected twice in a row 2021-11-10 12:19:37 -07:00

Farside


Elixir CI

A redirecting service for FOSS alternative frontends

Development

  • Install redis
  • Install elixir
  • Start redis: redis-server /usr/local/etc/redis.conf
  • Install dependencies: mix deps.get
  • Initialize redis contents: mix run update.exs
  • Run Farside: mix run --no-halt
    • Uses localhost:4001