Node.js Project Template for hosting on shuttle.rs

Overview

Node Shuttle


Node.js on shuttle.rs Template

This Template is a starting point for creating a Node.js project on the shuttle.rs. It is a simple discord bot template that can be used to create a discord bot using the discord.js library, or any other Node.js project.

Example of a bot running on shuttle.rs: Bot Running on shuttle.rs

Pre-requisites

Getting Started

  • Create a new project using the template

    cargo shuttle init --from arnav-kr/node-shuttle
  • rename shuttle/Secrets.example.toml to shuttle/Secrets.toml and put your environment variables there. Those will be deployed to the shuttle.rs server.

  • restart the project

    npm run shuttle:restart
  • deploy the project

    npm run shuttle:deploy

Note

First Deploy might take some time to finish (maybe a lot) but subsequent deploys will be faster.

Note

package.json contains the shuttle: scripts to interact with the shuttle.rs server. You can use them to login, deploy, start, restart, and stop the server.

Deploy via GitHub Actions

Cosidering the deploy limit per day, the deploy workflow is opt-in by default i.e. you need to manually trigger it by putting [deploy] anywhere in your commit message.

Important

To deploy using Github Actions, you need to specify the SHUTTLE_TOKEN in the repository secrets along with any other environment variable you are going to use in your project.
You can add or remove variables in .github/workflows/deploy.yml file.
This template requires the following environment variables to be set in the repository secrets:\

  • SHUTTLE_TOKEN: The token to authenticate with the shuttle.rs server.\
  • DISCORD_TOKEN: The discord bot token.
    Not specifying them in the repository secrets will result in a failed deployment.

Tip

To save your build hours, you may run the first deploy manually and then use the GitHub Actions to deploy the later changes.

Development

use general node workflow for development.

License

This project is licensed under the AGPL 3.0 License - see the LICENSE file for details

Author

Arnav Kumar (@arnav-kr)

You might also like...
Proof-of-concept on how to solve Bitcoin's light node sync problem with zkSNARKs
Proof-of-concept on how to solve Bitcoin's light node sync problem with zkSNARKs

BTC Warp Prove and verify the longest Bitcoin PoW chain BTC Warp is a proof-of-concept system that aims to solve the client-syncing problem for Bitcoi

A HTML to node macro powered by rstml.

html-node A HTML to node macro powered by rstml. Features Text escaping Pretty-printing NEW: type-safe elements and attributes! (example) Example let

🗽 Universal Node Package Manager
🗽 Universal Node Package Manager

🗽 NY Universal Node Package Manager node • yarn • pnpm Features Universal - Picks the right package manager for you based on the lockfile in your fol

NodeCraft - Crafting seamless node operations for distributed systems

NodeCraft Crafting seamless node operations for distributed systems, which provides foundational traits for node identification and address resolution

Minimal, blazing fast Node.js script runner

nrr Minimal, blazing fast Node.js script runner. Why? nrr initializes and resolves scripts way faster than package managers. It achieves this by provi

Node.js tar binding

@napi-rs/tar Node.js tar binding https://docs.rs/tar/latest/tar/ Usage export class Entries { [Symbol.iterator](): IteratorEntry, void, void } exp

A simple Node.js library to convert raster images into svg
A simple Node.js library to convert raster images into svg

@neplex/vectorizer A simple Node.js library to convert raster images into svg using VTracer, with time complexity of O(n). Installation npm install @n

KAIVM is a multiplatform Command Line Interface (CLI) designed to simplify the process of downloading, managing, configuring, and running different versions of Shinkai Node
KAIVM is a multiplatform Command Line Interface (CLI) designed to simplify the process of downloading, managing, configuring, and running different versions of Shinkai Node

KAIVM - Shinkai Version Manager KAIVM is a multiplatform Command Line Interface (CLI) designed to simplify the process of downloading, managing, confi

A template for bootstrapping a Rust TUI application with tui-rs & crossterm
A template for bootstrapping a Rust TUI application with tui-rs & crossterm

rust-tui-template A template for bootstrapping a Rust TUI application with tui-rs & crossterm. tui-rs The library is based on the principle of immedia

Owner
Arnav Kumar
A Full Stack Web Developer, CEO at @Curious-Coders-Official
Arnav Kumar
Standalone analytics provider and realtime dashboard designed for self-hosting.

Stats Stats is a high-performance, standalone analytics provider designed for self-hosting, enabling the collection and viewing of event data from web

Udara Jay 120 Mar 23, 2024
A site for hosting (Japanese) subtitles

jimaku (字幕) jimaku is a simple site dedicated to hosting Japanese subtitles of anime or other Japanese content. It's the spiritual successor of kitsun

Danny 47 Jul 21, 2024
Nvm - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

Node Version Manager Table of Contents Intro About Installing and Updating Install & Update Script Additional Notes Troubleshooting on Linux Troublesh

nvm.sh 63.8k Jan 7, 2023
Abuse the node.js inspector mechanism in order to force any node.js/electron/v8 based process to execute arbitrary javascript code.

jscythe abuses the node.js inspector mechanism in order to force any node.js/electron/v8 based process to execute arbitrary javascript code, even if t

Simone Margaritelli 301 Jan 4, 2023
A template for starting a dioxus project to be used with dioxus-cli

A template for starting a dioxus project to be used with dioxus-cli

Dioxus 6 Nov 25, 2022
SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project.

SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project. With just a few primary configurations, such as project name, you can get started quickly.

Gabriel Michaliszen 4 May 9, 2023
A syntax highlighter for Node powered by Tree Sitter. Written in Rust.

tree-sitter-highlight A syntax highlighter for Node.js powered by Tree Sitter. Written in Rust. Usage The following will output HTML: const treeSitter

Devon Govett 211 Dec 20, 2022
IntMaxRollup operator node & cli tools.

Intmax Rollup Operator Int max operator node Prepara Install rustup. rustup override set nightly

null 5 Jul 26, 2022
A visual node-based programming language

Stainless Script Stainless Script is a visual node-based programming language. The structure is as follows: program contains classes, objects (constan

null 4 Dec 15, 2022
Cuprate, an upcoming experimental, modern & secure monero node. Written in Rust

Cuprate an upcoming experimental, modern & secure monero node. Written in Rust (there is nothing working at the moment, stay tuned if you want to see

Someone Else 16 Feb 20, 2023