Hardware you'll need:
Raspberry Pi (suggest newest w/ largest RAM for web server)
Compatible USB-C power supply
Monitor & special monitor cable compatible with Pi
USB Keyboard & USB mouse
32GB Class 10 Micro SD memory card (Have 2 and create a backup OS installation)
Wired ethernet connection HIGHLY recommended
Download the Raspberry Pi Imager software here.
This will allow you to install the OS onto the micro SD card for the Raspberry Pi.
The imager has the option to just install the standard Raspberry Pi OS with the desktop, I'd choose that.
If you want to use a specific OS you can download them here.
Here are more detailed instructions for installing the OS:
https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/2
Keep following the directions on the page to finish the setup of the Raspberry Pi.
Make the password for the server easy because you and all the students will be using it to remote into the server for class each day.
I would HIGHLY suggest using a physical ethernet cable connection instead of wireless for the server. You may run into bandwidth problems over wireless with 18-20 students connected simultaneously.
After setting up the Raspberry Pi you can type the following command in the terminal on the Raspberry Pi server you just setup:
hostname -I
It should produce output similar to to above, in this case the server ethernet IP is 192.168.1.165
If your school network is running DHCP you may want to talk with the administrator and have them make a DHCP reservation or a static reservation for this IP so it doesn't change. Otherwise you may have to periodically check for the new IP address if it changes via DHCP.
If you don't have a keyboard, mouse and monitor attached (called running headless), you might be able to find the IP address of the Pi like this:
ping raspberrypi.local
If you are running headless here are more instructions to be able to figure out your IP address:
SSH will need to be enabled so you and the students can access the Raspberry Pi over the network. Type the following in the terminal on the Raspberry Pi server:
sudo systemctl enable ssh
sudo systemctl start ssh
If this doesn't work or you need to do this in a headless setup, look here:
https://www.raspberrypi.org/documentation/remote-access/ssh/
Type these commands to install the Apache web server so we can create web pages.
sudo apt update
sudo apt full-upgrade
sudo apt install apache2 -y
The update and upgrade process can take a long time... Get a cup of coffee...
After these commands finish, test your web server by typing the IP in your web browser address bar, in this case 172.16.12.80
You should see the default index.html page load:
I then remove this page so instead of a default page, it will list all the files on the web server. This is great because it makes it easy to see all the student files created.
sudo rm /var/www/html/index.html
/var/www/html is the web server root where you and students will create all your HTML files for the class!