{"id":26762264,"url":"https://github.com/edosrecki/oopsiee-server","last_synced_at":"2025-03-28T18:36:55.031Z","repository":{"id":39033486,"uuid":"211322802","full_name":"edosrecki/oopsiee-server","owner":"edosrecki","description":"An HTTP API service that simplifies daily operations and on-call duty by letting you run repeated and cumbersome tasks in no time!","archived":false,"fork":false,"pushed_at":"2023-01-04T11:33:11.000Z","size":1516,"stargazers_count":1,"open_issues_count":44,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-22T18:39:10.661Z","etag":null,"topics":["cli","devops","on-call","operations"],"latest_commit_sha":null,"homepage":"https://oopsiee.herokuapp.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edosrecki.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-27T13:14:07.000Z","updated_at":"2023-03-03T21:16:58.000Z","dependencies_parsed_at":"2023-02-02T10:31:57.537Z","dependency_job_id":null,"html_url":"https://github.com/edosrecki/oopsiee-server","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edosrecki%2Foopsiee-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edosrecki%2Foopsiee-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edosrecki%2Foopsiee-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edosrecki%2Foopsiee-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edosrecki","download_url":"https://codeload.github.com/edosrecki/oopsiee-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246082000,"owners_count":20720777,"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":["cli","devops","on-call","operations"],"created_at":"2025-03-28T18:36:54.543Z","updated_at":"2025-03-28T18:36:55.015Z","avatar_url":"https://github.com/edosrecki.png","language":"TypeScript","readme":":toc: macro\n:toc-title:\n:toclevels: 10\n\n= oopsiee-server\n\nimage:https://img.shields.io/github/package-json/v/edosrecki/oopsiee-server/release?color=blue\u0026label=oopsiee-server[\"oOPSiee Server Version\", link=\"https://oopsiee.herokuapp.com\"]\nimage:https://img.shields.io/github/workflow/status/edosrecki/oopsiee-server/Continuous Integration[\"Build Status\", link=\"https://github.com/edosrecki/oopsiee-server/actions\"]\nimage:https://img.shields.io/codecov/c/github/edosrecki/oopsiee-server[\"Code Coverage\", link=\"https://codecov.io/gh/edosrecki/oopsiee-server\"]\nimage:https://img.shields.io/david/edosrecki/oopsiee-server[\"Dependencies Status\"]\n\nAn HTTP API service that simplifies **daily operations** and **on-call** duty by letting you run repeated and cumbersome\ntasks in no time!\n\nCan be accessed with link:https://github.com/edosrecki/oopsiee-cli[**oOPSiee CLI**] tool, Postman, Paw, httpie, or any\nother client of your choosing which speaks HTTP.\n\n* Supports **synchronous** commands\n* Supports **asynchronous** jobs\n* Easily **extensible**\n* One command **startup**\n* Ready for **Docker**\n* Uses **private/public key** authentication\n* Written in **TypeScript**\n* 100% **test** coverage\n* Has proper **dependency injection**\n* Semi-automatic **dependency updates** with Dependabot\n* Contains **examples**\n\n---\n\ntoc::[]\n\n== Procedures\nEach oOPSiee CLI command must have a corresponding procedure in\n`oopsiee-server`. CLI command is mapped to a procedure via config\nfile. oOPSiee CLI tool simply reads the config file to know which\nprocedure to call. Procedures are called through HTTP API.\n\n=== Adding a new procedure\nSee example:\n\n* Procedure implementation: link:src/procedures/example[`src/procedures/example`]\n* Command definition: link:src/commands/commands.yml[`src/commands/commands.yml`]\n\n== Authentication\noOPSiee CLI uses your private key to sign a JWT token containing your username,\nand sends it over to oopsiee-server in the `Authorization` header. To use the CLI\nadd your public key to the server.\n\n=== Adding your public key\nAdd your public key in `PEM` format to link:keys/[`keys/`] directory.\nFile name must only contain your username without any file extensions.\n\n**Hint**: To convert your RSA public key to `PEM` format, run:\n`ssh-keygen -f id_rsa.pub -m 'PEM' -e \u003e \u003cUSERNAME\u003e`\n\n== Run\n=== Development mode\n==== Docker\n```shell\nmake up\nmake down\nmake restart\n```\n\n**Note**: Containers will reload automatically on code changes. However, if changes\nwere made to `package.json`, it is necessary to run `make restart`.\n\n==== Manual\n```shell\nnvm use\nnpm install\n\n# Start Redis manually\nnpm run start:job-processor:dev\nnpm run start:web:dev\n```\n\n=== Production mode\n==== Docker\n```shell\nmake prod-up\nmake prod-down\nmake prod-restart\n```\n\n==== Manual\n```shell\nnvm use\nnpm install\nnpm run clean\nnpm run build\n\n# Start Redis manually\nnpm run start:job-processor:prod\nnpm run start:web:prod\n```\n\n== Test\n```shell\nnpm test\nnpm run test:watch\n```\n\n== Deploy\nTo deploy a new version of `oopsiee-server`, merge `master` branch into `release` branch.\nNew version will automatically get released by CI system.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedosrecki%2Foopsiee-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedosrecki%2Foopsiee-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedosrecki%2Foopsiee-server/lists"}