Let’s encrypt og Traefik på serveren

Jeg har i længere tid planlagt, at jeg ville have trafikken på denne blog flyttet fra den almindelige port 80, over på 443.

En af grundene til at man i stigende grad skal til at bruge SSL på hjemmesider er (udover at indtastningsfelter ikke så nemt bliver opsnappet), at Google prioriterer hjemmesider der har SSL aktiveret. Tidligere har det dog ikke været nogen nem opgave at få SSL aktiveret på hjemmesider. Typisk har det været forbundet med udgifter og/eller en masse teknisk nørderi for at få det til at virke på mindre hjemmesider.

Men over tid er SSL blevet langt mere tilgængeligt for folk. Mange hosting firmaer har det nu med som et gratis tillægsprodukt, og det er ikke forbundet med en høj kompleksitet.

Bloggen her har tidligere været drevet via nginx-proxy og det er også muligt at bruge SSL via et plugin, men når man ser på forskellige blogs, så er det ikke det der anbefales mest for tiden. Der er det Traefik proxyen der er den mest nævnte.

Traefik

Da jeg skulle til at have SSL på denne side, kunne jeg se at mange posts drejede sig om, hvordan Traefik skulle være hurtigere og nemmere at bruge end Nginx, så det var en oplagt mulighed for at nørde lidt.

Mit krav var, at det hele skulle være muligt at styre via Docker, så det var nemt for mig at skifte det ene hostingmiljø ud med et andet. Det viste sig da også at Trafik havde en opsætningsguide, der var nem at følge, og som sørger for en minimumsopsætning.

Jeg fulgte bare guiden slavisk, og fik startet servicen op (husk at lukke for andre proxy’er på serveren der evt lytter på samme porte inden Traefik startes).

Opsætning af wordpress

Følgende kodeeksempel er mere eller mindre grundlaget for denne blog (i skrivende stund)

Det skarpe øje har måske bemærket uploads.ini referencen. Den er med da mit WP image ellers kun tillader 2MB uploads – og for at kunne lave en evt. restore af databasen skal jeg bruge lidt mere plads.

docker-compose.yml filen håndterer at denne server svarer på mere end ét domæne, men inde i bloggen har jeg sat peter.binderup.dk til at være den styrende.

CD ind til det directory hvor docker-compose.yml og uploads.ini filen ligger, og start serveren med: “docker-compose up -d”

 

Efter noget tid med anden hosting…

Jeg skrev for knap 2 mdr siden et indlæg om status på mit IT setup, og jeg tænkte, at jeg lige ville skrive en kort statusopdatering på hvordan det går.

Mht. backup så bruger jeg stadig Retrospect backup, men jeg har valgt at droppe Backblaze B2, da det gik op for mig at jeg havde pænt meget plads ledigt på min Dropbox (2TB), og da Retrospect kan bruge det som lager, mente jeg at det var sikkert nok, da jeg også tager lokal backup af mine data (normalt vil jeg ikke anbefale Sync tjenester som backup løsninger).

Mit skifte af mail udbyder fra en kombination af Webfaction og Gmail over til Fastmail har været ud over al forventning, og jeg er nu gået all in på den mail tjeneste. Jeg har valgt at flytte alle mine knap 40.000 mails over til den tjeneste (14 år ved Gmail), og har sat en “fetch” identitet op så al ny mail til Gmail bliver hentet over i Fastmail. Fastmail webklienten er markant hurtigere, at arbejde med end Gmails, og så er der hele privatlivs problemstillingen hvor det er rart at man betaler for et produkt med kontanter og ikke med personlige oplysninger. Dertil er det også rart at Fastmail overholder de standard protokoller der er for e-mail.

Jeg har også valgt at flytte DNS håndteringen af alle mine .DK domæner over til Fastmail – mine .COM og ORG domæner styrer jeg stadig via Amazon Route53, da jeg har brug for en registrar til at håndtere fornyelse, og der er Amazon prismæssigt på niveau med andre udbydere.

Selve håndteringen af denne blog via Digital Ocean har ikke ændret sig. Det har kørt gnidningsfrit, og så længe man logger ind via SSH til serveren og sørger for opdateringer, så er det minimalt arbejde der ligger i vedligehold af den Docker container der kører denne blog.

