Commit graph

25 commits

Author SHA1 Message Date
Ben Busby
3460986481
Handle dig return code 9 in update workflow
If dig returns exit code 9 (no reply from server) when checking an
instance for cloudflare records, it shouldn't fail the CI build but
rather just skip adding the instance to the non-cloudflare services
list.

This should be re-evaluated soon to see if the CI build routinely has
issues with getting a server reply. If so, a different approach needs to
be taken to check if an instance is using cloudflare.
2022-07-31 11:47:28 -06:00
Ben Busby
e611375e75
Force remove cf filter output in auto update workflow 2022-07-28 09:19:25 -06:00
Ben Busby
2e7d4355c5
Use full service list in auto update workflow 2022-07-27 16:36:31 -06:00
Ben Busby
592e492a62
Use full service list for tests
The filtered service list isn't guaranteed to have more than one
instance per service, which fails a test that was designed to ensure
back-to-back requests don't use the same instance. Using the full
services json file more accurately tests the intended functionality for
Farside.
2022-07-27 14:12:48 -06:00
Ben Busby
00225fdbc6
Exclude Cloudflare instances from services.json by default
This updates the services json file to exclude all instances that are
detected to be using Cloudflare nameservers.

A separate "services-full.json" file will continue to be tracked in the
repo, which will include the full list of all instances for each
service and can be used with the `FARSIDE_SERVICES_JSON` environment
variable for anyone wanting to access the full instance list for each
service.

See #43
2022-07-27 14:08:57 -06:00
Ben Busby
1b88e67ed0
Exclude i2p address from searx(ng) auto update 2022-07-13 10:53:27 -06:00
Ben Busby
fb286398bc
Fix Wikiless auto update workflow
Wikiless updated their instance json with a couple of changes that broke
Farside's auto update workflow:
- The protocol for each instance is now included by default (no need to prepend
  "https://")
- The instances are differentiated between regular, onion, and i2p (no need to
  check for ".onion" in regular instance URLs)
2022-06-21 14:04:59 -06:00
Ben Busby
29178e02c3
Use 'generator' field to filter SearXNG instances
See #23

More info: searxng/searxng#1046
2022-04-05 16:06:05 -06:00
Ben Busby
20347822da
Support SearXNG
Added a new seperate service for only redirecting to SearXNG instances.
Note that plain "searx" redirects will use both SearX and SearXNG
instances for those who don't have a preference between the two.

Closes #23
2022-03-18 13:28:45 -06:00
Ben Busby
21646f8f29
Add support for Wikiless instances
"A free open source alternative Wikipedia front-end focused on privacy"
- https://codeberg.org/orenom/Wikiless
2022-02-24 17:27:34 -07:00
Austin Huang
2cd82adeb9
Auto update teddit and Scribe instances (#15) 2022-02-03 15:10:48 -07:00
Ben Busby
79f24a59f1
Allow manually triggering auto-update workflow 2022-01-26 16:16:59 -07:00
Ben Busby
7cb19579c9
Auto update list of invidious instances
Adds Invidious to the auto-update nightly CI build

Closes #12
2022-01-26 16:11:46 -07:00
Ben Busby
719beb90df
Auto update whoogle instances from CI 2021-12-23 17:33:44 -07:00
Ben Busby
919dd6f602
Support teddit, piped, and simplytranslate
- teddit (https://teddit.net/about)
  A free and open source alternative Reddit front-end focused on
  privacy. Inspired by the Nitter project.

- Piped (https://github.com/TeamPiped/Piped)
  An alternative privacy-friendly YouTube frontend which is efficient
  by design.

- SimplyTranslate (https://simple-web.org/projects/simplytranslate.html)
  We aim to provide fast and private translations to the user without
  wasting much overhead for extensive styling or JavaScript

___

Also adds SimplyTranslate to the github pipeline, since they provide a
list of the service's public instances.

Closes #4
2021-12-15 17:12:59 -07:00
Ben Busby
ac1fa36f6c
Fix instance update commit as gh-bot 2021-11-29 17:45:33 -07:00
Ben Busby
17f83649c1
Print instances found in workflow to log 2021-11-28 18:17:44 -07:00
Ben Busby
d172c5d467
Simplify CI commit in "update" workflow
The steps taken to commit the changes to services.json were overly complicated.
This simplifies the steps to just `exit 0` if there are no changes to commit.
2021-11-27 17:52:21 -07:00
Ben Busby
0d93fee725
Fix sed command in instance update workflow 2021-11-26 17:46:49 -07:00
Ben Busby
8e3455a790
Automate updates for list of searx instances (#3)
* Create nightly update workflow for instances

A nightly GitHub Actions CI workflow has been added to fetch new
instances of supported services within Farside.

Currently only Searx is supported, but obviously others could be added
if there are similarly easy ways to fetch and filter instances
programmatically.

services.json has also been updated with the initial results of the
workflow script.

* Set headers for every HTTPoison request

This serves as a workaround for bot blocking via filtron.

* Expand filtering of searx instances

New filter enforces:
- No Cloudflare
- Good TLS config
- Good HTTP header config
- Vanilla instances or forks
- Instances with 100% search success
2021-11-26 09:12:46 -07:00
Ben Busby
ff97d258f0
Use quantum core for update scheduling
Rather than requiring a traditional crontab install, the app now
leverages quantum-core (link below) to schedule the instance update/sync
task every 5 minutes. Some updates as a result:

  - The new job is scheduled at runtime in server.ex.
  - The update.exs script was refactored to be compiled along with the
    rest of the app as instances.ex.
  - Scheduler and Server modules were added for creating and executing
    the new update task
  - All shell scripts were removed, as they are no longer needed

https://github.com/quantum-elixir/quantum-core
2021-11-24 09:35:21 -07:00
Ben Busby
f33279c41b
Test for valid service redirects
Updates testing to iterate through all available services and validate
that each one correctly produces a 302 redirect.
2021-11-10 11:47:03 -07:00
Ben Busby
85123cb524
Use elixir 1.12 and otp 24 in build/test 2021-11-09 15:22:32 -07:00
Ben Busby
39c244d970
Skip querying all instances w/ "test mode"
Now allows setting FARSIDE_TEST to skip individually fetching each
instance, and instead just adds all of them to redis instantly. This
allows for an easier time in CI builds, for both the sake of speed and
to prevent a scenario where many simultaneous builds have a noticeable
impact on actual instances.
2021-11-09 15:12:58 -07:00
Ben Busby
83bcad2eda
Add elixir CI 2021-10-26 21:21:00 -06:00