Skip to content
@tikoci

tikoci — RouterOS Code & Container Depot

Collection of various RouterOS OCI containers & other Mikrotik things

TIKOCI — RouterOS Code & Container Depot

Contains various Open Source Mikrotik RouterOS projects, generally focused on /container and scripting. This page serves as an commented index to the more developed projects within TIKOCI.

See Repositories for full list of all TIKOCI's code and projects.

Web Tools

  • diff RouterOS commands changes between two versions

    The tikoci/restraml project provides a web page that allows picking two RouterOS versions to see what commands have changed in the CLI or RouterOS APIs like REST.

  • curl2rsc - Convert curl to /tool/fetch

    The project is mainly code for Postman's "Code Snippet" to support /tool/fetch - but hosts a web page to convert "most" curl commands into the right RouterOS command using /tool/fetch. Various "output styles" are supported to provide examples of using /tool/fetch in various use cases.

  • Observable Notebook Mikrotik Collection

    Currently contains two "tools":

    • utf2rsc - fun converter for emojis and UTF-8 into RouterOS string using byte-escaping (\xx)

    • csv2rsc - CSV conversion into RouterOS array types, also an example of using a notebook to do pre-parsing of data and generate scripts

  • RouterOS REST API Schemas (RAML,OpenAPI,...)

    The "Scheme Downloads" is the main output of tikoci/restraml project. The RouterOS REST API schemas are arranged by version and can be used in most Web API tools. For use with Postman App, see the following post on Mikrotik's Forum: REST API schema for Postman & more.

Current Container Projects

The collection includes more RouterOS containers, but the most developed are:

  • tikoci/cligames old BSD game collections (30+ games!) – wrapped into RouterOS container – with retro telnet interface. Available on DockerHub

  • tikoci/netinstall runs Mikrotik's netinstall tool as a RouterOS container, and QEMU to enable it for ARM/ARM64. The netinstall container uses UNIX make to download packages needed automatically via provided /container/env. Available on DockerHub

  • tikoci/serial2http wraps RouterOS "remote" serial port as an HTTP interface. Available on DockerHub

There are additional containers stored in TIKOCI's Repositories. Please note some repos are used as part of other builds, and other are just experiments - use unlisted containers with care, or as examples. If you have questions or problems, file an issue within the particular repo.

"Inside RouterOS" Projects

Not all project in tikoci are containers. Projects below generally re-package, inspect, generate, or extract Mikrotik things, using GitHub Action builder.

  • tikoci/fat-chr rebuilds RouterOS CHR .raw package, into a valid UEFI image for UTM/Apple/other virtualization platforms. Largely by using fat, instead of ext2 for the EFI partition. UEFI-enabled CHR images are in the project releases

  • tikoci/restraml is not a container, but builds API schemas for any RouterOS version, using CHR in GitHub Action to dynamically create API schemas from RouterOS's /console/inspect command. The generated schemes can be used in Postman and other API tools to enable RouterOS's REST API software development.

    This project also "hosts" the RouterOS Command diff Tool via GitHub Pages, and is implemented as a "serverless, single page app" - so all the "diff'ing" and other app logic is happening in the browser without any backend server.

  • tikoci/postman-code-generators contains fork from Postman adding RouterOS /tool/fetch snippet support & also the curl2rsc website

    The curl2rsc webpage takes a different approach than restraml. It uses HTMX, instead of local JavaScript events to handle UI logic. With HTMX using a glitch.com backend providing a /curl endpoint that utilizes this project's RouterOS "codegen" library, with [curl-to-postman] module, to do code generation on the backend.

  • tikoci/winbox-deb uses Makefile to create a .deb linux package with WinBox 4.0, including adding icon to desktop. Provided mainly as an example for others wanting to package WinBox 4.0 for various distros and "app stores".

    The .deb built is not intended for wide redistribution – more a template for future winbox packaging.

Functional RouterOS Scripts

Various maybe good examples of RouterOS scripting function:

Please see Mikrotik's Scripting Language Manual for more details on the syntax and structure, and basic examples.

For more practical scripts and examples, see ✂ Rextended Fragments of Snippets

Upcoming Projects

The following projects are in hooper:

  • RouterOS "Functional Repo" Various, potentially useful, scripts are littered here and forum. Part of the original idea of TIKOCI was to store them, in one place, and allow simple downloads. Eventually, more scripts will be published on tikoci.github.com.

  • Traefik Proxy Container with for CORS & WASM Traefik seems like a better fit for adding HTTP frontend on RouterOS, than the previous tikoci/ngnix approach. While Traefik's DockerHub image work on RouterOS as-is — setup, configuration, and log viewing are greatly aided by scripting. The longer term goal is to integrate Grain WASM tikoci/traefik-wasm-grain plugin, as basis for policy enforcement for REST APIs (e.g. RouterOS REST support), using Traefik 3.0's WASM support.

Credits and Colophon

