Web applications 作者如何有效地向其web应用程序打开代码?

Web applications 作者如何有效地向其web应用程序打开代码?,web-applications,open-source,licensing,Web Applications,Open Source,Licensing,当你打开一个现有的网站时,会有很多问题,我想看看其他人以前是如何解决的。有没有一些web应用程序的好例子,它们有一个公共源代码库 以下是我心目中的问题: 处理敏感数据:salt密钥、数据库连接信息等。我想您可以将它们存储在项目之外的文件中,并且只分发一个示例文件,供贡献者构建其本地版本 保护您的用户群:如果某个贡献者不想合作,并且想在不同的域/服务器上发布自己的版本,该怎么办?您可能会失去用户,这不仅不好,而且会让您的用户感到困惑 保护你的搜索引擎索引:如果你因为某人不小心在不同的www上发布

当你打开一个现有的网站时,会有很多问题,我想看看其他人以前是如何解决的。有没有一些web应用程序的好例子,它们有一个公共源代码库

以下是我心目中的问题:

  • 处理敏感数据:salt密钥、数据库连接信息等。
    我想您可以将它们存储在项目之外的文件中,并且只分发一个示例文件,供贡献者构建其本地版本
  • 保护您的用户群:如果某个贡献者不想合作,并且想在不同的域/服务器上发布自己的版本,该怎么办?
    您可能会失去用户,这不仅不好,而且会让您的用户感到困惑
  • 保护你的搜索引擎索引:如果你因为某人不小心在不同的www上发布了你网站的副本而受到谷歌的惩罚怎么办
我现在最好的猜测是使用一个标准的开源许可证,并添加一个额外的条款,基本上说你可以构建你的本地版本并修改供你自己使用,分发修改过的代码,但是你不能在公共的www上发布原始版本或修改过的版本(这样就有可能构建一个用于内部网的自定义版本,这不会损害网站的用户基础和索引)


我认为这与编程有关。换句话说,我的问题是,你如何能有效地让人们阅读/学习你的代码并做出贡献,而不损害已经建立的web应用程序和相关社区?

希望这能帮助其他人,a

  • 处理敏感数据:salt密钥、数据库连接信息等
    我想你可以把这些储存在一个仓库里 项目之外的文件, 并且只分发一个示例文件 供贡献者构建他们的本地 版本
在这里,您几乎可以自己回答这个问题。您完全正确;您不应该将敏感数据存储在代码中(无论如何也不应该这样做),而是将其存储在单独的配置文件中,并分发可以帮助生成配置文件的模板或脚本,或者类似的内容

  • 保护您的用户群:如果参与者不想合作,并想在其他域/服务器上发布自己的版本,该怎么办?
    这不仅是坏的,你可能失去用户,但它也混淆了你的用户
这就是copyleft许可证派上用场的地方。其中最流行的是GPL;这表示其他人可以修改您的程序,但如果他们分发修改后的版本,他们也必须发布源代码(这是一个简短的解释,请阅读,以了解更多详细信息)。web应用中的GPL的一个问题是,有人可以修改您的程序,而不是发布源代码,只要他们从不分发修改后的应用,而只是在自己的服务器上运行它(尽管随着越来越多的web应用使用JavaScript编写并分发到客户端,这一问题变得不那么严重)

由于这个原因,AGPL被写入,这就要求他们在服务器上运行应用程序时将源代码释放给他们的用户。然而,AGPL并不像GPL那么受欢迎,而且有很多相当重要的项目认为GPL对于服务器软件来说是足够好的(例如WordPress)。.你必须在这里对你的优先事项做出判断

  • 保护你的搜索引擎索引:如果你因为某人不小心在不同的www上发布了你网站的副本而受到谷歌的惩罚怎么办
通常情况下,您希望根据站点上出现的唯一内容术语,而不是使用相同软件的任何站点上出现的通用用户界面术语,对站点进行索引。当然,这取决于您的软件是否用于交付其他内容,或者它是否纯粹是一个应用程序界面

您可能希望将您自己的品牌、广告等与代码本身分开,以防止出现此问题。使用此服务所必需的任何条款都有可能被复制,但任何使您作为一家企业与众不同的条款都可以分开保存


再一次,想想WordPress。他们的名字在很多博客上都有,但他们没有受到谷歌的惩罚,商业WordPress服务在谷歌搜索中排名第三(位于开源项目的两个链接之后).

解决混淆问题的方法是开放源代码,但要在商标上标明您的品牌名称。您是想开放代码还是内容?恐怕大多数人只会在许可证下发布代码,并且只提供存根数据来启动和运行项目。@GrayWizardx:发布内容也是经常做的事最明显的例子是Wikipedia。一个“烹饪问题”会引起什么关注?我不明白,我希望将来有机会衍生我的网站(想想StackOverflow/ServerFault,或JapanesePod101/FrenchPod101.com)。CPAL听起来很接近我的需要。我刚刚读到CPAL、OSL和AGPL是“基于web的服务”的好许可证.Reddit使用CPAL。理论上,使用经典的GPL隐式地给了原著一个优势,因为每一个修改过的发行版都必须包含代码。这解决了与专有发行版竞争的问题,但没有解决给自己规划衍生产品的空间的问题。谢谢。我倾向于AGPL。我的网站更像,“塔达名单“。除非该应用程序被修改为在完全不同的环境中工作,否则它将划分用户,并且没有多大帮助。将品牌与代码分开是什么意思?徽标?也许最好将用于网站设计和徽标的图形资产保留为专有版权?是的,我指的是徽标、网站名称和