Hi guys,
I promised that I'd write up how the Self websites are being hosted.
We rely on Wordpress for our blog, and Nabble for our mailing list archive. Downloads are served up from a Amazon EC2 bucket and our source files for the default World and the VM are on GitHub.
However www.selflanguage.org, handbook.selflanguage.org and bibliography.selflanguage.org are all hosted ourselves. They are on a Fedora 19 VM at DigitalOcean. Each site is a Self world running a Self webserver, behind nginx. Each Self world is running in a SELinux sandbox which allows it (hopefully!) only enough permissions to run and be a server on a TCP port.
Tieing all of this together is a first pass at Self-focused management software. Users can upload, run and connect to running Self worlds (command line only so far). Each world is given a port, if it runs a webserver on that port then it will be live at:
snapshotname.username.messaging.io
External domain names can then be aliased to these names. Eg, selflanguage.org is aliased to www.self.messaging.io (ie a snapshot called 'www' run by the 'self' user)
So in essence it is a very small Self cloud.
The management software at the moment is a few small python and bash scripts with < 1000 lines all up, and it doesn't scale beyond a single Linux VM.
You talk to it through a small python script called 'mio' which connects via XML-RPC over https. I've put a sample session below.
I plan on making a couple more fixes/enhancements then maybe opening it up to people on this mailing list to play with if anyone's interested.
Russell
Here is an example session:
mio list
basic
mio copy basic test mio list
basic test
mio wake test mio awake
test
mio connect test
Connecting... (^c to disconnect) for I386: LogVMMessages = true for I386: PrintScriptName = true for I386: Inline = true for I386: SICDeferUncommonBranches = false (not implemented) for I386: SICReplaceOnStack = false (not implemented) for I386: SaveOutgoingArgumentsOfPatchedFrames = true
Welcome to the Self system! (Version 4.4)
Copyright 1992-2011 AUTHORS. See the legal/LICENSE file for license information and legal/AUTHORS for authors.
Type _Credits for full credits.
VM version: 4.1.13
"Self 35" 3 + 4 7 "Self 36" ^C Disconnected
mio tell test save mio sleep test mio awake mio list
basic test
mio delete test mio list
basic
Hey Russell,
On 04.02.2014, at 06:19, Russell Allen mail@russell-allen.com wrote:
Hi guys,
I promised that I'd write up how the Self websites are being hosted.
We rely on Wordpress for our blog, and Nabble for our mailing list archive. Downloads are served up from a Amazon EC2 bucket and our source files for the default World and the VM are on GitHub.
However www.selflanguage.org, handbook.selflanguage.org and bibliography.selflanguage.org are all hosted ourselves. They are on a Fedora 19 VM at DigitalOcean. Each site is a Self world running a Self webserver, behind nginx. Each Self world is running in a SELinux sandbox which allows it (hopefully!) only enough permissions to run and be a server on a TCP port.
Thats darn cool!
Tieing all of this together is a first pass at Self-focused management software. Users can upload, run and connect to running Self worlds (command line only so far). Each world is given a port, if it runs a webserver on that port then it will be live at:
snapshotname.username.messaging.io
External domain names can then be aliased to these names. Eg, selflanguage.org is aliased to www.self.messaging.io (ie a snapshot called 'www' run by the 'self' user)
So in essence it is a very small Self cloud.
The management software at the moment is a few small python and bash scripts with < 1000 lines all up, and it doesn't scale beyond a single Linux VM.
You talk to it through a small python script called 'mio' which connects via XML-RPC over https. I've put a sample session below.
I plan on making a couple more fixes/enhancements then maybe opening it up to people on this mailing list to play with if anyone's interested.
Russell
Here is an example session:
mio list
basic
mio copy basic test mio list
basic test
mio wake test mio awake
test
mio connect test
Connecting... (^c to disconnect) for I386: LogVMMessages = true for I386: PrintScriptName = true for I386: Inline = true for I386: SICDeferUncommonBranches = false (not implemented) for I386: SICReplaceOnStack = false (not implemented) for I386: SaveOutgoingArgumentsOfPatchedFrames = true
Welcome to the Self system! (Version 4.4)
Copyright 1992-2011 AUTHORS. See the legal/LICENSE file for license information and legal/AUTHORS for authors.
Type _Credits for full credits.
VM version: 4.1.13
"Self 35" 3 + 4 7 "Self 36" ^C Disconnected
mio tell test save mio sleep test mio awake mio list
basic test
mio delete test mio list
basic
Yes, amazingly cool! A website hosted in Self!!
On Feb 5, 2014, at 3:05 AM, Tobias Pape Das.Linux@gmx.de wrote:
Hey Russell,
On 04.02.2014, at 06:19, Russell Allen mail@russell-allen.com wrote:
Hi guys,
I promised that I'd write up how the Self websites are being hosted.
We rely on Wordpress for our blog, and Nabble for our mailing list archive. Downloads are served up from a Amazon EC2 bucket and our source files for the default World and the VM are on GitHub.
However www.selflanguage.org, handbook.selflanguage.org and bibliography.selflanguage.org are all hosted ourselves. They are on a Fedora 19 VM at DigitalOcean. Each site is a Self world running a Self webserver, behind nginx. Each Self world is running in a SELinux sandbox which allows it (hopefully!) only enough permissions to run and be a server on a TCP port.
Thats darn cool!
Tieing all of this together is a first pass at Self-focused management software. Users can upload, run and connect to running Self worlds (command line only so far). Each world is given a port, if it runs a webserver on that port then it will be live at:
snapshotname.username.messaging.io
External domain names can then be aliased to these names. Eg, selflanguage.org is aliased to www.self.messaging.io (ie a snapshot called 'www' run by the 'self' user)
So in essence it is a very small Self cloud.
The management software at the moment is a few small python and bash scripts with < 1000 lines all up, and it doesn't scale beyond a single Linux VM.
You talk to it through a small python script called 'mio' which connects via XML-RPC over https. I've put a sample session below.
I plan on making a couple more fixes/enhancements then maybe opening it up to people on this mailing list to play with if anyone's interested.
Russell
Here is an example session:
mio list
basic
mio copy basic test mio list
basic test
mio wake test mio awake
test
mio connect test
Connecting... (^c to disconnect) for I386: LogVMMessages = true for I386: PrintScriptName = true for I386: Inline = true for I386: SICDeferUncommonBranches = false (not implemented) for I386: SICReplaceOnStack = false (not implemented) for I386: SaveOutgoingArgumentsOfPatchedFrames = true
Welcome to the Self system! (Version 4.4)
Copyright 1992-2011 AUTHORS. See the legal/LICENSE file for license information and legal/AUTHORS for authors.
Type _Credits for full credits.
VM version: 4.1.13
"Self 35" 3 + 4 7 "Self 36" ^C Disconnected
mio tell test save mio sleep test mio awake mio list
basic test
mio delete test mio list
basic
self-interest@lists.selflanguage.org