Andritz 2.0 — Pre-Migration Discovery & Current-State Assessment

Prepared for: Netlink migration team (Saurabh, Aditya)
Prepared and verified by: Premnath D (8939720893)
Date prepared: 2026-09-11
Objective: Establish a verified baseline of the application, database, and hosting environment ahead of the Hostinger → Azure VM migration, and record the gaps between the current state and the assumptions in the migration plan.
Source of truth: live server inspection via SSH (port 65002, u419061541@195.35.4.69), live API calls, and decompiled Unity WebGL WebAssembly/framework bundles.

Headline correction: The hosting is NOT Ubuntu. It is AlmaLinux 9.7 (RHEL 9 compatible), a Hostinger shared-hosting environment (Phusion Passenger + LiteSpeed). The "Ubuntu 24 LTS" target assumption needs to be revisited — see Migration Implications.


1. Application Overview

1.1 The Unity WebGL App

Item Value
Public URL https://effetechnology.in/AndritzDemo_V34/
App title Andritz
Engine Unity 6000.0 (Unity 6) — confirmed via framework bundle referencing docs.unity3d.com/6000.0/
Build size 306 MB total (Build/ alone is 306 MB)
Loader Build/AndritzDemo_V34.loader.js (117,893 bytes)
Framework Build/AndritzDemo_V34.framework.js.unityweb (84,141 bytes, Brotli)
WebAssembly Build/AndritzDemo_V34.wasm.unityweb (11,520,629 bytes, Brotli)
Asset data Build/AndritzDemo_V34.data.unityweb (308,840,479 bytes, Brotli)
Streaming assets StreamingAssets/markers.csv, StreamingAssets/Icons/{marker-pin,sharepoint-icon,logo}.png (132 KB)
Server path /home/u419061541/domains/effetechnology.in/public_html/AndritzDemo_V34/
Last deployed 2026-09-08 07:15

Version history on the server (many parallel builds — no build pipeline):

AndritzDemo_89, AndritzDemo_Final, AndritzDemo_V31, AndritzDemo_V32, AndritzDemo_V34, AndritzDemo_V35, Andritz_videos, Andritz_Lobby, AndritzMap, Andriz, Andriz_Lab, Andriz_Scorm, plus AndritzDemo_V3.rar (194 MB, dated 2026-05-06).

V35 exists on disk (2026-09-09) but V34 is the one referenced/linked. Versions appear to be uploaded manually as new folders.

1.2 Frontend Behaviour (from index.html + decompiled framework)

Critical for migration: this backend URL is compiled into the Unity WebGL build. Changing the backend host requires either (a) recompiling/re-exporting the Unity build, or (b) DNS/proxy interception of the existing hostname. Editing it in the .unityweb files is not a supported path.

1.3 The Website Around It

effetechnology.in (the primary domain) is a WordPress site (wp-config.php, wp-content, index.php, LiteSpeed, Hostinger MU-plugins, Jetpack/WAF). It serves as the container for the Unity demo folders.


2. Backend Application ("Andritz 2.0 Backend")

Item Value
Name / version andritz-2.0-backend v1.0.0
Base URL https://hotpink-shrew-796888.hostingersite.com/
Runtime Node.js 22 (/opt/alt/alt-nodejs22/root/bin/node)
Framework Express 5.2.1
DB driver mysql2 3.23.3 (connection pool, limit 10)
App root /home/u419061541/domains/hotpink-shrew-796888.hostingersite.com/hbuilds/current/nodejs
Deploy model Hostinger Node.js hosting "hbuilds" — git-based build, release on git push
Startup file server.js (Passenger)
Port 5000 (internal; public via Passenger/LiteSpeed)
Git repo https://github.com/Siva-ra/Testing-Andritz.git
Branch / commit main @ d642ae5 — "Add incoming friend requests"
Env file hbuilds/config/.env (plaintext, chmod 600)

Dependencies: bcryptjs, cors, dotenv, express, fluent-ffmpeg, multer, mysql2, pdf-poppler, pdfkit.

2.1 API Surface

Mounted routes (from server.js):

Mount path Router
/api/roles roleRoutes
/api/role-management roleManagementRoutes
/api/admins adminRoutes
/api/users userRoutes
/api/login loginRoutes
/api/user-management userManagementRoute
/api/tickets ticketRoutes
/api/documents documentRoutes
/api/dashboard dashboardRoutes
/api/content-management contentManagementRoutes
/api/user-dashboard/recent-uploads userDashboardRecentUploadRoutes
/notifications notificationRoutes
(root) modelRoutes, photoRoutes, videoRoutes, webLinkRoutes

