<feed xmlns='http://www.w3.org/2005/Atom'>
<title>farside/lib, branch main</title>
<subtitle>Farside fork</subtitle>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/'/>
<entry>
<title>Rewrite project, add daily update of services list</title>
<updated>2025-01-21T20:46:29+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2025-01-21T20:46:29+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=b5bad4defc6c75b9b969658229ce5fd2f3a46107'/>
<id>b5bad4defc6c75b9b969658229ce5fd2f3a46107</id>
<content type='text'>
The project was rewritten from Elixir to Go, primarily because:

- I don't write Elixir anymore and don't want to maintain a project in a
  language I no longer write
- I already write Go for other projects, including my day job, so it's
  a safer bet for a project that I want to maintain long term
- Go allows me to build portable executables that will make it easier
  for others to run farside on their own machines

The Go version of Farsside also has a built in task to fetch the latest
services{-full}.json file from the repo and ingest it, which makes
running a farside server a lot simpler.

It also automatically fetches the latest instance state from
https://farside.link unless configured as a primary farside node, which
will allow others to use farside without increasing traffic to all
instances that are queried by farside (just to the farside node itself).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The project was rewritten from Elixir to Go, primarily because:

- I don't write Elixir anymore and don't want to maintain a project in a
  language I no longer write
- I already write Go for other projects, including my day job, so it's
  a safer bet for a project that I want to maintain long term
- Go allows me to build portable executables that will make it easier
  for others to run farside on their own machines

The Go version of Farsside also has a built in task to fetch the latest
services{-full}.json file from the repo and ingest it, which makes
running a farside server a lot simpler.

It also automatically fetches the latest instance state from
https://farside.link unless configured as a primary farside node, which
will allow others to use farside without increasing traffic to all
instances that are queried by farside (just to the farside node itself).
</pre>
</div>
</content>
</entry>
<entry>
<title>Include content type header on home page</title>
<updated>2024-03-06T16:18:28+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2024-03-06T16:18:28+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=cd840214d2aaadbce56a9b03951ae7d9190be330'/>
<id>cd840214d2aaadbce56a9b03951ae7d9190be330</id>
<content type='text'>
Closes #158
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #158
</pre>
</div>
</content>
</entry>
<entry>
<title>Extract remote ip from `X-Forwarded-For`</title>
<updated>2024-01-09T16:55:55+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2024-01-09T16:55:55+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=60c318b5a37b5933fc2b5d39ea07f5a06c404a30'/>
<id>60c318b5a37b5933fc2b5d39ea07f5a06c404a30</id>
<content type='text'>
The remote IP returned in plug.conn is meant to be overwritten by the
developer, and doesn't reflect the origin of the request based on
headers. A new dependency has been added to make this change quicker to
roll out.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The remote IP returned in plug.conn is meant to be overwritten by the
developer, and doesn't reflect the origin of the request based on
headers. A new dependency has been added to make this change quicker to
roll out.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update reddit + ig frontends, update rate limiting</title>
<updated>2024-01-08T19:37:17+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2024-01-08T19:37:17+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=247114d32819076e6063e7777402ed5a92e5f3a2'/>
<id>247114d32819076e6063e7777402ed5a92e5f3a2</id>
<content type='text'>
Farside ratelimiting has been updated to return a 429 when a user
exceeds 1 request/sec. This should help eliminate a lot of scraping type
behavior that instance maintainers have been dealing with from Farside
lately.

Service changes:
- Teddit removed (not maintained)
- Bibliogram replaced by Proxigram
- Libreddit merged with redlib
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Farside ratelimiting has been updated to return a 429 when a user
exceeds 1 request/sec. This should help eliminate a lot of scraping type
behavior that instance maintainers have been dealing with from Farside
lately.

