index.community/backend
2019-08-22 11:50:49 +02:00
..
config add caching to expensive queries 2019-08-21 17:47:45 +02:00
lib fix domain cleaning 2019-08-22 11:50:49 +02:00
priv add on delete cascade to crawl interactions 2019-08-21 22:40:42 +02:00
rel/rel refactor/elixir backend 2019-07-14 11:47:06 +00:00
test Lint backend 2019-08-21 12:30:47 +00:00
.dockerignore refactor/elixir backend 2019-07-14 11:47:06 +00:00
.formatter.exs refactor/elixir backend 2019-07-14 11:47:06 +00:00
.sobelow-conf set up sobelow for backend 2019-07-17 16:16:25 +00:00
Dockerfile separate dockerfile copy commands for debugging 2019-08-02 17:33:31 +03:00
mix.exs add caching to expensive queries 2019-08-21 17:47:45 +02:00
mix.lock add caching to expensive queries 2019-08-21 17:47:45 +02:00
Procfile update gollum; more logging in indexer 2019-07-31 18:56:21 +03:00
README.md feature/administration 2019-07-26 14:34:23 +00:00

fediverse.space backend

Notes

  • This project requires Elixir >= 1.9.
  • Run with SKIP_CRAWL=true to just run the server (useful for working on the API without also crawling)
  • This project is automatically scanned for potential vulnerabilities with Sobelow.

Configuration

There are several environment variables you can set to configure how the crawler behaves.

  • DATABASE_URL (required) . The URL of the Postgres db.
  • POOL_SIZE. The size of the database pool. Default: 10
  • PORT. Default: 4000
  • BACKEND_HOSTNAME (required). The url the backend is running on.
  • SECRET_KEY_BASE (required). Used for signing tokens.
  • TWILIO_ACCOUNT_SID. Used for sending SMS alerts to the admin.
  • TWILIO_AUTH_TOKEN. As above.
  • ADMIN_PHONE. The phone number to receive alerts at.
    • At the moment, the only alert is when there are potential new spam domains.
  • TWILIO_PHONE. The phone number to send alerts from.
  • ADMIN_EMAIL. Used for receiving alerts.
  • FRONTEND_DOMAIN (required). Used to generate login links for instance admins.
    • Don't enter https://, this is added automatically.
  • SENDGRID_API_KEY. Needed to send emails to the admin, or to instance admins who want to opt in/out.

Deployment

Deployment with Docker is handled as per the Distillery docs.

  • To build a new version, run make build in this directory.
  • To migrate a released version, run ./backend eval "Backend.Release.migrate"

Default README

To start your Phoenix server:

  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.setup
  • Start Phoenix endpoint with mix phx.server

Now you can visit localhost:4000 from your browser.

Ready to run in production? Please check our deployment guides.

Learn more