Answers.Body: <p>I am not even going to try and answer it all in one go :-) But I am happy to share the configuration that my customers with remote CiviCRM's use.</p>
  
  <p>They all basically have a public website (Drupal 7 or 8 in most cases, Wordpress in some but in theory any CMS would do) on a server and a separate CiviCRM in a "dummy" Drupal 7 on another server. I use the word "dummy" because in this case Drupal 7 on this CiviCRM server really only is the operating system that makes CiviCRM run. </p>
  
  <p>They all use <strong>CMRF</strong> on their public website to be able to connect to another server. CMRF is a framework that enables a website to connect to one or more CiviCRM instance(s). The core is CMS agnostic, and there are currently implementations for Drupal 7, Drupal 8 and Wordpress. If an organization would want to use another CMS they could develop a CMRF implementation for that specific CMS. </p>
  
  <p>Almost all of our customers that work in that way use <strong>CiviProxy</strong> as a gatekeeper for their CiviCRM instance(s). CiviProxy is a a kind of policeman that checks if the request you want to send to the CiviCRM server is allowed. So the public website (or other webservices!) sends a request to CiviProxy, CiviProxy checks if the credentials are correct and if the request is allowed and if so, sends it to CiviCRM and returns the result. Documentation on CiviProxy: <a href="https://docs.civicrm.org/civiproxy/en/latest/" rel="noreferrer">https://docs.civicrm.org/civiproxy/en/latest/</a></p>
  
  <p>We use the <strong>Form Processor</strong> extension (<a href="https://civicrm.org/extensions/form-processor" rel="noreferrer">https://civicrm.org/extensions/form-processor</a>) to create webforms on the public website that communicate with CiviCRM. If the website is in Drupal 7, there is a module called CMRF Form Processor that makes it a little easier. Documentation on the Form Processor: <a href="https://docs.civicrm.org/formprocessor/en/latest/" rel="noreferrer">https://docs.civicrm.org/formprocessor/en/latest/</a></p>
  
  <p>We use the <strong>Data Processor</strong> extension (<a href="https://civicrm.org/extensions/data-processor" rel="noreferrer">https://civicrm.org/extensions/data-processor</a>) when we want to show data from CiviCRM on the public website.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T09:12:32.853Z
Answers.Text: Thanks very much for sharing! Just wondering if it is still possible to use views to display Civi data when it is on a separate server?
Answers.UserDisplayName: Ben
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-24T09:26:05.190Z
Answers.Text: Not as it is now, Views uses the tables from the CiviCRM database and not the API.
Answers.UserDisplayName: ErikH - CiviCooP
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-12T11:02:15.300Z
Answers.Text: When you say `We use the Data Processor extension (https://civicrm.org/extensions/data-processor) when we want to show data from CiviCRM on the public website.` do you mean on the same website or server or on separate ones? If so how do you get to achieve this connection?
Answers.UserDisplayName: Guillaume Sorel
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-08-12T12:24:31.640Z
Answers.Text: Could be both :-) The DataProcessor is in the end a REST API call so can be done from any CMS in theory. I am not sure if there is a Drupal module yet that shows data from the DataProcessor. I know Jaap Jansma is working on a Wordpress plugin.
Answers.UserDisplayName: ErikH - CiviCooP
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-06-17T08:25:24.857Z
Answers.LastActivityDate: 2020-06-17T08:25:24.857Z
Answers.UserDisplayName: ErikH - CiviCooP
Body: <p>The easiest common installation pattern is to have CiviCRM and the frontend website on the same server using the CMS as the website but it is often said there are benefits to keeping them separate.  Multiple approaches and extensions have been developed to facilitate this - but our documentation does not (yet!) provide any guidance on these.  </p>
  
  <p>The purpose of this question is to gather information about the various tools that exist, what problems they solve and how they fit together as the basis for a new section in the documentation.</p>
  
  <ul>
  <li><p>What extensions exist to connect a frontend website with a backend CiviCRM?</p>
  
  <ul>
  <li>For example, <a href="https://github.com/CiviMRF/documentation" rel="noreferrer">CiviMRF</a>, <a href="https://github.com/systopia/CiviProxy" rel="noreferrer">CiviProxy</a>, <a href="https://github.com/progressivetech/net.ourpowerbase.remoteform" rel="noreferrer">RemoteForm</a>, </li>
  </ul></li>
  <li><p>What can they be used for?  Eg - mailing list signup, event signup, personal profile updates, contributions etc</p></li>
  <li><p>What front-end extensions/modules/plugins work with them?</p>
  
  <ul>
  <li>For example, do <a href="https://www.drupal.org/project/webform_civicrm" rel="noreferrer">webform-civicrm</a>, <a href="https://github.com/mecachisenros/cf-civicrm" rel="noreferrer">Caldera forms</a>, <a href="https://wordpress.org/plugins/contact-form-7-civicrm-integration/" rel="noreferrer">Contact Form 7</a> work with those remote connectors?</li>
  </ul></li>
  <li><p>What back-end extensions work with them?</p>
  
  <ul>
  <li>For example, do <a href="https://lab.civicrm.org/extensions/form-processor" rel="noreferrer">form-processor</a> <a href="https://lab.civicrm.org/extensions/dataprocessor" rel="noreferrer">dataprocessor</a> work with remote connectors?</li>
  </ul></li>
  </ul>
  
  <p>Notes:</p>
  
  <ol>
  <li>I know the normal advice is not to ask multiple questions in one SE question. But think of those as sub-parts of the overall question "How can I connect my website to CiviCRM on a remote server?"</li>
  <li><p>There are some previous related questions but the aim here is to get a comprehensive list of current recommended methods.
  Eg:
  <a href="https://civicrm.stackexchange.com/questions/12501/creating-contacts-from-remote-websites">creating contacts from remote websites</a>
  <a href="https://civicrm.stackexchange.com/questions/17633/webform-civicrm-integration-with-rest">Webform CiviCRM integration with REST</a>
  <a href="https://civicrm.stackexchange.com/questions/4667/using-iframes-to-present-contribution-page-on-remote-site">Using iframes to present contribution page on remote site</a>
  <a href="https://civicrm.stackexchange.com/questions/28514/civicrm-and-wordpress-on-different-hosts">CiviCRM and WordPress on different hosts?</a></p></li>
  <li><p>If we get one great all-encompassing answer, that can become the basis for the documentation update.  More likely, we'll get a selection of answers on particular tools that will need to be consolidated.</p></li>
  </ol>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-06-16T21:34:00.187Z
Comments.Text: good idea Aidan
Comments.UserDisplayName: petednz - fuzion
Tags: <documentation><architecture>
Title: How can I connect my website to CiviCRM on a remote server?
ThreadText: # How can I connect my website to CiviCRM on a remote server?
  
  (Asked by: username_0 on 2020-06-16)
  
  The easiest common installation pattern is to have CiviCRM and the frontend website on the same server using the CMS as the website but it is often said there are benefits to keeping them separate. Multiple approaches and extensions have been developed to facilitate this - but our documentation does not (yet!) provide any guidance on these.
  
  The purpose of this question is to gather information about the various tools that exist, what problems they solve and how they fit together as the basis for a new section in the documentation.
  
  * What extensions exist to connect a frontend website with a backend CiviCRM?
  
    + For example, [CiviMRF](https://github.com/CiviMRF/documentation), [CiviProxy](https://github.com/systopia/CiviProxy), [RemoteForm](https://github.com/progressivetech/net.ourpowerbase.remoteform),
  * What can they be used for? Eg - mailing list signup, event signup, personal profile updates, contributions etc
  * What front-end extensions/modules/plugins work with them?
  
    + For example, do [webform-civicrm](https://www.drupal.org/project/webform_civicrm), [Caldera forms](https://github.com/mecachisenros/cf-civicrm), [Contact Form 7](https://wordpress.org/plugins/contact-form-7-civicrm-integration/) work with those remote connectors?
  * What back-end extensions work with them?
  
    + For example, do [form-processor](https://lab.civicrm.org/extensions/form-processor) [dataprocessor](https://lab.civicrm.org/extensions/dataprocessor) work with remote connectors?
  
  Notes:
  
  1. I know the normal advice is not to ask multiple questions in one SE question. But think of those as sub-parts of the overall question "How can I connect my website to CiviCRM on a remote server?"
  2. There are some previous related questions but the aim here is to get a comprehensive list of current recommended methods.
     Eg:
     [creating contacts from remote websites](https://civicrm.stackexchange.com/questions/12501/creating-contacts-from-remote-websites)
     [Webform CiviCRM integration with REST](https://civicrm.stackexchange.com/questions/17633/webform-civicrm-integration-with-rest)
     [Using iframes to present contribution page on remote site](https://civicrm.stackexchange.com/questions/4667/using-iframes-to-present-contribution-page-on-remote-site)
     [CiviCRM and WordPress on different hosts?](https://civicrm.stackexchange.com/questions/28514/civicrm-and-wordpress-on-different-hosts)
  3. If we get one great all-encompassing answer, that can become the basis for the documentation update. More likely, we'll get a selection of answers on particular tools that will need to be consolidated.
  
  **Tags:** documentation, architecture
  
  > **Comments:**
  > **username_1**: good idea username_0  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2020-06-17. Score: 7
  
  I am not even going to try and answer it all in one go :-) But I am happy to share the configuration that my customers with remote CiviCRM's use.
  
  They all basically have a public website (Drupal 7 or 8 in most cases, Wordpress in some but in theory any CMS would do) on a server and a separate CiviCRM in a "dummy" Drupal 7 on another server. I use the word "dummy" because in this case Drupal 7 on this CiviCRM server really only is the operating system that makes CiviCRM run.
  
  They all use **CMRF** on their public website to be able to connect to another server. CMRF is a framework that enables a website to connect to one or more CiviCRM instance(s). The core is CMS agnostic, and there are currently implementations for Drupal 7, Drupal 8 and Wordpress. If an organization would want to use another CMS they could develop a CMRF implementation for that specific CMS.
  
  Almost all of our customers that work in that way use **CiviProxy** as a gatekeeper for their CiviCRM instance(s). CiviProxy is a a kind of policeman that checks if the request you want to send to the CiviCRM server is allowed. So the public website (or other webservices!) sends a request to CiviProxy, CiviProxy checks if the credentials are correct and if the request is allowed and if so, sends it to CiviCRM and returns the result. Documentation on CiviProxy: <https://docs.civicrm.org/civiproxy/en/latest/>
  
  We use the **Form Processor** extension (<https://civicrm.org/extensions/form-processor>) to create webforms on the public website that communicate with CiviCRM. If the website is in Drupal 7, there is a module called CMRF Form Processor that makes it a little easier. Documentation on the Form Processor: <https://docs.civicrm.org/formprocessor/en/latest/>
  
  We use the **Data Processor** extension (<https://civicrm.org/extensions/data-processor>) when we want to show data from CiviCRM on the public website.
  
  > **Comments:**
  > **username_3**: Thanks very much for sharing! Just wondering if it is still possible to use views to display Civi data when it is on a separate server?  
  > **username_2**: Not as it is now, Views uses the tables from the CiviCRM database and not the API.  
  > **username_4**: When you say `We use the Data Processor extension (https://civicrm.org/extensions/data-processor) when we want to show data from CiviCRM on the public website.` do you mean on the same website or server or on separate ones? If so how do you get to achieve this connection?  
  > **username_2**: Could be both :-) The DataProcessor is in the end a REST API call so can be done from any CMS in theory. I am not sure if there is a Drupal module yet that shows data from the DataProcessor. I know Jaap Jansma is working on a Wordpress plugin.  
  
  ---
  
  