----- Setting the Server on the guest (NetPresenz) ----- __ __ __ ____ /\ \/\ \ /\ \__ /\ _`\ \ \ `\\ \ __ \ \ ,_\ \ \ \L\ \_ __ __ ____ __ ___ ____ \ \ , ` \ /'__`\ \ \ \/ \ \ ,__/\`'__\/'__`\ /',__\ /'__`\/' _ `\ /\_ ,`\ \ \ \`\ \/\ __/ \ \ \_ \ \ \/\ \ \//\ __//\__, `/\ __//\ \/\ \\/_/ /_ \ \_\ \_\ \____\ \ \__\ \ \_\ \ \_\\ \____\/\____\ \____\ \_\ \_\ /\____\ \/_/\/_/\/____/ \/__/ \/_/ \/_/ \/____/\/___/ \/____/\/_/\/_/ \/____/ The server software used on the System 7 guest is Netpresenz from Stairways Softwares : http://www.stairway.com/main/netpresenz can be downloaded here : http://macintoshgarden.org/apps/netpresenz Also a pdf manual can be downloaded from the "Files" section of this very server. This small gem can serve FTP, HTTP and Gopher, and support CGIs. It comes as Two applications : "NetPresenz" , the server app itself, which must be launched to get the server started, and : "NetPresenz Setup", which as the name implies, is used to set up what the "NetPresenz" server app will do. Comes also with quite extensive documentation about setting up FTP, HTTP... but much less about the Gopher side of things. I'll focus on HTTP and Gopher things that I feel aren't very clear in the documentation (that at least myself had hard time getting right cause of my slow brain), and things that aren't enough covered in the doc, ie Gopher. FTP can be activated, but will not be opened to the internet, because ... - SECURITY CONCERNS - ___ / \ _---------------------------_ \ / _/| FEAR THE WEB ! YOU FOOLS ! | | () () | / '-___________________________-' -. " .- """ """ (yes, running obsolete network software on the Internet can be "dangerous") Most of all because opening a FTP server to the internet with such an old software and obsolete security of System 7 is not very clever. the FTP side IS the very weak point of NetPresenz when it comes to security. That is because it uses the weak System 7 User & Groups to set access to drives/files/folders. Someone breaking the poor FTP password and gaining rights to upload things like Applescript, CGIs, on the guest System 7 could cause serious damage. Whereas, with HTTP and Gopher there are no ways to send orders/commands/scripts to a System 7 to get control of it. The server uses no PHP, no SQL... And the OS uses no command line (well it could, but very obscure, and it needs a very specific app to run for that). Good luck setting a Bitcoints mining or a spam robot on a System 7... That said, be careful, don't put any valuable infos/private files in your BasiliskII/Mac OS drives. Ready ? Ok : getting the authorizations right: NetPresenz uses the System 7 Sharing Setup to determine the accessibility of the server from the outside. That is for HTTP and Gopher, File Sharing MUST be enabled in the File Sharing control panel. Same in the Users & Groups control panel, double click the icon and "Allow guest to connect" MUST be checked. Take time to set/create your own user/owner to have access to all in these control panels too. Then in the finder You choose what drive or folder you wish to share by selecting it, then going to Menu -> Files -> Sharing. There, check "Share this item and its content", and for serving HTTP or Gopher, check all boxes for "Everyone", so that guests have full access on it. Example : To the 300Mb System 7.5.3 boot drive, I set full sharing access to the owner only (me). That is check all the boxes at "owner" like so : _______________________________________________________ |= O =================== MacOS753 ======================| |-------------------------------------------------------| | _____ | | l.____l Where : MacOS753, internal drive | | _ | | |x| Share this item and its contents | |_______________________________________________________| | See See Make | | Folders Files Changes | | ___________ _ _ _ | | Owner:| Me v | |x| |x| |x| | | =========== _ _ _ | | User/Group:| v | | | | | | | | | ----------- _ _ _ | | Everyone | | | | | | | |_______________________________________________________| | _ | | |x|Make all currently enclosed folders like this one | | | l_______________________________________________________i Guests won't have access to the boot drive. Now select the drive or folder you wish to share on the internet, on my setup it is the 4Gb disk image which host all the files served, and same, go to Menu -> Files -> Sharing. And check all access for everyone : _______________________________________________________ |= O ===================== 4Gb =========================| |-------------------------------------------------------| | _____ | | l.____l Where : 4Gb, internal drive | | _ | | |x| Share this item and its contents | |_______________________________________________________| | See See Make | | Folders Files Changes | | ___________ _ _ _ | | Owner:| Me v | |x| |x| |x| | | =========== _ _ _ | | User/Group:| v | |x| |x| |x| | | ----------- _ _ _ | | Everyone |x| |x| |x| | |_______________________________________________________| | _ | | |x|Make all currently enclosed folders like this one | | | l_______________________________________________________i Like so, guests (http and Gopher clients) will access to all files served there. (I even checked the "User/Group", but I've created no other user or group, so it's useless...) Ok, now lets create a directory in the 4Gb drive (the one shared to everybody where all the Gopher files will be served. Anything We'll put in there will be listed by the Gopher. But if one wants a nice ordered list of thing with nice ASCII arts it's more complicated. Open the "NetPresenz Setup" application and click on the "Gopher Setup" button. "Gopher Enabled" must obviously be checked. At "Gopher Host", enter your domain name if you already have one, ie for this place it's "galgot.hd.free.fr" . At "Root Directory" Just click the "Choose" button and navigate to the said folder created earlier where all files are served and select it. Other options can be left as default ("Enforced root" empty, and port at 70). In order to create a "gopher map" file incorporating how the Gopher "page" is displayed, one has to click the "Edit Gopher Directory view", and select the folder you wish the display content to be edited. Just choosing the folder, will create a file named "!Gopher Links", that is the Gopher map of the folder. Note, it can only be edited through NetPresenz with that "Edit Gopher Directory view" button, unlike other Gopher server which Gopher maps can be edited with a text editor. Changes made with something else than NetPresenz on that file (like with, say BBedit...) will either not display, or will mess up the whole page. The netPresenz Gopher Directory editor looks like this : ____________________________________________________________________ |= O ===================== Gopher Directory ======================|=|| |--------------------------------------------------------------------| ||a file |__| ||a folder | | ||another file | | ||another folder | | ||yet another file | | ||yet another folder | | || | | || | | || | | || | | || | | || | | || | | || |__| ||________________________________________________________________|__| || _________________ __________________ __________________ || || | Add Bookmark | | Add Link | | Edit Entry | || || ================= ------------------ ================== || || | Add Index Entry | | Remove Link | || || ================= ================== || || |Add telnet Entry | | Open Folder | || || ----------------- ------------------ || || ________ ________ ________ || || | Cancel | | Revert | | Save | || ||__________________________________________________________________|| -------------------------------------------------------------------- Every files or folder in the Gopher directory is listed alphabetically , and that is also how it will display in the Gopher client. Ok, let say one wants to add a nice ASCII art as a title/illustration to the top Gopher directory. First do your ASCII art in a text editor (I use BBEdit), and be sure to number each line, starting at 01, like so : 01 __ _______________ 02 /88| | 03 |888| =========== | 04 |888| | * || | 05 |888| | //| | 06 |888| | ////| | 07 |888| | __///////| | 08 |888| =========== | 09 |888|========:=====:| 10 ======|888| 0 | 11 ======\88|_______________| 12 =====\|_______________| 13 ================ 14 ___ _ _ _ 15 / __| |__ _ _____(_)__ _ __(_) 16 | (__| / _` (_-<_-< / _| _ | '_ \ | 17 \___|_\__,_/__/__/_\__| | .__/_| 18 |_| Leave that text file open, and copy the first line. Then in the NetPresenz Gopher Directory editor, click "add link" and fill the appearing window like so : ________________________________________________________ | | | File: | | ___________________________________________ | | Name |01 __ _______________ | | | =========================================== | | Type |i | | | =========================================== | | Path: | | | | =========================================== | | Host: | | | | =========================================== | | Port: | | | | ------------------------------------------- | | ________ ________ ________ | | | Cancel | | revert | | Ok | | | -------- -------- -------- | l________________________________________________________i ie, in the Name field paste the first line of your ASCII text art. And type a "i" in the type field to denote it's link. Leave all there other fields empty, so that this link will just appear as a text line in the Gopher client. And repeat that for each lines of your ASCII art. Each time adding a new "link" and pasting the next numbered line... Tedious isn't it :)... Anyway, the finished "product" should look (more or less) like this in the Gopher Directory editor: ____________________________________________________________________ |= O ===================== Gopher Directory ======================|=|| |--------------------------------------------------------------------| ||01 __ _______________ |__| ||02 /88| | | | ||03 |888| =========== | | | ||04 |888| | * || | | | ||05 |888| | //| | | | ||06 |888| | ////| | | | ||07 |888| | __///////| | | | ||08 |888| =========== | | | ||09 |888|========:=====:| | | ||10 ======|888| 0 | | | ||11 ======\88|_______________| | | ||12 =====\|_______________| | | ||13 ================ | | ||14 ___ _ _ |__| ||________________________________________________________________|__| || _________________ __________________ __________________ || || | Add Bookmark | | Add Link | | Edit Entry | || || ================= ------------------ ================== || || | Add Index Entry | | Remove Link | || || ================= ================== || || |Add telnet Entry | | Open Folder | || || ----------------- ------------------ || || ________ ________ ________ || || | Cancel | | Revert | | Save | || ||__________________________________________________________________|| -------------------------------------------------------------------- Yes, the ASCII will look broken in the editor window, but if you copy pasted the exact lines from your ASCII text file, no worries, it will display fine in the Gopher client. Of course, if one wants to add an empty line, it's done the same: add a link, the in the name field type the number of where you want the empty line followed by... nothing, then type "i" in the type field, and leave all else empty. Now how to add an actual working link ? For an HTTP web site for example. Lets click on add link, start the Name field with a line number corresponding to where you want the link to appear, followed by the link name or title. In the Type field type an "h", that is to specify an HTTP link. Initially I had difficulty making that work until consulting the Gopher protocol Wikipedia page : https://en.wikipedia.org/wiki/Gopher_(protocol) It states :" Historically, to create link to a Web server, "GET/" was used as a pseudo-selector to emulate an HTTP GET request." So add "GET /" (without quotes) in the Path field. In the Host field add the domain name of the site, like apple.com (but not http://apple.com), and finally to the Port field put the protocol port number, usually 80 for a http web site. It looks like this for a link to the Web site of this very server : ________________________________________________________ | | | File: | | ___________________________________________ | | Name |01-------> http://galgot.hd.free.fr | | | =========================================== | | Type |h | | | =========================================== | | Path: |GET/ | | | =========================================== | | Host: |galgot.hd.free.fr | | | =========================================== | | Port: |80 | | | ------------------------------------------- | | ________ ________ ________ | | | Cancel | | revert | | Ok | | | -------- -------- -------- | l________________________________________________________i Note I added some "cosmetic" characters after the line number, this is just for "page layout. Note also it doesn't work for every web site links, it's highly dependent on the Gopher client / Web browser you are using. But basic HTTP addresses (non secured) should works most of the time. It is possible to make links to sub pages of a web site, by adding the page path to the path field command, like so : GET /images/my-album.html But again this will work on some sites but not on others... NetPresenz is still a 1997 software, and the web as evolved a lot since then. Now let say one want to add a link to a text file, like the one you are reading right now. Prepare you text in an editor, BBedit is what I use, save it as .txt in the Gopher root folder with the name you like (when saving the file as txt, in the BBEdit save as option, be sure to select "Break Lines : Macintosh" in the drop down menu. To make a link to it, select it in the Gopher Directory Editor, and click "Edit Entry". ________________________________________________________ | | | File: - This Server - | | ___________________________________________ | | Name |34- - About this Server - | | | =========================================== | | Type |0 | | | ------------------------------------------- | | Path: | | | | Host: | | | | Port: | | | | ________ ________ ________ | | | Cancel | | revert | | Ok | | | -------- -------- -------- | l________________________________________________________i Again, I've taken example from this very server. in this case the text file is named "- This Server -" (but could be named anything you like), the Name field defines with what title and where it displays on the page, not the files name. Here we want the link to be line 34 on the page, and be titled "- About This Server -", the spaces are there to center the tittle as you like it in the page (some Gopher clients don't "see" these spaces tho...). And the Type is 0 for a text file.