{"id":15384945,"url":"https://github.com/manekinekko/hexa","last_synced_at":"2026-02-26T03:41:08.408Z","repository":{"id":47451181,"uuid":"205613277","full_name":"manekinekko/hexa","owner":"manekinekko","description":"Hexa: The ultimate companion for Azure. Setup and deploy in seconds","archived":false,"fork":false,"pushed_at":"2021-09-01T21:30:35.000Z","size":2416,"stargazers_count":74,"open_issues_count":7,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-14T16:09:44.681Z","etag":null,"topics":["azure","azure-functions","cloud","database","hacktoberfest","hosting","serverless","storage"],"latest_commit_sha":null,"homepage":"https://hexa.run","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manekinekko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null}},"created_at":"2019-09-01T01:07:28.000Z","updated_at":"2024-11-18T08:22:59.000Z","dependencies_parsed_at":"2022-08-23T22:51:44.324Z","dependency_job_id":null,"html_url":"https://github.com/manekinekko/hexa","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manekinekko%2Fhexa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manekinekko%2Fhexa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manekinekko%2Fhexa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manekinekko%2Fhexa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manekinekko","download_url":"https://codeload.github.com/manekinekko/hexa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248914116,"owners_count":21182359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azure-functions","cloud","database","hacktoberfest","hosting","serverless","storage"],"created_at":"2024-10-01T14:43:42.893Z","updated_at":"2026-02-26T03:41:03.357Z","avatar_url":"https://github.com/manekinekko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://www.hexa.run\"\u003eWelcome to 𝖧𝖤𝖷△\u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eHexa – The ultimate companion for the Azure CLI. Setup and deploy in seconds.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"200\" align=\"center\" src=\"https://raw.githubusercontent.com/manekinekko/hexa/master/docs/hexa-title.png\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" \u003e\n   \u003ca href=\"https://www.hexa.run\"\u003e\n    \u003cimg src=\"https://img.shields.io/website-up-down-5abdca-ff69b4/http/shields.io.svg?label=hexa.run\"/\u003e\n  \u003c/a\u003e\n  \n  \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/github/license/manekinekko/hexa\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" \u003e\n  \n  \u003ca href=\"https://github.com/manekinekko/hexa/issues\"\u003e\n    \u003cimg src=\"http://isitmaintained.com/badge/resolution/manekinekko/hexa.svg\"/\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://www.npmjs.com/package/@manekinekko/hexa\"\u003e\n    \u003cimg alt=\"npm\" src=\"https://img.shields.io/npm/dm/@manekinekko/hexa?color=%235abdca\"\u003e\n  \u003c/a\u003e\n \n  \u003cimg alt=\"npm (scoped with tag)\" src=\"https://img.shields.io/npm/v/@manekinekko/hexa/latest?color=5abdca\"\u003e\n  \n  \u003cbr/\u003e\n  \n  \u003cimg alt=\"GitHub contributors\" src=\"https://img.shields.io/github/contributors/manekinekko/hexa?color=5abdca\"\u003e\n  \u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/manekinekko/hexa?color=5abdca\"\u003e\n  \u003cimg alt=\"GitHub commit activity\" src=\"https://img.shields.io/github/commit-activity/w/manekinekko/hexa?color=5abdca\"\u003e\n  \u003cbr/\u003e\n  \n  \u003ca href=\"https://twitter.com/manekinekko\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/say-thanks-ff69b4.svg\"/\u003e\n  \u003c/a\u003e\n\n  \u003ca href=\"https://twitter.com/manekinekko\"\u003e  \n    \u003cimg alt=\"Twitter Follow\" src=\"https://img.shields.io/twitter/follow/manekinekko?style=social\"\u003e\n  \u003c/a\u003e\n  \n\u003c/p\u003e\n\n## What is Hexa?\n\n[Hexa](https://www.hexa.run) is a open source command line tool to easily setup and deploy your applications to Microsoft Azure. It takes full advantage of the Azure CLI, the Azure Function Core Tools CLI and the NPM CLI.\n\nHexa allows you to seamlessly configure, setup and deploy to different Azure services such as Resource Groups, Storage accounts, Hosting, Azure Functions and Databases (CosmosDB and Table Storage).\n\nHexa is driven by community contributions. Please send us your Pull Requests and feedback!\n\n## Get started\n\n### Required tools\n\nIn order to use Hexa, you will need to install both the Azure CLI and Functions Core Tools:\n- Follow the official guide to install the [Azure CLI](http://bit.ly/2mgwpYr).\n- Follow the official guide to install the [Azure Functions Core Tools](http://bit.ly/2ow8C7y).\n- NPM and Node.js.\n\nOnce these tools are installed and available on your system, you are ready to install and use the Hexa CLI.\n\n### Installing the Hexa CLI\n\nYou can install the Hexa CLI using `npm` or `yarn`:\n\n```bash\n$ npm install --global @manekinekko/hexa\n```\n\nTo make sure the Hexa CLI has been installed correctly, you can execute the `hexa` command from anywhere in your system and you should see the default usage output:\n\n```bash\nUsage: hexa \u003ccommand\u003e\n\nOptions:\n  -V, --version          output the version number\n  login                  connect to your Azure\n  init                   initialize a new workspace\n  deploy                 deploy to Azure\n  -c, --create           enable manual resource creation (default: false)\n  -d, --debug            enable debug mode (default: false)\n  -j, --just \u003cservices\u003e  setup or deploy only the selected services (e.g. --just functions,hosting) (default: false)\n  -l, --login            force login (default: false)\n  -m, --manual           enter Manual mode (default: false)\n  -r, --reset            reset (delete) local configuration (default: false)\n  -s, --sas              use SAS token (only: storage and database) (default: false)\n  -t, --token            generate a Storage token into a .env file (default: false)\n  -u, --use \u003cbuilder\u003e    use a specific build system (e.g. tsc,bazel) (default: \"tsc\")\n  -v, --verbose          enable verbose mode (default: false)\n  -y, --yes              answer yes to all confirmations (default: false)\n  --dry-run              do not execute real commands. (default: false)\n  --yolo                 enable all modes and all services (default: false)\n  -h, --help             output usage information\n```\n\n## Usage\n\nIn order to use the Hexa CLI to configure and set up your Azure services, run the `hexa init` command inside one of your projects that you want to set up for Azure. The Hexa CLI will guide you through the setup process.\n\nFor example, if you want to set up your project `Foo` that lives inside the `./foo` folder, here are the steps:\n\n1. `$ cd foo`\n1. `$ hexa init`\n\nOnce your project is setup and configured, you will see a newly created file called `hexa.json`. This file contains the configuration for your project `Foo`. \n\nWhenever your project Foo is ready to be deployed to Azure, you can use the `hexa deploy` command inside the `./foo` folder and let Hexa take care of the deploy process.\n\n### Examples\n\n- `$ hexa init --just=hosting,functions`: Hexa will setup and configure just the requested services. Current supported services are `hosting`, `functions` and `database`. Please note that a Resource Group and a Storage Accout will automatically be setup as these are required by the other services.\n\n- `$ hexa init --token`: Hexa will also create a `.env` file which contains the Connection String token for your storage account. Hexa does not use this token! It is meant for you to use.\n\n- `$ hexa init --token --sas`: Hexa will generate a SAS token for your storage account (instead of a Connection String).\n\n- `$ hexa init --manual`: Hexa will enter Manual Mode and will ask you to make a choice for each step.\n\n- `$ hexa init --manual --create`: In manual mode, by default, Hexa would only let you choose a resource from your existing ones. The `--create` flag allows you to manually create a new resource/service at your convenience.\n\n- `$ hexa init --yolo`: Hexa will enter Auto Mode and will setup all supported services (except if you use the `--just` flag) without asking you any question.\n\n### Running on CI\n\n### Notes\n\nIf you want to run Hexa on a Continuous Integration enviroment, you will need to make sure that the required dependencies ([see above](#Required-tools)) are installed.\n\n#### Set up Hexa for CI\n\n1. On your local machine, make sure you are logged in to your Azure account from the CLI by running `hexa login`.\n1. Then run `hexa ci` to create a Service Principal account. You should have a similar output:\n\n```\n{\n  appId: 'xx4362xx-aaxx-40xx-8bxx-xx6ea0c351xx',\n  displayName: 'appname',\n  name: 'http://appname',\n  password: 'xxce72xx-1axx-44xx-81xx-35xxb15xxa1e',\n  tenant: 'xxf988xx-86xx-41xx-91xx-2d7cd011dbxx'\n}\n```\n\n1. Configure your CI with the following environment variables (secrets):\n  - `AZURE_SERVICE_PRINCIPAL_ID`: the `appId` from the service principal config.\n  - `AZURE_SERVICE_PRINCIPAL_PASSWORD`: the `password` from the service principal config.\n  - `AZURE_SERVICE_PRINCIPAL_TENANT`: The `tenant` from the service principal config.\n\n1. On your CI environment, before deploying with Hexa, run `hexa login`. Hexa will attempt to login to your Azure account using these service principal credentials. Hexa will automatically detect and use the environment variables if they are set.\n\n1. Then, simply run the usual `hexa deploy` command.\n\nEnjoy!\n\n## Want to help? [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/manekinekko/hexa/issues)\nWant to file a bug, contribute some code, or improve the documentation? Excellent! Read up on our guidelines for [contributing](https://github.com/manekinekko/hexa/blob/master/CONTRIBUTING.md) and then check out one of our issues in the hotlist: [community-help](https://github.com/manekinekko/hexa/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanekinekko%2Fhexa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanekinekko%2Fhexa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanekinekko%2Fhexa/lists"}