Această pagină poate fi doar citită. Poți vedea sursa, dar nu poți modifica pagina. Consultă administratorul dacă ești de părere că ceva este în neregulă. ====== 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 ==== <tab-group> <tab title="Ubuntu"> 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: <code bash> sudo apt-get update sudo apt-get install -y postgresql redis-server rabbitmq-server nginx supervisor </code> </tab> <tab title="Debian"> Î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: <code> 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 </code> Actualizează indexul și instalează dependențele: <code bash> sudo apt-get update sudo apt-get install -y postgresql redis-server rabbitmq-server nginx supervisor </code> </tab> <tab title="Fedora"> Pe Fedora 41+, RabbitMQ nu este disponibil în depozitele implicite. Activează mai întâi depozitul packagecloud: <code bash> curl -1sLf 'https://packagecloud.io/rabbitmq/rabbitmq-server/script.rpm.sh' | sudo bash </code> Pe Fedora, Redis se numește Valkey. Instalează toate dependențele: <code bash> sudo dnf install -y \ postgresql-server postgresql postgresql-contrib \ valkey \ rabbitmq-server \ nginx \ supervisor </code> Inițializează PostgreSQL și pornește toate serviciile: <code bash> sudo postgresql-setup --initdb sudo systemctl enable --now postgresql valkey rabbitmq-server nginx supervisor </code> > **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. </tab> </tab-group> ==== Pasul 2 - Configurează autentificarea PostgreSQL ==== <tab-group> <tab title="Ubuntu"> Pe Ubuntu, PostgreSQL este configurat implicit cu autentificare prin socket pentru utilizatorul ``postgres`` - nu sunt necesare modificări suplimentare. </tab> <tab title="Debian"> Pe Debian, PostgreSQL este configurat implicit cu autentificare prin socket pentru utilizatorul ``postgres`` - nu sunt necesare modificări suplimentare. </tab> <tab title="Fedora"> 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``: <code> # î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 </code> Reîncarcă PostgreSQL: <code bash> sudo systemctl reload postgresql </code> </tab> </tab-group> ==== 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: <code bash> sudo -u postgres psql -c "CREATE USER ds WITH PASSWORD 'ds';" sudo -u postgres psql -c "CREATE DATABASE ds OWNER ds;" </code> ==== Pasul 4 - Pre-configurează răspunsurile instalatorului ==== <tab-group> <tab title="Ubuntu"> 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: <code bash> 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 </code> </tab> <tab title="Debian"> 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: <code bash> 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 </code> </tab> <tab title="Fedora"> Pe Fedora, instalatorul RPM nu folosește debconf - configurarea bazei de date se face manual la pașii următori. </tab> </tab-group> ==== Pasul 5 - Descarcă pachetul ==== Descarcă cea mai recentă versiune de pe [[https://github.com/Euro-Office/DocumentServer/releases|GitHub Releases]]. Înlocuiește ``<version>`` cu versiunea dorită (de exemplu ``9.3.1``) și ``<arch>`` cu arhitectura sistemului tău. <tab-group> <tab title="Ubuntu"> Arhitecturi disponibile: ``amd64``, ``arm64`` <code bash> wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<version>/euro-office-documentserver_<version>_<arch>.deb" \ -O /tmp/euro-office-documentserver.deb </code> </tab> <tab title="Debian"> Arhitecturi disponibile: ``amd64``, ``arm64`` <code bash> wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<version>/euro-office-documentserver_<version>_<arch>.deb" \ -O /tmp/euro-office-documentserver.deb </code> </tab> <tab title="Fedora"> Arhitecturi disponibile: ``x86_64``, ``aarch64`` <code bash> wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<version>/euro-office-documentserver-<version>.x86_64.rpm" \ -O /tmp/euro-office-documentserver.rpm </code> </tab> </tab-group> ==== Pasul 6 - Instalează pachetul ==== <tab-group> <tab title="Ubuntu"> <code bash> sudo apt-get install -y /tmp/euro-office-documentserver.deb </code> Instalatorul va genera fonturile, cheile WOPI și cache-urile JS - procesul durează aproximativ un minut. O instalare reușită se încheie cu: <code> Congratulations, the Euro-Office DocumentServer has been installed successfully! </code> </tab> <tab title="Debian"> <code bash> sudo apt-get install -y /tmp/euro-office-documentserver.deb </code> Instalatorul va genera fonturile, cheile WOPI și cache-urile JS - procesul durează aproximativ un minut. O instalare reușită se încheie cu: <code> Congratulations, the Euro-Office DocumentServer has been installed successfully! </code> </tab> <tab title="Fedora"> Pachetul ``msttcore-fonts`` nu este disponibil în depozitele Fedora, deci instalarea trebuie să ignore acea dependență cu ``--nodeps``: <code bash> sudo rpm -ivh --nodeps /tmp/euro-office-documentserver.rpm </code> Spre deosebire de varianta ``.deb``, instalatorul RPM nu rulează automat toate scripturile de configurare - sunt necesari câțiva pași manuali suplimentari. </tab> </tab-group> ==== Pasul 7 - Pași suplimentari după instalare (doar Fedora) ==== <tab-group> <tab title="Ubuntu"> Nu sunt necesari pași suplimentari. Continuă cu verificarea serviciilor. </tab> <tab title="Debian"> Nu sunt necesari pași suplimentari. Continuă cu verificarea serviciilor. </tab> <tab title="Fedora"> === Inițializează schema bazei de date === Instalatorul RPM nu aplică schema bazei de date automat. Aplică-o manual: <code bash> 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;" </code> === 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: <code> # înainte # include /etc/nginx/conf.d/*.conf; # după include /etc/nginx/conf.d/*.conf; </code> **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): <code> # server { # listen 80; # listen [::]:80; # server_name _; # root /usr/share/nginx/html; # ... # } </code> Verifică și reîncarcă Nginx: <code bash> sudo nginx -t && sudo systemctl reload nginx </code> === 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/…``: <code bash> sudo dnf install -y openssl sudo /usr/bin/documentserver-flush-cache.sh </code> === 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: <code bash> 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 </code> Reține secretul configurat - vei avea nevoie de el la integrarea cu Nextcloud. === Pornește serviciile serverului de documente === <code bash> sudo systemctl enable --now ds-docservice ds-converter ds-metrics </code> </tab> </tab-group> ==== Pasul 8 - Verifică serviciile ==== <code bash> systemctl is-active ds-docservice ds-converter ds-metrics nginx </code> Rezultatul așteptat pentru toate patru servicii: ``active`` Verifică și endpoint-ul de sănătate: <code bash> curl http://localhost/healthcheck </code> 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ă ==== <code bash> 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 </code> Serverul este gata când verificarea de sănătate returnează ``true``: <code bash> curl http://localhost/healthcheck </code> ==== 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``: <code> ghcr.io/euro-office/documentserver:9.3.1 </code> ==== Date persistente ==== Implicit, documentele și configurația se pierd când containerul este șters. Montează volume locale pentru a le păstra între reporniri: <code bash> 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 </code> ==== 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. <tab-group> <tab title="Ubuntu / Debian"> Pornește serviciul de exemplu: <code bash> sudo systemctl start ds-example systemctl is-active ds-example </code> Configurează aplicația editând ``/etc/euro-office/documentserver-example/local.json``: <code bash> 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 </code> Î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: <code bash> sudo grep -A1 '"browser"' /etc/euro-office/documentserver/local.json | grep '"string"' </code> Repornește serviciul după configurare: <code bash> sudo systemctl restart ds-example </code> Deschide ``http://<adresa-ip>/example/`` în navigator și apasă **Create** pentru a deschide un document gol în editor. Pentru a dezactiva aplicația de exemplu după testare: <code bash> sudo systemctl stop ds-example sudo systemctl disable ds-example </code> </tab> <tab title="Fedora"> Pornește serviciul de exemplu: <code bash> sudo systemctl start ds-example systemctl is-active ds-example </code> Configurează aplicația editând ``/etc/euro-office/documentserver-example/local.json``: <code bash> 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 </code> 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: <code bash> sudo systemctl restart ds-example </code> Deschide ``http://<adresa-ip>/example/`` în navigator și apasă **Create** pentru a deschide un document gol în editor. Pentru a dezactiva aplicația de exemplu după testare: <code bash> sudo systemctl stop ds-example sudo systemctl disable ds-example </code> </tab> <tab title="Docker"> Pornește containerul cu ``EXAMPLE_ENABLED=true`` pe un port alternativ: <code bash> 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 </code> Deschide ``http://localhost:8080/example/`` în navigator. Nu activa ``EXAMPLE_ENABLED`` în producție. </tab> </tab-group> ===== 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 ===== <tab-group> <tab title="Ubuntu / Debian"> === Actualizare === <code bash> wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<new-version>/euro-office-documentserver_<new-version>_<arch>.deb" \ -O /tmp/euro-office-documentserver.deb sudo apt-get install -y /tmp/euro-office-documentserver.deb </code> === Dezinstalare === <code bash> sudo apt-get remove --purge euro-office-documentserver sudo -u postgres psql -c "DROP DATABASE ds;" sudo -u postgres psql -c "DROP USER ds;" </code> </tab> <tab title="Fedora"> === Actualizare === <code bash> wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<new-version>/euro-office-documentserver-<new-version>.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 </code> === Dezinstalare === <code bash> sudo rpm -e euro-office-documentserver sudo -u postgres psql -c "DROP DATABASE ds;" sudo -u postgres psql -c "DROP USER ds;" </code> </tab> <tab title="Docker"> === Actualizare === <code bash> 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 </code> === Dezinstalare === <code bash> docker stop euro-office docker rm euro-office docker rmi ghcr.io/euro-office/documentserver:latest </code> </tab> </tab-group> ===== 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]]