An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# SchoolCode

Automated developer tool deployment for macOS Guest accounts.

[![Version](https://img.shields.io/github/v/release/luka-loehr/schoolcode?label=version&color=blue&logo=github)](https://github.com/luka-loehr/schoolcode/releases)
[![macOS](https://img.shields.io/badge/macOS-10.14%2B-success)](https://support.apple.com/macos)
[![License](https://img.shields.io/badge/license-Apache%202.0-green)](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