Static assets served:

Utility endpoints:

2.2 Authentication Model — IMPORTANT

[VERIFIED] from routes/loginRoutes.js + config/auth.js:

Security note for the migration: email-only auth means anyone who knows a registered address can obtain a session. Password/OTP flows exist in the other backend (Section 4). Flag this before it is exposed more widely or moved behind a public DNS name.


3. Database (Primary — andritz_db)

[VERIFIED] from hbuilds/config/.env and live GET /test-db{"success":true,"message":"MySQL connected successfully ✅"}.

Item Value
Engine MySQL
Host srv1646.hstgr.io (resolves to in-mum-web1646.hstgr.io — the same shared server)
Port 3306
Database u419061541_andritz_db
User u419061541_andritz_user
Password <redacted>
Panel phpMyAdmin — auth-db1646.hstgr.io

3.1 Tables (15)

accounts, activity_logs, admin_types, content_items, documents, image_slots, models, notifications, notification_logs, notification_recipients, roles, sessions, tickets, videos, web_links.

3.2 accounts table — live data (9 rows, matches phpMyAdmin screenshot)

id email account_type admin_type role created_at last_login status
1 shaginjose@gmail.com admin Backend Developer 2026-08-20 2026-09-10 10:49 active
2 shaginjosejose@gmail.com user Backend Developer MySql 2026-08-20 2026-08-25 10:13 active
3 tntamil182@gmail.com user 3D Team Model DEsigner 2026-08-20 active
4 sivaram@effeindia.com admin siva 2026-08-20 2026-08-25 10:13 active
5 vijay@effeindia.com user siva Intern 2026-08-20 active
6 julianedwarddaniel3dzone@gmail.com admin Program 2026-08-21 active
7 gowriptrt1988@gmail.com user 3D Team Model DEsigner 2026-08-25 2026-08-25 09:40 active
8 vinoraj057@gmail.com admin Backend Developer 2026-09-03 active
9 vinorai@gmail.com user Frontend Developer javascript 2026-09-03 active

3.3 Super-Admin Accounts (highest privilege)

From SUPER_ADMIN_EMAIL in the backend .env:

SUPER_ADMIN_EMAIL='<effe-vendor-address>,<andritz-client-address>'

These two addresses bypass the accounts table entirely and receive super_admin sessions on email entry alone.

Note: because login is email-only (no password — see Section 2.2), these addresses are effectively credentials. The full values are held in the local-only report and must be treated as secrets.

3.4 Other data observed (live read-only API calls)


4. Second Backend (separate app — userdata DB)

There is a second, independent Node app on the same Hostinger account. It must be included in migration scope.

Item Value
URL https://lightgreen-cheetah-775075.hostingersite.com/
App root /home/u419061541/domains/lightgreen-cheetah-775075.hostingersite.com/nodejs
Package node-js (default name)
Framework Express 4.18.2
Extra deps jsonwebtoken, nodemailer (vs. the other backend)
Git repo https://github.com/Siva-ra/Hostinger-Testing.git
Branch / commit main @ bd43bbd — "Update full thumbnail code"
Handles Forgot-password OTP flow (routes/forgotPassword.js), thumbnails, uploads

Its .env:

DB_HOST=srv1646.hstgr.io
DB_USER=u419061541_root
DB_PORT=3306
DB_PASSWORD=<redacted>
DB_NAME=u419061541_userdata

EMAIL_USER=<redacted>
EMAIL_PASS=<redacted>        # Gmail app password

Notes:


5. Hosting / Infrastructure

[VERIFIED] via SSH and /proc/version.

Item Value
Provider Hostinger (shared hosting) — main-hosting.eu
Node in-mum-web1646.main-hosting.eu (Mumbai)
OS AlmaLinux 9.7 — kernel 5.14.0-611.45.1.el9_7.x86_64, built by mockbuild@x64-builder02.almalinux.org
Web server LiteSpeed (HTTP/2, HTTP/3), panel: hpanel, platform: hostinger
App server Phusion Passenger (Node)
SSH port 65002, user u419061541, key auth
Account home /home/u419061541
PHP (CLI) 8.2.33
Node (shared) 22.x
Uptime 161 days
Nodes/host resources 64 cores, 502 GiB RAM (310 used), 251 GiB swap, /dev/sda4 21 TB (66% used) — shared pool, not dedicated to this app
Note lsb_release, rpm, gcc, python3 unavailable in the jailed shell; /etc/os-release unreadable

