User:Jtraulle/DiscourseMigration

This page gathers info about Discourse migration.

Tentative design

Custom Header to add

Go to Admin → Customize → Themes → Light → Edit CSS/HTML → Common → Header and paste :

<div id="header" class="clearfix">
    <div id="inner-header">
    	<a id="logo" href="/">
    		<img src="https://www.dolibarr.fr/templates/dolibarr/images/bg2.png" alt="ERP et CRM Open Source pour gérer votre entreprise ou association - Portail France" width="200" height="59">
    	</a>
    	<div id="headermodule">
            <div class="bannergroup bannertop">
    	        <div class="banneritem">
    	            <a href="/component/banners/click/22" target="_blank" title="Partenaire ATOO.NET">
    					<img src="https://www.dolibarr.fr/images/banners/Couteau_suisse_UltimatePdf.jpg" alt="ATOONET" width="468" height="60">
    				</a>
    				<div class="clr"></div>
    	        </div>
            </div>
    	</div>
	</div>
	<div id="nav" class="">
    	<div id="decalmenu" class="backshadow">
    		<ul class="nav menu" id="mainmenu">
                <li class="item-166"><a href="/">Accueil</a></li>
                <li class="item-57"><a href="/screenshots">Screenshots</a></li>
                <li class="item-49"><a href="/demo-en-ligne">Démo en ligne</a></li>
                <li class="item-36"><a href="/telechargements">Téléchargements</a></li>
                <li class="item-64"><a href="/documentation">Documentation</a></li>
                <li class="item-79"><a href="/boutique">Boutique</a></li>
                <li class="item-59"><a href="/association">Association</a></li>
                <li class="item-207 active"><a href="/forum">Forum</a></li>
            </ul>
    
    
            <form id="mod-finder-searchform" action="/component/finder/search" method="get" class="form-search">
            	<div class="finder">
            		<input type="text" name="q" id="mod-finder-searchword" class="search-query input-medium" size="15" value="" autocomplete="off">
            		<input type="hidden" name="Itemid" value="198">
            	</div>
            </form>
    	</div>
    	<div class="backshadow arrowafterul"></div>
    	<div class="backshadow"></div>
    </div>
</div>

Custom Footer to add

Go to Admin → Customize → Themes → Light → Edit CSS/HTML → Common → Footer and paste :

<div id="footer">
	<span itemprop="name">Dolibarr ERP &amp; CRM</span> © 2003-2017 - Gestion d'entreprise ou d'association
</div>

Custom CSS to add

Go to Admin → Customize → Themes → Light → Edit CSS/HTML → Common → CSS and paste :

#header {
   background-color: rgb(61,95,147);
   background-image: url(https://www.dolibarr.fr/templates/dolibarr/images/shadows/light/header-overlay.png),url(https://www.dolibarr.fr/templates/dolibarr/images/overlays/headers/header-6_dolibarr.png);
   background-repeat:repeat-x, no-repeat;
   background-position-x: 600px;
}

#inner-header {
   max-width: 1110px;
   height: 105px;
   margin: auto;
}

#headermodule {
   float: right;
   margin: 10px 0;
}

.banneritem {
   margin-right: 8px;
}

#main {
   background: url(https://www.dolibarr.fr/templates/dolibarr/images/header-overlay.png) 50% -90px repeat-x !important;
   background-color: rgba(0, 0, 0, 0);
   background-color: #FFFFFF !important;
}

.d-header {
   background-color: inherit;
   box-shadow: inherit;
}

.d-header .wrap .contents, #main-outlet {
   background-color: #FFFFFF;
}

#logo {
   float: left;
   margin: 5px 0;
   display: block;
   max-width: 100%;
   margin-left: 4px;
   margin-top: 32px;    
}

/* menu */

#nav {
   background-color: rgb(56,90,127) !important;
   background: linear-gradient(rgba(56,90,127,.5), rgba(56,90,127,1)),url(https://www.dolibarr.fr/templates/dolibarr/images/shadows/light/nav-overlay2.png) 50% 0 repeat-x !important;
}

#nav ul {
   padding:0;
   margin:0;
}

#nav ul li {
   display: inline-block;
   margin: 0 0 0 0;
   padding: 8px 4px 4px 12px;
}

#nav #decalmenu {
   max-width: 1126px;
   margin: auto;
   padding: 0;
}

#nav ul li a {
   display: inline-block;
   color: #FFF;
   font-weight: bold;
   text-decoration: none;
   font-size: 13px;
   padding: 6px 5px 4px 5px;
   height: 26px;
}

