====== Ghid complet de instalare Euro-Office Document ====== {{tag>euro-office document-server ubuntu debian fedora docker nextcloud instalare open-source office}} Euro-Office Document Server este un server de documente open-source compatibil cu formatele Office (``.docx``, ``.xlsx``, ``.pptx``) care poate fi instalat nativ pe mai multe distribuții Linux sau rulat ca un container Docker. Acest ghid acoperă instalarea nativă pe Ubuntu, Debian și Fedora, instalarea prin Docker, verificarea funcționării și integrarea cu Nextcloud. ===== Cerințe generale de sistem ===== Indiferent de metoda de instalare aleasă, serverul are nevoie de: * minimum 4 GB RAM * minimum 10 GB spațiu liber pe disc (5 GB pentru Docker) ===== Instalare nativă ===== ==== Pasul 1 - Instalează dependențele ==== Euro-Office necesită PostgreSQL, Redis, RabbitMQ, Nginx și Supervisor. Pe Ubuntu 24.04 LTS (arhitecturi ``amd64`` și ``arm64``), toate sunt disponibile direct din depozitele oficiale: sudo apt-get update sudo apt-get install -y postgresql redis-server rabbitmq-server nginx supervisor Înainte de a instala dependențele pe Debian 12 (Bookworm), trebuie activată componenta ``contrib``, deoarece pachetul ``ttf-mscorefonts-installer`` necesar de Euro-Office se află acolo și nu este disponibil implicit. Editează ``/etc/apt/sources.list`` și adaugă ``contrib`` la fiecare linie: deb http://deb.debian.org/debian bookworm main contrib deb http://deb.debian.org/debian bookworm-updates main contrib deb http://deb.debian.org/debian-security/ bookworm-security main contrib Actualizează indexul și instalează dependențele: sudo apt-get update sudo apt-get install -y postgresql redis-server rabbitmq-server nginx supervisor Pe Fedora 41+, RabbitMQ nu este disponibil în depozitele implicite. Activează mai întâi depozitul packagecloud: curl -1sLf 'https://packagecloud.io/rabbitmq/rabbitmq-server/script.rpm.sh' | sudo bash Pe Fedora, Redis se numește Valkey. Instalează toate dependențele: sudo dnf install -y \ postgresql-server postgresql postgresql-contrib \ valkey \ rabbitmq-server \ nginx \ supervisor Inițializează PostgreSQL și pornește toate serviciile: sudo postgresql-setup --initdb sudo systemctl enable --now postgresql valkey rabbitmq-server nginx supervisor > **Notă:** Rocky Linux 9 nu este suportat din cauza unei incompatibilități cu versiunea glibc (2.34 față de 2.35 necesară). Folosește Fedora 41+ sau instalarea prin Docker. ==== Pasul 2 - Configurează autentificarea PostgreSQL ==== Pe Ubuntu, PostgreSQL este configurat implicit cu autentificare prin socket pentru utilizatorul ``postgres`` - nu sunt necesare modificări suplimentare. Pe Debian, PostgreSQL este configurat implicit cu autentificare prin socket pentru utilizatorul ``postgres`` - nu sunt necesare modificări suplimentare. Fedora folosește implicit autentificarea de tip ``ident`` pentru PostgreSQL, care blochează conectările cu parolă. Editează ``/var/lib/pgsql/data/pg_hba.conf`` și schimbă ``ident`` în ``md5`` pe liniile pentru ``127.0.0.1`` și ``::1``: # înainte host all all 127.0.0.1/32 ident host all all ::1/128 ident # după host all all 127.0.0.1/32 md5 host all all ::1/128 md5 Reîncarcă PostgreSQL: sudo systemctl reload postgresql ==== Pasul 3 - Creează baza de date ==== Scriptul de post-instalare se conectează la PostgreSQL în timpul instalării, deci utilizatorul și baza de date trebuie să existe dinainte: sudo -u postgres psql -c "CREATE USER ds WITH PASSWORD 'ds';" sudo -u postgres psql -c "CREATE DATABASE ds OWNER ds;" ==== Pasul 4 - Pre-configurează răspunsurile instalatorului ==== Pachetul ``.deb`` solicită detaliile de conexiune la baza de date în mod non-interactiv. Furnizează răspunsurile în avans ca să nu fie nevoie de input manual: echo "ds ds/db-type select postgres ds ds/db-host string localhost ds ds/db-port string 5432 ds ds/db-user string ds ds ds/db-pwd password ds ds ds/db-name string ds" | sudo debconf-set-selections Pachetul ``.deb`` solicită detaliile de conexiune la baza de date în mod non-interactiv. Furnizează răspunsurile în avans ca să nu fie nevoie de input manual: echo "ds ds/db-type select postgres ds ds/db-host string localhost ds ds/db-port string 5432 ds ds/db-user string ds ds ds/db-pwd password ds ds ds/db-name string ds" | sudo debconf-set-selections Pe Fedora, instalatorul RPM nu folosește debconf - configurarea bazei de date se face manual la pașii următori. ==== Pasul 5 - Descarcă pachetul ==== Descarcă cea mai recentă versiune de pe [[https://github.com/Euro-Office/DocumentServer/releases|GitHub Releases]]. Înlocuiește ```` cu versiunea dorită (de exemplu ``9.3.1``) și ```` cu arhitectura sistemului tău. Arhitecturi disponibile: ``amd64``, ``arm64`` wget "https://github.com/Euro-Office/DocumentServer/releases/download/v/euro-office-documentserver__.deb" \ -O /tmp/euro-office-documentserver.deb Arhitecturi disponibile: ``amd64``, ``arm64`` wget "https://github.com/Euro-Office/DocumentServer/releases/download/v/euro-office-documentserver__.deb" \ -O /tmp/euro-office-documentserver.deb Arhitecturi disponibile: ``x86_64``, ``aarch64`` wget "https://github.com/Euro-Office/DocumentServer/releases/download/v/euro-office-documentserver-.x86_64.rpm" \ -O /tmp/euro-office-documentserver.rpm ==== Pasul 6 - Instalează pachetul ==== sudo apt-get install -y /tmp/euro-office-documentserver.deb Instalatorul va genera fonturile, cheile WOPI și cache-urile JS - procesul durează aproximativ un minut. O instalare reușită se încheie cu: Congratulations, the Euro-Office DocumentServer has been installed successfully! sudo apt-get install -y /tmp/euro-office-documentserver.deb Instalatorul va genera fonturile, cheile WOPI și cache-urile JS - procesul durează aproximativ un minut. O instalare reușită se încheie cu: Congratulations, the Euro-Office DocumentServer has been installed successfully! Pachetul ``msttcore-fonts`` nu este disponibil în depozitele Fedora, deci instalarea trebuie să ignore acea dependență cu ``--nodeps``: sudo rpm -ivh --nodeps /tmp/euro-office-documentserver.rpm Spre deosebire de varianta ``.deb``, instalatorul RPM nu rulează automat toate scripturile de configurare - sunt necesari câțiva pași manuali suplimentari. ==== Pasul 7 - Pași suplimentari după instalare (doar Fedora) ==== Nu sunt necesari pași suplimentari. Continuă cu verificarea serviciilor. Nu sunt necesari pași suplimentari. Continuă cu verificarea serviciilor. === Inițializează schema bazei de date === Instalatorul RPM nu aplică schema bazei de date automat. Aplică-o manual: sudo -u postgres psql -d ds \ -f /var/www/onlyoffice/documentserver/server/schema/postgresql/createdb.sql sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO ds;" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO ds;" === Corectează configurația Nginx === Fișierul implicit ``/etc/nginx/nginx.conf`` din Fedora necesită două modificări. **1.** Directorul ``conf.d`` nu este inclus. Găsește această linie în blocul ``http {}`` și decomentează-o: # înainte # include /etc/nginx/conf.d/*.conf; # după include /etc/nginx/conf.d/*.conf; **2.** Există un bloc ``server {}`` implicit pe portul 80 care interceptează cererile. Comentează întregul bloc care ascultă pe portul 80 (de obicei 15-20 de linii): # server { # listen 80; # listen [::]:80; # server_name _; # root /usr/share/nginx/html; # ... # } Verifică și reîncarcă Nginx: sudo nginx -t && sudo systemctl reload nginx === Instalează OpenSSL și generează cache-urile JS === Scriptul de generare a cache-urilor necesită ``openssl``, care nu este instalat implicit pe Fedora. Fără acest pas, editorul va eșua la încărcare cu o eroare de tipul ``Cannot GET /9.3.1-/web-apps/…``: sudo dnf install -y openssl sudo /usr/bin/documentserver-flush-cache.sh === Configurează autentificarea JWT === Instalatorul RPM nu generează configurația JWT automat. Creează ``/etc/euro-office/documentserver/local.json`` cu un secret ales de tine - toate cele trei valori trebuie să fie identice: sudo tee /etc/euro-office/documentserver/local.json > /dev/null << 'EOF' { "services": { "CoAuthoring": { "token": { "enable": { "request": { "inbox": true, "outbox": true }, "browser": true }, "secret": { "inbox": { "string": "REPLACE_WITH_YOUR_SECRET" }, "outbox": { "string": "REPLACE_WITH_YOUR_SECRET" }, "browser": { "string": "REPLACE_WITH_YOUR_SECRET" } } } } } } EOF Reține secretul configurat - vei avea nevoie de el la integrarea cu Nextcloud. === Pornește serviciile serverului de documente === sudo systemctl enable --now ds-docservice ds-converter ds-metrics ==== Pasul 8 - Verifică serviciile ==== systemctl is-active ds-docservice ds-converter ds-metrics nginx Rezultatul așteptat pentru toate patru servicii: ``active`` Verifică și endpoint-ul de sănătate: curl http://localhost/healthcheck Rezultatul așteptat: ``true`` ===== Instalare prin Docker ===== Cea mai rapidă metodă de a porni Euro-Office, care funcționează pe orice distribuție Linux cu Docker Engine 20.10 sau mai nou instalat. Necesită minimum 4 GB RAM și 5 GB spațiu pe disc pentru imagine. ==== Pornire rapidă ==== docker run -d \ --name euro-office \ --restart=unless-stopped \ -p 80:80 \ -e JWT_ENABLED=true \ -e JWT_SECRET=your-secret \ ghcr.io/euro-office/documentserver:latest Serverul este gata când verificarea de sănătate returnează ``true``: curl http://localhost/healthcheck ==== Tag-uri disponibile pentru imagine ==== ^ Tag ^ Utilizare ^ | ``latest`` | Cea mai recentă versiune stabilă - recomandat pentru producție | | ``nightly`` | Build-uri nocturne din branch-ul ``main`` - nu pentru producție | | ``latest-dev`` | Imagine de dezvoltare cu unelte de compilare incluse | În producție, fixează o versiune specifică în loc de ``latest``: ghcr.io/euro-office/documentserver:9.3.1 ==== Date persistente ==== Implicit, documentele și configurația se pierd când containerul este șters. Montează volume locale pentru a le păstra între reporniri: docker run -d \ --name euro-office \ --restart=unless-stopped \ -p 80:80 \ -e JWT_ENABLED=true \ -e JWT_SECRET=your-secret \ -v /path/to/data:/var/lib/euro-office/documentserver \ -v /path/to/logs:/var/log/euro-office/documentserver \ -v /path/to/config:/etc/euro-office/documentserver \ ghcr.io/euro-office/documentserver:latest ==== Variabile de mediu disponibile ==== ^ Variabilă ^ Valoare implicită ^ Descriere ^ | ``JWT_ENABLED`` | ``true`` | Activează autentificarea JWT | | ``JWT_SECRET`` | - | Secretul partajat - obligatoriu în producție | | ``JWT_HEADER`` | ``Authorization`` | Header-ul HTTP care transportă JWT-ul | | ``EXAMPLE_ENABLED`` | ``false`` | Activează aplicația de exemplu inclusă | | ``WOPI_ENABLED`` | ``false`` | Activează suportul pentru protocolul WOPI | | ``ALLOW_PRIVATE_IP_ADDRESS`` | ``false`` | Permite serverului să acceseze adrese IP private | | ``NGINX_WORKER_PROCESSES`` | ``1`` | Numărul de procese Nginx worker | | ``GENERATE_FONTS`` | ``true`` | Regenerează cache-ul de fonturi la pornire | | ``DB_HOST`` | ``localhost`` | Gazda PostgreSQL (pentru bază de date externă) | | ``DB_NAME`` | ``eurooffice`` | Numele bazei de date PostgreSQL | | ``DB_USER`` | ``eurooffice`` | Utilizatorul PostgreSQL | | ``REDIS_SERVER_HOST`` | ``localhost`` | Gazda Redis (pentru Redis extern) | | ``AMQP_HOST`` | ``localhost`` | Gazda RabbitMQ (pentru RabbitMQ extern) | ===== Verificare cu aplicația de exemplu ===== Euro-Office include o aplicație Node.js de testare care permite deschiderea și editarea documentelor direct în navigator. Este destinată exclusiv testării - nu o expune pe un server public, deoarece nu are niciun control de acces. Pornește serviciul de exemplu: sudo systemctl start ds-example systemctl is-active ds-example Configurează aplicația editând ``/etc/euro-office/documentserver-example/local.json``: sudo tee /etc/euro-office/documentserver-example/local.json > /dev/null << 'EOF' { "server": { "siteUrl": "/", "exampleUrl": "http://YOUR_SERVER_IP/example", "token": { "enable": true, "secret": "REPLACE_WITH_YOUR_JWT_SECRET", "authorizationHeader": "Authorization" } } } EOF Înlocuiește ``YOUR_SERVER_IP`` cu adresa IP sau numele de gazdă al serverului, fără slash la final. Dacă rulezi local pe propria mașină, poți folosi ``http://localhost/example``. În containere, mașini virtuale sau servere la distanță, folosește adresa IP reală - altfel serverul va genera URL-uri de callback incorecte. Secretul JWT este generat automat de instalatorul ``.deb``. Îl găsești cu: sudo grep -A1 '"browser"' /etc/euro-office/documentserver/local.json | grep '"string"' Repornește serviciul după configurare: sudo systemctl restart ds-example Deschide ``http:///example/`` în navigator și apasă **Create** pentru a deschide un document gol în editor. Pentru a dezactiva aplicația de exemplu după testare: sudo systemctl stop ds-example sudo systemctl disable ds-example Pornește serviciul de exemplu: sudo systemctl start ds-example systemctl is-active ds-example Configurează aplicația editând ``/etc/euro-office/documentserver-example/local.json``: sudo tee /etc/euro-office/documentserver-example/local.json > /dev/null << 'EOF' { "server": { "siteUrl": "/", "exampleUrl": "http://YOUR_SERVER_IP/example", "token": { "enable": true, "secret": "REPLACE_WITH_YOUR_JWT_SECRET", "authorizationHeader": "Authorization" } } } EOF Pe Fedora folosește întotdeauna adresa IP reală a serverului în loc de ``localhost`` - altfel serverul va genera URL-uri de callback incorecte. Secretul JWT este cel setat manual la pasul de configurare JWT. Repornește serviciul după configurare: sudo systemctl restart ds-example Deschide ``http:///example/`` în navigator și apasă **Create** pentru a deschide un document gol în editor. Pentru a dezactiva aplicația de exemplu după testare: sudo systemctl stop ds-example sudo systemctl disable ds-example Pornește containerul cu ``EXAMPLE_ENABLED=true`` pe un port alternativ: docker run -d \ --name euro-office \ --restart=unless-stopped \ -p 8080:80 \ -e JWT_ENABLED=true \ -e JWT_SECRET=your-secret \ -e EXAMPLE_ENABLED=true \ ghcr.io/euro-office/documentserver:latest Deschide ``http://localhost:8080/example/`` în navigator. Nu activa ``EXAMPLE_ENABLED`` în producție. ===== Integrare cu Nextcloud ===== Euro-Office se integrează cu Nextcloud printr-o aplicație dedicată. Cerințe: * un server Euro-Office Document Server funcțional și accesibil din rețeaua instanței Nextcloud * secretul JWT configurat pe serverul de documente * Nextcloud 34 sau mai nou ==== Pasul 1 - Instalează aplicația Euro-Office în Nextcloud ==== - Autentifică-te în Nextcloud ca administrator. - Mergi la **Apps** → **Office & text**. - Caută **Euro-Office integration** și apasă **Download and enable**. ==== Pasul 2 - Configurează conexiunea ==== - Mergi la **Settings** → **Administration** → **Euro-Office**. - Introdu URL-ul serverului de documente, inclusiv protocolul și portul (de exemplu ``https://eurooffice.example.com``). - Introdu secretul JWT configurat pe serverul de documente. - Apasă **Save**. După salvare, fișierele ``.docx``, ``.xlsx`` și ``.pptx`` din Nextcloud se vor deschide direct în editorul Euro-Office, din navigator. Codul sursă al aplicației de integrare este disponibil la [[https://github.com/Euro-Office/eurooffice-nextcloud|github.com/Euro-Office/eurooffice-nextcloud]]. ===== Actualizare și dezinstalare ===== === Actualizare === wget "https://github.com/Euro-Office/DocumentServer/releases/download/v/euro-office-documentserver__.deb" \ -O /tmp/euro-office-documentserver.deb sudo apt-get install -y /tmp/euro-office-documentserver.deb === Dezinstalare === sudo apt-get remove --purge euro-office-documentserver sudo -u postgres psql -c "DROP DATABASE ds;" sudo -u postgres psql -c "DROP USER ds;" === Actualizare === wget "https://github.com/Euro-Office/DocumentServer/releases/download/v/euro-office-documentserver-.x86_64.rpm" \ -O /tmp/euro-office-documentserver.rpm sudo rpm -Uvh --nodeps /tmp/euro-office-documentserver.rpm sudo /usr/bin/documentserver-flush-cache.sh === Dezinstalare === sudo rpm -e euro-office-documentserver sudo -u postgres psql -c "DROP DATABASE ds;" sudo -u postgres psql -c "DROP USER ds;" === Actualizare === docker pull ghcr.io/euro-office/documentserver:latest docker stop euro-office && docker rm euro-office # rulează din nou comanda docker run cu aceiași parametri === Dezinstalare === docker stop euro-office docker rm euro-office docker rmi ghcr.io/euro-office/documentserver:latest ===== Care metodă de instalare să alegi? ===== ^ ^ Docker ^ Ubuntu ^ Debian ^ Fedora ^ | Recomandat pentru producție | Da | Da | Da | - | | Cel mai ușor de actualizat | Da | - | - | - | | Control complet asupra sistemului | - | Da | Da | Da | | Integrare Nextcloud | Da | Da | Da | Da | | Pași de configurare manuală | Puțini | Mediu | Mediu | Mulți | Docker este cea mai rapidă opțiune și cea mai ușor de actualizat. Instalarea nativă pe Ubuntu sau Debian este recomandată când ai nevoie de control deplin asupra sistemului sau când integrezi Euro-Office cu servicii deja existente pe server. Fedora necesită cei mai mulți pași manuali și este mai potrivită pentru utilizatorii familiarizați cu ecosistemul RPM. ===== Referințe ===== * [[https://euro-office.github.io/documentation/installation/|Documentația oficială Euro-Office]] * [[https://github.com/Euro-Office/DocumentServer/releases|GitHub Releases - Euro-Office DocumentServer]] * [[https://github.com/Euro-Office/eurooffice-nextcloud|Aplicația de integrare Nextcloud]]