benbusby / farside Goto Github PK
View Code? Open in Web Editor NEWA smart redirecting gateway for various frontend services
Home Page: https://farside.link
License: MIT License
A smart redirecting gateway for various frontend services
Home Page: https://farside.link
License: MIT License
If you want to preserve your privacy, this is the most awesome tool I have run across. Decentralized access to a wide variety of media and search. Depending on your situation, you can self host, so you are not even relying on access to Ben's free service.
Thank you Ben.
This is an awesome tool!
I'm trying to self host it and following the instructions, when I try to fire off the redis-server (redis-server /usr/local/etc/redis.conf) I get the above error due to the file not existing. Maybe something simple I'm doing wrong...
Any help, much appreciated.
For something like Farside, I feel like pointing to the same instance of a given service if receiving multiple requests to that service might be a good idea. I say this partly for usage with RSS, which is a very common usecase for me with many of these services as they offer RSS where official means do not.
However, this rate limiting can often mean updating a feed may fail. I think giving the same instance again might be a good way to mitigate the chances of this happening while also still reducing the load on the Farside server some. I may be wrong, but requests being outright denied in more programmatic situations like this is a little frustrating, especially with there only being a single Farside instance.
A big thanks to benbusy for this wonderfull, so much underrated, tool. Your brilliant idea, and work commited is much appreciated.
But I'm not sure, many people understand the power of this redirector thingy. And how easy it is to make use of such a tool in variety of contexts.
And even more so the latest changes, #37 , make it so much simpler to use.
I see that some people have contributed for example, with a GreaseMonkey userscript, #29. This issue was opened and closed and this "knowledge" is now "burried".
The same could be said,for example, for a couple of simple lines, instructing how to configure your OpenWrt router. Or even if a future package would be available for this router distribution.
Or "How I installed" farside in a small Raspberry Pi.
Or how to simply configure Chrome orFirefox default seach to use a Farside link (no need for extensions).
Or a list of other future "farside instances".
Or ...
I would suggest the proper place to collect all these user contributed tips, would be the wiki page. And you would still maintain tight personal editing control of your README page.
Hi, I keep getting German results. I've added Farside as a search engine in firefox with the '&lang_interface=en' added after the search terms, however I regularly get German results, mostly from the whoogle.lunar.icu instance.
In the address bar I get something like 'https://whoogle.lunar.icu/search?q=whatever&lang_interface=en' so it does seem to be registering it but I still get the german instance most of the time. This occurs both on android and windows firefox.
Any ideas? I can't seem to find a way to block a particular instance as a workaround either.
Thanks otherwise for a super useful tool!
I have farside.link/whoogle/search?q=%s as a custom search option for librewolf, but some of the sites chosen don't keep the search query typed in the urlbar. The sethforprivacy and dcs0.hu instances have this problem, but I can't remember which others have them as well...
Hi, Invidious project manager here :)
Can you please update the list of Invidious instances, or ideally, automate its update using https://api.invidious.io/ in the same way you're doing it for SearX and Whoogle.
Thank you
It would be really cool if users could, without entering the frontend name, be automatically redirected to an appropriate frontend service for a given link. For example, if https://farside.link/https://www.youtube.com/watch?v=whatever redirected to [an Invidious instance]/watch?v=whatever
Bibliogram now provides an API to fetch the current list of public instances (doc: https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/API:%20Instances.md, list: https://bibliogram.art/api/instances).
This should be integrated into the update-instances workflow soon, especially since the current list of Bibliogram instances is much shorter than what's actually available, and this service seems to have the highest amount of ratelimiting.
A free and open source alternative Reddit front-end focused on privacy. Inspired by the Nitter project.
An alternative privacy-friendly YouTube frontend which is efficient by design.
We aim to provide fast and private translations to the user without wasting much overhead for extensive styling or JavaScript
First of all, thank you for providing an invaluable service to deal with both a diversion around the increasing walls that Twitter is placing up for non-registered users and to route around the consistent rate limiting that the official Nitter instance is implementing.
I am using Farside to keep track of a number of Twitter accounts and my query is whether Farside could be made more intelligent to detect instances.
I have noted three different issues with four instances:
So my query based on the three issues I describe is whether Farside can be improved to remove the instances that are not retrieving and showing tweets, are showing a generic redirect page as the URL has changed or are showing a domain owner page as the domain has expired? Or if not, if there could be an easy and automated way to report such instances?
Not clear to me what they are supporting. Any help, much appreciated.
Trying to understand if/why I should whitelist...
Since your current one is
Line 14 in 932f3bb
I blocked your IP because I thought you're scraping the service...
I'd suggest something like
Mozilla/5.0 (compatible; Farside/0.1.0; +https://farside.link)
BreezeWiki can also be called an "alternative frontend for Fandom".
Instances: https://docs.breezewiki.com/Links.html#%28part._.Instances%29
Scribe is a wonderful frontend for Medium. There is a list of instances in the repo.
Some information that may help:
Most of the public instances have filtron to avoid bots (at least some). See https://github.com/searx/searx-docker/blob/master/rules.json#L2-L7
Every time I use farside.link/bibliogram/*, I get redirected to imginn.com. This redirection is probably done by the only Bibliogram instance left in your curated list, https://bibliogram.privacydev.net
Instances (some are SearX not searXNG): https://searx.space/
Hi, great tool!
I host many instance on opnxng.com, would you consider adding them?
SearXNG
https://opnxng.com/
Whoogle
https://w.opnxng.com/
Teddit
https://i.opnxng.com/
Libreddit
https://l.opnxng.com/
Nitter
https://t.opnxng.com/
Lingva
https://lingva.opnxng.com/
In case of Invidious, would it be possible to make it so that Farside provides the information that various chat platforms or other social media requires in order to create a preview widget (the thumbnail, video title and first few words of video description).
Invidious instances already provide this, so providing a link to invidious instance creates a preview correctly.
Having this work with Farside as well would probably result in a lot more people being less suspicious about the link. Which would probably help with adoption and promotion as well.
"LibreX gives you results from Google, Qwant and popular torrent sites without spying on you.
If you would like to learn more about LibreX check out the Wiki."
I believe it's rather ironic for a tool that provides privacy-oriented/ethical frontend alternatives
to various services to host itself on Github. It should at a bare minimum be an archived
repository pointing to the hosted version somewhere else. You can pick from using a
self-hosted version of Gitlab, Gitea, gogs, cgit, stagit, git-web, sourcehut, you name it.
A free open source alternative Wikipedia front-end focused on privacy - Wikiless - Codeberg.org
https://codeberg.org/orenom/Wikiless
Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations. Instead, its translation engine is powered by the open source Argos Translate library.
Alefvanoon's instances should be removed since he doesn't seem to be hosting any of them anymore.
accidentally going to http results in nginx 404 error on the main instance.
something like this would probably fix it:
server {
listen 80;
server_name farside.link;
return 301 https://$server_name$request_uri;
}
Querte:
https://quetre.herokuapp.com/
https://quora.vern.cc/
https://quetre.pussthecat.org/
https://wuetre.herokuapp.com/
https://quetreus.herokuapp.com/
https://quetre.tokhmi.xyz/
LibreIMDB:
https://libremdb.herokuapp.com/
https://libremdb.pussthecat.org/
https://libremdbeu.herokuapp.com/
https://lmdb.tokhmi.xyz/
Whoogle supports changing interface and search results language through environment variable. This may cause issues as farside does not. For example using https://farside.link/whoogle/search?q=elixir you may get forwarded to https://whooglesearch.net/ that only supports spanish results. Here's a table of whoogle instances and their supported languages (source: https://github.com/benbusby/whoogle-search):
suggested solution: specify the desired language in the url that so it forwards the search to whoogle instances that supports that language, something like this https://farside.link/whoogle/search?language=en&q=elixir
Hi, thank you for creating this tool!
Contrary to the teddit README's claim of "No JavaScript or ads", I've noticed that a particular teddit instance (https://teddit.nautolan.racing/) is hitting JS resources that seems to be involved in advertisement and tracking. For instance:
These are the network requests my browser makes when going to http://ww38.teddit.nautolan.racing/ (which I was redirected to by farside):
As a result of blocking these requests, I'm left with a blank page, in which case I'll typically manually go to teddit.net instead.
I'm wondering if this instance should be removed from the services list?
Thanks!
Hi, first of all I want to say thanks for the tool. I just discovered it a few days ago and I use it in combination with Apple Shortcuts to longpress on a link and open it via farside.link.
I just combine farside.link/<selected_link>. This is working great. I just came across a YouTube link starting with youtu.be/
Combining “farside.link/” with a youtu.be url seams not to work. Would be great if those links would also work via farside.link/<youtu.be link>.
Cheers
Bibliogram is discontinued but
What does discontinued mean?
You can't look at profiles. You can still look at individual posts, but if this breaks in the future, I probably won't fix it.
In readme you say
How It Works
The app runs with an internally scheduled cron task that queries all instances for services defined in services.json every 5 minutes. For each instance, as long as the instance takes <5 seconds to respond and returns a successful response code, the instance is added to a list of available instances for that particular service. If not, it is discarded until the next update period.
I could not find what the test is but I bet the test is querying a profile, that’s why all instances are down. Instead, you should use a post instead, they still work (for now)
https://bibliogram.art/p/Ch2WRmiLMjj/
I've made a Userscript, which can be realized into a Web Extension.
You're welcome to try ;)
I suggest to add this script to the Farside project website and also a dedicated URL to auto-update this userscript.
Please don't use storage from a centralized so called "big-tech-giant", because statistics that will be provided to them, will not be good for us.
I guess we can use IPFS for this storage task.
With the logo
13,305 bytes (uncompressed), 5,855 bytes (compressed)
Without a logo
8,966 bytes (uncompressed), 2,264 bytes (compressed)
// ==UserScript==
// @name Farside
// @author Ben Busby, Founder
// @author Schimon Jehudah, Adv.
// @license AGPL3
// @namespace link.farside
// @description A smart redirecting gateway for various frontend services
// @grant none
// @run-at document-start
// @match *://bing.com/*
// @match *://*.bing.com/*
// @match *://google.*/*
// @match *://*.google.*/*
// @match *://imgur.com/*
// @match *://*.imgur.com/*
// @match *://instagram.com/*
// @match *://*.instagram.com/*
// @match *://medium.com/*
// @match *://*.medium.com/*
// @match *://reddit.com/*
// @match *://*.reddit.com/*
// @match *://twitter.com/*
// @match *://wikipedia.org/*
// @match *://*.wikipedia.org/*
// @match *://yahoo.com/*
// @match *://*.yahoo.com/*
// @match *://yandex.com/*
// @match *://*.yandex.com/*
// @match *://*.youtube.com/*
// @version 1.0.0
// @icon data:image/png;base64,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
// ==/UserScript==
var hostname, pathname, path;
let url = new URL(location.href);
hostname = url.hostname;
pathname = url.pathname;
function pickParameters(para) {
for (let i = 0; i < para.length; i++) {
if (url.searchParams.get(para[i])) {
para = url.searchParams.get(para[i]);
url.searchParams.delete(para[i]);
return para;
};
};
};
switch (true) {
case (hostname.endsWith('translate.yandex.com')):
// FIXME website blocks us from redirecting
// function setTimeout() seems to not work
// consider different approach/way
case (hostname.endsWith('translate.google.com')):
site = [
// lingva
'lgv,https://farside.link/lingva',
'lgv,https://lingva.pussthecat.org',
'lgv,https://lingva.ml',
// simplytranslate
'smp,https://farside.link/simplytranslate',
'smp,https://translate.tiekoetter.com',
'smp,https://translate.syncpundit.com',
'smp,https://translate.riverside.rocks',
'smp,https://translate.northboot.xyz',
'smp,https://translate.namazso.eu',
'smp,https://translate.josias.dev',
'smp,https://translate.bus-hit.me',
'smp,https://st.manerakai.com',
'smp,https://st.alefvanoon.xyz',
'smp,https://simplytranslate.pussthecat.org',
'smp,https://simplytranslate.org',
'smp,https://simplytranslate.esmailelbob.xyz'];
break;
// TODO bing mapquest moovit waze yandex
// FIXME website blocks us from redirecting
case (hostname.includes('google.') &&
pathname.startsWith('/maps')):
site = [
// openstreetmap
'osm,https://www.openstreetmap.org'];
break;
case (hostname.includes('yandex.') &&
pathname.startsWith('/search')):
case (hostname.startsWith('search.yahoo.')):
case (hostname.includes('yahoo.') &&
pathname.startsWith('/search')):
case (hostname.includes('bing.') &&
pathname.startsWith('/search')):
// FIXME website blocks us from redirecting
case (hostname.includes('google.') &&
pathname.startsWith('/search')):
site = [
// searx
'srx,https://farside.link/searx',
'srx,https://searx.webheberg.info',
'srx,https://searx.tyil.nl',
'srx,https://searx.tuxcloud.net',
'srx,https://searx.tux.land',
'srx,https://searx.theanonymouse.xyz',
'srx,https://searx.stuehieyr.com',
'srx,https://searx.sp-codes.de',
'srx,https://searx.ru',
'srx,https://searx.rasp.fr',
'srx,https://searx.ninja',
'srx,https://searx.gnu.style',
'srx,https://searx.divided-by-zero.eu',
'srx,https://search.neet.works',
'srx,https://search.jpope.org',
'srx,https://search.asynchronousexchange.com',
'srx,https://procurx.pt',
'srx,https://dynabyte.ca',
// searxng
'sng,https://farside.link/searxng',
'sng,https://swag.pw',
'sng,https://searxng.zackptg5.com',
'sng,https://searx.tiekoetter.com',
'sng,https://searx.prvcy.eu',
'sng,https://searx.mha.fi',
'sng,https://searx.jaska.cc',
'sng,https://searx.fmac.xyz',
'sng,https://searx.ebnar.xyz',
'sng,https://searx.be',
'sng,https://search.zzls.xyz',
'sng,https://search.vojkovic.xyz',
'sng,https://search.rabbit-company.com',
'sng,https://search.ononoki.org',
'sng,https://search.neet.works',
'sng,https://search.mdosch.de',
'sng,https://s.zhaocloud.net',
'sng,https://paulgo.io',
'sng,https://northboot.xyz',
'sng,https://etsi.me',
// whoogle
'who,https://farside.link/whoogle',
'who,https://gowogle.voring.me',
'who,https://s.alefvanoon.xyz',
'who,https://search.sethforprivacy.com',
// yacy
//'ycy,https://farside.link/yacy',
'ycy,https://51.79.164.235:8443',
'ycy,https://58.179.103.130:49153',
'ycy,https://76.9.226.109:8444',
'ycy,https://78.55.177.108:8443',
'ycy,https://85.199.74.98:8443',
'ycy,https://93.190.202.83:8443',
'ycy,https://109.230.224.225:8443',
'ycy,https://162.210.6.138:8443',
'ycy,https://176.31.104.225:8448',
'ycy,https://185.243.10.140:8443',
'ycy,https://search.yacy.net',
'ycy,https://www.gumx.de:8091',
'ycy,https://yacy.iko.soy/'];
break;
case hostname.endsWith('imgur.com'):
site = [
// imgin
'img,https://farside.link/imgin',
'img,https://imgin.voidnet.tech',
// rimgo
'rim,https://farside.link/rimgo',
'rim,https://rimgo.bus-hit.me',
'rim,https://rimgo.totaldarkness.net',
'rim,https://img.riverside.rocks',
'rim,https://rimgo.pussthecat.org',
'rim,https://i.bcow.xyz'];
break;
case hostname.endsWith('instagram.com'):
site = [
// bibliogram
'bib,https://farside.link/bibliogram',
'bib,https://bibliogram.art',
'bib,https://bibliogram.snopyta.org',
'bib,https://bibliogram.froth.zone',
'bib,https://insta.trom.tf',
'bib,https://bib.riverside.rocks',
'bib,http://qsuiaf4jio2yaxdbj6ljte3jmr6m7g333rujoilbtipjeawnou26frad.onion',
'bib,https://bibliogram.esmailelbob.xyz',
'bib,https://insta.tromdienste.de',
'bib,https://biblio.alefvanoon.xyz',
'bib,https://bib.actionsack.com',
'bib,https://bibliogram.1d4.us',
'bib,https://bibliogram.pussthecat.org'];
break;
case hostname.endsWith('medium.com'):
site = [
// scribe
'scr,https://farside.link/scribe',
'scr,https://scribe.froth.zone',
'scr,https://scribe.bus-hit.me',
'scr,https://scribe.citizen4.eu',
'scr,https://scribe.nixnet.services',
'scr,https://scribe.rip'];
break;
case hostname.endsWith('reddit.com'):
site = [
// libreddit
'lib,https://farside.link/libreddit',
'lib,https://de.leddit.xyz',
'lib,https://leddit.xyz',
'lib,https://libreddit.bus-hit.me',
'lib,https://libreddit.de',
'lib,https://libreddit.igna.rocks',
'lib,https://libreddit.alefvanoon.xyz',
'lib,https://lr.mint.lgbt',
'lib,https://reddit.stuehieyr.com',
'lib,https://libreddit.some-things.org',
'lib,https://r.nf',
'lib,https://reddit.artemislena.eu',
'lib,https://libreddit.domain.glass',
'lib,https://libreddit.silkky.cloud',
'lib,https://lr.riverside.rocks',
'lib,https://reddit.invak.id',
'lib,https://libreddit.kavin.rocks',
'lib,https://libreddit.dothq.co',
'lib,https://libreddit.spike.codes',
'lib,https://libredd.it',
'lib,https://libreddit.albony.xyz',
// teddit
'ted,https://farside.link/teddit',
'ted,https://teddit.zaggy.nl',
'ted,https://teddit.totaldarkness.net',
'ted,https://teddit.sethforprivacy.com',
'ted,https://teddit.pussthecat.org',
'ted,https://teddit.net',
'ted,https://teddit.namazso.eu',
'ted,https://teddit.froth.zone',
'ted,https://teddit.domain.glass',
'ted,https://teddit.bus-hit.me',
'ted,https://teddit.alefvanoon.xyz',
'ted,https://teddit.adminforge.de',
'ted,https://incogsnoo.com'];
break;
case hostname.endsWith('twitter.com'):
site = [
// nitter
'nit,https://farside.link/nitter',
'nit,https://de.nttr.stream',
'nit,https://nttr.stream',
'nit,https://nitter.bus-hit.me',
'nit,https://nitter.sethforprivacy.com',
'nit,https://twitter.076.ne.jp',
'nit,https://nitter.ca',
'nit,https://n.hyperborea.cloud',
'nit,https://nitter.koyu.space',
'nit,https://nitter.grimneko.de',
'nit,https://twitter.censors.us',
'nit,https://nitter.it',
'nit,https://bird.trom.tf',
'nit,https://nitter.moomoo.me',
'nit,https://nitter.hu',
'nit,https://birdsite.xanny.family',
'nit,https://nitter.actionsack.com',
'nit,https://nitter.namazso.eu',
'nit,https://nitter.eu',
'nit,https://nitter.domain.glass',
'nit,https://nitter.unixfox.eu',
'nit,https://nitter.kavin.rocks',
'nit,https://nitter.1d4.us',
'nit,https://nitter.fdn.fr',
'nit,https://nitter.pussthecat.org',
'nit,https://nitter.42l.fr',
'nit,https://nitter.net'];
break;
case hostname.endsWith('wikipedia.org'):
site = [
// wikiless
'wik,https://farside.link/wikiless',
'wik,https://wikiless.sethforprivacy.com',
'wik,https://wikiless.org',
'wik,https://wikiless.northboot.xyz',
'wik,https://wikiless.lunar.icu',
'wik,https://wikiless.alefvanoon.xyz',
'wik,https://wiki.froth.zone',
'wik,https://wiki.604kph.xyz'];
break;
case hostname.endsWith('youtube.com'):
site = [
// invidious
'inv,https://farside.link/invidious',
'inv,https://yt.artemislena.eu',
'inv,https://youtube.076.ne.jp',
'inv,https://yewtu.be',
'inv,https://vid.puffyan.us',
'inv,https://tube.cthd.icu',
'inv,https://invidious.weblibre.org',
'inv,https://invidious.snopyta.org',
'inv,https://invidious.sethforprivacy.com',
'inv,https://invidious.osi.kr',
'inv,https://invidious.namazso.eu',
'inv,https://invidious.mutahar.rocks',
'inv,https://invidious.lunar.icu',
'inv,https://invidious.kavin.rocks',
'inv,https://invidious.flokinet.to',
'inv,https://invidious.esmailelbob.xyz',
'inv,https://invidious-us.kavin.rocks',
'inv,https://inv.riverside.rocks',
// piped
'pip,https://farside.link/piped',
'pip,https://piped.mint.lgbt',
'pip,https://piped.moomoo.me',
'pip,https://piped.tokhmi.xyz',
'pip,https://piped.kavin.rocks'];
break;
};
// Affairs Settlement Below
// Don't dare to give up nor give in
// site
site = site[Math.floor(Math.random()*site.length)];
name = site.split(',')[0];
site = site.split(',')[1];
// path
switch (name) {
// consider function setTimeout()
case 'bib':
if (!pathname.includes('accounts/login')) {
path = '/u' + pathname;
} else {
if (url.searchParams.get('next')) {
para = ['next'];
path = '/u' + pickParameters(para);
};
};
break;
case 'lgv':
// extract text parameter
paras = ['sl','tl','text']
function setValue(para) {
if (url.searchParams.get(para)) {
para = [para];
return pickParameters(para);
} else { return 'auto' };
}
for (let i = 0; i < paras.length; i++) {
paras[i] = setValue(paras[i]);
}
if (paras[2] === 'auto') { paras[2] = '' };
path = '/' + paras[0] + '/' + paras[1] + '/' + paras[2];
break;
case 'osm':
// extract coordinations
if (pathname.includes('@')) {
cord = pathname.split('/')[2].split('&')[0].slice(1);
cord = cord.split(',');
}
path = '/#map=' + cord[2].slice(0, 1) +
'/' + cord[0] + '/' + cord[1];
break;
case 'sng':
case 'srx':
case 'who':
// extract search parameter
para = ['q','text','p'];
//pickParameters(paras);
para = pickParameters(para); // works even when calling the function?
path = '/search?q=' + para;
break;
case 'wik':
// extract language code
code = hostname.split('.');
if (code.length === 3) {
lang = code[0];
}
path = pathname + '?lang=' + lang;
break;
case 'ycy':
// extract search parameter
para = ['q','text','p'];
//pickParameters(paras);
para = pickParameters(para); // works even when calling the function?
path = '/yacysearch.html?query=' + para;
break;
}
if (!path) {
path = pathname + url.search + url.hash;
}
//console.log( site + path )
//alert('You are being redirected to ' + site + path + '. Enjoy your surf, Sir!')
location.href = site + path;
It would be a good idea to have a separate instance of Farside strictly for Tor versions of instances. Some basic things needed to implement this:
YaCy is a decentralized search engine.
For directions to instances, see yacy/yacy_search_server#326
I've noticed that farside.link/piped always directs to piped.kavin.rocks
There is two new instances, which are a little hidden in the settings page
I'm using whoogle public instances and from time to time I'll end up with a page telling me that such instance was ratelimited by google and it provides with a farside link containing my search. Problem is, farside would pick an instance which is currently unreachable from me and thus leading me to a dead end.
I would like to see farside check if picked instance is reachable for me or not and then leading with my search to a working one.
Found out about this repo from comments in a recent discussion on HackerNews. 📈
I would like to add the following lines to your wiki. I have successfully tested the regex on these pages, it may still need to be fine tuned for edge cases.
For ease of use,
Farside
https://www.youtube.com/watch?v=N5dauIYZTs4
^(?:https?://)(?:www.|)((?:imdb|imgur|instagram|medium|odysee|quora|reddit|tiktok|translate|twitter|wikipedia|youtube).(?:com|org|google.(?:com|au|de|co)).*)
https://farside.link/$1
I know what you're thinking right now... "We see OSM every day, using our personal navigation software, so it was tricky to notice that we've missed it" ;)
Though, we really should have alternative instances to the openstreetmap.org instance.
Oftentimes services like Bibliogram are locked out by the original service because of excessive traffic from a single IP. Farside could help more in this case if you could easily retry with another service. A suggestion would be to have the (e.g.) https://farside.link/service/... link in the browser history, so that if you get an error with the first instance you get redirected to, simply pressing the Back-button will bring you back to Farside and another instance is tried immediately.
I don't have any experience with Elixir, but perhaps something client-side using either HTML <meta http-equiv="refresh" content="0; url=https://example.com/">
or JavaScript history.pushState()
would do the trick.
The browser would then also be prevented from caching the request (or local JavaScript should redo the instance request to the server), otherwise you'd get the same instance.
First of all I'd like to thank you for providing this service! Secondly I'd like you to know that I'm completely new to github and everything related to it, so apologies if my behavior is inappropriate.
The title is somewhat self-explanatory:
https://lr.oversold.host has never worked for me since I've started using farside.link a few weeks ago. It'll redirect to https://lr.trolling.dev/, which is a dead link.
https://bibliogram.art might be fine for a lot of people and is the official instance, however it ceases to function after some usage and doesn't work properly with most if not all instances of VPN and/or Tor.
Solutions for above problems would be to either remove them as redirects -this should be the easy solution- or provide us the means to change the redirects locally, though I wouldn't know how you'd be able to tackle this easily.
I am interested in running a farside instance. Without knowing any elixir, I managed to use nix's mixRelease, which gives me the following:
$ tree result
result
├── bin
│ └── farside
├── erts-12.2
│ └── bin
│ └── *
├── lib
│ └── *
└── releases
├── 0.1.0
│ └── *
└── start_erl.data
$ result/bin/farside
cat: result/releases/COOKIE: No such file or directory
Obviously this is not right and I don't expect you to know how to do it in nix, but I'd appreciate the installation procedure so that I can bring it to the nix folks for assistance.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.