Welcome! If you're looking to help, this document is a great place to start!
Here's a few places to get started and find out what's outstanding.
- Read through the MDM Protocol Reference on the Apple website. Having a deeper understanding of MDM can help with designing features and uncovering bugs.
- Follow the Quickstart guide and make edits if something doesn't look or work right.
- If you run into a problem that you're not sure how to fix, file a bug in the issue tracker
- Browse through the open issues in the issue tracker. We try to tag issues as beginner friendly where appropriate.
- See something that others might benefit from? Considering updating or writing a wiki page.
To build MicroMDM from source, you will need Go 1.11 or later installed.
git clone [email protected]:micromdm/micromdm && cd micromdm
make deps
make
# run
./build/darwin/micromdm -h
./build/darwin/mdmctl -h
username=groob
# add your remote/upstream
git remote add $username [email protected]:groob/micromdm.git
# update from origin/main
git pull --rebase
# create a branch
git checkout -b my_feature
# push changes from my_feature to your fork.
# -u, --set-upstream set upstream for git pull/status
git push -u $username
A few helpful resources for getting started with Go:
- Writing, building, installing, and testing Go code
- Resources for new Go programmers
- How I start
- How to write Go code
MicroMDM is built using a few popular Go packages outside the standard libraries. It might be worth checking them out.
- Go Kit is a set of Go libraries used by MicroMDM to provide logging, and abstractions for building HTTP services. Its examples page is a good place to start.
- BoltDB is a key/value database used to provide persistant storage for many components of MicroMDM.
- gorilla/mux is used to provide routing for http handlers.
Also see Contributing wiki page which has some additional notes on running, troubleshooting, and developing with MicroMDM.