{"id":13464777,"url":"https://github.com/EvilFreelancer/docker-routeros","last_synced_at":"2025-03-25T11:32:07.714Z","repository":{"id":41398028,"uuid":"145709252","full_name":"EvilFreelancer/docker-routeros","owner":"EvilFreelancer","description":"Mikrotik RouterOS inside Docker container","archived":false,"fork":false,"pushed_at":"2025-02-28T10:45:53.000Z","size":126,"stargazers_count":411,"open_issues_count":1,"forks_count":146,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-24T21:11:18.494Z","etag":null,"topics":["container","docker","docker-container","docker-image","mikrotik","qemu","routeros"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/evilfreelancer/docker-routeros/","language":"Shell","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/EvilFreelancer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":["https://pay.cloudtips.ru/p/937f48ac","https://boosty.to/evilfreelancer"]}},"created_at":"2018-08-22T12:56:53.000Z","updated_at":"2025-03-19T10:10:48.000Z","dependencies_parsed_at":"2024-03-02T05:25:56.794Z","dependency_job_id":"f09a3f72-fafe-4f2e-8af2-4ad68ed0ea6d","html_url":"https://github.com/EvilFreelancer/docker-routeros","commit_stats":null,"previous_names":[],"tags_count":207,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvilFreelancer%2Fdocker-routeros","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvilFreelancer%2Fdocker-routeros/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvilFreelancer%2Fdocker-routeros/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EvilFreelancer%2Fdocker-routeros/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EvilFreelancer","download_url":"https://codeload.github.com/EvilFreelancer/docker-routeros/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245454197,"owners_count":20617990,"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":["container","docker","docker-container","docker-image","mikrotik","qemu","routeros"],"created_at":"2024-07-31T14:00:50.161Z","updated_at":"2025-03-25T11:32:07.654Z","avatar_url":"https://github.com/EvilFreelancer.png","language":"Shell","funding_links":["https://pay.cloudtips.ru/p/937f48ac","https://boosty.to/evilfreelancer"],"categories":["Shell"],"sub_categories":[],"readme":"# Mikrotik RouterOS in Docker\n\nThis project comprises a Docker image that runs a MikroTik's RouterOS\nvirtual machine inside QEMU.\n\nIt's designed to simulate MikroTik's RouterOS environment, making it an\nexcellent tool for development and testing purposes, especially for those\nworking with the RouterOS API.\n\nThis Docker image is particularly useful for unit testing the\n[routeros-api-php](https://github.com/EvilFreelancer/routeros-api-php) library, allowing developers to test applications\nin a controlled environment that closely mimics a real RouterOS setup.\n\nFor users seeking a fully operational RouterOS environment for production\nuse within Docker, the [VR Network Lab](https://github.com/plajjan/vrnetlab) project is recommended\nas an alternative.\n\n## Getting Started\n\n### Pulling the Image from Docker Hub\n\nTo use the image directly from Docker Hub, you can pull it and run a\ncontainer as shown below. This will start a RouterOS instance with ports\nconfigured for SSH, API, API-SSL, and VNC access.\n\n```bash\ndocker pull evilfreelancer/docker-routeros\ndocker run -d -p 2222:22 -p 8728:8728 -p 8729:8729 -p 5900:5900 -ti evilfreelancer/docker-routeros\n```\n\n### Use in `docker-compose.yml`\n\nFor those preferring docker-compose, an example configuration is provided\nbelow. More examples is [here](docker-compose.dist.yml).\n\n```yml\nversion: \"3.9\"\nservices:\n  routeros:\n    image: evilfreelancer/docker-routeros:latest\n    restart: unless-stopped\n    cap_add:\n      - NET_ADMIN\n    devices:\n      - /dev/net/tun\n      - /dev/kvm\n    ports:\n      - \"2222:22\"\n      - \"23:23\"\n      - \"80:80\"\n      - \"5900:5900\"\n      - \"8728:8728\"\n      - \"8729:8729\"\n```\n\n### Creating a Custom `Dockerfile`\n\nYou can easily create your own Dockerfile to include custom scripts or\nconfigurations. The Docker image supports various tags, which are listed\n[here](https://hub.docker.com/r/evilfreelancer/docker-routeros/tags/).\nBy default, the `latest` tag is used if no tag is specified.\n\n```dockerfile\nFROM evilfreelancer/docker-routeros\nADD [\"your-scripts.sh\", \"/\"]\nRUN /your-scripts.sh\n```\n\n### Building from Source\n\nIf you prefer to build the Docker image from source, the commands below\nwill guide you through cloning the repository, building the image, and\nrunning a RouterOS container.\n\n```bash\ngit clone https://github.com/EvilFreelancer/docker-routeros.git\ncd docker-routeros\ndocker build . --tag ros\ndocker run -d -p 2222:22 -p 8728:8728 -p 8729:8729 -p 5900:5900 -ti ros\n```\n\nAfter launching the container, you can access your RouterOS instance\nvia VNC (port 5900) and SSH (port 2222).\n\n## Exposed Ports\n\nThe table below summarizes the ports exposed by the Docker image,\ncatering to various services and protocols used by RouterOS.\n\n| Description | Ports                                 |\n|-------------|---------------------------------------|\n| Defaults    | 21, 22, 23, 80, 443, 8291, 8728, 8729 |\n| IPSec       | 50, 51, 500/udp, 4500/udp             |\n| OpenVPN     | 1194/tcp, 1194/udp                    |\n| L2TP        | 1701                                  |\n| PPTP        | 1723                                  |\n\n## Links\n\nFor more insights into Docker and virtualization technologies\nrelated to RouterOS and networking, explore the following resources:\n\n* [Mikrotik RouterOS in Docker using Qemu](https://habr.com/ru/articles/498012/) - An article on Habr that provides a guide on setting up Mikrotik RouterOS in Docker using Qemu, ideal for developers and network engineers interested in RouterOS virtualization.\n* [RouterOS API Client](https://github.com/EvilFreelancer/routeros-api-php) - GitHub repository for the RouterOS API PHP library, useful for interfacing with MikroTik devices.\n* [VR Network Lab](https://github.com/vrnetlab/vrnetlab) - A project for running network equipment in Docker containers, recommended for production-level RouterOS simulations.\n* [qemu-docker](https://github.com/joshkunz/qemu-docker) - A resource for integrating QEMU with Docker, enabling virtual machine emulation within containers.\n* [QEMU/KVM on Docker](https://github.com/ennweb/docker-kvm) - Demonstrates using QEMU/KVM virtualization within Docker containers for improved performance.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvilFreelancer%2Fdocker-routeros","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEvilFreelancer%2Fdocker-routeros","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEvilFreelancer%2Fdocker-routeros/lists"}