On Wed, Aug 15, 2012 at 11:20 PM, David Precious <davidp@preshweb.co.uk>wrote:
I generally expect SSH, but that's probably from years of using my own servers; if I was a new developer, I might not need/expect that - especially from a free service :)
Obviously professional developers will mostly have their own server/EC2
instance so they would not be so attracted by this but perhaps to many people starting it is a simple way to share your local dancer application by simply dropping all the files via SFTP. chrooting ssh is possible but I wouldn't want to go that route for now (but very willing to give SSH access to trustable people :) )
What about database control? Do users get to connect to MySQL from outside the service to e.g. set up their schema?
each user has one MySQL database. We have implemented a quota for the DB
size just in case. Within their database they can do what they want.
What about dependencies? If a user wanted to use a CPAN module which isn't installed, is there any process to install it locally (or request that it be installed) or is it a case of "tough"? (That would be fair enough for free hosting :) )
I think the request to be installed would be the best way for now but I did install many modules and will be happy to add more that are commonly used so let me know if you see something important missing :)
gurugeek@i-781936be:/home/testme/www/public$ cpanlist $VAR1 = 'AppConfig'; $VAR2 = 'Authen::SASL'; $VAR3 = 'CGI::FormBuilder'; $VAR4 = 'Class::Inspector'; $VAR5 = 'Class::Load'; $VAR6 = 'Class::Singleton'; $VAR7 = 'Clone'; $VAR8 = 'DBD::SQLite'; $VAR9 = 'Dancer'; $VAR10 = 'Dancer::Plugin::Database'; $VAR11 = 'Dancer::Plugin::DebugDump'; $VAR12 = 'Dancer::Plugin::Email'; $VAR13 = 'Dancer::Plugin::SimpleCRUD'; $VAR14 = 'Data::Dump'; $VAR15 = 'Data::OptList'; $VAR16 = 'Date::Time'; $VAR17 = 'DateTime'; $VAR18 = 'DateTime::Locale'; $VAR19 = 'DateTime::TimeZone'; $VAR20 = 'Devel::StackTrace'; $VAR21 = 'Devel::StackTrace::AsHTML'; $VAR22 = 'Digest::HMAC'; $VAR23 = 'Dist::CheckConflicts'; $VAR24 = 'Email::Address'; $VAR25 = 'Email::Date::Format'; $VAR26 = 'Email::MIME'; $VAR27 = 'Email::MIME::ContentType'; $VAR28 = 'Email::MIME::Encodings'; $VAR29 = 'Email::MessageID'; $VAR30 = 'Email::Send'; $VAR31 = 'Email::Simple'; $VAR32 = 'Email::Stuff'; $VAR33 = 'File::ShareDir'; $VAR34 = 'File::Slurp'; $VAR35 = 'File::Type'; $VAR36 = 'Filesys::Notify::Simple'; $VAR37 = 'HTML::Table'; $VAR38 = 'HTML::Table::FromDatabase'; $VAR39 = 'HTTP::Body'; $VAR40 = 'HTTP::Server::Simple'; $VAR41 = 'HTTP::Server::Simple::PSGI'; $VAR42 = 'Hash::Merge'; $VAR43 = 'Hash::MultiValue'; $VAR44 = 'IO::Socket::SSL'; $VAR45 = 'List::MoreUtils'; $VAR46 = 'MIME::Types'; $VAR47 = 'Math::Round'; $VAR48 = 'Module::Implementation'; $VAR49 = 'Module::Metadata'; $VAR50 = 'Module::Runtime'; $VAR51 = 'Net::SMTP::SSL'; $VAR52 = 'Net::SMTP::TLS'; $VAR53 = 'Net::SSLeay'; $VAR54 = 'Package::DeprecationManager'; $VAR55 = 'Package::Stash'; $VAR56 = 'Package::Stash::XS'; $VAR57 = 'Params::Util'; $VAR58 = 'Params::Validate'; $VAR59 = 'Perl'; $VAR60 = 'Perl::OSType'; $VAR61 = 'Plack'; $VAR62 = 'Return::Value'; $VAR63 = 'Sub::Exporter'; $VAR64 = 'Sub::Install'; $VAR65 = 'Sub::Uplevel'; $VAR66 = 'Template'; $VAR67 = 'Template::Plugin::Markdown'; $VAR68 = 'Test::Deep'; $VAR69 = 'Test::Differences'; $VAR70 = 'Test::Exception'; $VAR71 = 'Test::Fatal'; $VAR72 = 'Test::NoWarnings'; $VAR73 = 'Test::Output'; $VAR74 = 'Test::Requires'; $VAR75 = 'Test::SharedFork'; $VAR76 = 'Test::TCP'; $VAR77 = 'Text::Diff'; $VAR78 = 'Text::Markdown'; $VAR79 = 'Try::Tiny'; $VAR80 = 'URI'; $VAR81 = 'YAML'; $VAR82 = 'prefork';