case 4690 - Windows network install: official PostgreSQL download link (installer and manual); examples for PostgreSQL 18
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -187,6 +187,7 @@ Found during the port, out of scope. One line each.
|
||||
- `raven-launcher` `Program.cs:98` calls `PGProcess.StandardInput.Close()` but standard input was never redirected, so it throws `InvalidOperationException` at shutdown: the "Postgres shut down" step never runs and the launcher exits with an error when the server stops. Postgres was started detached by `pg_ctl start`, so it probably stays running. Pre-existing; candidate for its own case. **Confirmed in the Sandbox test (8.2.4 and 8.3.0):** after "Shut down server" the launcher crashes with exactly this exception and 7 `postgres` processes stay running. Every standalone upgrade then stops at Setup's "files in use" page listing PostgreSQL Server, and "automatically close the applications" fails ("Setup was unable to automatically close all applications"): the customer must end the processes or restart Windows first. One-line fix (stop PostgreSQL with `pg_ctl stop` instead of writing to its standard input). **John, 2026-10-23: own case, fixed with the "next release" cases before 8.3.0**
|
||||
- **Standalone install needs the Visual C++ runtime (pre-existing, same in 8.2.4; John, 2026-10-23: own case, fixed with the "next release" cases before 8.3.0):** the bundled PostgreSQL (`local-postgres\bin\pg_ctl.exe`, `postgres.exe`) needs `VCRUNTIME140.dll`, which neither the installer nor `local-postgres` provides. A Windows without it (a new PC, Windows Sandbox) shows "pg_ctl.exe - System Error: VCRUNTIME140.dll was not found" and AyaNova never starts. Confirmed fix: copying `vcruntime140.dll`, `vcruntime140_1.dll` and `msvcp140.dll` (x64, 14.44) into `local-postgres\bin` made PostgreSQL start. Ship those three in `dist\win-x64\postgres-standalone\bin` (app-local, allowed by Microsoft's redistribution terms) rather than running `vc_redist.x64.exe` (it crashed Windows Sandbox mid-install)
|
||||
- Standalone `config.json` (launcher template) has no `AYANOVA_JWT_SECRET`, so every boot logs a warning and generates a random one (logins are lost on restart). Pre-existing; noted from the Sandbox test logs. **John, 2026-10-23: own case, fixed with the "next release" cases before 8.3.0**
|
||||
- **For the security review after 8.3.0:** the LAN/IIS (`dist\assets\lan-install-config.json`) and Linux server (`dist\assets\linux-server\config.json`) templates ship `AYANOVA_JWT_SECRET` set to a placeholder that is printed in the manual. The manual tells users to change it (optional on Linux), but an install that keeps it signs logins with a publicly known secret. Consider generating a random secret at install time or refusing to boot with the placeholder. Pre-existing
|
||||
- Standalone and LAN installers share the same Inno Setup `AppId` (`{B2BB79DB-0690-497C-B92B-955F7B468429}`) although they are different products (`AyaNova` vs `AyaNova server`): installing one over the other would be treated as the same application. Pre-existing; not tested. Both also install to the same folder (`{autopf}\ayanova`) and use port 7575, so the two flavours could never sit side by side on one machine anyway; the shared `AppId` only changes what happens when one flavour is installed **over** the other (e.g. an evaluator moving from standalone to LAN on the same PC): Setup treats it as an upgrade of the same program. Changing either `AppId` now would make that flavour's next installer miss existing installs (second Add/Remove entry over the same folder). Standalone is thought to be used almost only for evaluation (John). **John, 2026-10-23: keep both `AppId`s as they are**; the Windows install pages now say only one type per computer, uninstall the other first (backup and restore to switch)
|
||||
- Sockeye 8.1.0 has the NLog 6 archive naming problem fixed here for AyaNova: archives are `log-sockeye_NN.txt`, old `-0` to `-8` archives are never deleted, and its log viewer still sorts by name (it also filters on `ayanova.txt`, not `sockeye.txt`, so the current file is listed twice). Same fix applies: `ArchiveSuffixFormat = "-{0}"` and the date sort
|
||||
- **SuperUser can be deleted (serious, pre-existing, own case; John's decision 2026-10-23: fixed with the other "next release" cases before 8.3.0 ships, not under the port):** `UserBiz.ValidateCanDelete` (`biz/UserBiz.cs:1055`) only refuses a delete when the user has related records; nothing protects user id 1, although updates to it are blocked (`UserBiz.cs:946`). On the droplet, whose sample data left SuperUser with no related records, the integration test `UserWithActivityShouldNotBeDeleteable` (`DELETE User/1`) succeeded and removed the account; `AYANOVA_SET_SUPERUSER_PW` cannot bring it back (it only resets an existing user 1). Same code in 8.2.4; likely also why `superuser` could not log in on the reused local database at the first baseline attempt. Any user with delete rights on Users can do this
|
||||
@@ -233,3 +234,4 @@ Found during the port, out of scope. One line each.
|
||||
| 2026-10-23 | Linux packages from `build-release.bat` on a fresh Ubuntu 24.04.5 droplet (`devtestn10`): 8.2.4 subscription server set up by John with the deployed setup script, trial licence, sample data, one report rendered on 8.2.4 | **Subscription zip**, the manual's steps 1.5 and 2 with the built zip: .NET 10.0.13 from `noble-updates`, boots 8.3.0, schema 20, trial licence kept, 0 errors; 22/22 reports (1.5–2.8 s, first 7.5 s with the download); browser in `data/report-browser` (`ChromeHeadlessShell` only, 272 MB); old `Chrome`/`ChromeHeadlessShell` removed with the manual's command. The E1090 in the log is the 8.2.4 server, restarted by `needrestart` during `apt-get upgrade` and cancelled mid-boot by the manual's `systemctl stop`; not 8.3.0. DataProtection ephemeral-key warnings at boot: same in 8.2.4. **Perpetual server zip**, fresh folder, own database, port 7576, as `www-data`: boots unlicensed (E1020), creates the database, 0 errors, login page 200. **Desktop zip**, the desktop manual's steps as an ordinary user (`sudo ./AyaNova`): `AyaNova` apphost runs on .NET 10, boots, creates the database, 0 errors, login page 200; data goes to `/root/.ayanova-data` (see Deferred). Test databases, folders and user removed afterwards |
|
||||
| 2026-10-23 | `standalone.iss`: create the 13 empty folders PostgreSQL 14 needs in a new database (`pg_notify`, `pg_tblspc`, `pg_twophase`, `pg_stat`, `pg_stat_tmp`, `pg_commit_ts`, `pg_dynshmem`, `pg_replslot`, `pg_serial`, `pg_snapshots`, `pg_logical\mappings`, `pg_logical\snapshots`, `pg_wal\archive_status`) | **Release blocker found in the Sandbox test:** fresh standalone installs built on this PC failed, `pg_ctl` "could not start server", `postgres.log` "could not open directory pg_notify". `dist\win-x64\postgres-empty-database` was checked out from Git on 2026-02-19 and Git does not keep empty folders; compared with a reference `initdb` of the bundled PostgreSQL 14, exactly these 13 were missing. 8.2.4 (built on the old machine) is not affected; upgrades are not affected (existing database kept). Fixed in the installer rather than on disk so a fresh checkout cannot break it again. Fixed installer: fresh install in a clean Sandbox starts PostgreSQL first time, schema 20 created, boot complete |
|
||||
| 2026-10-23 | Windows standalone installer in Windows Sandbox (clean Windows 11, `C:\temp\ayanova-sandbox\ayanova-test.wsb`, checks by `check.ps1`): 8.2.4 production installer, trial licence with sample data (John), upgrade with the 8.3.0 build, uninstall, fresh install | **8.2.4 install:** needed the Visual C++ runtime first (see Deferred; `vc_redist.x64.exe` crashed the Sandbox, the three DLLs copied into `local-postgres\bin` worked); report 10 Customer Work Order 1.6 s, `Chrome`/`ChromeHeadlessShell` in the program folder. **Shutdown:** launcher crash at `Program.cs:98`, 7 `postgres` left running (see Deferred). **Upgrade to 8.3.0:** Setup "files in use" (PostgreSQL Server ×7), automatic close failed, installer cancelled itself; after the leftover processes were gone, upgrade went through: 8.3.0 (`a223a2bc`), `net10.0`, schema 20, trial licence and data kept, PostgreSQL recovered from the unclean stop; report 10 rendered in 13.9 s with the browser download, browser in `%ProgramData%\ayanova\report-browser`; runtime `10.0.3` (see section 5). **Uninstall** (delete data: yes): `Chrome`/`ChromeHeadlessShell` removed with the program folder, data folder removed; only the hand-copied runtime DLLs left behind. **Fresh install:** failed to start PostgreSQL (missing empty folders, fixed in `standalone.iss`, see the previous row); with the fixed installer: starts first time, schema 20 created, no `Chrome` folders |
|
||||
| 2026-10-23 | PostgreSQL link and version for Windows network installs | The PostgreSQL install guide linked from the LAN installer prompt and the LAN/IIS manual pages (`postgresqltutorial.com/install-postgresql/`) now fails (Cloudflare error; the site moved to a database vendor, Neon). Replaced with the official `https://www.postgresql.org/download/windows/` in `lan.iss` and both pages; prompt text "Open the PostgreSQL download page now?". `AYANOVA_BACKUP_PG_DUMP_PATH` in `lan-install-config.json` and the manual examples: PostgreSQL 16 → 18, with a note to change the number to the installed version. Changelog lines added. Docs build clean; LAN installer compiled to `C:\temp\ayanova-sandbox\ayanova-windows-x64-lan-setup-pglink.exe` for the LAN test |
|
||||
|
||||
2
dist/assets/lan-install-config.json
vendored
2
dist/assets/lan-install-config.json
vendored
@@ -3,7 +3,7 @@
|
||||
"AYANOVA_DB_CONNECTION":"Server=localhost;Username=postgres;Password=YOUR_PASSWORD_HERE;Database=AyaNova;CommandTimeout=300;",
|
||||
"AYANOVA_DEFAULT_TRANSLATION":"en",
|
||||
"AYANOVA_DATA_PATH":"%ProgramData%\\ayanova",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\16\\bin",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\18\\bin",
|
||||
"AYANOVA_LOG_LEVEL": "Info",
|
||||
"AYANOVA_JWT_SECRET": "11111YourRandom32CharacterSecret"
|
||||
}
|
||||
|
||||
4
dist/install/windows/x64/lan.iss
vendored
4
dist/install/windows/x64/lan.iss
vendored
@@ -71,9 +71,9 @@ begin
|
||||
begin
|
||||
ShellExec('open', 'https://dotnet.microsoft.com/en-us/download/dotnet/10.0', '', '', SW_SHOW, ewNoWait, ErrCode);
|
||||
end;
|
||||
if MsgBox('AyaNova requires a PostgreSQL db server.' + #13#10 +'Open the PostgreSQL installation instructions web page now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
|
||||
if MsgBox('AyaNova requires a PostgreSQL db server.' + #13#10 +'Open the PostgreSQL download page now?', mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
|
||||
begin
|
||||
ShellExec('open', 'https://www.postgresqltutorial.com/install-postgresql/', '', '', SW_SHOW, ewNoWait, ErrCode);
|
||||
ShellExec('open', 'https://www.postgresql.org/download/windows/', '', '', SW_SHOW, ewNoWait, ErrCode);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
@@ -25,6 +25,8 @@ IN PROGRESS
|
||||
- Linux: Ubuntu 24.04 and 26.04 are now tested and supported. On Ubuntu 24.04 and newer the .NET runtime is installed from Ubuntu's own package archive.
|
||||
- Docs: updated the [Linux server](ops-install-linux-server.md), [Linux desktop](ops-install-linux-desktop.md), [Windows local network](ops-install-windows-lan.md) and [Windows IIS](ops-install-windows-iis.md) installation and upgrade instructions for .NET 10 and Ubuntu 24.04 / 26.04.
|
||||
- Docs: updated the database password guidance in the installation and [backup](ops-form-backup.md) documentation.
|
||||
- Windows: the local network installer and the [local network](ops-install-windows-lan.md) and [IIS](ops-install-windows-iis.md) installation instructions now link to the official PostgreSQL download page (the third-party guide linked before is no longer available), and the configuration examples assume PostgreSQL 18.
|
||||
- Docs: the Windows installation instructions now state that only one type of AyaNova 8 installation (single user, local network or IIS) can be on a computer at a time.
|
||||
|
||||
**Fixed**
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Example WINDOWS config.json entry
|
||||
```json
|
||||
{
|
||||
...other properties...
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\16\\bin"
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\18\\bin"
|
||||
}
|
||||
```
|
||||
|
||||
@@ -43,7 +43,7 @@ Example environment variable
|
||||
|
||||
Windows
|
||||
|
||||
`set "AYANOVA_BACKUP_PG_DUMP_PATH=C:\Program Files\PostgreSQL\16\bin"` (not real)
|
||||
`set "AYANOVA_BACKUP_PG_DUMP_PATH=C:\Program Files\PostgreSQL\18\bin"` (not real)
|
||||
|
||||
Linux
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ Select the OK button and Windows will enable IIS. Reboot is not required at this
|
||||
|
||||
AyaNova requires access to a PostgreSQL database server version 12 or newer. It should be up and running **before** AyaNova is installed. If you do not have a PostgreSQL server already then it must be installed to a location visible to the AyaNova server (same computer or a local computer on the same network). PostgreSQL is open source and free to use.
|
||||
|
||||
If you need to install PostgreSQL follow this installation guide [https://www.postgresqltutorial.com/install-postgresql/](https://www.postgresqltutorial.com/install-postgresql/)
|
||||
If you need to install PostgreSQL, download the Windows installer from the official PostgreSQL download page [https://www.postgresql.org/download/windows/](https://www.postgresql.org/download/windows/) and run it with the default options. The examples below assume PostgreSQL 18, the current version.
|
||||
|
||||
Note: we have seen cases during testing where the PostgreSQL installer will show error messages related to Visual C++ runtime file installation on the latest Windows server platforms however this appears to be cosmetic only and doesn't affect operation of PostgreSQL.
|
||||
|
||||
@@ -205,7 +205,7 @@ The default installed `config.json` file will initially have the following:
|
||||
"AYANOVA_USE_URLS": "http://*:7575",
|
||||
"AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=YOUR_PASSWORD_HERE;Database=AyaNova;",
|
||||
"AYANOVA_DEFAULT_TRANSLATION": "en",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\16\\bin",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\18\\bin",
|
||||
"AYANOVA_DATA_PATH": "%ProgramData%\\ayanova",
|
||||
"AYANOVA_LOG_LEVEL": "Info"
|
||||
}
|
||||
@@ -229,7 +229,7 @@ EDIT ONLY IF NEEDED:
|
||||
|
||||
The [AYANOVA_BACKUP_PG_DUMP_PATH](ops-config-backup-pgdump-path.md) property specifies the path to the PostgreSQL database backup utility `pg_dump` if AyaNova server will be doing the [automatic daily backups](ops-form-backup.md).
|
||||
|
||||
A. if AyaNova server will be doing the automatic daily backups using AyaNova's Backup feature, confirm this path stated matches the path to YOUR PostgreSQL database backup utility pg_dump
|
||||
A. if AyaNova server will be doing the automatic daily backups using AyaNova's Backup feature, confirm this path stated matches the path to YOUR PostgreSQL database backup utility pg_dump. The `18` in the path is the PostgreSQL version number: if you installed a different version, change it to match (for example `C:\\Program Files\\PostgreSQL\\17\\bin`)
|
||||
B. otherwise, If you already have a backup solution in place for your PostgreSQL databases AND WILL NOT BE USING AYANOVA'S Backup feature, remove this
|
||||
|
||||
OPTIONAL EDIT:
|
||||
|
||||
@@ -35,7 +35,7 @@ AyaNova requires access to a PostgreSQL database server version 12 or newer. It
|
||||
|
||||
PostgreSQL is open source and free to use.
|
||||
|
||||
If you need to install PostgreSQL follow this installation guide [https://www.postgresqltutorial.com/install-postgresql/](https://www.postgresqltutorial.com/install-postgresql/)
|
||||
If you need to install PostgreSQL, download the Windows installer from the official PostgreSQL download page [https://www.postgresql.org/download/windows/](https://www.postgresql.org/download/windows/) and run it with the default options. The examples below assume PostgreSQL 18, the current version.
|
||||
|
||||
Note: we have seen cases during testing where the PostgreSQL installer will show error messages related to Visual C++ runtime file installation on the latest Windows server platforms however this appears to be cosmetic only and doesn't affect operation of PostgreSQL.
|
||||
|
||||
@@ -137,7 +137,7 @@ The default installed `config.json` file will initially have the following:
|
||||
"AYANOVA_USE_URLS": "http://*:7575",
|
||||
"AYANOVA_DB_CONNECTION": "Server=localhost;Username=postgres;Password=YOUR_PASSWORD_HERE;Database=AyaNova;",
|
||||
"AYANOVA_DEFAULT_TRANSLATION": "en",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\16\\bin",
|
||||
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\Program Files\\PostgreSQL\\18\\bin",
|
||||
"AYANOVA_DATA_PATH": "%ProgramData%\\ayanova",
|
||||
"AYANOVA_LOG_LEVEL": "Info"
|
||||
}
|
||||
@@ -161,7 +161,7 @@ EDIT ONLY IF NEEDED:
|
||||
|
||||
The [AYANOVA_BACKUP_PG_DUMP_PATH](ops-config-backup-pgdump-path.md) property specifies the path to the PostgreSQL database backup utility `pg_dump` if AyaNova server will be doing the [automatic daily backups](ops-form-backup.md).
|
||||
|
||||
A. if AyaNova server will be doing the automatic daily backups using AyaNova's Backup feature, confirm this path stated matches the path to YOUR PostgreSQL database backup utility pg_dump
|
||||
A. if AyaNova server will be doing the automatic daily backups using AyaNova's Backup feature, confirm this path stated matches the path to YOUR PostgreSQL database backup utility pg_dump. The `18` in the path is the PostgreSQL version number: if you installed a different version, change it to match (for example `C:\\Program Files\\PostgreSQL\\17\\bin`)
|
||||
B. otherwise, If you already have a backup solution in place for your PostgreSQL databases AND WILL NOT BE USING AYANOVA'S Backup feature, remove this
|
||||
|
||||
OPTIONAL EDIT:
|
||||
|
||||
Reference in New Issue
Block a user