|
|
# Todo
|
|
|
|
|
|
* Installer
|
|
|
* Login page (and/or login via Oauth, but we should have something easy to use)
|
|
|
* Password reset
|
|
|
* 2fa support (via extension?)
|
|
|
* Manage users -> Setting a password for a Contact - Standalone had something
|
|
|
* Manage roles/permissions (re-use what WordPress has? or Standalone?)
|
|
|
* Basic theme for frontend pages?
|
|
|
|
|
|
Things to consider:
|
|
|
|
|
|
* Translation / multi-lingual (lcMessages would be fine)
|
|
|
* Installation documentation, visibility on civicrm.org/download
|
|
|
|
|
|
# Tooling
|
|
|
|
|
|
* buildkit support
|
|
|
* cv support
|
|
|
* tar.gz release builder
|
|
|
* demo site
|
|
|
|
|
|
# Random
|
|
|
|
|
|
* Github repo civicrm-standalone, that we could build using composer (require civicrm-core, civicrm-setup, etc), and distribute on c.o as a tar.gz.
|
|
|
* Login feature could be an extension, and could be disabled if people want to use something else such as Oauth SSO or LDAP.
|
|
|
|
|
|
# civicrm-core: Files to add
|
|
|
|
|
|
(I have some very quick & dirty working versions of these files, need to create a WIP PR that we can apply during the build process)
|
|
|
|
|
|
* CRM/Utils/System/Standalone.php
|
|
|
* CRM/Core/Permission/Standalone.php
|
|
|
* CRM/Utils/Hook/Standalone.php
|
|
|
* templates/CRM/common/standalone.tpl
|
|
|
|
|
|
# Manual installation
|
|
|
|
|
|
## Using composer
|
|
|
|
|
|
```
|
|
|
mkdir /var/www/standalone/
|
|
|
cd /var/www/standalone/
|
|
|
composer config extra.enable-patching true
|
|
|
composer config minimum-stability dev
|
|
|
composer require civicrm/civicrm-core
|
|
|
composer require civicrm/civicrm-packages
|
|
|
```
|
|
|
|
|
|
Directories:
|
|
|
|
|
|
```
|
|
|
cd /var/www/standalone/
|
|
|
|
|
|
# Keeping smarty files outside the public webroot
|
|
|
mkdir templates_c
|
|
|
chgrp www-data templates_c
|
|
|
chmod g+w templates_c
|
|
|
|
|
|
# Some uploads are assumed to be publicly accessible, I think?
|
|
|
mkdir web/upload
|
|
|
chgrp www-data upload
|
|
|
chmod g+w upload
|
|
|
```
|
|
|
|
|
|
## civicrm.settings.php
|
|
|
|
|
|
Since the installer does not work, generate manually:
|
|
|
|
|
|
```
|
|
|
cd /var/www/standalone/
|
|
|
cp vendor/civicrm/civicrm-core/templates/CRM/common/civicrm.settings.php.template civicrm.settings.php
|
|
|
```
|
|
|
|
|
|
And then edit and set things manually:
|
|
|
|
|
|
* UF = Standalone
|
|
|
* civicrm_root = ..
|
|
|
|
|
|
also need to patch this bit to set include path for civicrm-packages:
|
|
|
|
|
|
```
|
|
|
$include_path = '.' . PATH_SEPARATOR .
|
|
|
$civicrm_root . PATH_SEPARATOR .
|
|
|
$civicrm_root . DIRECTORY_SEPARATOR . '../civicrm-packages' . PATH_SEPARATOR .
|
|
|
get_include_path( );
|
|
|
```
|
|
|
|
|
|
(how does Drupal8 handle that?)
|
|
|
|
|
|
## Initialize the database
|
|
|
|
|
|
Copied `sql/civicrm.mysql` from a Drupal8 codebase, then:
|
|
|
|
|
|
```
|
|
|
cat vendor/civicrm/civicrm-core/sql/civicrm.mysql | mysql -u civitest -p civitest
|
|
|
cat vendor/civicrm/civicrm-core/sql/civicrm_generated.mysql | mysql -u civitest -p civitest
|
|
|
```
|
|
|
|
|
|
and then in mysql:
|
|
|
|
|
|
```
|
|
|
-- probablement pas nécessaire:
|
|
|
-- insert into civicrm_contact (organization_name, contact_type, display_name) values ('Test Org', 'Organization', 'Test Org');
|
|
|
insert into civicrm_setting (name, value, domain_id, is_domain) values ('installed', 'i:1;', 1, 1);
|
|
|
``` |