# ActionHero  | The reusable, scalable, and quick node.js API server for stateless and stateful applications

**URL:** <https://onehack.st/t/actionhero-the-reusable-scalable-and-quick-node-js-api-server-for-stateless-and-stateful-applications/288820>\
**Category:** Tools & Scripts\
**Tags:** programming, freebies, hosting\
**Created:** [August 11, 2024, 9:03pm UTC](https://onehack.st/t/actionhero-the-reusable-scalable-and-quick-node-js-api-server-for-stateless-and-stateful-applications/288820 "2024-08-11T21:03:36Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Prometheus](https://onehack.st/user_avatar/onehack.st/prometheus/32/34950_2.png) [@Prometheus](https://onehack.st/u/Prometheus)\
**Post date:** [August 11, 2024, 9:03pm UTC](https://onehack.st/t/actionhero-the-reusable-scalable-and-quick-node-js-api-server-for-stateless-and-stateful-applications/288820/1 "2024-08-11T21:03:36Z")

</div>

# Actionhero

_The reusable, scalable, and quick node.js API server for stateless and stateful applications_

* * *

[![Actionhero Logo](https://camo.githubusercontent.com/cf13dc91a46505a86299775c3f06ad33fcfb86759ce9640bd60a52bac99441a4/68747470733a2f2f7261772e6769746875622e636f6d2f616374696f6e6865726f2f616374696f6e6865726f2f6d61737465722f7075626c69632f6c6f676f2f616374696f6e6865726f2d736d616c6c2e706e67)](https://camo.githubusercontent.com/cf13dc91a46505a86299775c3f06ad33fcfb86759ce9640bd60a52bac99441a4/68747470733a2f2f7261772e6769746875622e636f6d2f616374696f6e6865726f2f616374696f6e6865726f2f6d61737465722f7075626c69632f6c6f676f2f616374696f6e6865726f2d736d616c6c2e706e67)

**[NPM](https://npmjs.org/package/actionhero) | [Web Site](https://www.actionherojs.com/) | [Latest Docs](https://docs.actionherojs.com/) | [GitHub](https://github.com/actionhero/actionhero) | [Slack](https://slack.actionherojs.com/) | [Twitter](https://twitter.com/actionherojs)**

[![NPM Version](https://camo.githubusercontent.com/0cee658165a038438b537b9ddb184737b5731e973797719dff5777507418bead/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f616374696f6e6865726f2e7376673f7374796c653d666c61742d737175617265)](https://www.npmjs.com/package/actionhero) [![Node Version](https://camo.githubusercontent.com/30ded228234ef0385e2f6a188e8fd64522827a649db3d8ac5e20a7681eb5b7ad/68747470733a2f2f696d672e736869656c64732e696f2f6e6f64652f762f616374696f6e6865726f2e7376673f7374796c653d666c61742d737175617265)](https://npmjs.org/package/actionhero) [![NPM](https://camo.githubusercontent.com/e2af40e7bbd56fac824e51227ea2153caebca8f0e14b17d729121d40ae0522be/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f616374696f6e6865726f2e7376673f7374796c653d666c61742d737175617265)](https://npmjs.org/package/actionhero) [![Dependency Status](https://camo.githubusercontent.com/3bb8c2039a324b6541d563ea2921b11503a2cdeeb259324867de493e4d010fc2/68747470733a2f2f64617669642d646d2e6f72672f616374696f6e6865726f2f616374696f6e6865726f2e7376673f7374796c653d666c61742d737175617265)](https://david-dm.org/actionhero/actionhero) [![Test](https://github.com/actionhero/actionhero/workflows/Test/badge.svg)](https://github.com/actionhero/actionhero/workflows/Test/badge.svg) [![Chat](https://camo.githubusercontent.com/cfe72acca0d298f75b2325d79e1c3cb035ecf4d235865285e57162c780f64250/68747470733a2f2f736c61636b2e616374696f6e6865726f6a732e636f6d2f62616467652e737667)](http://slack.actionherojs.com/)

## Who is the Actionhero?

Actionhero is a multi-transport API Server with integrated cluster capabilities and delayed tasks. The goal of actionhero is to create an easy-to-use toolkit for making **reusable** & **scalable** APIs for HTTP, WebSockets, and more. Clients connected to an actionhero server can [**consume the api**](https://www.actionherojs.com/tutorials/actions), [**consume static content**](https://www.actionherojs.com/tutorials/file-server), and [**communicate with each other**](https://www.actionherojs.com/tutorials/chat). Actionhero is cluster-ready, with built in support for background tasks, 0-downtime deploys, and more. Actionhero provides a simple Async/Await API for managing every type of connection and background task.

Currently actionhero supports the following out of the box…

- [Web Clients](https://www.actionherojs.com/tutorials/web-server): HTTP, HTTPS
- [Web Socket Clients](https://www.actionherojs.com/tutorials/websocket-server): HTTP, HTTPS

[… and you can also make your own servers and transports.](https://www.actionherojs.com/tutorials/servers)

## Quick Start

# Generate a new Project npx actionhero generate npm install npm run build npm run dev # ← I automatically notice changes and restart, as well as compiling .ts files # Use the actionhero CLI (npx) actionhero generate action --name my\_action (npx) actionhero generate task --name my\_task --queue default --frequency 0 # Test npm test # To deploy your app npm run build npm run start

Your new project will come with example actions, tests, and more.

Or deploy a free API server now:

[![Deploy to Heroku](https://camo.githubusercontent.com/df5706ea91f4c49deb42ca31a753d025e2078d24e2490cf88ffc7ed84a38e48e/68747470733a2f2f7777772e6865726f6b7563646e2e636f6d2f6465706c6f792f627574746f6e2e737667)](https://heroku.com/deploy?template=https://github.com/actionhero/actionhero)

## Learn More 📚

- [Getting Started @ www.actionherojs.com](https://www.actionherojs.com/get-started)
  - Actionhero’s website can be found @ [https://github.com/actionhero/www.actionherojs.com/](https://github.com/actionhero/www.actionherojs.com/). If you want to contribute to this site, visit the [related project](https://github.com/actionhero/www.actionherojs.com)
  - —\> Start with the [Tutorials](https://www.actionherojs.com/tutorials) \<—

- [Read the typedoc documentation @ docs.actionherojs.com](http://docs.actionherojs.com/)
  - Starting with Actionhero version 18, the documentation for each version is included in this repository (and the NPM package) in the `/docs` folder. The current version of this documentation is also automatically deployed to [https://docs.actionherojs.com](https://docs.actionherojs.com/).

- [Find community-based resources](https://github.com/l0oky/awesome-actionhero)
- [Interact with the Community & View the Release History](https://www.actionherojs.com/community)
- [Server Client](https://github.com/actionhero/actionhero-client)

## In-depth Tutorials 🎓

### Core Components

- [Actions](https://www.actionherojs.com/tutorials/actions)
- [Tasks](https://www.actionherojs.com/tutorials/tasks)
- [Middleware](https://www.actionherojs.com/tutorials/middleware)
- [Initializers](https://www.actionherojs.com/tutorials/initializers)
- [CLI Commands](https://www.actionherojs.com/tutorials/cli)
- [Configuration](https://www.actionherojs.com/tutorials/config)
- [Cluster](https://www.actionherojs.com/tutorials/cluster)
- [Chat & Realtime Communication](https://www.actionherojs.com/tutorials/chat)
- [File Server](https://www.actionherojs.com/tutorials/file-server)
- [Logging](https://www.actionherojs.com/tutorials/logging)
- [Plugins](https://www.actionherojs.com/tutorials/plugins)
- [Servers](https://www.actionherojs.com/tutorials/servers)
- [Localization & Translation](https://www.actionherojs.com/tutorials/localization)

### Server Types

- [Web Server & Routes](https://www.actionherojs.com/tutorials/web-server)
- [WebSocket Server](https://www.actionherojs.com/tutorials/websocket-server)

### Testing, Deployment, and Operations

- [Running Actionhero](https://www.actionherojs.com/tutorials/running-actionhero)
- [Development Mode & REPL](https://www.actionherojs.com/tutorials#configuration)
- [Testing & SpecHelper](https://www.actionherojs.com/tutorials/testing)
- [Production Notes](https://www.actionherojs.com/tutorials/production-notes)
- [Upgrade Path](https://www.actionherojs.com/tutorials/upgrade-path)

## Sample Projects

- [Simple](https://github.com/actionhero/actionhero-tutorial)
- [Elaborate (React, Next.JS, Bootstrap, Sequelize)](https://github.com/actionhero/actionhero-chat)
- [Client Use: React](https://github.com/actionhero/actionhero-react-next-chat)
- [Client Use: React Native](https://github.com/actionhero/actionhero-react-native)

## License

[Apache 2.0](https://github.com/actionhero/actionhero/blob/master/LICENSE.txt)

## Dedication

> Technology is a powerful force in our society. Data, software, and communication can be used for bad: to entrench unfair power structures, to undermine human rights, and to protect vested interests. But they can also be used for good: to make underrepresented people’s voices heard, to create opportunities for everyone, and to avert disasters. This project is dedicated to everyone working toward the good.
> 
> > Inspired by Martin Kleppmann

## GitHub:

[https://github.com/actionhero/actionhero](https://github.com/actionhero/actionhero)
