1

Over time I have installed applications that offer or require an interface runs through the browser on localhost (for example, Transmission web interface, StackApplet configuration, Veracity web interface). I also develop software that I test via localhost.

Of course, all these applications must run on different ports, and if there happen to be conflicts it is up to me to resolve them by configuring the application in question. But I have no localhost "manager" that I could use to:

  • require applications register themselves against (e.g. for port allocation)
  • record port allocations (if the underlying application doesn't have the functionality to register itself)
  • start/stop the web services
  • control port access from other machines on the network/Internet
  • other things I haven't thought of ;)

As more end-user-style applications offer web interfaces, it looks like I'll end up running a little multi-application web server for myself. How can I (easily) manage this?

lofidevops
  • 20,924

2 Answers2

2

Juju would be good for this for one major reason, with the local provider each of those applications would be in their own separate LXC container, so they could be isolated amongst themselves.

Juju would handle the management of those services (the starting and the stopping) and the port registration. Most charms allow you to set a config option for which port to listen to so you could keep those nice and managed.

The other plus would be the ability to then push those applications to another machine/cloud when you're done developing them.

A minus would be overhead, do you really need an entire container for your torrent web interface?, etc. But on the other hand if they all share one mysql instance then that might make more sense.

Control port access to other machines on the network would be tricky, the local provider is kind of designed for you to develop these apps from your local machine, and not so much to have other machines on the network access these services, however if you know how to configure LXC networking properly you should be able to do this. See also:

Jorge Castro
  • 71,754
1

Sandstorm is a self-described "personal cloud platform" for "self-hosted federated web apps". In other words, it's a platform specifically designed this use-case in mind.

As of writing (August 2014):

  • it is still in development (functional, but, for example, doesn't yet guarantee sandboxing)
  • does not yet have a PPA or .deb installation process (uses an installation script instead)
  • requires that apps are appropriately ported
  • already (kind of) supports Mailpile (one of the applications that got me thinking about this) as well as Tiny Tiny RSS, MediaGoblin and others
  • doesn't seem like porting of less sharey/federated applications is likely (e.g. StackApplet configuration)
  • doesn't have the port-from-laptop-to-public-cloud use-case that Juju does
lofidevops
  • 20,924