Нулевое развертывание CouchDB, встроенное в приложение Windows?

Мне, наверное, приснится здесь, но мне интересно, есть ли возможность полностью внедрить минимальный движок CouchDB в приложение Windows, чтобы приложение можно запускать без необходимости установки (на CouchDB/Erlang) на пользовательском компьютере.

Ответ 1

Я уже предоставляю эту уменьшенную/упакованную способность - проверьте здесь https://github.com/dch/couchdb/downloads и, в частности, скудный узел в 16MiB erlang + все кушетки любви здесь https://github.com/downloads/dch/couchdb/couchdb-1.1.0+COUCHDB-1152_otp_R14B03_lean.7z

Некоторые краткие заметки о связывании и встраивании couchdb в windows на wiki.apache.org/couchdb/Quirks_on_Windows, в том числе о том, как скрыть окно erlang (erl.exe -detached) при запуске.

Спросите в списке рассылки CouchDB @user, если вы хотите получить дополнительную информацию или помочь, пока у вас есть трещина.

Ответ 2

Хотя это не решение для кода, вы можете использовать одно из приложений для объединения, которое может вставлять файлы и другие файлы в один исполняемый файл. Например, BoxedApp.

Ответ 3

Зачем беспокоиться. Так легко установить Erlang на Windows. Просто соберите все это, включая двоичный файл erl.exe, и попросите установщика разархивировать его в папку. Единственное, что вам нужно будет изменить, это пакетные файлы или, еще лучше, отбросить их и написать собственный пакетный файл для запуска CouchDb. Кроме того, рекомендуется использовать другой порт, который либо обычный порт Erlang (или обычный порт CouchDB), либо даже может заставить Erlang использовать localhost в качестве своего "короткого имени".

Ответ 4

Wiki для CouchDB предоставляет как минимум несколько советов для Интеграция CouchDB в ваши приложения Windows. YMMV, из чего я могу сказать более или менее просто советы по созданию перемещаемой сборки. В процессе установки вы захотите создать надежный случайный пользователь/пароль администратора в файле local.ini и установить правильные разрешения для всех созданных баз данных (для защиты от любых возможных уязвимостей межсайтового скриптинга) в дополнение к обеспечению сокет привязывается только к локальному интерфейсу по умолчанию.