FlinkISO Installer 3.0.3 prepares a native, single-server QMS environment. It checks the server, downloads and validates the application and package set, installs the complete stack, generates secure database credentials, configures FlinkISO and ONLYOFFICE, deploys the application and runs final health checks.
Supported platforms
The installer accepts Ubuntu LTS on AMD64 only. Unsupported releases and architectures stop before the FlinkISO application is installed.
| Ubuntu release | PHP source | PHP version |
|---|---|---|
| 22.04 LTS — Jammy | Ondřej PHP PPA | PHP 8.2 |
| 24.04 LTS — Noble | Ondřej PHP PPA | PHP 8.2 |
| 26.04 LTS — Resolute | Ubuntu repositories | PHP 8.5 |
The server must provide systemd, working APT repositories and outbound HTTPS access. For another operating system, architecture or deployment topology, use the manual installation guide.
Server requirements
- A supported Ubuntu LTS AMD64 server with root or
sudoaccess. - A hostname or IPv4 address through which users can reach both FlinkISO and ONLYOFFICE.
- Port 80 available for Nginx and ONLYOFFICE.
- An application port between 1024 and 65535. The default is 8080; it must be free or already owned by Apache.
- Outbound HTTPS access for Ubuntu, PHP, ONLYOFFICE, GitHub and FlinkISO downloads.
- Enough RAM and storage for application packages, databases, document uploads, installer caches and backups.
Download key and installer
- Register for the Free On-Premise edition. Complete the form on the download page.
- Copy the download key. The key is sent to the registered email address and is requested when the installer prepares the FlinkISO archive.
- Download the current installer. Save it on the Ubuntu server from which the installation will run.
sudo wget https://www.flinkiso.com/flinkiso-updates/installer.sh -q --show-progress
sudo chmod +x installer.sh
Check first, then install
Use the public hostname or IPv4 address without a scheme, port or path. Running --check first validates the environment and downloads the complete package set without configuring the application servers.
sudo bash installer.sh --check --host SERVER_IP
sudo bash installer.sh --install --host SERVER_IP
The install action repeats the preflight checks and asks for the typed confirmation INSTALL before changing application services. If installer state already exists, --install resumes it automatically.
Actions and options
| Command | Purpose |
|---|---|
--check | Prepares repositories and validation tools, validates the archive and downloads packages without configuring application servers. |
--install | Runs preflight checks and installs a new FlinkISO environment, or resumes existing state. |
--resume | Continues an interrupted installation using the saved host, port, PHP version, key and database settings. |
--reinstall | Archives the current application, creates a new database and deploys a fresh application tree. |
--uninstall | Previews and removes installer-owned packages after confirmation while retaining databases, downloads and archived application files. |
--help | Displays command help and available options. |
--version | Displays the installer version. |
Running the script without an action opens a menu for install or resume, uninstall, reinstall, and download or preflight.
--host HOSTNAME_OR_IPV4
--port PORT
--archive /absolute/path/flinkiso.zip
--wkhtmltox-deb /absolute/path/compatible.deb
What the installer installs
| Component | Role |
|---|---|
| FlinkISO QMS | The registered on-premise application, deployed under /var/www/html/flinkiso. |
| Apache and PHP | Serves FlinkISO and phpMyAdmin using PHP 8.2 or 8.5 with CLI, cURL, XML, mbstring, MySQL, Intl, GD and ZIP support. |
| MySQL | Stores FlinkISO data in a randomly named database accessed by a generated restricted application user. |
| ONLYOFFICE Document Server | Provides browser document editing and conversion using Nginx, PostgreSQL and RabbitMQ. |
| PDFtk and wkhtmltox | Provide PDF processing and HTML-to-PDF output. The default wkhtmltox package is upstream 0.12.6.1-2 for Jammy AMD64. |
| Microsoft core fonts | Improves document font compatibility in ONLYOFFICE and exported files. |
| Bootstrap utilities | Installs tools used for secure downloads, archive checks, repository setup and system validation. |
The installer prints the requested top-level APT packages before downloading them. APT may download additional dependencies. ONLYOFFICE’s repository is added only when the required package is unavailable from the configured repositories.
Preflight and package preparation
Before deployment, the installer performs the following checks and preparation:
- Validates the Ubuntu release, AMD64 architecture, systemd, DPKG state and required ports.
- Validates dependency resolution before the server packages are installed.
- Downloads external files over IPv4 with HTTPS-only redirects and retry handling.
- Caches registered downloads under
/var/cache/flinkiso-installer/downloadsto avoid downloading the same archive repeatedly. - Checks the ZIP structure, integrity, required FlinkISO files, unsafe paths, symlinks and expanded size before extraction.
- Accepts a validated
flinkiso.zipfrom the current directory or an archive supplied with--archive. - Accepts an alternative compatible wkhtmltox package through
--wkhtmltox-deb.
On Ubuntu 26.04, obsolete Resolute entries for the unsupported Ondřej PHP PPA are disabled with backups. Native PHP 8.5 is used instead. The installer also handles the obsolete ONLYOFFICE Defaults:ds !requiretty rule when the server uses sudo-rs.
What happens during installation
- Protects package installation. Temporarily prevents services from starting while their prerequisite packages are being installed.
- Installs the complete stack. Adds Apache, the selected PHP version, MySQL, phpMyAdmin, PostgreSQL, RabbitMQ, Nginx, ONLYOFFICE, PDFtk, wkhtmltox and fonts.
- Validates PHP. Confirms required extensions, applies
pcre.jit=0for legacy application compatibility and lints generated PHP configuration before deployment. - Configures Apache. Uses the selected application port, enables PHP, rewrite, headers and phpMyAdmin, disables default Apache sites and creates the FlinkISO virtual host.
- Configures ONLYOFFICE. Creates its PostgreSQL database when needed, disables JWT validation for the FlinkISO integration, permits private-address callbacks and keeps cloud-metadata callbacks disabled.
- Creates isolated database credentials. Generates a random MySQL database name, restricted user and strong password without changing the MySQL root password or forcing
mysql_native_password. - Prepares FlinkISO. Imports the schema, replaces the company placeholder, writes database and ONLYOFFICE settings and deploys the application.
- Checks the result. Verifies required packages, configuration, schema and deployment, then checks services and HTTP endpoints.
/usr/sbin/policy-rc.d returned 101 can appear while service startup is temporarily blocked. The installer removes this guard before normal exit.Configuration applied automatically
| Area | Automated result |
|---|---|
| Apache | FlinkISO virtual host on the selected port, required modules, PHP integration and phpMyAdmin access. |
| PHP | Release-appropriate PHP and extensions, plus the compatibility setting required by the application. |
| MySQL | Random database and restricted user credentials, schema import and generated database.php. |
| ONLYOFFICE | PostgreSQL setup, local Document Server configuration, shared integration secret and controlled callback access. |
| FlinkISO | ONLYOFFICE browser and conversion URLs, security values, registered company placeholder and upload directory. |
| Validation | PHP linting, database schema verification, package checks, service checks and HTTP endpoint checks. |
Required package, configuration, schema or deployment failures stop the installer. Final service or HTTP health-check failures are reported as warnings so the administrator can inspect the installed environment and log.
Resume and reinstall
Resume an interrupted run
sudo bash installer.sh --resume
Resume restores the saved host, port, PHP version, registration key and database information. A completed schema import is not repeated. If a newly generated database has an incomplete import, the installer can recreate that database. An already deployed application tree and its uploads are retained.
Reinstall a fresh application
sudo bash installer.sh --reinstall --host SERVER_IP
Reinstall checks dependencies first, archives the existing application files, creates a new randomly named database and deploys a fresh application tree. It does not migrate existing users, records or uploads into the new installation, and it leaves earlier databases on the server.
Controlled uninstall
sudo bash installer.sh --uninstall
The installer previews packages it recorded as newly installed. After the typed UNINSTALL confirmation, APT shows its removal plan and asks for confirmation. The process archives /var/www/html/flinkiso, removes the FlinkISO Apache site and archives installer state.
Uninstall does not purge packages or run global autoremove. Database files, package configuration, APT repositories and validated downloads remain available. Review the package list carefully when the server also hosts unrelated applications.
Logs, state and backups
| Purpose | Location |
|---|---|
| Installer log | /var/log/flinkiso-installer.log |
| Current settings and generated database credentials | /var/lib/flinkiso-installer/current/settings.json |
| Configuration and application backups | /var/backups/flinkiso-installer/run-* |
| FlinkISO Apache error log | /var/log/apache2/flinkiso-error.log |
| Download and APT cache | /var/cache/flinkiso-installer |
| Application directory | /var/www/html/flinkiso |
settings.json as a secret because it contains generated database credentials and the registration key.Failure and recovery
When a required step fails, the installer identifies the current phase, stops later steps and records packages already installed. Correct the reported problem and run --resume. Do not delete APT lock files.
sudo dpkg --audit
sudo dpkg --configure -a
If Microsoft fonts were not downloaded, run sudo dpkg-reconfigure ttf-mscorefonts-installer. If wkhtmltox or PDF validation reports a warning, install a compatible patched-Qt build and test FlinkISO PDF export.
After a power loss or forced termination, the next run removes the temporary service guard only when its tracking marker and exact contents match. Otherwise, it stops for administrator review. Use the recorded backup directory and Apache error log when recovery is required.
Verify the finished installation
- Open FlinkISO through the configured host and application port and sign in.
- Upload and download a file to verify application storage permissions.
- Open an office document to verify ONLYOFFICE editing and callbacks.
- Generate a PDF to verify wkhtmltox and PDFtk.
- Open phpMyAdmin only from an authorised network and verify database access.
- Configure and test outgoing application email.
- Configure HTTPS, firewall policy, public access controls, backups and any tighter application permissions required by the organisation.
For installer assistance, email [email protected] or use the FlinkISO community forum.