All Projects → hammer-io → tyr

hammer-io / tyr

Licence: other
A CLI to generate node.js applications in an opinionated way.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to tyr

Skyhook
Parses webhooks and forwards them in the proper format to Discord.
Stars: ✭ 263 (+839.29%)
Mutual labels:  heroku, travis-ci
eksi
Eksi sözlük crawl,stat , api calismalari
Stars: ✭ 25 (-10.71%)
Mutual labels:  heroku, travis-ci
Ng Demo
🦴 Bare Bones Angular 10 and Angular CLI Tutorial
Stars: ✭ 154 (+450%)
Mutual labels:  heroku, travis-ci
LocalSupport
A directory of local support services and volunteer opportunities
Stars: ✭ 60 (+114.29%)
Mutual labels:  heroku, travis-ci
create-mern-ts-app
Create a Mongo-Express-React-Node Application written in TypeScript out of the box.
Stars: ✭ 30 (+7.14%)
Mutual labels:  heroku, travis-ci
WhiteDevil
🌀Quick Response Whatsapp Bot🌀
Stars: ✭ 45 (+60.71%)
Mutual labels:  heroku
ci playground
Playground for Cloud CI development for C++
Stars: ✭ 23 (-17.86%)
Mutual labels:  travis-ci
ZestX-Frontend
Month-Long Fest Website ZestX with some Awsome UI and Intact Backend. Implemented admin page for user and event management
Stars: ✭ 28 (+0%)
Mutual labels:  heroku
builder
Treehouses Awesome 👓 Raspberry Pi Image Builder 🏗
Stars: ✭ 44 (+57.14%)
Mutual labels:  travis-ci
imagery
Slack app to upload shared images to Imgur to save space and share easily
Stars: ✭ 29 (+3.57%)
Mutual labels:  heroku
price-tracker-bot
Telegram 聊天機器人,追蹤momo降價、重新上架
Stars: ✭ 54 (+92.86%)
Mutual labels:  heroku
sakura-card-captor-api
protected-taiga-89091.herokuapp.com/
Stars: ✭ 32 (+14.29%)
Mutual labels:  heroku
kuebikobot
A telegram bot that deploys to heroku/aws and downloads links and torrents and uploads to google drive and returns public share link
Stars: ✭ 127 (+353.57%)
Mutual labels:  heroku
VKRdownloader
Vkrdownloader: All in one Video Downloader - Download videos from facebook twitter youtube tiktok and 1000+ other sites . YouTube downloader , facebook downloader . made by Vijay Kumar
Stars: ✭ 25 (-10.71%)
Mutual labels:  heroku
ULTRA-X
No description or website provided.
Stars: ✭ 60 (+114.29%)
Mutual labels:  heroku
heroku-slugs
CLI Plugin to manage downloading of slugs
Stars: ✭ 36 (+28.57%)
Mutual labels:  heroku
binance-spot-order-notification-heoku
[binance order trade fill notification] Telegram Notification when Binance order created, cancelled or filled. Ready to Deploy on Heroku
Stars: ✭ 30 (+7.14%)
Mutual labels:  heroku
nodejs-restapi
Simple Rest-API With Login System, Built using MongoDB, Express.js, and Node.js
Stars: ✭ 68 (+142.86%)
Mutual labels:  heroku
developer-ci-benefits
Talk docs—includes CI (Continuous Integration) benefits, description, and setup tips 💡💪
Stars: ✭ 29 (+3.57%)
Mutual labels:  travis-ci
generator-vars-jekyll
Generator for raw web app with CircleCI, Jekyll, Webpack, Express + more.
Stars: ✭ 18 (-35.71%)
Mutual labels:  heroku

Build Status codecov npm version FOSSA Status Gitter chat

tyr

A CLI tool to scaffold Node.js microservice applications with DevOps capabilities. It takes an opinionated approach, meaning we've done the homework and start you off with what we think are the best tools for a small team creating a new open-source project. Upon running the CLI, it will ask you a series of questions and use the answers to do the following:

  • generate a new Node.js project,
  • add testing, web, and orm frameworks,
  • setup Skadi, our data monitoring library,
  • initialize and push the code to a new GitHub repository,
  • establish a continuous integration environment,
  • build a container for the code, and
  • deploy the app container to a cloud service.