Long time no blogging…

Jeg må indrømme at det er ved at være lidt pinligt hvor lidt jeg får skrevet på denne blog, men det er bare pokkers svært at finde tiden til at skrive noget…

Men Jeg vil give en status på nogle af de ting jeg har puslet med på det sidste.

Backup

Dette har været et emne der har fyldt en del i mine tidligere indlæg, og det fylder stadig meget – måske endda endnu mere end tidligere. Det er i hvert fald ikke blevet mindre vigtigt at sikre egne data – det er ikke nok at satse på at andre passer på billeder, dokumenter og andre vigtige digitale artefakter.

Hvor det tidligere var relativt nemt at finde 5 dollar (pr. md.) løsninger hvor man havde ubegrænset plads, så er dette i dag ikke en normal trend, og har man endelig uendelig plads, så er det uendelig, men med begrænsninger. Der er begrænsinger på tilkoblede drev, netværksdrev osv. og hvis man tænker lidt over det, så giver disse begrænsninger fin mening.  Jeg kunne fra min bærbare reelt sidde koblet til et SAN med mange Petabyte af data, og det er vel ikke en reel forventning, at kunne tage backup af alt det for kun 5 USD pr md?

Så i dag bruger jeg Timemachine på min Mac til time backup, og det bliver synkroniseret med en ekstern disk når jeg er hjemme og den er koblet til. Denne backup er mest af alt for at have en “hovsa jeg kom da vist til at slette/overskrive noget jeg ikke skulle have” backup. Dernæst bruger jeg Retrospect Desktop til Mac til at tage mere grundig backup med ubegrænset versionering. Jeg bruger så Backblaze B2 som storage (udover NAS, så jeg har samme backup set to steder, hvor det ene er hurtigere at lave en restore fra da jeg sidder på et LAN).

Retrospect er ikke billigt (ca 1100 DKK for en Desktop licens), men det giver mig en mulighed for at styre backup af husets computere og sørge for at jeg har et overblik over status på backup på alle tilkoblede klienter. Backblaze B2 er pay-as-you-go så man betaler kun for den datamængde man gemmer, og har man brug for at downloade, så betales der også for det, men da jeg har samme databackup på mit NAS, så er B2 kun til restore hvis de lokale enheder er borte (brænd, indbrud eller defekt hardware). Jeg vil skyde på at jeg nok har brug for at gemme for ca 5 USD pr md i skyen. Min B2 backup er det jeg vil kalde sidste chance for at reetablere data (data som selvfølgelig er krypteret godt og grundigt)

Hosting

DNS

DNS mæssigt er der ikke sket så meget nyt. I nogle år har jeg styret mine domæner fra Amazons Route53 service (Amazon bliver også herefter omtalt som AWS). Der betaler man 0,50 USD pr. domæne pr. md. Jeg kunne sagtens styre det andre steder gratis, men jeg har en underlig idé om, at man får det man betaler for, og betaler man ikke for noget så kan man heller ikke forvente så meget.

Web

Denne hjemmeside har tidligere været hosted ved Webfaction, men efter moderselskabet til Webfaction blev opkøbt af GoDaddy, så virker det lidt som om dampen er gået af fløjten. De har de sidste 2-3 år lovet at der skulle komme integreret Letsencrypt support fra deres kontrolpanel, men intet er sket, og generelt virker det som innovationen er gået i stå ved dem. Det skal dog siges, at deres service er meget stabil, og jeg oplevede sjældent problemer og når de har tekniske nedbrud, så er de meget åbne om det på deres statusblog.

Jeg begyndte så mere seriøst at overveje, at flytte min hosting til andre steder. Jeg var en meget tidlig kunde ved Digital Ocean (referral kode – vi får begge noget ud af det hvis du benytter den hvis du begynder at anvende dem). Jeg vil kun anbefale Digital Ocean hvis man har mod på at lege med opsætning af eget hosting miljø, for det er noget nørdet, men til 5 USD for en server i skyen med fornuftig sikkerhed og rigtig god dokumentation, så er det et kig værd.

