Azi a trebuit să instalez un certificat SSL pe o instanță Discourse. După ceva căutări pe forumuri am reușit să instalez folosind pașii de mai jos.

1. Activarea SSL

Editezi /var/discourse/containers/app.yml și adaugi template-ul pentru SSL:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.ssl.template.yml" #<<<<<<<<<

Și portul

expose:
  - "80:80"   # fwd host port 80   to container port 80 (http)
  - "2222:22" # fwd host port 2222 to container port 22 (ssh)
  - "443:443" #<<<<<<<<<<<<<<

2. Instalarea certificatului

/var/discourse/launcher stop app

cd ~
git clone https://github.com/letsencrypt/letsencrypt
./letsencrypt/letsencrypt-auto certonly --rsa-key-size 4096 --standalone -d nume_domeniu.com

cp /etc/letsencrypt/live/nume_domeniu.com/privkey.pem /var/discourse/shared/standalone/ssl/ssl.key
cp /etc/letsencrypt/live/nume_domeniu.com/fullchain.pem /var/discourse/shared/standalone/ssl/ssl.crt
/var/discourse/launcher rebuild app

3. Pași finali

Ultimul pas este să verifici dacă toată povestea asta funcționează. În mod normal, accesarea forumului va face redirectul automat. Dacă totul este în regulă și domeniul este validat, cel mai probabil va fi nevoie să faci niște modificări în Admin:

  • Schimbă URL-ul tuturor logo-urilor, favicon-urilor etc. poți pune ori //nume_domeniu.com/uploads/default/267/c1982398.png (fără protocol la începutul URL-ului) ori calea relativă (/uploads/default/267/c1982398.png)
  • Tot în admin->security va trebui să bifezi use https

Pentru reactualizare va trebui să rulezi o parte din comenzile de mai sus:

/var/discourse/launcher stop app
./letsencrypt/letsencrypt-auto certonly --rsa-key-size 4096 --standalone -d nume_domeniu.com
rm /var/discourse/shared/standalone/ssl/ssl.*
cp /etc/letsencrypt/live/nume_domeniu.com/privkey.pem /var/discourse/shared/standalone/ssl/ssl.key
cp /etc/letsencrypt/live/nume_domeniu.com/fullchain.pem /var/discourse/shared/standalone/ssl/ssl.crt
/var/discourse/launcher rebuild app

La cum se inspiră Chrome din preistorie, mă tot întreb cât mai durează până revin la modă controalele ActiveX (sau echivalentele). Pentru că, așa buggy cum era, IE6 a fost o sursă de inspirație pentru toate celelalte browsere. Două exemple:

Box Model

Pentru cei mai în vârstă: IE5.5 și IE6 (în quirk mode) avea un bug în ceea ce se numește „box model”. Adică aplicând { width:300px;padding:10px;display:block } pe un element aveai o lățime finală de 300px. Au venit alții și au zis: nu, așa ceva nu se poate! Elementul ar trebui să aibă 320px, căci padding-ul nu face parte din element! Cinșpe ani mai târziu? box-sizing:border-box e cea mai tare chestie!

Custom Scrollbar

O chestie ce exista (limitat, ce-i drept) în IE era faptul că puteai schimab culorile scrollbar-ului (dar nu mai mult de atât). De câțiva ani, acest lucru este posibil și în Webkit/Chrome. Cât de original!

Cât de rău a fost, de fapt, IE6?

IE6 este unul dintre cele mai blamate browsere, fiind catalogat de mulți drept unul dintre cele mai proastre browsere. Ceea ce este adevărat, dar doar comparativ cu Firefox sau Chrome; practic, se face o comparație între browsere lansate la patru, respectiv șapte ani diferență.

De fapt, dacă chiar ai experimentat IE6 la timpul lui, o să-mi dai dreptate când spun că era unul dintre cele mai bune browsere la acel moment! Sigur, avea bug-uri, avea vulnerabilități, dar în ansamblu? Mult peste ce era disponibil pe piață: Netscape 7 și Opera 6. (pentru cei mai tineri, Opera era un browser plătit).

Despre ce a apărut după IE6? Acolo e altă mâncare de pește și este o mizerie din partea Microsoft. Dar asta este o poveste pentru o altă ocazie.

Git: CLI sau GUI?

Folosesc Git de câțiva ani buni deja și alternez între GUI și CLI. Pentru GUI folosesc GitExtensions care este potrivit pentru ce am eu nevoie. Sunt câteva lipsuri, dar compensează cu altele. Folosesc CLI doar pentru stash și git flow (UI sunt mult prea lente).

Alternative la GitExtensions ar fi:

SourceTree – cineva de la ei consideră că dublu click în fereastra de commit e mai potrivit pentru a deschide un fișier, decât pentru staging; am deschis un issue acum vreo doi ani, au binevoit să-l ignore.

GitHub for Mac/Windows – mi se pare că are o interfață neintuitivă la modul grav. V1 a fost neintuitiv, nou-lansatul V2 a rămas la fel de neintuitiv. (în cazul în care ești curios: poți folosi GitHub for Mac/Windows și fără a folosi serviciul Github (adică poți folosi orice repository)

Pe lângă cele de mai sus, am mai încercat SmartGit care, dincolo de funcționalități, este scris în Java. Iar asta ar trebui să spună multe :D

Pe Mac am folosit Tower, dar nu m-a dat pe spate și foloseam SourceTree. Pe Mac mi se pare net superior variantei de Windows.

Tu ce folosești pentru Git? De ce?