Showing posts with label smalltalk azure seaside smalltalkazure seasideazure. Show all posts
Showing posts with label smalltalk azure seaside smalltalkazure seasideazure. Show all posts

Monday, 23 December 2019

Deploying Smalltalk Web Application (Pharo Seaside) on Azure Cloud

In this blog, we going through the steps on setting an Azure Cloud and deploying Pharo Seaside.

Azure Cloud Environment

- Create a Resource Group (e.g. smalltalk)
- Create a new VM resource to the "smalltalk" resource group

  • Ubuntu Server 18.04 LTS
  • Assign a machine name (e.g. smalltalkcloud)
  • Select region, size, authentication, load balancing as per individual needs
  • On DNS settings, select Static IP address and assign a DNS name label (e.g. smalltalkcloud)
  • On Networking settings, add an Inbound Port Rule allowing Port 8080

Installing Seaside

- Install a clean Pharo Image on the VM

  • On Azure Portal, open a Cloud Shell and ssh to the VM using the following example command
    > ssh smalltalkcloud.eastus.cloudapp.azure.com
  • Install a clean Pharo Image on the VM
    > wget -O- https://get.pharo.org/64 | bash (Or .. curl -L https://get.pharo.org/64/ | bash)
    > ./pharo Pharo.image printVersion  (To validate the Pharo installation)
  • Create a clean working image (i.e. seaside.image) from the original Pharo.image
    > ./pharo Pharo.image save seaside
- Install Seaside to a working image
  • Load Seaside to the working image (the metacello install load the Seaside3 baseline and save the loaded image)
    > ./pharo seaside.image metacello install github://SeasideSt/Seaside:master/repository BaselineOfSeaside3
  • Create a Smalltalk file (e.g. startseaside.st) to start Seaside server, with the following file content ...
    (ZnServer defaultOn: 8080)
          logToTranscript;
          start.
  • Start Seaside with the following command.
    > nohup ./pharo seaside.image st startseaside.st
  • HTTP to the link http://smalltalkcloud.eastus.cloudapp.azure.com:8080/, shall see the Seaside welcome page