Jeg har valgt at pakke denne blog ind i en Docker container (der kommer måske en blog post senere om det) – ikke at jeg nødvendigvis har en fordel ved at gøre det, men det er “sjovt” og det er en metode jeg oftere bruger på arbejdet, og i samarbejde med leverandører på arbejdet.

Mail

Nu hvor jeg flyttede hjemmesiden over til en VPS hos Digital Ocean, stod jeg så med en udfordring med at få mine mails hosted. Jeg har siden Gmail kom ud i 2004 videresendt mine mails til den konto jeg har der, men har i stigende grad været mere og mere irriteret på den måde de sælger mig som et produkt og i langt mindre grad giver mig mulighed for at betale for lidt privatliv (deres erhvervsløsning giver mig meget mere end jeg har behov for, og jeg hader at betale for noget jeg ikke reelt bruger).

Men det første problem var: Hvordan får jeg mails der bliver sendt til mig videresendt min gmail? Hverken Digital Ocean eller AWS har mailforwarding som et produkt (der er mulighed for at lave nogle Storm P løsninger ved AWS, men det virker ikke super robust som løsning).
Der findes nogle online løsninger, som tager sig af mail forward som det primære produkt, men det virker lidt som om det er private hobbyprojekter, og jeg er ikke helt sikker på at jeg vil være helt tryg ved at lade dem håndtere mails sendt til mine domæner.

Det næste jeg så overvejede var Mailgun, som er en service der håndterer primært masseudsendelser af nyhedsbreve eller automatiserede udsendelser af mails fra systemer der måske ikke selv har mail funktionalitet. En af deres features er “Routes“, som gør det muligt at redirecte mails til andre mailadresser. Jeg testede det på et domæne og har det pt. i drift for vores lokale løbeklub. Det er en god og brugbar løsning hvis man kun vil have sine mails videresendt til en ekstern mail adresse. Jeg vil dog gerne have muligheden for at beholde mine mails lidt mere ind til kroppen, og lade Google arbejde lidt mere for at snuppe mine data 🙂

Jeg overvejede også om Office 365 var en mulighed, men som ved Google Apps kommer jeg så også til at betale for nogle produkter som jeg reelt ikke har brug for (tekstbehandling, regneark osv.), da jeg enten har det via arbejdet eller via løbeklubbens Office 365.

Jeg har tidligere set Fastmail (referral link – vi får begge lidt rabat ved, at du bruger det hvis du også vil være kunde ved Fastmail) nævnt i blogposts, anmeldelser og online fora. Jeg havde dog slået det hen, da jeg var af den opfattelse at hvis jeg skulle have mails til min kone, børn eller resten af familie, så var jeg nødt til at betale for hver deres konto, og så løber det pludselig ret hurtig op (en standard konto koster 5 USD pr md – med mulighed for rabat hvis man køber for 12, 24 eller 36 mdr forud).

Jeg skrev til dem og beskrev min problemstilling omkring mail. Jeg har brug for én mailboks, hvor jeg vil pege mange mailadresser ind på fra flere domæner. Nogle af disse mailadresser skal dog videresendes uden at der bliver gemt en kopi i min mailboks – var dette muligt?

Der gik ikke mange minutter før jeg fik et svar tilbage om, at det var skam muligt – jeg opretter mailadresser som alias’er, og disse kan enten levere til en mailboks (imap/pop3), eller de kan blive videresendt til f.eks. en gmail.com adresse.

Der gik ikke lang tid fra, at jeg fik den besked til at jeg prøvede at flytte to af mine domæner over, og betalte for én måned (videresendelse af aliaser var nemlig ikke muligt i deres prøveversion, og de 30 dage jeg fik i prøve blev bare lagt oven i den første betaling så jeg fik 2 mdr for én).

Jeg testede det så i et par dage, og kom frem til at det var en særdeles robust tjeneste, og faktisk syntes jeg at deres webmail er markant bedre end gmails. Det er lige før jeg kunne overveje at slå viderestilling til på gmail og så samle det i en imap folder ved Fastmail… 🙂

Konklusion

Er det den billigste og nemmeste måde jeg har valgt at have mit setup på?

Nej det er det ikke. DNS kan klares billigere eller helt gratis, men specielt den gratis del kan jeg være bekymret for. Fastmail kan dog også håndtere DNS så måske flytter jeg mine .dk domæner over til dem som et del af mit abonnement

