Django 앱을 어떻게 패키지하고 판매합니까?
-
03-07-2019 - |
문제
현재 저는 고객을 위해 스스로 개발 한 Django 앱을 주최하고 있지만 이제는 사람들이 자신을 호스트 할 수 있도록 사람들에게 판매하기 시작했습니다.
내 질문은 이것입니다 : Django 앱을 패키지하고 판매 할 수있는 방법은 무엇입니까? 많은 .py 파일을 배포하는 것은 내가 판매하는 사람들이 사본을 만들어 전달할 수 있기 때문에 좋은 생각처럼 들리지 않습니다.
이 문제의 목적 상이 문제를 구매하는 모든 사람이 동일한 (램프) 설정을 실행한다고 가정하는 것이 안전 할 것이라고 생각합니다.
해결책
코드를 시도하거나 난독 화하거나 암호화하지 마십시오. 절대 작동하지 않습니다.
Django 응용 프로그램을 "서비스"로 판매하는 것이 좋습니다. 그리고 지원. 재분배하는 것을 금지하는 계약을 작성하십시오.
즉, 코드를 어떤 식 으로든 난독 화하기로 결정한 경우 - Python 응용 프로그램을 전적으로 .pyc (Python Compiled Byte -Code)로 배포 할 수 있습니다. Py2app의 작동 방식입니다.
여전히 재배치 할 수 있습니다. 하지만 파일을 편집하는 것은 매우 어려울 것입니다. 따라서 몇 가지 기본 라이센스 물건을 추가 할 수 있으며 몇 가지에 의해 장애가되지 않습니다. #
에스..
내가 말했듯이, 나는 당신이 암호화 또는 난독 화 등을 통해 불법 복제에 성공하지 못할 것이라고 생각하지 않습니다. 고객에 따라 간단한 계약 및 일부 기본 점검은 일부 복잡한 암호 해독 시스템보다 훨씬 오래 진행될 것입니다. (그리고 응용 프로그램 사용 경험을하십시오 더 나은, 대신에 바라건대 더 나쁘지 않기를 바랍니다)
다른 팁
내가 생각하는 방식은 이것입니다.
- 모든 코드를 암호화합니다
- 머신의 호스트 이름 및 라이센스 파일로 서버에 연락하고 암호 해독 키를 가져온 다음 코드를 해독하고 Python Bytecode로 컴파일하는 설치 프로그램을 작성하십시오.
- (설치자에) 추가에서 기계의 호스트 이름과 라이센스 파일을 점검하고 일치하지 않으면 사망하는 모듈을 추가하십시오.
이런 식으로 사용자는 호스트 이름이 변경되고 첫 번째 설치시 서버에만 연락해야하지만 작은 보안 계층을 얻습니다. 호스트 이름을 더 복잡한 것으로 바꿀 수는 있지만 실제로는 필요하지 않습니다. 해적을 원하는 사람은 그렇게 할 것이지만, 그와 같은 간단한 메커니즘은 정직한 사람들을 정직하게 유지할 것입니다.
AMI (Amazon Machine 인스턴스)로 모든 것을 포장 한 다음 앱을 실행하도록 할 수 있습니다. 아마존 EC2. 이 솔루션의 좋은 점은 아마존이 청구를 처리하십시오, 전체 머신 이미지를 배포하므로 모든 클라이언트가 동일한 램프 스택을 사용하고 있는지 확인할 수 있습니다. AMI는 원하는 그러나 원하는 암호화 된 기계 이미지입니다.
일회성 수수료, 사용 기반 수수료 또는 월 수수료로 Amazon Bill에게 고객을 가질 수 있습니다.
물론이 솔루션은 고객이 아마존에서 앱을 호스팅하고 적절한 수수료를 지불해야합니다.
"암호화"파이썬 소스 코드 (또는 바이트 코드 또는 파이썬뿐만 아니라 사용하는 모든 언어의 바이트 코드)는 일부 사람들이 웹 페이지에 올려 놓기 위해 오른쪽 마우스 버튼을 비활성화하려고 시도하는 작은 JavaScript와 같습니다. " 이제 내 이미지를 훔칠 수 없습니다! "
해결 방법은 사소하며 결정된 사람을 막을 수는 없습니다.
Python 소프트웨어를 판매하는 것이 진지하다면 진지하게 행동해야합니다. 라이센스/계약 조건을 작성하여 변호사에게 지불하고 구매시 사람들이 동의하도록 한 다음 실제 소프트웨어를 갖도록하십시오. 즉, 라이센스/계약 조건을 위반하면 사람들을 법정에 가져와야하지만, 어떤 일이 있어도 (누군가가 "암호화"를 깨고 소프트웨어 배포를 시작하는 경우) 서명과 함께 이미 종이에 설정된 실제 적절한 형태의 법적 단어는 장기적으로 비즈니스에 훨씬 더 좋습니다.
당신이 정말로 저것 그러나 사람들에 대한 편집증은 소프트웨어를 "도둑질"하지만 호스팅 된 모델을 고수하고 서버에 액세스하지 마십시오. 많은 성공적인 비즈니스가 그 모델을 기반으로합니다.
당신은 실제로 그것을 원하는 사람들로부터 소스 코드를 유지할 수 없습니다. 지금이 사실을 파악하고 나중에 두통을 구하는 것이 가장 좋습니다.
친구로서 솔직하게 말해도 될까요? 앱이 정말 놀랍지 않으면 많은 구매자를 얻지 못할 수도 있습니다. 왜 변호사, 난독 화, 라이센스 및 무엇에 대한 시간을 낭비합니까? 코드를 오픈 소싱하고 유지함으로써 더 나은 평판을 얻습니다.
Django는 라이센스 (및 난독 화)에서 스펙트럼의 오픈 소스 끝에서 나옵니다. 물론 MIT 라이센스는 GPL보다 더 일반적입니다. 여전히 그들은 Microsoft의 EULA와 같은 것에서 멀리 떨어져 있습니다. 많은 djangophiles는 Microsoft가하는 일이기 때문에 닫힌 소스 코드로 발전 할 것입니다.
또한 사람들은 코드를 읽고 악의적 인 코드가 포함되어 있지 않은지 확인할 수 있기 때문에 코드를 더 신뢰할 수 있습니다. "obfuscating"은 "숨어"를 의미합니다. 그리고 누가 당신이 무엇을 숨겼는지 정확히 알 수 있습니까?
물론, 오픈 소스 코드를 수익을 창출하는 쉬운 방법은 없습니다. 그러나 당신은 당신의 모든 위대한 일에 감사하는 사람들을 위해 서비스를 제공하거나 pledgie.com에 캠페인을 게시 할 수 있습니다.
당신이 고려하고 싶은 한 가지는 Fogbugz가하는 일입니다. 대상 플랫폼에 대해 편집 된 소형 바이너리 (아마도 C 프로그램)를 포함시키고 라이센스를 검증하기위한 코드를 포함합니다.
이렇게하면 정직한 사람들을 최소한의 두통으로 정직하게 유지할 수 있습니다.