Насколько хорошо вы знаете / доверяете своим пользователям? Я надеюсь, что ответ содержит такие слова, как «чрезвычайно» и «глубоко». Как легко вы могли бы достать их чем-нибудь острым и болезненным, если они испортятся?
Я не могу придумать простой способ (черт возьми, я не могу придумать сложного), позволяющий загружать и устанавливать такие вещи. Даже с Wordpress я не думаю, что они позволяют устанавливать / запускать какие-либо случайные плагины на сайте, размещенном на WP - риск даже проблемного кода, вызывающего проблемы, просто кажется мне безумным.
Синатра, безусловно, даст гибкость, но, как вы уже определили, это может быть нехорошо,
Конечно, если ваши пользователи грамотны на Ruby / Sinatra (или могут стать приемлемо такими), вы можете предоставить им хранилище (git, svn или что-то еще) для их приложений и развернуть их в соответствующем месте в Rack либо ad hoc или по какому-либо расписанию.
Думая о копыте и без какого-либо представления о целесообразности, если функции, которые можно безопасно сделать доступными, относительно ограничены, вы можете рассмотреть вопрос о написании какого-либо ограниченного DSL для их использования. Если созданные таким образом сценарии были достаточно короткими / эффективными, возможно, их можно было бы сохранить в базе данных приложения и выполнить с помощью eval
?