Как я могу упаковать и продать приложение Django?

В настоящее время я принимаю приложение Django, которое я разработал для своих клиентов, но теперь я начинаю смотреть на продажу его людям, чтобы они могли разместить себя.

мой вопрос таков: как я могу упаковать и продать приложение Django, защищая его код от пиратства или кражи? Раздавать кучу .файлы py не кажутся хорошей идеей, поскольку люди, которым я их продаю, тоже могут просто сделать копии и передать их.

Я думаю для этого проблема было бы безопасно предположить, что каждый, кто покупает это, будет работать с той же (лампой) настройкой.

7 ответов


Не пытайся скрыть или зашифровать код - он никогда не будет работать.

Я бы предложил продать приложение Django "как услугу" - либо разместить его для них, либо продать им код и. Напишите контракт, который запрещает им распространять его.

тем не менее, если вы решили каким - то образом запутать код-вы можете распространять приложения python полностью как .pyc (Python скомпилированный байт-код).. Это как Py2App завод.

Он по-прежнему будет повторно распространяться,но это будет очень трудно редактировать файлы-так что вы можете добавить некоторые основные лицензионные вещи, и не сорвать его несколько #s..

Как я уже сказал, Я не думаю, что вы преуспеете в борьбе с пиратством с помощью шифрования или запутывания и т. д.. В зависимости от ваших клиентов, простой контракт и, возможно, некоторые действительно основные проверки будут идти намного дальше, чем какая-то сложная система дешифрования (и сделать опыт использование приложения лучше, вместо надеюсь, не хуже)


Я бы сделал вот что:

  1. зашифровать весь код
  2. напишите установщик, который связывается с сервером с именем хоста и файлом лицензии машины и получает ключ дешифрования, затем расшифровывает код и компилирует его в байт-код python
  3. добавить (в установщике) модуль, который проверяет имя хоста машины и файл лицензии при импорте и умирает, если он не соответствует

таким образом, пользователь должен связаться только с сервером когда имя хоста изменяется и при первой установке, но вы получаете небольшой уровень безопасности. Вы можете изменить имя хоста на что-то более сложное, но в этом действительно нет необходимости-любой, кто хочет пиратствовать, сделает это, но простой механизм, подобный этому, будет держать честных людей честными.


вы можете упаковать все это как экземпляр Amazon Machine (AMI), а затем запустить приложение на Amazon EC2. Хорошая вещь об этом решении является то, что Amazon будет позаботьтесь о биллинге для вас, и поскольку вы распространяете весь образ машины, вы можете быть уверены, что все ваши клиенты используют один и тот же стек лампы. AMI-это зашифрованный образ машины, который настроен так, как вы хотите.

У вас может быть Amazon bill клиент с единовременной оплатой, оплатой за использование или ежемесячной оплатой.

конечно, это решение требует, чтобы ваши клиенты размещали свое приложение в Amazon и платили соответствующие сборы.


"шифрование" исходного кода Python (или байт-кода или действительно байт-кода для любого языка, который его использует, а не только Python) похоже на те маленькие JavaScript-вещи, которые некоторые люди помещают на веб-страницы, чтобы попытаться отключить правую кнопку мыши, объявив: "теперь вы не можете украсть мои изображения!"

обходные пути тривиальны и не остановят решительного человека.

Если вы действительно серьезно относитесь к продаже части программного обеспечения Python, вам нужно действовать серьезно. Оплатить адвоката составьте условия лицензии / контракта, попросите людей согласиться на них во время покупки, а затем просто дайте им фактическое программное обеспечение. Это означает, что вам придется тащить людей в суд, если они нарушают условия лицензии / контракта, но вам придется делать это независимо от того, что (например, если кто-то сломает ваше "шифрование" и начнет распространять ваше программное обеспечение), и наличие фактической надлежащей формы юридических слов, уже записанных на бумаге, с их подписью, будет намного лучше для вашего бизнеса в долгосрочной перспективе срок.

Если ты действительно это параноик о людях, "крадущих" ваше программное обеспечение, хотя, просто придерживаться размещенной модели и не давать им доступ к серверу. Многие успешные компании основаны на этой модели.


вы никогда не сможете сохранить исходный код от людей, которые действительно этого хотят. Лучше всего смириться с этим сейчас, а головную боль отложить на потом.


одна вещь, которую вы, возможно, захотите рассмотреть, - это то, что делает FogBugz. Просто включите небольшой двоичный файл (возможно, программу на C), который компилируется для целевых платформ и содержит код для проверки лицензии.

таким образом, вы можете держать честных людей честными с минимальной головной болью с вашей стороны.


могу я говорить откровенно, как друг? Если ваше приложение действительно потрясающее, вы можете не получить много покупателей. Зачем тратить время на адвокатов, запутывание, лицензирование и все такое? Вы можете получить лучшую репутацию, открыв свой код...и поддерживал его.

Django происходит от конца спектра с открытым исходным кодом от лицензирования (и запутывания). Конечно, лицензия MIT более распространена, чем GPL; тем не менее они оба очень далеки от чего-либо подобного EULA Microsoft. Ля многие Djangophiles будут отказываться от закрытого исходного кода, просто потому, что это то, что делает Microsoft.

кроме того, люди будут доверять вашему коду больше, так как они смогут прочитать его и убедиться, что он не содержит вредоносного кода. Помните, что "запутывание" означает "сокрытие", и кто точно знает, что вы скрываете?

конечно, нет простого способа монетизировать код с открытым исходным кодом. Но вы можете предложить свои услуги или даже разместить кампанию на Pledgie.com для тех, кто благодарен за вашу великую работу.