fediverse.space/backend
..
config
lib
priv
rel/rel
test
.dockerignore
.formatter.exs
.sobelow-conf
Dockerfile
Procfile
README.md
mix.exs
mix.lock

README.md

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