Draft:Discourse Implementation and Exploitation: Difference between revisions

Jump to navigation Jump to search
no edit summary
Tag: 2017 source edit
No edit summary
Tag: 2017 source edit
 
(26 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Addresses ==


* dolibarr-test-fr.traulle.net
* dolibarr-test-org.traulle.net


These DN has been choosen to test the distinct vhosts but are not actually binded to public DNS.
=== Apache2 config ===


You <u>MUST</u> edit your <code>/etc/hosts</code> local file (or similar) to point these addresses to IP '''37.59.159.184'''
Forums are available on entry URL: https://www.dolibarr.org/forum, https://www.dolibarr.fr/forum, https://www.dolibarr.de/forum
but behind, it is discourse.


For Windows based machines, you can use https://hostsfileeditor.com/ for that purpose.
Enable '''proxy '''and '''proxy_http '''modules.


== Replicated minimal VM for tests ==
Add


For the implementation to go smooth, the <code>vmprod1</code> environment has been replicated on a dedicated test VM.
<syntaxhighlight lang="apache">
  # To allow the rewrite on rss that is not a redirect from browser
  SSLProxyEngine on
  SSLProxyVerify none
  SSLProxyCheckPeerCN off
  SSLProxyCheckPeerExpire off


* Linux distro : Ubuntu 16.4.7
  # Redirection pour compatibilite avec ancien forum kunena
* Webserver : Apache2
  RewriteRule ^/forum/user/(\d+)-(.*) /forum/u/$2/summary [L,R=permanent]
* RDBMS : Mariadb
  RewriteRule ^/forumold/.*/(\d+)-(.*)$ /forum/t/$2 [L,R=permanent]
* PHP : 5.6


=== PHP version ===
  # Redirection pour transfert apache - discourse
<Location "/forum">
    RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
    RequestHeader set "X-Forwarded-SSL" expr=%{HTTPS}
    ProxyPreserveHost On
    ProxyPass "http://127.0.0.1:8800/forum" connectiontimeout=60 timeout=60
    ProxyPassReverse "http://127.0.0.1:8800/forum"
</Location>


PHP version is installed from <code>ppa:ondrej/php</code>.
</syntaxhighlight>


The apache proxy redirect HTTP including /forum/ in URL to the port the docker nginx server run.


=== Apache2 config ===
The Logs of the proxy are available into /home/dolibarr/logs/dolibarr_ssl_access_log file and are used by fail2ban rules.


Apache2 virtual hosts config <code>dolibarr.fr.conf</code> and <code>dolibarr.org.conf</code> has been copied from <code>vmprod1</code> (Servername apache directive has just been modified to match names specified in [[#Addresses]]).
== Firewall ==
Les regles du firewall sont définies et activé par le script /home/dolibarr/tools/firewallvmprod1


Enabling '''proxy '''and '''proxy_http '''modules.
TODO Utiliser ufw


Adding


<source lang="apache">
=== Backup ===
<Location "/forum">
    ProxyPass "http://dolibarr-test-fr.traulle.net:8800/forum"
</Location>
</source>
 
=== Files ===
 
Files from <code>/home/dolibarr/dolibarr.fr</code> and <code>/home/dolibarr/dolibarr.org</code> has been copied to the same location on the test VM (however <code>/home/dolibarr/dolibarr.org/httpdocs/files/stable</code> has not been replicated on the test VM due to the weight/size of all packages).


Backup of discourse instance is done into directories /mnt/sdb1/backup/discourses


=== MySQL/MariaDB Databases ===
=== MySQL/MariaDB Databases ===
Line 52: Line 55:


Installed following the Docker docs : https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-engine---community-1
Installed following the Docker docs : https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-engine---community-1
== Tests for dolibarr.de migration ==
* Retrieve test VM backup
* Update packages (apt)
* Upgrade db to postgres12 (data container)
* rebuild web_only container tu upgrade to same discourse version as prod
== Upgrade the web container ==
From : https://meta.discourse.org/t/faster-rebuilds/40341/13
<syntaxhighlight lang="bash">
cd /var/discourse
sudo git pull
sudo ./launcher bootstrap web_only
sudo ./launcher destroy web_only
sudo ./launcher start web_only
</syntaxhighlight>
== Upgrade the data container ==
See
* https://meta.discourse.org/t/postgresql-12-update/151236#data-container-install
* https://meta.discourse.org/t/postgresql-15-update/349515#p-1698209-data-container-install-3
* https://meta.discourse.org/t/postgresql-18-update-for-self-hosters/406194
<syntaxhighlight lang="bash">
cd /var/discourse
sudo ./launcher stop web_only
sudo ./launcher stop data
# twice is not a typo but on purpose
sudo ./launcher rebuild data
sudo ./launcher rebuild data
sudo ./launcher rebuild web_only
</syntaxhighlight>
== Useful resources ==
* [https://meta.discourse.org/t/how-to-move-from-standalone-container-to-separate-web-and-data-containers/29413 How to move from standalone container to separate web and data containers]
* [https://meta.discourse.org/t/multisite-configuration-with-docker/14084 Multisite configuration with Docker]
* [https://meta.discourse.org/t/subfolder-support-with-docker/30507 Subfolder support with Docker]
* [https://meta.discourse.org/t/change-the-domain-name-or-rename-my-discourse/16098 Change the domain name or rename my Discourse?]
* [https://meta.discourse.org/t/rebake-all-posts-matching-a-pattern/48713 Rebake all posts matching a pattern]
* [https://meta.discourse.org/t/how-do-i-manually-update-discourse-and-docker-image-to-latest/23325/2 How do I manually update Discourse and Docker image to latest?]

Navigation menu