{"id":15065074,"url":"https://github.com/perryflynn/lirou","last_synced_at":"2026-01-26T17:33:17.548Z","repository":{"id":247296690,"uuid":"825476053","full_name":"perryflynn/lirou","owner":"perryflynn","description":"Linux Router based on plain Debian and Ansible - this repo is a Ansible Collection","archived":false,"fork":false,"pushed_at":"2024-08-18T17:36:12.000Z","size":93,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-30T13:41:07.054Z","etag":null,"topics":["ansible","ansible-collection","debian","firewall","linux","network-router","network-routing","router"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/perryflynn.png","metadata":{"files":{"readme":"README-architecture.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2024-07-07T22:06:54.000Z","updated_at":"2024-08-18T19:07:14.000Z","dependencies_parsed_at":"2024-09-29T13:41:03.812Z","dependency_job_id":"a8d6fb65-278e-411b-9b37-24f1bf380e49","html_url":"https://github.com/perryflynn/lirou","commit_stats":null,"previous_names":["perryflynn/lirou"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perryflynn%2Flirou","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perryflynn%2Flirou/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perryflynn%2Flirou/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/perryflynn%2Flirou/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/perryflynn","download_url":"https://codeload.github.com/perryflynn/lirou/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219854827,"owners_count":16556182,"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":["ansible","ansible-collection","debian","firewall","linux","network-router","network-routing","router"],"created_at":"2024-09-25T00:32:07.430Z","updated_at":"2025-11-01T21:30:31.377Z","avatar_url":"https://github.com/perryflynn.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# lirou Architecture\n\nArchitecture principles for lirou.\n\n## No custom configuration services\n\nThe idea behind lirou is to avoid custom configuration scripts and anything which cannot be archieved with\na classic Debian Stable and systemd as far as possible. No dark magic, any configuration should be understandable\nfor a Network Admin / Debian User.\n\nAt any point it must be possible to stop using the lirou Ansible code and make manual changes to the system.\n\n## Use systemd if possible\n\nThe event driven design and dependency management of systemd solves alot problems older router systemd had.\nIt is possible to start services / trigger scripts if an interface was created, also literally any type of\ninterface can be create and managed with systemd-networkd. networkd-dispatcher can be used to trigger scripts\nwhen the state of an interface changes (a new IP was assigned for example).\n\n## Do not rename interfaces\n\nRenaming a interface is only possible once. So if a router is configured once, renaming a interface is only possible\nwith a reboot. But keeping the original interface name and add altnames, is always possible. So use a systemd unit\nor script to add aliases as altnames to an interface right after the interface was created.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperryflynn%2Flirou","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fperryflynn%2Flirou","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fperryflynn%2Flirou/lists"}