Level is team communication software optimized for deep work.
Sign up at level.app to reserve your handle and get on the updates list.
Level is currently in the pre-launch phase and under active development by a company of one. Most tasks are being tracked offline as the foundations of the product come together, in the interest of rapid development and reaching an alpha stage for teams to start using it as quickly as possible.
You'll need to install the following dependencies first:
Run the bootstrap script to install the remaining dependencies and create your development database:
cd level
script/bootstrap
If your local PostgreSQL install does not have a default postgres
user, open the config/dev.secret.exs
file and update the credentials. Then, run the bootstrap script again.
Use the script/server
command to start up your local server and visit localhost:4000
from your browser.
This repository includes a .nvmrc
file targeting a specific version of Node
that is known to be compatible with all current node dependencies. Things might work
with a newer version of Node, but the most guaranteed route is to install
Node Version Manager and run nvm install
from
the project root.
Then, be sure to run script/bootstrap
to install node dependencies with the
correct version of node.
We have a handful of helper scripts available:
script/elixir-test
: runs the Elixir test suite with coverallsscript/elm-test
: runs the Elm test suitescript/test
: runs the Elixir and Elm test suitesscript/static-analysis
: runs Credo (Elixir linting), Dialyzer, and Elixir formatter verificationscript/build
: runs all the test suites and static analysis
The following environment variables must be set in production:
Variable | Description |
---|---|
AWS | |
AWS_ACCESS_KEY_ID |
The AWS access key id for your account (with access to S3). |
AWS_SECRET_ACCESS_KEY |
The AWS secret access key corresponding to the access key id. |
LEVEL_ASSET_STORE_BUCKET |
The name of the S3 bucket in which to store uploaded assets. |
Host | |
PORT |
The port on which to host the application (typically 80). |
LEVEL_HOST |
The domain on which you are serving the app (used for generating URLs). |
LEVEL_CDN_HOST |
The host for the CDN for serving static assets (like Level's CSS and application JS). |
LEVEL_MAILER_HOST |
The domain via which to send transaction emails (usually same as LEVEL_HOST ). |
LEVEL_SECRET_KEY_BASE |
A secret key for verifying the integrity of signed cookies. |
Database | |
LEVEL_DATABASE_URL |
The URL for the PostgreSQL database. |
LEVEL_POOL_SIZE |
The maximum number of database connections each process may consume. |
Transactional Email | |
POSTMARK_API_KEY |
The API key for Postmark. |
Web Push Notifications See instructions here: https://github.com/web-push-libs/web-push#command-line |
|
LEVEL_WEB_PUSH_PUBLIC_KEY |
A VAPID public key. |
LEVEL_WEB_PUSH_PRIVATE_KEY |
A VAPID private key. |
The following variables are for non-essential external services.
Variable | Description |
---|---|
Exception Monitoring | |
HONEYBADGER_API_KEY |
The API key for Honeybadger.io exception monitoring (Elixir). |
HONEYBADGER_JS_API_KEY |
The API key for Honeybadger.io exception monitoring (JavaScript). |
Analytics | |
FATHOM_SITE_ID |
The site ID for Fathom Analytics. |
FULLSTORY_ORG |
The organization ID for FullStory. |
HEAP_ANALYTICS_APP_ID |
The app ID for Heap Analytics. |
Email Marketing | |
DRIP_ACCOUNT_ID |
The account ID for Drip. |
DRIP_API_KEY |
The personal api key for Drip. |
Support | |
HELPSCOUT_BEACON_ID |
The Beacon ID for Help Scout. |
Run the script/docs
to generate and view the project ExDocs locally.
One of our goals is to make self-installation as painless as possible for those who are interested in hosting their own instance.
The relevant configuration files for Heroku live here:
We are aiming to keep seamless Heroku deployment up-to-date, with a few important "alpha software" notes:
- It's possible you may find it broken on master. If you do, please file an issue.
- As deployment needs grow more complex, it may become no longer feasible to support Heroku deploys. Caveat emptor.
In addition to a Heroku account, you'll need the following services to get your Heroku install up and running:
- An AWS account and an S3 bucket for storing file uploads. You'll be asked for AWS API keys and bucket name environment variables during setup.
- A transactional email provider (we recommend Postmark). You'll be asked for SMTP host, port, username, and password environment variables during setup.
© 2019 Level Technologies, LLC
Level is source-available software. (license | readme)