The goal is to save you time and headaches and get you started developing code faster.

Getting Started

Prerequisites

Before you can use Tyr, you need to make sure you've done the following:

  1. Create a GitHub account. At this current stage of development, GitHub is the default version control platform for storing and managing your code.
  2. Ensure that you linked your TravisCI account to your GitHub account.
  3. Create a Heroku account. At this current stage of development, Heroku is the default web hosting service.
  4. After creating a Heroku account, find your API key here. Make sure to copy it as you'll need it to sign in to Heroku.

Installation

npm install --global tyr-cli

Usage

tyr [OPTIONS]

Options:

  • -V, --version output the version number
  • --config <file> configure project from configuration file
  • --logfile <file> the filepath that logs will be written to
  • -h, --help output usage information

Configuration File

Project Configurations

Name Required Note
projectName Yes Must be a valid directory name and cannot be a directory that already exists.
description Yes
version No Must match (number)(.number)*
author No For multiple authors, use comma separated values
license No

Tooling Choices

Name Required Description Valid Choices
ci Yes The Continuous Integration Tool you want to use <None>, TravisCI
containerization Yes The Containerization tool you want to use <None>, Docker
deployment Yes The deployment tool you want to use <None>, Heroku
sourceControl Yes The source control tool you want to use <None>, GitHub
web Yes The web framework you want to use <None>, ExpressJS
test Yes The test framework you want to use <None>, Mocha
orm Yes The Object-relational Mapping framework you want to use <None>, Sequelize
  • If Source Control Choice is <None>, then CI Choice, Containerization Choice, and Deployment Choice must also be <None>.

  • If CI Choice is <None>, then Containerization Choice and Deployment Choice must also be <None>.

  • If Containerization Choice is <None>, then Deployment Choice must also be none.

File Format

{
  projectConfigurations:
    {
      projectName: '{project name}',
      description: '{project description}',
      version: '{version number}',
      author: ['author1', 'author2', ...],
      license: '{license}'
    },
  toolingConfigurations:
    {
      sourceControl: '{source control choice}',
      ci: '{ci choice}',
      containerization: '{containerization choice}',
      deployment: '{deployment choice}',
      web: '{web framework choice}',
      test: '{test framework choice}',
      orm: '{orm framework choice}'
    }
}

Using Tyr as a Library

Api Description
async generateProject(configs) The configs json object should have the same format as the .tyrfile. This method calls all the other API methods and does all the work to set up the project. It will not throw an error though, if an error occurs. The error will be written to the log. See other API methods for greater descriptions of functionality.
async generateBasicNodeProject(configs, filePath) The configs json object should have the same format as the .tyrfile. The filePath is where the project will be created. This generates the most basic node files including
  • /src
  • index.html
  • index.js
  • package.json
  • README
  • /config
It returns the configs object.
async setUpThirdPartyTools(configs) The configs json object should have the same format as the .tyrfile. This function sets up the requested third-party applications for the new project.,This may take a few minutes if TravisCI is enabled while it waits for Travis to sync. If something goes wrong, an error will be thrown.
async generateStaticFiles(configs, filePath) The configs json object should have the same format as the .tyrfile. The filePath is where the project will be created. Generates the static files necessary for third party applications. This method is dependent on changes to herokuAppName which will be added to the configs after setUpThirdPartyTools. If something goes wrong, an error will be thrown.
async commitToGithub(configs, filePath) The configs json object should have the same format as the .tyrfile. The filePath is where the project will be created. This function initializes a local git repository, adds the project files, and then commits them to Github. If something goes wrong, an error will be thrown.

Contributing

Please see our Contributing Guide for contribution guidelines.

License

FOSSA Status

Security Information Management Policy

In order to orchestrate the various third party applications for your project, we will periodically ask for your username and password to these applications. To find out more about how we use these credentials and what steps we are taking to keep your information safe, please read the Security Information Management Policy.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].