Domains on the account: effetechnology.in, effeanimation.com, effeconsultancy.com, effeindia.com, effemarketing.com, effeverse.com, 3danimation.in, dsimilar.in, filmyads.com, illusee.com, mentoplearning.com, vfxstudio.in, plus Hostinger preview hostnames (hotpink-shrew-796888, lightgreen-cheetah-775075, darkgreen-yak-162922, lime-dunlin-724972).

Databases on the account (Hostinger panel, auth-db1646.hstgr.io): u419061541_andritz_db, u419061541_userdata.

Content storage reality check:


6. Migration Implications & Discrepancies vs. the Netlink Notes

These are the points where the assumptions in the migration email do not match the actual environment.

Netlink assumption Reality (verified)
"Hostinger (Ubuntu)" AlmaLinux 9.7 (RHEL 9). No Ubuntu anywhere.
"OS: Ubuntu 24 LTS — match exact patch version from Hostinger" There is no Ubuntu patch version to match. Target should be a deliberate choice (Ubuntu 24 LTS is fine as a target, but it is a technology change, not a like-for-like match).
"All services on a single server, no containers, no microservices" Partly true (no Docker), but this is shared hosting with two separate Node apps, WordPress, multiple vhosts, and a shared MySQL host. It is not one self-contained server.
"Currently via IP address (no DNS)" Access is via domain (effetechnology.in) and HTTPS, plus two *.hostingersite.com preview hosts. DNS is in use.
"MySQL ~500 MB, co-located on same server" DB host srv1646.hstgr.io is the same shared server. Schema is small; file/asset storage is the large part.
"7–8 IT users" accounts has 9 rows; plus 2 super-admin emails that are not in the table.

Blockers / must-do items for the migration

  1. Unity build hardcodes the backend URL (hotpink-shrew-796888.hostingersite.com/upload-model). Plan to either re-export the Unity project with the new URL, or keep/repoint the hostname via DNS. Get the Unity source project (not just the built output) from the FA team — otherwise future changes are impossible.
  2. Two backends, two databases, two different user models. andritz_db.accounts (9 users) vs userdata.users (OTP flow). Decide whether both migrate, and whether the user stores are consolidated.
  3. Google Maps API key is hardcoded in index.html. Re-issue/restrict it for the new domain in Google Cloud Console (HTTP-referrer restriction to the Azure hostname/IP).
  4. Secrets are in plaintext .env files committed to GitHub repos. Rotate: both DB passwords, the Gmail app password, the Maps key, and the root DB credential before cutover.
  5. Email-only login with no password verification — address before exposing on a new public hostname.
  6. Uploads run through Node + multer + fluent-ffmpeg/pdf-poppler. Azure VM needs Node 22, FFmpeg, and Poppler binaries installed — these are Hostinger-provided today and will not exist on a bare Azure image.
  7. No DNS currently used for the app host → migrating to a real domain is an opportunity, but means updating Google Maps referrer restrictions and any hardcoded links.
  8. Backups: the account already contains full cPanel/Hostinger backups (full_backups_2026-02-03, backups/, .dbdumps/, All-in-One-WP wpress files). Establish which backup is authoritative before the freeze window.

Suggested answers to the Action Items


7. Key Credentials & Access (handle as secrets)

What Value
SSH u419061541@195.35.4.69:65002 (key-based)
MySQL host / port srv1646.hstgr.io : 3306
andritz_db user u419061541_andritz_user / <redacted>
userdata DB user u419061541_root / <redacted>
phpMyAdmin auth-db1646.hstgr.io
Super admins <effe-vendor-address>, <andritz-client-address>
SMTP (OTP emails) <redacted> / app password <redacted>
Google Maps key <redacted> (Map ID 6e57e216dbbe0dd2b097559e)
Backend repos github.com/Siva-ra/Testing-Andritz, github.com/Siva-ra/Hostinger-Testing

Full credential values are held only in andritz-migration-report.local.md (gitignored, never committed).


8. Verification Status

Report generated from live inspection — treat credentials above as compromised-adjacent and rotate before migration.