Mail og web kan man også nemt samle ved andre udbydere som en samlet pakke – her i DK er one.com og Unoeuro nogle muligheder, men jeg fravalgte dem alene ud fra at jeg ikke kan betale fra måned til måned, men skal betale for et år frem, og ønsker jeg mere specielle mail/domæne behov, så kan f.eks. Unoeuro godt gå hen og blive lidt dyr og besværlig. Desuden kan hverken Unoeuro eller One.com håndtere f.eks. Python, Ruby, nodejs, Docker eller andre mere “eksotiske” ting. De har PHP og ASP, og med egen server er det ikke et relevant problem.

Så nok kunne jeg spare lidt penge på årsbasis, men det jeg vinder ved at sprede mine hosting aktiviteter (dns, mail og web) er at jeg ikke skal flytte ALT hvis jeg bliver utilfreds med én udbyder.

Vigtigheden af backup.

Lidt for ofte hører jeg om folk der mister alt hvad de har på deres computer, enten pga. de glemmer deres computer et sted (senest en speciale studerende der glemte den éneste kopi af specialet oven på bilen og kørte væk), eller at de bliver udsat for den stigende mængde af ransomware (dine data bliver krypteret, og hvis ikke du betaler så er dine data tabt for evigt).

I denne uge kom det frem at BitTorrent programmet Transmission i en bestemt version (på Mac) havde ransomware i sig – det blev heldigvis hurtigt stoppet af folkene bag Transmission, og Apple fik det også hurtigt ind i deres antimalware service der kører på Mac OS systemer.

Men alligevel er der folk der mister deres data for evigt, for de tager ikke backup.

Kom nu bare i gang med den online backup det koster ikke alverden – typisk 5 USD pr md (eller ca en billig fadøl). Din backup SKAL være online (eller rettere minimum én af dine backups) for hvis du tager backup til et netværksdrev eller USB drev, så er der en kæmpe risiko for at det drev også bliver krypteret under et ransomware angreb.

Jeg anbefaler selv at folk bruger crashplan.com da jeg under alle mine restore tests ikke har oplevet at der har været problemer med de data jeg har genskabt. Derudover er det muligt at bruge egen krypteringsnøgle af backupdata, så man sikre personlige data endnu mere (men glemmer du den nøgle så er dine data væk, så pas rigtig godt på den nøgle)

Lav din egen shortlink generator med Python, Amazon S3 og Keyboard Maestro

Jeg har på macbay.dk skrevet en mindre artikel om hvordan jeg har lavet min egen kortlinks generator (lidt a la bit.ly). Artiklen kan læses på: http://macbay.dk/6155542900768768

Jeg har lavet det som et lille weekend projekt, for at få lidt mere ud af både S3, men også Keyboard Maestro som er et fantastisk makro værktøj til Mac OS.

Min motivation for at lave makroen var for at kunne være mere uafhængig af andre kortlink tjenester ved bla Twitter (min Twitter profil), hvor man jo ikke har for mange karakterer at gøre med.

 

2014 status

Jeg har vist ikke været så aktiv med at skrive på min blog i dette år. Det skyldes flere ting som dødfald i familien, travlhed i arbejds- og familieliv samt en stigende interesse for løb, som så også har medført mit første marathon løb i Hamburg.

Nyt år – tilsyneladende også ny hosting

Forrige år valgte jeg at udskifte mit Gratisdns.dk / webfaction.com hosting setup med en løsning med domæner hos Unoeuro og webhosting ved digitalocean.com.

Denne løsning var ganske fornuftig i lidt over et år, og blev kun skiftet i forbindelse et angreb på en af mine blog (samt at jeg var tæt på fornyelse). Det fik mig til at tænke over, om jeg i grunden havde lyst til at vedligeholde det nørdede setup med egen server og alt det admin arbejde der følger med det.

Samtidig var der et eller andet ved Unoeuro, der ikke helt tiltalte mig ved deres DNS service. Jeg følte mig ikke helt hjemme ved det, uden at jeg kan sætte fingre på hvad det var jeg ikke var tilfreds med – det virkede som det skulle og de har altid været flinke ved mine henvendelser. Så vil man gerne have en billig, stabil host af både web og DMS så kan jeg anbefale dem – mine behov var bare til andet end hvad de kunne tilbyde.