.backshadow {background: url(https://www.dolibarr.fr/templates/dolibarr/images/shadows/light/nav-overlay3.png) 0% 0 repeat-x;}

#nav arrowafterul { background: url(https://www.dolibarr.fr/templates/dolibarr/images/shadows/light/menus/menutab-r.png) 0 0 no-repeat; }

#nav ul li { background: url(https://www.dolibarr.fr/templates/dolibarr/images/shadows/light/menus/menutab-r.png) 0 0 no-repeat; min-height: 36px; }

#nav ul li.active, #nav ul li.active { opacity: 0.8; }

#nav ul li:hover, #nav ul li:hover .item, #nav ul li.active:hover { 
   background-image: -webkit-gradient( linear, left top, left bottom, color-stop(0, rgba(255,255,255,.3)), color-stop(1, rgba(0,0,0,.3)) );
}

#mainmenu {
   display: inline-block;
}

#rokajaxsearch, form#mod-finder-searchform {
   display: inline-block;
   margin-right: 10px;
   margin-left: 68px;
   margin-bottom: 10px;
}

.roksearch_search_str {
   width: 150px;
}

input.search-query {
   padding-right: 14px;
   padding-right: 4px \9;
   padding-left: 14px;
   padding-left: 4px \9;
   margin-bottom: 0;
   -webkit-border-radius: 15px;
   -moz-border-radius: 15px;
   border-radius: 15px;
}

.finder .search-query {
   width: 132px;
}

.form-search .input-append .search-query,
.form-search .input-prepend .search-query {
   -webkit-border-radius: 0;
   -moz-border-radius: 0;
   border-radius: 0;
}

.form-search .input-append .search-query {

   -webkit-border-radius: 14px 0 0 14px;

   -moz-border-radius: 14px 0 0 14px;

   border-radius: 14px 0 0 14px;

}

.form-search .input-append .btn {

   -webkit-border-radius: 0 14px 14px 0;

   -moz-border-radius: 0 14px 14px 0;

   border-radius: 0 14px 14px 0;

}

.form-search .input-prepend .search-query {

   -webkit-border-radius: 0 14px 14px 0;

   -moz-border-radius: 0 14px 14px 0;

   border-radius: 0 14px 14px 0;

}

.form-search .input-prepend .btn {

   -webkit-border-radius: 14px 0 0 14px;

   -moz-border-radius: 14px 0 0 14px;

   border-radius: 14px 0 0 14px;

}

.form-search input,
.form-search textarea,
.form-search select,
.form-search .help-inline,
.form-search .uneditable-input,
.form-search .input-prepend,
.form-search .input-append,
.form-inline input,
.form-inline textarea,
.form-inline select,
.form-inline .help-inline,
.form-inline .uneditable-input,
.form-inline .input-prepend,
.form-inline .input-append,
.form-horizontal input,
.form-horizontal textarea,
.form-horizontal select,
.form-horizontal .help-inline,
.form-horizontal .uneditable-input,
.form-horizontal .input-prepend,
.form-horizontal .input-append {
   display: inline-block;
   *display: inline;
   *zoom: 1;
   margin-bottom: 0;
   vertical-align: middle;
}

.form-search .hide,
.form-inline .hide,
.form-horizontal .hide {
   display: none;
}

.form-search label,
.form-inline label,
.form-search .btn-group,
.form-inline .btn-group {
   display: inline-block;
}

.form-search .input-append,

.form-inline .input-append,
.form-search .input-prepend,
.form-inline .input-prepend {
   margin-bottom: 0;
}

.form-search .radio,
.form-search .checkbox,
.form-inline .radio,
.form-inline .checkbox {
   padding-left: 0;
   margin-bottom: 0;
   vertical-align: middle;
}

.form-search .radio input[type="radio"],
.form-search .checkbox input[type="checkbox"],
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
   float: left;
   margin-right: 3px;
   margin-left: 0;
}

#footer {
   margin: auto;
   background: #e3e3e3;
   border-top: 1px solid #ccc;
   padding: 5px;
   color: #888;
   text-align: center;
}

Allow PostgreSQL to be accessed from an external application

Useful to be able to access the database from a graphical client (like pgAdmin 4, TablePlus or Postico for example).

1. Expose the 5432 TCP port from the container to the host by adding this line to the expose: section of containers/app.yml :

- "5432:5432"

2. Rebuild the container to take into account modifications to app.yml :

./launcher rebuild app

3. Enter into the container, login as the default postgresql user, add a new user and grant it all perms to the database

./launcher enter app
sudo -u postgres psql discourse
CREATE USER my_username WITH PASSWORD 'my_password';
GRANT ALL PRIVILEGES ON DATABASE "discourse" to my_username;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO my_username;
\q