Skip to content
This repository has been archived by the owner on Aug 7, 2022. It is now read-only.
/ unfurl Public archive

A service to help you expand links into their social media preview.

License

Notifications You must be signed in to change notification settings

adunkman/unfurl

Repository files navigation

Unfurl.page

🚧 This project is still in active development and should not be considered stable.

API (and accompanying documentation) for social media-style expansion of links with site-defined metadata.

Getting started

⚠️ This documentation is for getting started as a contributor. If you’re looking for information on using the API, head to unfurl.page.

Prerequisites

  • Docker version 1.10.0 (required)
  • Node.js version 10.0.0 (recommended) — enables linting, git hooks, and better editor integration.

Install application dependencies

The majority of dependencies are installed within docker containers, so we recommend always running the application inside of their containers.

To prepare for local development by installing all dependencies, building docker containers, and creating local databases run:

make bootstrap

Starting the application

Start the application’s docker containers with:

make start

Use CONTROL C to shutdown the application.

Testing authentication locally

To test endpoints that require key authentication, use API key test-consumer-token.

For GitHub authentication, configure a test OAuth application and add the credentials to a new file called .env to be loaded automatically. If you’d like your key to be authorized as an administrator, add your GitHub email to ADMIN_EMAILS_CSV as well.

AUTH_GITHUB_CLIENT_ID=
AUTH_GITHUB_CLIENT_SECRET=
ADMIN_EMAILS_CSV=

Restart the server if running.

Additional development commands

See all available development commands by running:

make

Editor configuration

We recommend integrating the following with your editor:

  • Prettier to apply consistent code formatting rules. These rules are enforced on commit, so editor integration significantly reduces frustration.

Managing secrets

Secrets needed beyond AWS credentials are encrypted in this repository using sops. To edit the encrypted files in terraform/variables.enc.yml:

make secrets-edit

Your AWS credentials must be accessible in the environment, and they must be able to access the encryption key in AWS KMS.

Other documentation

File Contents
CONTRIBUTING.md How to propose changes to this project and the terms you agree to by contributing
SECURITY.md How to report security vulnerabilities and other private issues
CODE_OF_CONDUCT.md The standard of conduct that we require contributors to abide by and how to report conduct violations
LICENSE.md The license for this software

About

A service to help you expand links into their social media preview.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published