Så i forbindelse med at mit abonnement (hosting og et enkelt af mine internationale domæner) var tæt på fornyelse var det oplagt at finde på noget andet. Samtidig med at jeg stod med et akut problem med et par af mine domæner (det der var under angreb, samt min løbeklubs hjemmeside)

Webfaction til hosting og Amazon Route53 til DNS

Jeg brugte tidligere Webfaction til mine WordPress sider, men var ikke helt tilfreds med performance, men deres admin panel er uden sammenligning det bedste jeg kender til.

Det viste sig heldigvis, at Webfaction i den grad har ændret på deres hosting af wordpress. Tidligere var det absolut nødvendigt med caching slået til. Det har ændret sig, og nu er det muligt at udlade caching ved mindre websites (webfaction tilbyder en gratis prøvepriode, og det var her jeg kunne konstatere den markant forbedrede performance).

Route53 har jeg hørt en masse godt om, men har ikke haft anledning til at bruge det, men det er en betalings DNS hosting (ofte følger denne slags med et abonnement til en hjemmeside, men det kan være en god idé at stå for det via 3. part for at mindske sårbarhed ved nedetid hos udbyder). Det koster 50 US Cent pr domæne pr måned hos Route53. Jeg har 10 domæner, så det koster mig $5 USD pr måned i DNS omkostninger – dette kan stige, men så populære er mine domæner alligevel ikke 🙂

Route53 har rigtig godt admin interface der er en det af Amazons Cloud løsning, og det er altsammen beskyttet med to faktor godkendelse, og alverdens sikkerheds tiltag. Route53 var det naturlige valg for mig da jeg i forvejen bruger Amazon S3 og Amazon Glacier til online lager.

Det er muligt at få hostet sine domæner gratis rundt omkring på nettet, men ofte får man også et serviceniveau der modsvarer prisen. Der er skrækhistorier der omhandler de gratis udbydere på markedet, og jeg vil hellere betale og så vide at jeg er kunde man værdsætter.

Udviklingsprojekter

Ved min “årstale” kom jeg ind på, at jeg ville arbejde mere med Python og Python baserede webapps. Det var min plan at komme i gang med Django, men udviklingsmodellen bag, var ikke lige en der tiltalte mig, så det første halvår af 2014 var det primært løb der havde mit fokus på hobby’er.

Jeg har faldet på flasken, ja det vil sige Flask Framework, som bare sagde klik for mig, og som jeg forventer, at komme til at arbejde en del med. De første projekter er ved, at tage form på mit arbejde.

Jeg håber, at komme med et mindre hygge projekt senere på året netop baseret på Flask.

Året der gik 2013

Når jeg ser tilbage på 2013 i relation til denne hjemmeside, så har jeg måske ikke produceret så meget indhold, men jeg har rodet en del med selve infrastrukturen.

Jeg skiftede host fra Webfaction.com over til Unoeuro, som dog primært kun bliver brugt til DNS og mail styring. Selve min webhosting ligger ved Digital Ocean, hvor jeg har mulighed for billigt at have min egen VPS kørende til relativ omkostninger.
Jeg havde også en kort overgang denne blog kørende hos Amazon EC2, men omkostningerne var alt for høje i forhold til formålet for denne blog, og ikke mindst i forhold til hvad det koster at opnå det tilsvarende ved Digital Ocean.

Ellers har det mest være på vores løbeklubs hjemmeside at jeg har været aktiv. Hjemmesiden er ikke vores primære kommunikationsplatform for vores medlemmer, der bruger vi i langt højere grad Facebooks gruppe funktionalitet. Men da vi bruger en privat Facebook gruppe, så har det været nødvendigt, at vi også har en “almindelig” hjemmeside til de af vores medlemmer der ikke er på Facebook, eller til potentielle nye medlemmer, der søger mere information om klubben.

