Konfigurera NextCloud + ONLYOFFICE pÄ en server med Docker

Hej, Habr! Jag presenterar en översĂ€ttning av artikeln „Att stĂ€lla in NextCloud och ONLYOFFICE pĂ„ en enda server med Docker“.

Det Àr svÄrt att underskatta nyttan av online-paket av kontorsapplikationer som Google Docs och molnlagring i livet för tekniskt orienterade mÀnniskor. Teknologier har blivit sÄ utbredda att till och med Microsoft, som lÀnge dominerat marknaden för kontorsapplikationer, nyligen har fokuserat pÄ att utveckla webbapplikationen Office 365 och övertyga anvÀndare att gÄ över till en prenumerationsmodell för sina tjÀnster. De som Àr intresserade av processen att installera och konfigurera sin egen lagring Àr vÀlkomna att lÀsa vidare.

För en tid sedan bekantade vi oss med lösningar för molnlagring och kontorswebbapplikationer med öppen kĂ€llkod som enkelt kan implementeras för anvĂ€ndning i mikroföretag. Huvudmotivet för att lagra all dokumentation online Ă€r att minimera pappershanteringen och implementera positiva affĂ€rsmetoder, trots en liten mĂ€ngd operationer. Å andra sidan Ă€r nackdelen att hyra en molnserver för att tillhandahĂ„lla denna tjĂ€nst Ă€r mindre sĂ€ker Ă€n att lagra direkt pĂ„ företagets omrĂ„de, eftersom du saknar medel för att revidera fysisk Ă„tkomst till din server eller trafik. DĂ€rför Ă€r end-to-end-kryptering och programvara med öppen kĂ€llkod ocksĂ„ nödvĂ€ndigt.

Med all tillgÀnglig information om lösningar med öppen kÀllkod har vi funnit tvÄ aktiva projekt (med commits i git-repositoriet de senaste 12 mÄnaderna) som utvecklats för molnlagring: NextCloud och OwnCloud, och det enda aktiva kontorsapplikationspaketet ONLYOFFICE. BÄda molnlagringsverktygen har ungefÀr liknande funktionalitet, och valet att gÄ med NextCloud baserades pÄ bevis för att det kan integreras med ONLYOFFICE för en sömlös anvÀndarupplevelse. Men nÀr vi började implementera tjÀnsterna blev bristen pÄ information om integrationen av dessa tjÀnster uppenbar. Vi hittade tre instruktionsvideor om hur man kan utföra integrationen:

Inga av de tre videorna svarade pÄ frÄgan om hur man installerar ONLYOFFICE-dokumenttjÀnsten pÄ samma fysiska server som NextCloud med gemensam nginx. IstÀllet anvÀnde de teknologier för separation, som att anvÀnda separata portar för dokumenttjÀnstens API. Ett annat föreslaget alternativ var att distribuera en separat server för dokumenttjÀnsten med manuell konfiguration av den inbyggda nginx-instansen för dokumenttjÀnsten för att installera Ätkomstnyckeln (en i förvÀg kÀnd Ätkomstnyckel som bekrÀftar Ätkomst till datamolnet) och TLS-certifikat. De ovan nÀmnda metoderna bedömdes som osÀkra och inte tillrÀckligt effektiva, dÀrför integrerade vi NextCloud, ONLYOFFICE och gemensam nginx som delar förfrÄgningar efter domÀnnamn med hjÀlp av docker-compose. HÀr Àr steg-för-steg-information om hur man gör detta.

Steg 1: nginx-behÄllare

Detta Àr en mycket enkel installation, men det hÀr steget krÀver mest arbete för att konfigurera omvÀnd proxyserver. Först skapade vi en docker-compose-konfiguration för bilden nginx:stable.

version: '2'
services:
  nginx:
    image: nginx:stable
    restart: always
    volumes:
      - ./nginx/nginx-vhost.conf:/etc/nginx/conf.d/default.conf:ro
      - ./nginx/certificates:/mycerts
    ports:
      - 443:443
      - 80:80

Detta skapar en behĂ„llare med portar 80 och 443 öppna för offentlig tillgĂ„ng, gör en mappning av konfigurationen till nginx/nginx-vhost.conf och definierar lagringsplatsen för certifikat, genererade antingen som sjĂ€lvsignerade certifikat eller med hjĂ€lp av Certbot frĂ„n Let’s Encrypt i /nginx/certificates. HĂ€r bör mappar för office.yourdomain.com och cloud.yourdomain.com finnas med filerna fullchain1.pem och privkey1.pem i var och en för certifikatkedjan och serverns privata nyckel respektive. Du kan lĂ€sa mer om hur man genererar ett sjĂ€lvsignerat certifikat hĂ€r. www.akadia.com/services/ssh_test_certificate.html (omnamn av .key och .crt till .pem fungerar utan konvertering av filstrukturen för nginx).

Efter detta definierade vi vhost-filen. Först definierar vi beteendet för port 80 som en enkel vidarebefordran till https, eftersom vi inte vill tillÄta nÄgon http-trafik.

server {
    listen 80;
    location / {
        return 301
            https://$host$request_uri;
    }
}

