# MitsuruTech Learning Platform > A classroom platform for schools and colleges. Students write and run real Python, Java, Go, Node, TypeScript, Bash and SQL in the browser, deploy web apps from GitHub to an address of their own with a database, learn AWS through the S3, DynamoDB and SQS APIs with no AWS account, and quizzes mark themselves. Made and run by Mitsuru Technologies Ltd in the United Kingdom. The product page is https://mitsurutech.co.uk/learning and the manual is https://mitsurutech.co.uk/help; every page of both is public and needs no account. ## What it does - Real code, really run: Python, Java, Go, C, C++, C#, Haskell, OCaml, R, Ruby, PHP, Rust, Kotlin, Prolog, Node, TypeScript, Bash and SQL, written in a browser editor with completions and error checking and run against your tests in a throwaway container, so a program that would crash on a laptop crashes here with the same error. Web pages get a live preview, SQL runs against a real database, a whole Linux machine boots inside the tab, and there is a whiteboard for diagrams. Nothing is installed on the school computer. - Deploy a real web app from GitHub: Students deploy Python, Node, Go, Java and static HTML, CSS and JavaScript sites from a public GitHub repository to an address of their own under learntools.dev, invite up to 5 people to see it, give it environment variables and a PostgreSQL, MySQL or SQLite database of their own, and can hand the deployed app in for marking. An app is guaranteed an hour and keeps running while there is room, up to 4 hours, stops after 30 minutes with nobody looking at it, and each account has 8 hours of app time a day. It is for learning and demonstrating, not production hosting: long enough to show a teacher, share with a few people or hand in a link, and deliberately not long enough to run a service on. - Learn AWS without an AWS account: Every student gets an object store, a NoSQL table and a message queue implementing the Amazon S3, DynamoDB and SQS APIs, so boto3, the AWS SDKs and the AWS CLI run unchanged against it and the code they write is the code they would write against AWS. A browser console shows what is in them and the terminal is already pointed at them. The stack is saved and restored, up to 25 MB. No AWS account, no card, nothing reachable from outside their own session. It runs on MiniStack and is not an AWS account; MitsuruTech is not affiliated with AWS. - Quizzes that mark themselves: Nine question formats, built in our own builder. The answer key never reaches the browser, the clock lives on the server, and how many attempts a quiz allows is its own setting, with the best one counting. - Watch the class working, live: Live Classroom shows who is on which task right now and opens anybody’s work, read-only, as they write it. Present to Class is the reverse: your own editor or terminal on every student’s screen as you type, recorded to replay. - A whole class, one code: Hand out a join code and the class puts itself on the module, accounts and all. The number of places is fixed, it expires, and it can be turned off without forgetting who used it. - Tasks in four shapes, and hand-ins of any kind: A program to write, something to read, a quiz to sit or a diagram to draw, each with a due date. A program can be a whole project in folders with its own pom.xml, requirements.txt or package.json, loaded from a Git repository with hidden tests. A written assignment collects a PDF, a document, images, any file type you allow, or a deployed app. - Marking, feedback and a way back: Marking closes a hand-in and sending it back reopens it, with a reason the student actually sees. Comments are one thread per student, not a noticeboard, and a graded task can carry a weight for the module’s leaderboard. - Every version kept, and a record that stays put: Every autosave is a version: scrub through how a program came together and see every earlier copy of a hand-in. Every time somebody opens or changes a student’s work it is written down, nothing removes an entry, and the student sees the same list staff do. - Ask AI: Claude, Gemini and GPT for staff, a tutor for students: Every member of staff gets a monthly allowance of AI credits, included in the price, to build quizzes and coding tasks, review code and write feedback with Claude, Gemini and GPT models (the family behind ChatGPT) or UK-hosted ones. On tasks where the teacher allows it, a student can ask about the task and their code and is helped to work it out, never given the answer: it only talks about the task, a second model checks every answer, and it runs in the UK. Students’ Ask AI is off until a teacher turns it on. ## Free lessons ### [Basics: 43 hands-on lessons, free to read whole](https://mitsurutech.co.uk/resources/basics) Each lesson is public and whole, in English, French, German, Spanish and Japanese. Commands are shown and not run on the page; a free account runs the live lab, with enough free credit each month to follow most lessons. The Git and SQL labs also run with no account. - [Git Basics](https://mitsurutech.co.uk/resources/basics/git-basics) - [SQL Basics](https://mitsurutech.co.uk/resources/basics/sql-basics) - [API Basics](https://mitsurutech.co.uk/resources/basics/api-basics) - [Juice Shop Basics](https://mitsurutech.co.uk/resources/basics/juice-shop-basics) - [DVWA Basics](https://mitsurutech.co.uk/resources/basics/dvwa-basics) - [WebGoat Basics](https://mitsurutech.co.uk/resources/basics/webgoat-basics) - [Git Basics 2](https://mitsurutech.co.uk/resources/basics/git-basics-2) - [SQL Basics 2](https://mitsurutech.co.uk/resources/basics/sql-basics-2) - [API Basics 2](https://mitsurutech.co.uk/resources/basics/api-basics-2) - [Juice Shop Basics 2](https://mitsurutech.co.uk/resources/basics/juice-shop-basics-2) - [DVWA Basics 2](https://mitsurutech.co.uk/resources/basics/dvwa-basics-2) - [WebGoat Basics 2](https://mitsurutech.co.uk/resources/basics/webgoat-basics-2) - [Static Routing Basics](https://mitsurutech.co.uk/resources/basics/static-routing-basics) - [OSPF Basics](https://mitsurutech.co.uk/resources/basics/ospf-basics) - [BGP Basics](https://mitsurutech.co.uk/resources/basics/bgp-basics) - [Valkey Basics](https://mitsurutech.co.uk/resources/basics/valkey-basics) - [Kafka Basics](https://mitsurutech.co.uk/resources/basics/kafka-basics) - [Spark Basics](https://mitsurutech.co.uk/resources/basics/spark-basics) - [Hadoop Basics](https://mitsurutech.co.uk/resources/basics/hadoop-basics) - [JupyterLab Basics](https://mitsurutech.co.uk/resources/basics/jupyterlab-basics) - [Privilege Escalation Basics](https://mitsurutech.co.uk/resources/basics/privilege-escalation-basics) - [DHCP and DNS Basics](https://mitsurutech.co.uk/resources/basics/dhcp-and-dns-basics) - [Ansible Basics](https://mitsurutech.co.uk/resources/basics/ansible-basics) - [Observability Basics](https://mitsurutech.co.uk/resources/basics/observability-basics) - [VLAN Basics](https://mitsurutech.co.uk/resources/basics/vlan-basics) - [NAT Basics](https://mitsurutech.co.uk/resources/basics/nat-basics) - [WireGuard Basics](https://mitsurutech.co.uk/resources/basics/wireguard-basics) - [Incident Response Basics](https://mitsurutech.co.uk/resources/basics/incident-response-basics) - [SQL Injection Fix Basics](https://mitsurutech.co.uk/resources/basics/sql-injection-fix-basics) - [Linux Administration Basics](https://mitsurutech.co.uk/resources/basics/linux-administration-basics) - [Everyday Linux 1: Move and make](https://mitsurutech.co.uk/resources/basics/everyday-linux-1-move-and-make) - [Everyday Linux 2: Permissions and removing](https://mitsurutech.co.uk/resources/basics/everyday-linux-2-permissions-and-removing) - [Everyday Linux 3: Logs and processes](https://mitsurutech.co.uk/resources/basics/everyday-linux-3-logs-and-processes) - [Everyday Linux 4: Archives, disk and the web](https://mitsurutech.co.uk/resources/basics/everyday-linux-4-archives-disk-and-the-web) - [Everyday Linux 5: Users and other machines](https://mitsurutech.co.uk/resources/basics/everyday-linux-5-users-and-other-machines) - [Compilers Basics](https://mitsurutech.co.uk/resources/basics/compilers-basics) - [Computer Architecture Basics](https://mitsurutech.co.uk/resources/basics/computer-architecture-basics) - [Docker Basics](https://mitsurutech.co.uk/resources/basics/docker-basics) - [Mutillidae Basics](https://mitsurutech.co.uk/resources/basics/mutillidae-basics) - [WrongSecrets Basics](https://mitsurutech.co.uk/resources/basics/wrongsecrets-basics) - [Web Server Hardening Basics](https://mitsurutech.co.uk/resources/basics/web-server-hardening-basics) - [AI Coding Agent Basics](https://mitsurutech.co.uk/resources/basics/ai-coding-agent-basics) - [AI Coding Agent Basics 2](https://mitsurutech.co.uk/resources/basics/ai-coding-agent-basics-2) ### [Informatique pour les 16-18 ans](https://mitsurutech.co.uk/resources/course/fr) Computing courses written natively, not translated, with a free preview of each lesson. - Représenter les données (9) - Premiers pas en Python (11) - Listes, tuples et dictionnaires (7) - Les données en tables (6) - Chercher, trier, parcourir (10) - Tester et mettre au point (6) - Le web (9) - Machines et systèmes (7) - Structures de données (9) - Bases de données et SQL (11) - Réseaux et sécurité (8) - Programmation avancée (9) - Algorithmes plus avancés (9) - Repères et projets (7) ### [Informática: programación y web](https://mitsurutech.co.uk/resources/course/es) Computing courses written natively, not translated, with a free preview of each lesson. - Sistemas informáticos (14) - Herramientas para programar (9) - Programación con Java (32) - HTML, XML y JSON (10) - Bases de datos y SQL (16) - Diseño de páginas con CSS (11) - JavaScript en el navegador (14) - PHP en el servidor (13) - Publicar una aplicación web (9) ### [情報の基礎: プログラミングとデータ](https://mitsurutech.co.uk/resources/course/ja) Computing courses written natively, not translated, with a free preview of each lesson. - 情報社会とわたしたち (10) - 情報モラルと法律 (9) - 安全に使うための基本 (8) - メディアと情報デザイン (10) - コンピュータと数のしくみ (11) - Pythonでプログラミング (26) - モデル化とシミュレーション (6) - ネットワークとインターネット (10) - データの活用 (12) ### [Informatik für Schule und Alltag](https://mitsurutech.co.uk/resources/course/de) Computing courses written natively, not translated, with a free preview of each lesson. - Computer und Daten (12) - Programmieren mit Python (18) - Daten in Python (12) - Algorithmen (12) - Datenbanken und SQL (16) - Netzwerke und Internet (10) - Webseiten mit HTML und CSS (14) - JavaScript im Browser (12) - Sicherheit und Datenschutz (10) - Projekte und Teamarbeit (8) ### [T Level Digital: free lessons](https://mitsurutech.co.uk/resources/t-level) - Problem solving and programming: 43 lessons - Emerging issues and the law: 15 lessons - Business context: 15 lessons - Data: 33 lessons - Digital environments: 22 lessons - Security: 16 lessons - Specialism: analyse and plan: 25 lessons - Specialism: design and build: 43 lessons - Specialism: test, change and support: 18 lessons - Projects: 33 lessons ## Labs by topic Container labs and Linux machines, grouped by what they teach. Each topic page lists its labs and the lessons worked in them. - [T-Level Digital](https://mitsurutech.co.uk/resources/topics/t-level-digital): Revision activities for the T-Level in Digital, free to use with a class. - [Cybersecurity](https://mitsurutech.co.uk/resources/topics/cybersecurity): Break into deliberately vulnerable applications in your own private copy and fix them, then investigate a compromised Linux machine. - [Networking](https://mitsurutech.co.uk/resources/topics/networking): Routers, NAT, DHCP, DNS, VLANs and tunnels, built inside one virtual machine. - [Linux and DevOps](https://mitsurutech.co.uk/resources/topics/linux-devops): A whole Ubuntu machine to administer, then containers, web servers, monitoring and configuration as code. - [Databases](https://mitsurutech.co.uk/resources/topics/databases): SQL, a database behind an API, and what a database keeps when a lab stops. - [Data engineering](https://mitsurutech.co.uk/resources/topics/data-engineering): Distributed storage, batch processing, streams and an in-memory store, on your own private copy. - [Version control](https://mitsurutech.co.uk/resources/topics/version-control): Clone, commit, branch and push, on a Git server of your own. - [Coding with AI](https://mitsurutech.co.uk/resources/topics/ai-coding): An AI coding agent in your own private copy: ask it to explain and fix code, install one yourself, and check its work. - [Compilers and computer architecture](https://mitsurutech.co.uk/resources/topics/computer-systems): Watch a real compiler work stage by stage, build a calculator with flex and bison, and run RISC-V assembly on an emulator. ## Pages - [MitsuruTech Learning Platform](https://mitsurutech.co.uk/learning): what it does, what it costs, and the questions people ask before signing up. - [Playground](https://mitsurutech.co.uk/playground): write and run Python or a web page in the browser. - [/resources](https://mitsurutech.co.uk/resources): free lessons, labs and activities, by topic. - [/signup](https://mitsurutech.co.uk/signup): a free trial for a school or college, or a free account for one person. - [/pricing](https://mitsurutech.co.uk/pricing): the first year free, then a price per student with staff free, and a calculator. - [/build](https://mitsurutech.co.uk/build): code online, deploy an app, run a container or an Ubuntu VM. Code, apps and the VM need no account, and the Git and SQL labs run without one; every other container lab needs a free account. - [/vm](https://mitsurutech.co.uk/vm): a whole Linux machine in the browser, free. With no account it runs up to 20 minutes and nothing is kept; a free account keeps its disk. - [/compare](https://mitsurutech.co.uk/compare): how it differs from GitHub Classroom. - [/help](https://mitsurutech.co.uk/help): every topic, on one page. - [/pricing.md](https://mitsurutech.co.uk/pricing.md): the price in plain Markdown, every currency - [/learning.md](https://mitsurutech.co.uk/learning.md): the product, and the facts people ask, in plain Markdown The whole manual and the price list in one file: https://mitsurutech.co.uk/llms-full.txt. ## Help and manual Every feature has a page. Topics are grouped as the manual groups them. ### Getting started - [What the MitsuruTech Learning Platform does](https://mitsurutech.co.uk/help/what-it-is): A classroom platform where students write and run real Python, SQL, Java and web code in the browser, deploy apps from GitHub and sit self-marking quizzes. - [Getting your college set up](https://mitsurutech.co.uk/help/getting-started): Open a college account, add your staff and students, and put a class on its first module. Takes about twenty minutes and needs no IT involvement. - [Colours and text for dyslexic and neurodivergent students](https://mitsurutech.co.uk/help/colour-schemes): Every student and teacher can read the whole site, quizzes included, in a colour scheme, text size, spacing and font of their own, with or without an account. - [Running a class with nothing installed](https://mitsurutech.co.uk/help/no-installs): No compiler, no IDE, no lab image and no technician. Students use the browser they already have, on a Chromebook, an iPad or a managed laptop. - [What a student sees](https://mitsurutech.co.uk/help/student-view): Where a student lands, what tells them something is new, and the lists of their own work: courses, modules, lessons and tasks. - [Practice files: a student’s own work, outside any module](https://mitsurutech.co.uk/help/practise-files): Every student gets their own files to try things in, in any language, separate from the work set for them and not marked. - [Book a free call about the platform](https://mitsurutech.co.uk/help/book-a-call): A free call with somebody who builds the platform, about what you teach and whether it would help. Give a work address, type the code, pick a time. - [Reporting a problem, searching and keyboard shortcuts](https://mitsurutech.co.uk/help/support-and-search): Tell us something is broken from the Support page, find any module, task or person with Ctrl or ⌘ and K, and press ? for every keyboard shortcut. ### Setting work - [Set a Python exercise your class runs in the browser](https://mitsurutech.co.uk/help/setting-python-exercises): Write the exercise, add hidden tests that mark it, and hand it to a class. Each student gets their own copy and runs real Python with no installs. - [Quizzes that mark themselves](https://mitsurutech.co.uk/help/auto-marked-quizzes): Build a quiz from ten question types, set the attempts and the time limit, and it marks itself the moment it is submitted. Answers never reach the browser. - [Written assignments and hand-ins](https://mitsurutech.co.uk/help/assignments-and-hand-ins): Set a written task, say what may be handed in and how much of it, and collect the work on the platform instead of by email. - [Building a lesson a class works through](https://mitsurutech.co.uk/help/lessons): Put your words, pictures, videos and files into one page a class works through in order. Built a block at a time, with nothing to write in HTML. - [Every language a task can be set in](https://mitsurutech.co.uk/help/languages): Python, Java, Go, Node, TypeScript, Bash, SQL, a real Linux terminal, HTML/CSS/JavaScript and diagrams. All in a browser, all really executed. - [Set a coding project with folders and many files, in the browser](https://mitsurutech.co.uk/help/coding-projects-with-folders): A coding task can be a whole project: up to 50 files in folders, written, run and tested in the browser, with each student given their own copy of all of it. - [Use a real pom.xml, requirements.txt, package.json or go.mod in a coding task](https://mitsurutech.co.uk/help/package-files): A coding task names its packages the way a real project does, in the file the language’s own tools read, and every run installs them for the student. - [Set an HTML, CSS and JavaScript task](https://mitsurutech.co.uk/help/web-tasks): Three panes, a live preview, and no local server. Students edit the page, the styles and the script, and see the result beside them as they type. - [Set a SQL task with its own database](https://mitsurutech.co.uk/help/sql-tasks): A query in one tab and the schema that builds the database in the other. Students run real SQL against real tables, with nothing installed. - [A real Linux terminal in the browser](https://mitsurutech.co.uk/help/linux-terminal): A whole Linux machine in a browser tab, for teaching the command line without a lab, a virtual machine or an SSH account each. - [Diagram tasks: flowcharts, ERDs and sketches](https://mitsurutech.co.uk/help/diagrams): Two kinds of diagram task: one written as text and rendered, one drawn freehand. For flowcharts, entity relationship diagrams and network sketches. - [Assessments: locking a task down](https://mitsurutech.co.uk/help/locked-down-tasks): Put a task in an assessment mode that asks for full screen, records leaving it, and reports what happened on the page you mark from. - [Reusing a task, and sharing one with another teacher](https://mitsurutech.co.uk/help/sharing-tasks): A task belongs to whoever wrote it, not to the module, so it can be set again next year, on another module, or handed to a colleague. - [Copying a ready-made lesson from the library](https://mitsurutech.co.uk/help/lesson-library): The library holds lessons, tasks and files from MitsuruTech. Copy one into a module you teach and change it however you like. - [Modules for a technical job](https://mitsurutech.co.uk/help/job-modules): Eleven free modules for anybody aiming at a technical job or changing career, in English, French, German, Spanish and Japanese, and which ones each role needs. - [Undergraduate kits: lessons, labs, assignments and a teacher guide](https://mitsurutech.co.uk/help/undergraduate-kits): Free undergraduate computing modules, each with lessons worked in a real lab, checked assignments, a question bank and a teacher guide, in five languages. - [Computing courses in French, German, Spanish and Japanese](https://mitsurutech.co.uk/help/native-language-courses): Four free computing courses for ages 16 to 18, each written natively in French, German, Spanish or Japanese. Preview them with no account. - [Ask AI: for students, for marking, and for building a task](https://mitsurutech.co.uk/help/ai-assistance): Staff get monthly AI credits for Claude, Gemini and GPT to build tasks and mark; students are helped, never given the answer. A college can switch it off. - [Deploying a web app from GitHub: Python, Node, Go, Java or a static site](https://mitsurutech.co.uk/help/deploy-app): Students deploy Python, Node, Go, Java and static HTML, CSS and JavaScript sites from GitHub to an address of their own. No cloud account, no card. - [Teaching AWS without an account: S3, DynamoDB and SQS for every student](https://mitsurutech.co.uk/help/cloud-stack): Students get an object store, a NoSQL table and a queue speaking the Amazon S3, DynamoDB and SQS APIs, with a browser console. No AWS account, no card. - [Git repositories for every student and teacher, hosted for your college](https://mitsurutech.co.uk/help/git-repositories): Private Git repositories on our own server for every member of staff and student at a college, with their platform account. Push over HTTPS. - [Create a coding assignment from a Git repository, with hidden tests](https://mitsurutech.co.uk/help/coding-tasks-from-git): Load a coding task straight from a repository on your college’s Git server, keep its test files hidden from students, and update it from a later commit. - [Give every student a Git repository to clone, commit and push](https://mitsurutech.co.uk/help/students-clone-and-push): Each student gets a private repository made from their copy of a coding task, works in their own editor and pushes, and what they push is what is tested. - [Give one task a link anybody can open](https://mitsurutech.co.uk/help/task-links): Give any of your tasks an address of its own that anybody can open. Nothing is published, nothing is listed, and you can withdraw it at any time. ### Marking - [Check student code for similar work, and see how it was built](https://mitsurutech.co.uk/help/similarity-checking): Compare each student’s code with the others’ by structure, so renamed variables do not hide it, and see how it was built. Evidence, never a verdict. - [Marking work and giving feedback](https://mitsurutech.co.uk/help/marking-and-feedback): See what each student saved, what their tests did and what they handed in, mark it, and talk to them about it on the work itself. - [Extra time, extra attempts and access arrangements](https://mitsurutech.co.uk/help/extra-time): Give one student longer or another go at a quiz or a timed task, without changing anything for the rest of the class. - [Watch a class work, and present to them](https://mitsurutech.co.uk/help/live-classroom): See what every student on a module is doing as they do it, and put your own editor on their screens when you want to show something. - [Who looked at whose work](https://mitsurutech.co.uk/help/access-log): Every time somebody opens, edits, downloads or marks a student’s work it is recorded, and the student sees the same entries staff do. - [What students are told, and when](https://mitsurutech.co.uk/help/notices): A task set, a comment, work sent back: each shows on the student’s own page and arrives by email once, and they can turn the email off. ### Running a college - [Sharing worksheets, slides and datasets with a module](https://mitsurutech.co.uk/help/module-resources): Upload a worksheet, a slide deck or a dataset to a module and everybody on it can open it straight away. Any file type, up to 20 MB, in folders you name. - [Getting a class onto a module in five minutes](https://mitsurutech.co.uk/help/join-links): Send one link and a class adds itself to the module, with a limit on how many places and an expiry date you set. - [Courses, cohorts and year groups](https://mitsurutech.co.uk/help/courses-and-cohorts): Group students by course and year so a module can be handed to a whole cohort, and last year’s class stays where it was. - [How people sign in](https://mitsurutech.co.uk/help/sign-in-methods): A code emailed to them, a password, Google, Microsoft, your college’s own directory, a passkey or a link from your VLE. Nobody invents a password. - [Who can do what: owners, teachers and college admins](https://mitsurutech.co.uk/help/roles-and-permissions): Who may create, change, hand out and mark work: site administrators, college admins, module owners, teachers and students, and what each can touch. - [Adding, suspending and removing accounts](https://mitsurutech.co.uk/help/accounts-and-suspension): Add one account or a batch, suspend somebody without deleting anything, and remove an account knowing what goes with it and what does not. - [The bin: undoing a delete](https://mitsurutech.co.uk/help/deleted-items): Deleting a task, a module or an account puts it in the bin with the rows it was made of, so it can be restored whole rather than rebuilt. - [Sharing a lesson with the Library](https://mitsurutech.co.uk/help/sharing-lessons): Offer a lesson, task or file you wrote for review. A copy is filed in our Library, and is never published on the open internet. - [Your college’s settings](https://mitsurutech.co.uk/help/college-settings): What a college administrator sets on the Settings page: the college’s details, who runs it, how people sign in, AI assistance, and the bill. - [Connecting your VLE](https://mitsurutech.co.uk/help/vle-connection): Link Moodle, Canvas, Blackboard or any LTI 1.3 VLE: students arrive signed in, the class list is kept, and marks can go back to the gradebook. - [Deleting your own account](https://mitsurutech.co.uk/help/deleting-your-account): Delete a personal account yourself, or ask your college to delete one it holds. Either way it is closed first, and can be brought back for 30 days. ### What it costs - [What it costs, and how the free year works](https://mitsurutech.co.uk/help/free-trial-and-pricing): Your first year free, up to 50 students. Then £300 a year for your first 50 and from £6 a student after, excluding VAT. Staff are free. - [Credits: what a Public college account gets free, and what uses them](https://mitsurutech.co.uk/help/credits): Public college accounts get 100 free credits a month for VMs, containers and apps. Running code is free. Counted now, nothing stopped yet. ### Labs and samples - [Labs: containers from a compose file](https://mitsurutech.co.uk/help/labs): A lab is a set of containers from a compose file, written on the page or kept in GitHub: a database, an API, a cache. Set one up, check it and publish it. - [Ubuntu VMs: your own machine in the browser](https://mitsurutech.co.uk/help/ubuntu-vms): An Ubuntu 26.04 machine with sudo, in a terminal in the browser: free with no account, kept between visits with one, and what each may reach. - [Security labs: Juice Shop, DVWA and WebGoat](https://mitsurutech.co.uk/help/security-labs): Three deliberately vulnerable web apps, each in the student’s own private lab copy: attack it, explain the flaw and hand in evidence. Marking notes included. - [Sample labs: ready-made container labs and VM labs for teaching](https://mitsurutech.co.uk/help/sample-labs): Ready-made labs for classrooms, in the browser: databases, Git, web security, DevOps, Linux and networking. What each teaches, how to run it, and its code. - [PostgreSQL and PostgREST lab: a database and a REST API in the browser](https://mitsurutech.co.uk/help/lab-database-api): A Postgres database and a REST API over every table, each student’s own, with psql and curl in a terminal. Free account needed; the code is on GitHub. - [MySQL and phpMyAdmin lab with a sample shop database to practise SQL](https://mitsurutech.co.uk/help/lab-mysql-phpmyadmin): A MySQL server with a sample shop database and phpMyAdmin already signed in, in each student’s own copy, with thirteen SQL exercises. Free in the browser. - [Git and Gitea lab: learn clone, commit and push on a Git server of your own](https://mitsurutech.co.uk/help/lab-git-gitea): Each student gets their own Gitea Git server with a repository to clone, commit and push to from a browser terminal. No GitHub account. The code is on GitHub. - [OWASP Juice Shop lab: a vulnerable web shop to attack in your own copy](https://mitsurutech.co.uk/help/lab-juice-shop): OWASP Juice Shop in each student’s private lab copy: over a hundred web security challenges across the OWASP Top 10, with nothing to install. Source on GitHub. - [DVWA lab: practise SQL injection and XSS on the Damn Vulnerable Web Application](https://mitsurutech.co.uk/help/lab-dvwa): DVWA in each student’s private lab copy, its database already made: SQL injection, XSS and more at four security levels. Nothing to install; source on GitHub. - [WebGoat lab: guided web security lessons with WebWolf in your own copy](https://mitsurutech.co.uk/help/lab-webgoat): OWASP WebGoat and WebWolf in each student’s private lab copy: guided lessons on injection, access control, JWT and more. Nothing to install; source on GitHub. - [Static routing lab: build routes on a small network in your browser](https://mitsurutech.co.uk/help/lab-netlab-static): A static routing lab: two routers and two hosts built inside one VM, with FRRouting and vtysh, and a script that marks it. Free sample; definition on GitHub. - [OSPF lab: bring up dynamic routing on three routers in your browser](https://mitsurutech.co.uk/help/lab-netlab-ospf): An OSPF lab: three routers and two hosts in one VM, FRRouting and vtysh, watch hellos with tcpdump, and a script that marks it. Free sample; code on GitHub. - [BGP lab: connect two autonomous systems in your browser](https://mitsurutech.co.uk/help/lab-netlab-bgp): A BGP lab: two autonomous systems, AS 65001 and 65002, as routers in one VM with FRRouting, and a script that marks it. Free sample; the code is on GitHub. - [Valkey lab: learn a Redis-compatible key-value store with keys, expiry, lists and counters](https://mitsurutech.co.uk/help/lab-valkey): A private Valkey store, Redis-compatible, for each student: keys, expiry, lists, hashes and counters in a browser terminal. Nothing to install; code on GitHub. - [Kafka lab: topics, producers, consumers, partitions and offsets in the browser](https://mitsurutech.co.uk/help/lab-kafka): Each student gets a private Apache Kafka broker and Kafka UI: make a topic, produce messages, read them from the beginning and see offsets. Source on GitHub. - [Apache Spark lab: learn DataFrames and Spark SQL on a CSV file, with the Spark UI](https://mitsurutech.co.uk/help/lab-spark): A private Apache Spark for each student: load a CSV into a DataFrame, filter, group, query in SQL and see the jobs in the Spark UI. Code on GitHub. - [Hadoop lab: HDFS and MapReduce, with a file to put in and a word count to read](https://mitsurutech.co.uk/help/lab-hadoop): Each student gets a private Hadoop cluster: put a file into HDFS, list it, read it back and read a MapReduce word count. Source on GitHub. - [JupyterLab data science lab: pandas, Matplotlib and scikit-learn in the browser](https://mitsurutech.co.uk/help/lab-jupyter-data): A private JupyterLab for each student, with pandas, NumPy, Matplotlib and scikit-learn, a year of bike hire data and a starter notebook. Code on GitHub. - [Linux privilege escalation lab: a setuid binary, a sudo rule and a cron job to break](https://mitsurutech.co.uk/help/lab-linux-privesc): A Linux privilege escalation lab: a setuid helper, a sudo rule and a writable cron job on a private Ubuntu VM, read by the teacher. Free sample; code on GitHub. - [DHCP and DNS lab: configure dnsmasq for a small network in your browser](https://mitsurutech.co.uk/help/lab-dhcp-dns): A DHCP and DNS lab: students configure dnsmasq so two clients get leases, a fixed address and local names, on a private Ubuntu VM. Free sample. - [Ansible lab: configure a machine with a playbook, in your browser](https://mitsurutech.co.uk/help/lab-ansible-basics): An Ansible lab: finish a playbook that installs a package, fills a template and writes a unit file, then run it twice. A private Ubuntu VM, marked by a script. - [Observability lab: Prometheus and Grafana, with an alerting rule for the student to write](https://mitsurutech.co.uk/help/lab-observability): Each student gets a private Prometheus and Grafana watching a web server: ask in PromQL, draw a panel, write an alert and make it fire. Source on GitHub. - [VLAN lab: VLANs and inter-VLAN routing on one Ubuntu VM in your browser](https://mitsurutech.co.uk/help/lab-vlans): A VLAN lab: students configure a switch, 802.1Q subinterfaces on a router on a stick and a firewall rule inside one Ubuntu VM, marked by a script. - [NAT gateway lab: masquerade and port forwarding with nftables in your browser](https://mitsurutech.co.uk/help/lab-nat-gateway): A NAT lab in one VM: a private host, a gateway and an outside server. Students set masquerade and a port forward with nftables. Marked by a script; free sample. - [WireGuard lab: build a VPN tunnel between two sites in your browser](https://mitsurutech.co.uk/help/lab-wireguard): A WireGuard lab: students build a VPN tunnel between two sites inside one Ubuntu VM, with keys and routes, marked by a script. Free sample. - [Incident response and forensics lab: investigate a compromised server in your browser](https://mitsurutech.co.uk/help/lab-incident-response): A forensics lab: a hacked server’s SSH and web logs in one Ubuntu VM, find the attacker’s IP and what was left behind, and a script marks it. Free sample. - [SQL injection lab: attack a weak shop search, fix the query and prove the fix](https://mitsurutech.co.uk/help/lab-sqli-fix): Attack a deliberately weak shop search in each student’s private lab copy, fix the query and prove it. Nothing to install; source on GitHub. - [Linux administration lab: users, permissions, cron and systemd in your browser](https://mitsurutech.co.uk/help/lab-linux-admin): A Linux administration lab: users and groups, a shared folder, a cron job and a systemd service on a private Ubuntu VM, marked by a script. Free sample. - [Everyday Linux commands lab: the thirty commands engineers type from memory](https://mitsurutech.co.uk/help/lab-linux-everyday): A Linux lab for the commands engineers use daily: files, logs, processes, archives, ssh and scp, on a private Ubuntu VM with five short lessons. Free sample. - [Compilers and computer architecture lab: gcc, flex, bison and RISC-V in one VM](https://mitsurutech.co.uk/help/lab-compilers-arch): A compilers lab on a private Ubuntu VM: gcc stage by stage, flex and bison, RISC-V assembly on qemu and a cache timed. Two short lessons. Free sample. - [Docker basics lab: learn containers, logs and restarts by fixing a broken service](https://mitsurutech.co.uk/help/lab-docker-basics): Three containers in each student’s private lab copy, one broken on purpose: read its log, fix it and restart it with docker. Nothing to install; code on GitHub. - [Mutillidae lab: practise SQL injection and XSS on a vulnerable PHP web application](https://mitsurutech.co.uk/help/lab-mutillidae): OWASP Mutillidae II with its database and directory in each student’s private lab copy: SQL, LDAP and script injection. Nothing to install; code on GitHub. - [WrongSecrets lab: find hardcoded secrets and learn where secrets belong](https://mitsurutech.co.uk/help/lab-wrongsecrets): OWASP WrongSecrets in each student’s private lab copy: fake secrets hidden in code, pages and config to find. Nothing to install; source on GitHub. - [Web server hardening lab: fix a weak nginx configuration and check it with curl](https://mitsurutech.co.uk/help/lab-harden-nginx): Fix a deliberately weak nginx server in each student’s private lab copy: headers, folder listing, hidden files. Nothing to install; source on GitHub. - [AI coding agent lab: use opencode to explain and fix code, and check its work](https://mitsurutech.co.uk/help/lab-ai-agent): A private copy with opencode, an open-source AI coding agent, and a small program with a bug. Students ask, read each change and test it. Code on GitHub. - [Install an AI coding agent lab: npm, a config file and a model](https://mitsurutech.co.uk/help/lab-ai-agent-install): A private copy with nothing installed: students install opencode from npm, connect it to a model with its config file, and use it. Code on GitHub. ## This file in other languages - https://mitsurutech.co.uk/llms.txt - https://mitsurutech.co.uk/fr/llms.txt - https://mitsurutech.co.uk/ja/llms.txt - https://mitsurutech.co.uk/es/llms.txt - https://mitsurutech.co.uk/de/llms.txt