Public GitOps monorepo for cross-platform system and user configuration.
dotfiles-core contains:
- common/: OS-agnostic scripts, templates, and utilities
- os/: Platform-specific folders (linux, macos, windows-wsl, freebsd, openwrt, cisco-ios, mikrotik-routeros, mobile)
- environments/: Host or group overrides
- tools/:
deploy.sh: Boot-time GitOps deploy scriptci/: GitHub Actions or GitLab CI definitions
-
Clone the repo as root or a management user:
sudo git clone git@github.com:yourorg/dotfiles-core.git /opt/dotfiles-core -
Make the deploy script executable:
sudo chmod +x /opt/dotfiles-core/tools/deploy.sh -
Add an SSH deploy key at
/root/.ssh/id_deploy(read-only). -
Enable automatic deploy at boot/login:
- Systemd:
sudo tee /etc/systemd/system/deploy-core.service <<EOF [Unit] Description=Deploy dotfiles-core After=network-online.target [Service] Type=oneshot ExecStart=/opt/dotfiles-core/tools/deploy.sh User=root [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable deploy-core.service - Cron/macOS/WSL:
sudo crontab -l | { cat; echo "@reboot /opt/dotfiles-core/tools/deploy.sh"; } | sudo crontab -Or source in/etc/profile.
dotfiles-core/
├── .gitignore
├── LICENSE
├── README.md
├── docs/
├── common/
│ ├── profile.d/
│ ├── bin/
│ └── templates/
├── os/
│ ├── linux/
│ ├── macos/
│ ├── windows-wsl/
│ ├── freebsd/
│ ├── openwrt/
│ ├── cisco-ios/
│ ├── mikrotik-routeros/
│ └── mobile/
├── environments/
│ └── <host-name>/
├── tools/
│ ├── deploy.sh
│ └── ci/
└── .github/
└── workflows/
Please open issues or submit pull requests. Follow the conventions in docs/CONTRIBUTING.md.
This repository is licensed under the Apache-2.0 License. See LICENSE for details.
.gitignore:
/tools/deploy.sh
/os/**/private-*.key
*.swp
.DS_Store
License: LICENSE with Apache-2.0
CONTRIBUTING.md: Guidelines for PRs, code style, and testing.