Sedan skapade vi tvÄ virtuella servrar pÄ port 443 för vÄra tjÀnster:

server {
    listen 443 ssl;
    server_name cloud.yourdomain.com ;
    root /var/www/html;

    ssl_certificate     /mycerts/cloud.yourdomain.com/fullchain1.pem;
    ssl_certificate_key /mycerts/cloud.yourdomain.com/privkey1.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://app:80;
    }
}
server {
    listen 443 ssl;
    server_name office.yourdomain.com;
    root /var/www/html;

    ssl_certificate     /mycerts/office.yourdomain.com/fullchain1.pem;
    ssl_certificate_key /mycerts/office.yourdomain.com/privkey1.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_pass http://onlyoffice:80;
    }
}

Steg 2: dokumenttjÀnst

Nu mÄste vi lÀgga till dokumenttjÀnstbehÄllaren i vÄr docker-compose.yml. Det finns inte mycket att konfigurera hÀr.

services:
...
  onlyoffice:
    image: onlyoffice/documentserver
    restart: always

Men kom ihÄg att lÀnka nginx-behÄllaren med dokumenttjÀnsten:

services:
...
  nginx:
    ...
    depends_on:
      - onlyoffice

Steg 3: NextCloud

Först lÀgger vi till nya tjÀnster:

services:
...
  db:
    image: mariadb
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - /data/nextcloud_db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=#ange nÄgot lösenord hÀr
      - MYSQL_PASSWORD=#ange nÄgot annat lösenord hÀr
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
  app:
    image: nextcloud
    depends_on:
      - db
      - onlyoffice
    restart: always

och lÀgger till en lÀnk till nginx:

services:
...
  nginx:
    ...
    depends_on:
      - app 

Nu Àr det dags att ladda upp behÄllarna.

docker-compose up -d  

Efter en tid kommer nginx att börja omdirigera dig till NextClouds externa grÀnssnitt, vilket som standard Àr konfigurationssidan. Du mÄste ange anvÀndarnamn och lösenord för din första administratörsanvÀndare samt databasens uppgifter som du angav i docker-compose.yml. NÀr installationen Àr klar kan du logga in. I vÄrt fall tog det nÀstan en minut och krÀvde en extra uppdatering av inloggningssidan innan vi kunde logga in pÄ molntjÀnsten.

InstÀllningsfönstren för NextCloud-tjÀnstenKonfigurera NextCloud + ONLYOFFICE pÄ en server med Docker

Steg 4: anslutning av NextCloud och ONLYOFFICE

I det hĂ€r steget mĂ„ste du installera applikationen för NextCloud som kopplar samman funktionaliteten hos ONLYOFFICE. LĂ„t oss börja med apphanteringspanelen uppe till höger i menyn. Hitta applikationen ONLYOFFICE (i avsnittet “Kontor och text” eller med hjĂ€lp av sökfunktionen), installera och aktivera den.

Efter detta gÄr du till InstÀllningar via menyn uppe till höger, och du bör hitta alternativet ONLYOFFICE i vÀnstermenyn. GÄ in i det. Du mÄste ange adresserna enligt nedan.

InstÀllningar för integrationsapplikationenKonfigurera NextCloud + ONLYOFFICE pÄ en server med Docker

Den första adressen anvÀnds för att lÀnka till vissa js- och css-filer direkt frÄn den applikation som körs i webblÀsaren (detta Àr anledningen till att vi behöver öppna Ätkomst till ONLYOFFICE-tjÀnsten via nginx). Den hemliga nyckeln anvÀnds inte eftersom vi litar mer pÄ Docker-isoleringslagret Àn pÄ en permanent autentiseringnyckel. Den tredje adressen anvÀnds av NextCloud-containern för direktanslutning till ONLYOFFICE API, och den anvÀnder standardvÀrdnamnet frÄn Docker. Det sista fÀltet anvÀnds sÄ att ONLYOFFICE kan göra förfrÄgningar tillbaka till NextCloud API, med hjÀlp av den externa IP-adressen eller den interna Docker-adressen, om du anvÀnder Docker-nÀtverk, men i vÄrt fall anvÀnds det inte. Se till att din brandvÀgg Àr instÀlld för att tillÄta dessa typer av interaktioner.

Efter att du har sparat kommer NextCloud att testa anslutningen och, om allt Ă€r korrekt, visa dig instĂ€llningar relaterade till integrationen — till exempel vilka filtyper som kan redigeras med denna integration. Anpassa det som du anser Ă€r nödvĂ€ndigt.

Slutsteget: var man hittar redigeraren

Om du gĂ„r tillbaka till mapparna i ditt molnlagringsutrymme och klickar pĂ„ “+” för att skapa en ny fil, kommer en ny möjlighet att skapa ett dokument, ett kalkylblad eller en presentation att finnas tillgĂ€nglig. Med dem kan du skapa och direkt redigera dessa typer av filer med hjĂ€lp av ONLYOFFICE.

Menyn för filskapandeKonfigurera NextCloud + ONLYOFFICE pÄ en server med Docker

Bilaga 1

Den fullstÀndiga innehÄllsfilen docker-compose.yml kan hittas hÀr: https://pastebin.com/z1Ti1fTZ

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster