levelTeam communication optimized for deep work

联合创作 · 2023-09-18 22:37

Level



Project Status


Level began with the ambitious idea of solving the problems caused by real-time communication tools. After pouring thousands of hours effort into the cause, I made the tough decision to move on from the project.


Read the full story here →


This codebase is a full-scale Elixir/Phoenix SaaS application with a single-page app Elm front-end. I hope it will live on as a helpful resource for the community.


— Derrick Reimer, Founder


Developer Setup


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.


Installing Node.js


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.


Running tests and analyses


We have a handful of helper scripts available:



  • script/elixir-test: runs the Elixir test suite with coveralls

  • script/elm-test: runs the Elm test suite

  • script/test: runs the Elixir and Elm test suites

  • script/static-analysis: runs Credo (Elixir linting), Dialyzer, and Elixir formatter verification

  • script/build: runs all the test suites and static analysis


Dependencies


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.

Documentation


Run the script/docs to generate and view the project ExDocs locally.


Heroku Deployment (Experimental)


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.


Required additional services


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.


Deploy


Copyright


© 2019 Level Technologies, LLC


Level is source-available software. (license | readme)

浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报