If you want to use docker there's https://github.com/ba-st/docker-pharo and others that I don't remembar now that provides the basics.
You have some examples in https://github.com/ba-st/docker-pharo/blob/master/docs/Examples.md .

We're deploying our apps as docker containers so ask any question if you have doubts.

On Tue, Oct 6, 2020 at 9:48 AM Tim Mackinnon <tim@testit.works> wrote:
Some great answers everyone - really appreciate it.

I think that all things considered, SimplePersistence seems like a very easy place to start, and then I can "upgrade" when my super awesome idea (not), exceeds its bounds.

I wonder if these answers should go somewhere in a tips section somewhere, and get updated yearly.

@jonathan I had forgotten about those server tools - I think the last time I did something it predated some earlier tips the Sven had given, so will check it out. Back then, I did have a GitLab build pipeline autodeploying for me, so I'm hoping I can re-incarnate all of that so I can get my little app running with no fuss... lets see.

While I have a love/hate with Docker - I did wonder if there was something for Pharo that just let me build my image into a container and then it would just work with little system knowledge needed (as I keep forgetting all the voodoo between times when I need it). Maybe there is, or maybe it might come one day soon...

Tim

On Tue, 6 Oct 2020, at 9:40 AM, Jonathan van Alteren wrote:
Hi Tim,

I've been running Seaside applications on Hetzner cloud servers for more than a year now, with great pleasure and success:��https://www.hetzner.com/cloud
I guess their servers are similar to Digital Ocean, although I haven't followed the development of their products and solutions for quite a while. Setting up a new server at Hetzner is a breeze, and you can start already for as low as ���2,49 per month!

We're using Voyage on MongoDB for persistence. After learning some hard lessons (and I'm sure there are more to come ;-)), I really enjoy the unobtrusiveness of it. Most of the time, it doesn't require much attention and allows me to add persistence to real OO designs quickly and easily. I find it a welcome change from the relational database work I used to (need to) do, back when I was still doing Java. The 'everything an object' principle of Pharo/Smalltalk really makes it shine.

I can't help you with a list of tradeoffs though. If you come across a set of arguments, I'd be happy to give feedback.

By the way, I forked Sven's pharo-server-tools project (here:��https://github.com/objectguild/pharo-server-tools) and have a routine going that suits me well enough. Still lots of room for improvement, but it's OK for my current needs.

Future plans are to use the Hetzner API to provision a new server and use something like Chef or Ansible to install/configure it automatically to be ready to deploy a Seaside application. I'd like to integrate this into a full service CI/CD pipeline in the future, to be able to do automated production deployments without service interruption if possible. For this scenario, I would really also like to switch to using GemStone for persistence.

Hope this helps! Let me know what you decide and I might be able to help with some technical stuff.

Kind regards,

Jonathan van Alteren

Founding Member | Object Guild B.V.
Sustainable Software for Purpose-Driven Organizations

On 6 Oct 2020, 00:23 +0200, Tim Mackinnon <tim@testit.works>, wrote:

Hi everyone - I���m wondering what is the recommended way to save some simple user data for a Pharo application I would like to run on the cloud (probably initially digital ocean, but could be AWS if it came to it).

Initially I thought I might try and run my little app in Digital ocean (I followed someone���s steps a few years ago, and had a simple seaside app running quite well) - so I was thinking of starting there.

I know there is Sven���s P3 - but I���m not sure I���m ready to run and maintain a SQL database for a simple application, but could be persuaded it its simple to setup with little maintenance. Would mongo be a suggestion - is that easy to setup and run? (And is that Voyage?).

Possibly I could even use image persistence, and fuel out a Dictionary from time to time - but I think that might be a little bit too belt and braces for me.

Is there something that gives a little table of tradeoffs with some simple ways to get started?

Tim