Development
Papercups runs on Elixir/Phoenix, with a TypeScript React app for the frontend.
asdf
(recommended)#
Setup with First, you'll need to install the following:
- Install PostgreSQL
- Install Node
- Install asdf
- Install Erlang dependencies
Once that's all set, clone the repo:
And install all our dependencies:
#
Manual setup (deprecated)If you haven't installed Elixir, Phoenix, NodeJS, and PostgresQL yet, you can find some great instructions here: https://hexdocs.pm/phoenix/installation.html
tl;dr:
- Install Elixir: https://elixir-lang.org/install.html
- Install Hex:
- To check that we are on Elixir 1.6 and Erlang 20 or later, run:
- Install the Phoenix application generator:
- Install NodeJS: https://nodejs.org/en/download/
- Install PostgresQL: https://wiki.postgresql.org/wiki/Detailed_installation_guides
#
Cloning the repo#
To start your server- Install backend dependencies with
mix deps.get
- Install frontend dependencies with
npm install --prefix=assets
(orcd assets && npm install
) - Create and migrate your database with
mix ecto.setup
- Start the server with
mix phx.server
(oriex -S mix phx.server
for interactive mode)
This will automatically start up the React frontend in watch mode on localhost:3000
, with the API running on localhost:4000
.
#
Frontend developmentThe frontend code will start up automatically when you run mix phx.server
, but for more information see: assets/README.md
#
Developing on DockerYou can edit your local code when developing with docker and it will update in the container.
The docker file is made for development only at the moment
#
Running testsCreate a PostgreSQL test database named: chat_api_test
, and run:
#
Setting up email alertsSet the environment variables in the .env.example
file.
At the moment we only support Mailgun โ other messaging channels are coming soon!
#
DeployingWe currently use Heroku for deployments. (This is for internal use only.)