Skip to content

๐Ÿฃ Itsudeno is a scriptable IT automation system written in TypeScript and running on Deno. It can be used to easily deploy and configure applications, services and networks on target hosts.

License

lowlighter/itsudeno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฃ Itsudeno

Itsudeno is a scriptable IT automation system written in TypeScript and running on Deno. It can be used to easily deploy and configure applications, services and networks on target hosts.

๐Ÿ™ Using YAML

- _: Set file content
  file.content:
    path: /tmp/itsudeno.example
    content: Hello! Current time is ${new Date()}

- _: Configure firewalls
  loop:chain: [ INPUT, OUTPUT, FORWARD ]
  net.firewall:
    chain: ${chain}
    policy: DROP

- _: Install packages
  packages.apt:
    name: net-tools
    state: latest

๐Ÿ˜ Using TypeScript

import * as it from "https://deno.land/x/itsudeno";

await it.tasks(({_, vault, tools}) => {
  for (const user of ["foo", "bar", "baz"]) {
    await _(`Create users and save passwords into default vault`)
      .os.user({
        user,
        password: await vault.get(`${user}_password`, await tools.mkpasswd())
      });
  }

  await _("Wait for user input")
    .wait.user({
      message: "Itsudeno successfully configured your machine, ready?",
      type: "confirm",
    });
});

๐Ÿฑ Features

  • ๐Ÿฅข Pick between YAML and TypeScript syntaxes
  • ๐Ÿฅก Powerful modules to create users, files, configurations, install packages, make API calls, execute scripts, etc.
  • ๐Ÿก Store hosts in inventories and secrets in vaults
    • Query hosts with hostname, groups, ip and traits (properties discovered at runtime)
  • ๐Ÿœ Control Itsudeno with different interfaces, like CLI, API, web app, etc.
  • ๐Ÿฅ Take advantage of TypeScript, JavaScript and Deno runtime!
    • Never be limited by templating systems anymore, all languages features are exposed
    • Controller can be run on any operating system (provided it supports Deno runtime)
    • Compile your tasks into packaged executables
    • Easily import and create third-party components thanks to EcmaScript dynamic imports
  • ๐Ÿฅฎ Components documentation are auto-generated and always up-to-date

โš ๏ธ This project is in active development and some features advertised above may not be implemented yet. Progress can be tracked here

๐Ÿฅ Try it know!

deno run --allow-all --unstable --import-map https://deno.land/x/itsudeno/imports.json https://deno.land/x/itsudeno/mod.ts run https://deno.land/x/itsudeno/docs/examples/hello.yml

๐Ÿฆ‘ Contributions and license

  • To report a bug, fill an issue describing it.
  • To suggest new features or request help, check out discussions instead.
  • To contribute, submit a pull request.
GNU General Public License v3.0
Copyright (c) 2021-present Simon Lecoq (lowlighter)

About

๐Ÿฃ Itsudeno is a scriptable IT automation system written in TypeScript and running on Deno. It can be used to easily deploy and configure applications, services and networks on target hosts.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project