https://github.com/luka-loehr/schoolcode
AdminHub - Automated development tools installer for macOS Guest accounts. Provides Python, Git, Homebrew, and essential tools that automatically reset for each student, designed for educational environments with zero-maintenance setup.
https://github.com/luka-loehr/schoolcode
automation developer-tools education git guest-account homebrew macos python school shell
Last synced: 4 months ago
JSON representation
AdminHub - Automated development tools installer for macOS Guest accounts. Provides Python, Git, Homebrew, and essential tools that automatically reset for each student, designed for educational environments with zero-maintenance setup.
- Host: GitHub
- URL: https://github.com/luka-loehr/schoolcode
- Owner: luka-loehr
- License: apache-2.0
- Created: 2025-06-18T13:14:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-03T19:24:36.000Z (7 months ago)
- Last Synced: 2025-12-05T09:33:30.201Z (7 months ago)
- Topics: automation, developer-tools, education, git, guest-account, homebrew, macos, python, school, shell
- Language: Shell
- Homepage: https://lukaloehr.de/projects/schoolcode/
- Size: 387 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG_HOMEBREW_FIX.md
- License: LICENSE
- Agents: agents.md
Awesome Lists containing this project
README
# SchoolCode
Automated developer tool deployment for macOS Guest accounts.
[](https://github.com/luka-loehr/schoolcode/releases)
[](https://support.apple.com/macos)
[](LICENSE)
## Overview
SchoolCode automates setup of a complete development environment for students on shared macOS machines. It installs Python, Homebrew, Git, and pip with security wrappers that prevent Guest accounts from modifying system packages or using sudo.
## Requirements
- macOS 10.14+ (Mojave or newer)
- Administrator (sudo) privileges
- ~2GB free disk space
- Internet connection
## Quick Start
```bash
# Clone the repository
git clone https://github.com/luka-loehr/schoolcode.git
cd schoolcode
sudo ./schoolcode.sh
```
Verify installation:
```bash
sudo ./schoolcode.sh --status
```
## Basic Commands
```bash
sudo ./schoolcode.sh # Install everything
sudo ./schoolcode.sh --status # Check system health
sudo ./schoolcode.sh --uninstall # Remove SchoolCode
sudo ./schoolcode.sh --logs # View logs interactively
sudo ./schoolcode.sh --help # Show help
```
## What Gets Installed
- **Xcode Command Line Tools** - Required development tools
- **Homebrew** - Package manager (non-interactive installation)
- **Python** - Official Python from python.org
- **Git** - Version control
- **pip** - Python package manager
- **Security Wrappers** - Prevents Guest users from modifying system packages
## Security Model
Guest accounts are fully isolated:
- Cannot use `sudo` or install system-wide packages
- pip restricted to user-only installations (`--user` flag)
- Homebrew limited to read-only commands
- All modifications cleaned on logout
## Advanced Usage
For granular control, use the CLI tool:
```bash
# System management
sudo ./scripts/schoolcode-cli.sh status [detailed]
sudo ./scripts/schoolcode-cli.sh health [detailed]
sudo ./scripts/schoolcode-cli.sh repair
# Guest account
sudo ./scripts/schoolcode-cli.sh guest setup
sudo ./scripts/schoolcode-cli.sh guest test
# Configuration
sudo ./scripts/schoolcode-cli.sh config show
sudo ./scripts/schoolcode-cli.sh tools list
```
## Troubleshooting
**Installation problems:**
```bash
sudo ./schoolcode.sh --status # Check system health
./schoolcode.sh --logs errors # View error logs
sudo ./scripts/schoolcode-cli.sh repair # Auto-fix issues
```
**Guest account issues:**
```bash
sudo ./scripts/schoolcode-cli.sh guest test
sudo ./scripts/schoolcode-cli.sh guest setup
```
## Project Structure
```
SchoolCode/
├── schoolcode.sh # Main entry point
├── scripts/
│ ├── schoolcode-cli.sh # Advanced CLI tool
│ ├── install.sh # Installation logic
│ ├── uninstall.sh # Removal script
│ ├── utils/ # Utility functions
│ └── setup/ # Guest configuration
├── tests/ # Test suite
└── README.md # This file
```
## License
Apache License 2.0 - © 2025 Luka Löhr
> Test notice: daemon version tracking test - 2025-12-03 11:55