Coder Social home page Coder Social logo

lyhour-archieved / beam Goto Github PK

View Code? Open in Web Editor NEW

This project forked from planetscale/beam

0.0 0.0 0.0 4.14 MB

A simple message board for your organization or project

License: MIT License

Shell 0.25% TypeScript 91.37% JavaScript 4.81% CSS 3.57%

beam's Introduction

Beam is a simple tool that allows members to write posts to share across your organization. Think of it like a lightweight internal blog. Features include a simple Markdown-based editor with preview, comments and likes, search, a clean responsive layout with dark mode support, and an admin role for hiding posts.

Setup

Install dependencies

npm install

Create a database

cp .env.example .env
  • Open .env and set the DATABASE_URL variable with the connection string from PlanetScale
  • Create the database schema:
npx prisma db push

Configure authentication

By default Beam uses GitHub for authentication, but you can use Okta if you prefer.

  • Create an OAuth app on GitHub (Note that a separate app must be created for production use)
    • Go to Developer Settings
    • Click on New OAuth App
    • For Callback URL, enter http://localhost:3000/api/auth/callback/github
    • Once the app is created, click Generate a new client secret
  • Set environment variables in .env
    • Set AUTH_PROVIDER to github
    • Set GITHUB_ID to the Client ID value
    • Set GITHUB_SECRET to the secret value generated above
    • Set GITHUB_ALLOWED_ORG to the GitHub organization name your Beam members must belong to
    • Set NEXTAUTH_SECRET to a random secret. This is a good resource.

Enable image uploads (optional)

To enable image uploads, set the environment variable NEXT_PUBLIC_ENABLE_IMAGE_UPLOAD to true.

Beam uses Cloudinary for storing uploaded images. You can sign up for a free account.

  • On your Cloudinary dashboard, look for these values under your account settings: Cloud Name, API Key, API Secret.
  • Update .env with the following variables:
    • CLOUDINARY_CLOUD_NAME: Cloud Name
    • CLOUDINARY_API_KEY: API Key
    • CLOUDINARY_API_SECRET: API Secret

Running the app locally

npm run dev

Open http://localhost:3000 in your browser.

Deploying to Vercel

One-click deploy:

Deploy with Vercel

โš ๏ธ Remember to update your callback URLs after deploying.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.