1
0
Fork 0
mirror of https://github.com/benbusby/farside.git synced 2025-04-29 23:20:03 +00:00

Initialize update script

My initial thought for this: create a simple redis db for storing key
value pairs of instance -> list of live instances for each privacy front
end (libreddit, bibliogram, etc). A script executed on a certain
schedule would (in the background) check each instance to make sure it
isn't down or unreasonably slow. If the instance is available, add it to
a list of available instances in the db.

When a user navigates to the revolver url (something like
<url>/<service>/<...>), the app would pick a random value from the list
returned by redis.get('<service>') and forward the user to that
instance.

As a side note, this could instead load the instances json from a remote
source (like github or something) so that changes to instances don't
need to involve a redeploy of the entire app.
This commit is contained in:
Ben Busby 2021-10-21 17:07:43 -06:00
parent be9606094c
commit cf8dfc5a85
No known key found for this signature in database
GPG key ID: 339B7B7EB5333D14
4 changed files with 82 additions and 0 deletions

30
mix.exs Normal file
View file

@ -0,0 +1,30 @@
defmodule RouterExample.MixProject do
use Mix.Project
def project do
[
app: :router_example,
version: "0.1.0",
elixir: "~> 1.8",
start_permanent: Mix.env() == :prod,
deps: deps()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {RouterExample.Application, []}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:jason, "~> 1.1"},
{:plug_cowboy, "~> 2.0"},
{:poison, "~> 5.0"}
]
end
end