Arbejdsmæssigt, der arbejder jeg stadig primært med Plone CMS’et, som jeg dog efterhånden må indrømme begynder at føles lidt gammeldags at arbejde med. Jeg tror at vi kommer til at se os selv flytte mere og mere over på andre platforme, som ikke er så tunge at videreudvikle i. Flere af vores mindre websites regner jeg med bliver flyttet over i WordPress løsninger.

Planen for 2014 er at få arbejdet med nogle python frameworks, til nogle specialiserede opgaver, og måske endda lancere et nyt offentligt projekt, men mere om det senere.

Et farvel til Webfaction, og et goddag til Unoeuro

Jeg har de sidste par år brugt Webfaction, som mit webhotel. Men har i dag flyttet det meste væk, og regner med at lukke kontoen ned om kort tid.

Jeg skifter ikke væk fordi deres service er dårlig eller at de er ustabile, for jeg har stort set ikke haft nedetider i den tid jeg har været kunde ved dem.

Jeg regner heller ikke med at jeg vil bruge Unoeuro til ret meget andet end DNS styring og mail, og her kommer vi til årsagen at jeg flytter mine ting til Unoeuro (pånær www hosting som nu kører på en Virtuel server ved Digital Ocean). Jeg brugte faktisk efterhånden ikke Webfaction til andet end mail og så en hjemmeside eller to for venner. Så det var på tide at simplificere mine hosting muligheder.

Unoeuro giver mig det jeg har brug for. DNS, Mail styring, og fornyelse af .com/.org domæner.

Tidligere havde jeg mine domæner liggende ved Gratisdns, men jeg må indrømme, at jeg bliver helt træt hver gang jeg ser deres interface, som virkelig trænger til en opfrisker. Faktisk var jeg så træt af deres interface, at jeg var ved at overveje at flytte mine domæner til Dnsimple, som koster 8 USD/md for DNS og 2 USD/md pr domæne der skal have mail forward

Jeg sparer ikke det voldsomme ved at samle mine domæner ved Unoeuro, men det bliver lidt nemmere at administrere (to steder mod tre), og så brugte jeg slet ikke de muligheder Webfaction gav mig, og skulle jeg alligevel bruge de muligheder vil jeg nok i dag foretrække at køre min egen server.

peter.binderup.dk nu på egen server.

digitalocean-ssd-badgeWordPress er et nemt CMS at installere, og til dels at vedligeholde, men at få det til at køre stabilt og hurtigt er alt andet end “bare lige”.

I denne post vil jeg kort beskrive hvad jeg har gjort for at få mit site til at køre hurtigere. Det jeg har kunnet researche mig frem til er, at der ikke er én fejlsikret WordPress optimering man kan følge, da flere af tingene afhænger af det sted hvor man hoster, og hvordan de har opsat det miljø, som WordPress skal køre i.

Jeg har min generelle opsætning af mine hjemmesider ved Webfaction, som giver en ret stor fleksibilitet, som man normalt ikke ser ved andre shared hosts. Problemet er så bare, at der ofte er nogle brugere på ens server der “støjer” en del og bruger en masse ressourcer.

Mangel på ressourcer er ikke noget et WordPress site bryder sig om, så efter at have brugt en masse tid på at søge optimeringer på webfaction (diverse caching plugins, mod_pagespeed, Cloudfront CDN osv.) nåede jeg frem til, at jeg nok skulle til at give mig i kast med at hoste selv.

Læs resten

Fik endelig taget mig sammen til at opgradere PHP versionen på bloggen

Det er ved at være et stykke tid siden at jeg har brugt PHP til meget andet end at drive denne blog. Webfaction, som jeg hoster hos, bruger PHP 5.2 som standard versionen, og den er ikke specielt hurtig når jeg er i backend af dette site. Derfor mente jeg at sommervarmen da lige kunne bruges til, at opgradere PHP for bloggen.

Heldigvis er det dog ret nemt at skifte PHP version: http://blog.webfaction.com/2012/03/php-5-4-is-here/

Men det kan dog godt give lidt udfordringer. Problemet jeg oplevede var, at mit site ikke længere ville connecte til MySQL databasen. Løsningen var dog ikke så bøvlet, som jeg frygtede, og kunne klares ved blot at skifte password (inde i control panelet ved Webfaction): http://community.webfaction.com/questions/8063/php-54-and-wordpress-error-establishing-a-database-connection