Various repos make use of great work by others. Specifically, and in no order:

  • Both restraml and curl2rsc use a few projects and libraries that enable the page:
  • Many repos here use RouterOS scripts. While specific contributions are noted in the specific scripts/projects, thanks @rextended & others on Mikrotik scripting forum for the many examples.
  • curl2rsc webpage in tikoci/postman-code-generator uses HTMX, with glitch.com providing a backend web service needed to run Postman's curl-to-postman and postman-collection modules under nodeJS.
  • EvilFreelancer/docker-routeros's "CHR+QEMU-in-Docker" project is used to in extracting RouterOS /console/inspect data from a CHR running within a GitHub Action and used by tikoci/restraml's schema generation code.
  • tikoci/fat-chr just re-builds a CHR image but relies on a script with some incantation of qemu-img/gdisk - but the scripts themselves come from @jaclaz and @kriznos, with @sindy providing QA+mgmt, in a Mikrotik forum discussion.
  • tikoci.github.io uses the Observable Framework and GitHub Pages to build the TIKOCI website, which will be developed more in future.
  • tikoci/winbox-deb is largely borrowed from @eworm and others's Arch winbox package, specifically the .desktop file.
  • Stuart Feldman, creator of original UNIX make & GNU's excellent documentation covering it. Despite Makefile's being ~50 years old, it allows the nifty (IMO) containerization approach used in tikoci/netinstall project – which is just 66 lines of Makefile code. And, make also acts the "runtime" inside the container to both do operations and handle options via cmd= or env vars.
  • In the esoteric, traefik-wasm-grain is an experimental WASM plugin for Traefik, built with Grain language & runs as RouterOS Traefik container - but the low-level HttpWasm bindings would not have been possible without help from @ospencer.
  • Mikrotik's @mrz. Intentionally last, since it was his /console/inspect "easter egg" clues that gave impetus to the various "schema tools" for RouterOS developed here.

* Disclaimers

Use at your own risk. No guarantees or warranties.

Any trademarks and/or copyrights remain the property of their respective holders, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Naming of particular products or brands should not be seen as endorsements. Apple and Mac are registered trademarks of Apple Inc., registered in the U.S. and other countries and regions. MikroTik is a trademark of Mikrotik SIA. Python is a registered trademark of the PSF. UNIX is a registered trademark of The Open Group. Docker and the Docker logo are trademarks or registered trademarks of Docker, Inc. in the United States and/or other countries. Docker, Inc. and other parties may also have trademark rights in other terms used herein.

Follow any links at your own risk.. Various materials and code may contain links to other websites, content, or services. Links are not investigated, monitored, or checked for accuracy, adequacy, validity, reliability, availability, or completeness by us.

No liability can be accepted. No representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability, or completeness of any information is offered. Use the concepts, code, examples and other content at your own risk. There may be errors and inaccuracies, that may of course be damaging to your system. Although this is highly unlikely, you should proceed with caution. The author(s) do not accept any responsibility for any damage incurred.

Pinned Loading

  1. restraml restraml Public

    RouterOS REST API "Schema Tools"

    JavaScript 14

  2. fat-chr fat-chr Public

    Builder for CHR images with UEFI support (testing)

    Shell 8 1

  3. netinstall netinstall Public

    Forked from semaja2/mikrotik-netinstall

    Makefile for running Mikrotik Netinstall – for shell use and containerization.

    Makefile 2 1

  4. serial2http serial2http Public

    RouterOS container that proxies serial port via HTTP using TCP serial (RFC-2217)

    RouterOS Script 2

  5. adventure adventure Public

    Forked from troglobit/adventure

    Classic Colossal Cave Adventure Game

    C

  6. cligames cligames Public

    Container with CLI games from bsdgames and nbsdgames available via telnet

    Dockerfile 2

Repositories

Showing 10 of 18 repositories
  • restraml Public

    RouterOS REST API "Schema Tools"

    tikoci/restraml’s past year of commit activity
    JavaScript 14 Unlicense 0 7 0 Updated Nov 14, 2024
  • postman-code-generators Public Forked from postmanlabs/postman-code-generators

    RouterOS /tool/fetch support code generation for Postman tool

    tikoci/postman-code-generators’s past year of commit activity
    JavaScript 1 Apache-2.0 396 0 0 Updated Nov 8, 2024
  • fat-chr Public

    Builder for CHR images with UEFI support (testing)

    tikoci/fat-chr’s past year of commit activity
    Shell 8 Unlicense 1 1 0 Updated Oct 28, 2024
  • make.d Public

    RouterOS-friendly Alpine /container, managed by `make`

    tikoci/make.d’s past year of commit activity
    Makefile 1 Unlicense 0 1 0 Updated Oct 25, 2024
  • tikoci.github.io Public

    Repo Website

    tikoci/tikoci.github.io’s past year of commit activity
    TypeScript 0 CC0-1.0 0 0 0 Updated Oct 14, 2024
  • .github Public
    tikoci/.github’s past year of commit activity
    0 0 0 0 Updated Oct 3, 2024
  • winbox-deb Public

    Debian Package for Mikrotik Winbox4

    tikoci/winbox-deb’s past year of commit activity
    Makefile 4 CC0-1.0 1 0 0 Updated Oct 2, 2024
  • serial2http Public

    RouterOS container that proxies serial port via HTTP using TCP serial (RFC-2217)

    tikoci/serial2http’s past year of commit activity
    RouterOS Script 2 0 0 0 Updated Oct 2, 2024
  • traefik-wasm-grain Public

    ⚠️ Traefik WASM plugin using Grain and http-wasm ABI

    tikoci/traefik-wasm-grain’s past year of commit activity
    Go 1 0 0 0 Updated Jun 15, 2024
  • traefik-wabt Public

    Experimental Traefik 3.0 container for exploring WASM-based plugins

    tikoci/traefik-wabt’s past year of commit activity
    WebAssembly 0 CC0-1.0 0 0 0 Updated Jun 7, 2024

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…