Ghid complet de instalare Euro-Office Document

Aceasta e o versiune anterioară a paginii.


Ghid complet de instalare Euro-Office Document Server

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 GitHub Releases. Înlocuiește ``<version>`` cu versiunea dorită (de exemplu ``9.3.1``) și ``<arch>`` cu arhitectura sistemului tău.

Arhitecturi disponibile: ``amd64``, ``arm64``

wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<version>/euro-office-documentserver_<version>_<arch>.deb" \
  -O /tmp/euro-office-documentserver.deb

Arhitecturi disponibile: ``amd64``, ``arm64``

wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<version>/euro-office-documentserver_<version>_<arch>.deb" \
  -O /tmp/euro-office-documentserver.deb

Arhitecturi disponibile: ``x86_64``, ``aarch64``

wget "https://github.com/Euro-Office/DocumentServer/releases/download/v<version>/euro-office-documentserver-<version>.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:<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>

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:<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>

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

  1. Autentifică-te în Nextcloud ca administrator.
  2. Mergi la AppsOffice & text.
  3. Caută Euro-Office integration și apasă Download and enable.

Pasul 2 - Configurează conexiunea

  1. Mergi la SettingsAdministrationEuro-Office.
  2. Introdu URL-ul serverului de documente, inclusiv protocolul și portul (de exemplu ``https://eurooffice.example.com``).
  3. Introdu secretul JWT configurat pe serverul de documente.
  4. 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 github.com/Euro-Office/eurooffice-nextcloud.

Actualizare și dezinstalare

Actualizare

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

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<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

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