Service changes:
- Teddit removed (not maintained)
- Bibliogram replaced by Proxigram
- Libreddit merged with redlib
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace bibliogram w/ proxigram</title>
<updated>2024-01-08T19:07:38+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2024-01-08T19:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=99b13b3aa6277f331e85e20cac7aed43a3c284fb'/>
<id>99b13b3aa6277f331e85e20cac7aed43a3c284fb</id>
<content type='text'>
Closes #149
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #149
</pre>
</div>
</content>
</entry>
<entry>
<title>Return 429 for users exceeding 1 req/sec</title>
<updated>2024-01-08T18:49:18+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2024-01-08T18:49:18+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=7f26ab3bbf3743e5f6924b51e08986b58641ba49'/>
<id>7f26ab3bbf3743e5f6924b51e08986b58641ba49</id>
<content type='text'>
Farside has been getting used by some to rapidly scrape sites, which
puts increased load and effort on maintainers of instances. Rather than
funneling traffic towards the last selected instance, farside will now
just return a 429 error when this behavior occurs.

Closes #147
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Farside has been getting used by some to rapidly scrape sites, which
puts increased load and effort on maintainers of instances. Rather than
funneling traffic towards the last selected instance, farside will now
just return a 429 error when this behavior occurs.

Closes #147
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace libreddit w/ redlib, remove teddit</title>
<updated>2024-01-08T18:32:59+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2024-01-08T18:32:59+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=4f60a39d7f6aded5a7ccd5f003f77ed634415a90'/>
<id>4f60a39d7f6aded5a7ccd5f003f77ed634415a90</id>
<content type='text'>
Teddit is no longer maintained

Libreddit has been forked to redlib, which seems to be actively trying
to work around the changes to Reddit's API.

Libreddit instances are now a mirror of redlib instances for the time
being.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Teddit is no longer maintained

Libreddit has been forked to redlib, which seems to be actively trying
to work around the changes to Reddit's API.

Libreddit instances are now a mirror of redlib instances for the time
being.
</pre>
</div>
</content>
</entry>
<entry>
<title>Redirect x.com links to nitter instances</title>
<updated>2023-09-28T20:24:01+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2023-09-28T20:24:01+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=a843b322c9caafe1bf086a7b8475e112394ca073'/>
<id>a843b322c9caafe1bf086a7b8475e112394ca073</id>
<content type='text'>
Closes #136
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #136
</pre>
</div>
</content>
</entry>
<entry>
<title>Poll nitter instances only in nightly build</title>
<updated>2023-08-23T19:46:51+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2023-08-23T19:46:51+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=7e47e9536aa347d8a0ea24dfef3c034ad50d9a76'/>
<id>7e47e9536aa347d8a0ea24dfef3c034ad50d9a76</id>
<content type='text'>
From the recent changes to twitter/X, it sounds like guest accounts are
now required for nitter, which are more easily rate limited. To avoid
any impact from Farside, the instances are now health checked in the
nightly build using https://status.d420.de (this doesn't seem to be
directly associated with the nitter maintainers, so might not be
entirely future-proof).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
From the recent changes to twitter/X, it sounds like guest accounts are
now required for nitter, which are more easily rate limited. To avoid
any impact from Farside, the instances are now health checked in the
nightly build using https://status.d420.de (this doesn't seem to be
directly associated with the nitter maintainers, so might not be
entirely future-proof).
</pre>
</div>
</content>
</entry>
<entry>
<title>Add env var for toggling cron task on/off</title>
<updated>2023-07-17T23:46:39+00:00</updated>
<author>
<name>Ben Busby</name>
<email>contact@benbusby.com</email>
</author>
<published>2023-07-17T23:46:39+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=7693a6b0633c3eee5d717662df72b62463d6f2d1'/>
<id>7693a6b0633c3eee5d717662df72b62463d6f2d1</id>
<content type='text'>
FARSIDE_CRON allows turning on/off the scheduled instance availability
check that occurs every 5 minutes by setting the variable to 1 (on) or 0
(off). The default behavior is "on".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FARSIDE_CRON allows turning on/off the scheduled instance availability
check that occurs every 5 minutes by setting the variable to 1 (on) or 0
(off). The default behavior is "on".
</pre>
</div>
</content>
</entry>
</feed>
