From eaf48eb5fbf646711cb7004e17d3be994b0c8acf Mon Sep 17 00:00:00 2001 From: Ulas Kalayci Date: Wed, 22 Apr 2026 07:57:11 +0200 Subject: [PATCH] chore: release v0.23.4 --- CHANGELOG.md | 5 +++ README.md | 13 +++++- docs/install.html | 105 +++++++++++++++++++++++++++++++++++++------ docs/installation.md | 74 +++++++++++++++++++++++------- package-lock.json | 4 +- package.json | 2 +- 6 files changed, 169 insertions(+), 34 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe75a91..590dd76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.23.4] - 2026-04-22 + +### Changed +- Docs: web installer (`node tools/installer/install-server.js`) is now Option A in all installation guides (`README.md`, `docs/installation.md`, GitHub Pages `docs/install.html`); the pre-built Docker image method is relabelled Option B and the build-from-source method Option C + ## [0.23.3] - 2026-04-22 ### Fixed diff --git a/README.md b/README.md index a3a447f..f4ab40a 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,16 @@ ## Quick Start -**Option A — pre-built image (fastest, no clone required):** +**Option A — Web Installer (recommended):** + +```bash +git clone https://github.com/ulsklyc/oikos.git && cd oikos +node tools/installer/install-server.js +``` + +Then open **http://localhost:8090** in your browser. The wizard configures your `.env`, starts Docker, and creates your admin account — no manual steps needed. Requires Node.js 18+ on the host. + +**Option B — pre-built image (no clone required):** ```bash curl -O https://raw.githubusercontent.com/ulsklyc/oikos/main/docker-compose.yml @@ -77,7 +86,7 @@ docker compose up -d docker compose exec oikos node setup.js ``` -**Option B — build from source:** +**Option C — build from source:** ```bash git clone https://github.com/ulsklyc/oikos.git && cd oikos diff --git a/docs/install.html b/docs/install.html index b2cfe83..3dbb4b4 100644 --- a/docs/install.html +++ b/docs/install.html @@ -572,19 +572,80 @@

Installation

- +
- -
+ +
+
+ + Recommended for most users. A browser-based wizard configures your .env, starts Docker, and creates your admin account — no manual steps. Requires Node.js 18+ on the host. +
+ +
+ +
+

Clone the repository

+

Open your terminal and clone Oikos to a folder of your choice.

+
+
git clone https://github.com/ulsklyc/oikos.git +cd oikos
+ +
+
+
+ +
+ +
+

Start the installer

+

Run this command from the repository root. The installer server starts on port 8090.

+
+
node tools/installer/install-server.js
+ +
+
+
+ +
+ +
+

Open the wizard in your browser

+

Navigate to the following address. The wizard will guide you through configuration, Docker startup, and admin account creation.

+
+
http://localhost:8090
+ +
+
+ + The installer shuts down automatically after setup completes. Your Oikos instance keeps running via Docker. +
+
+
+
+ + +
- Recommended for most users. No Git, no build step — just two files and a single command. + No Git, no build step — just two files and a single command. Requires only Docker.
@@ -673,7 +734,7 @@ curl -O https://raw.githubusercontent.com/ulsklyc/oikos/main/.env.example
- +
@@ -924,10 +985,19 @@ docker compose logs | grep "Server läuft"
prereq_sys_hint: '~500 MB disk for Docker image', steps_label: 'Step by step', steps_title: 'Installation', - tab_a: 'Option A \u2014 Pre-built Image', - tab_b: 'Option B \u2014 Build from Source', - option_a_info: 'Recommended for most users. No Git, no build step \u2014 just two files and a single command.', + tab_installer: 'Option A \u2014 Web Installer', + tab_a: 'Option B \u2014 Pre-built Image', + tab_b: 'Option C \u2014 Build from Source', + option_installer_info: 'Recommended for most users. A browser-based wizard configures your .env, starts Docker, and creates your admin account \u2014 no manual steps. Requires Node.js 18+ on the host.', + option_a_info: 'No Git, no build step \u2014 just two files and a single command. Requires only Docker.', option_b_info: 'For contributors or those who want to run a custom version. Requires Git. The first build takes a few minutes.', + step_inst1_title: 'Clone the repository', + step_inst1_desc: 'Open your terminal and clone Oikos to a folder of your choice.', + step_inst2_title: 'Start the installer', + step_inst2_desc: 'Run this command from the repository root. The installer server starts on port 8090.', + step_inst3_title: 'Open the wizard in your browser', + step_inst3_desc: 'Navigate to the following address. The wizard will guide you through configuration, Docker startup, and admin account creation.', + step_inst3_info: 'The installer shuts down automatically after setup completes. Your Oikos instance keeps running via Docker.', step_a1_title: 'Download the configuration files', step_a1_desc: 'Open your terminal and run these two commands. They download the Docker configuration and the template for your settings.', step_a2_title: 'Create your configuration', @@ -1009,10 +1079,19 @@ docker compose logs | grep "Server läuft"
prereq_sys_hint: '~500 MB Speicher f\u00fcr das Docker-Image', steps_label: 'Schritt f\u00fcr Schritt', steps_title: 'Installation', - tab_a: 'Option A \u2014 Fertiges Image', - tab_b: 'Option B \u2014 Aus Quellcode bauen', - option_a_info: 'Empfohlen f\u00fcr die meisten Nutzer. Kein Git, kein Build-Schritt \u2014 nur zwei Dateien und ein einziger Befehl.', + tab_installer: 'Option A \u2014 Web-Installer', + tab_a: 'Option B \u2014 Fertiges Image', + tab_b: 'Option C \u2014 Aus Quellcode bauen', + option_installer_info: 'Empfohlen f\u00fcr die meisten Nutzer. Ein browserbasierter Assistent konfiguriert eure .env, startet Docker und erstellt euer Admin-Konto \u2014 ganz ohne manuelle Schritte. Erfordert Node.js 18+ auf dem Host.', + option_a_info: 'Kein Git, kein Build-Schritt \u2014 nur zwei Dateien und ein einziger Befehl. Nur Docker erforderlich.', option_b_info: 'F\u00fcr Mitwirkende oder wer eine eigene Version ausf\u00fchren m\u00f6chte. Erfordert Git. Der erste Build dauert einige Minuten.', + step_inst1_title: 'Repository klonen', + step_inst1_desc: '\u00d6ffnet euer Terminal und klont Oikos in einen Ordner eurer Wahl.', + step_inst2_title: 'Installer starten', + step_inst2_desc: 'F\u00fchrt diesen Befehl vom Projektordner aus. Der Installer-Server startet auf Port 8090.', + step_inst3_title: 'Assistenten im Browser \u00f6ffnen', + step_inst3_desc: 'Navigiert zur folgenden Adresse. Der Assistent f\u00fchrt euch durch Konfiguration, Docker-Start und Admin-Konto-Erstellung.', + step_inst3_info: 'Der Installer beendet sich automatisch nach Abschluss der Einrichtung. Eure Oikos-Instanz l\u00e4uft weiter \u00fcber Docker.', step_a1_title: 'Konfigurationsdateien herunterladen', step_a1_desc: '\u00d6ffnet euer Terminal und f\u00fchrt diese zwei Befehle aus. Sie laden die Docker-Konfiguration und die Vorlage f\u00fcr eure Einstellungen herunter.', step_a2_title: 'Konfiguration erstellen', diff --git a/docs/installation.md b/docs/installation.md index e262cfb..8cdaf88 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -1,8 +1,18 @@ ## Quick Install -Two ways to get Oikos running from scratch: +Three ways to get Oikos running from scratch: -### Option A — CLI Installer (Linux / macOS) +### Option A — Web Installer (recommended, all platforms) + +```bash +git clone https://github.com/ulsklyc/oikos.git && cd oikos +node tools/installer/install-server.js +# Open http://localhost:8090 +``` + +Requires Node.js 18+ on the host. The browser-based wizard configures your `.env`, starts Docker, and creates your admin account. Docker still runs the app itself. + +### Option B — CLI Installer (Linux / macOS) ```bash git clone https://github.com/ulsklyc/oikos.git && cd oikos @@ -17,16 +27,16 @@ Non-interactive mode (CI/provisioning — provide your own `.env`): bash install.sh --env-file /path/to/.env ``` -### Option B — Web Installer (all platforms with Node.js) +### Option C — Manual (Docker only, no clone required) ```bash -git clone https://github.com/ulsklyc/oikos.git && cd oikos -node tools/installer/install-server.js -# Open http://localhost:8090 +curl -O https://raw.githubusercontent.com/ulsklyc/oikos/main/docker-compose.yml +curl -O https://raw.githubusercontent.com/ulsklyc/oikos/main/.env.example +cp .env.example .env # set SESSION_SECRET and DB_ENCRYPTION_KEY +docker compose up -d +docker compose exec oikos node setup.js ``` -Requires Node.js 18+ on the host. Docker still runs the app itself. - --- # Installation Guide @@ -100,11 +110,43 @@ git --version # git version 2.x.x ## Step-by-Step Installation -There are two ways to get Oikos running. **Option A** (pre-built image) is recommended for most users — no clone required. **Option B** (build from source) is for contributors or if you want to run a custom version. +There are three ways to get Oikos running. **Option A** (web installer) is recommended for most users — it walks you through every step in your browser. **Option B** (pre-built image) is a quick manual alternative. **Option C** (build from source) is for contributors or custom builds. --- -### Option A — Pre-built Image (Recommended) +### Option A — Web Installer (Recommended) + +Requires Node.js 18+ and Docker on the host. + +#### 1. Clone the Repository + +```bash +git clone https://github.com/ulsklyc/oikos.git +cd oikos +``` + +#### 2. Start the Installer + +```bash +node tools/installer/install-server.js +``` + +#### 3. Open the Wizard + +Open your browser and navigate to **http://localhost:8090**. The wizard guides you through: + +- Basic configuration (host, port, timezone) +- Security key generation +- Optional integrations (weather, Google Calendar, Apple CalDAV) +- Writing your `.env` file +- Starting the Docker container +- Creating your admin account + +The installer server shuts down automatically after setup completes (or after 30 minutes of inactivity). + +--- + +### Option B — Pre-built Image A ready-to-use Docker image is published to the GitHub Container Registry on every release. You only need two files. @@ -148,7 +190,7 @@ Continue with [Step 4 — Verify](#4-verify-the-container-is-running). --- -### Option B — Build from Source +### Option C — Build from Source #### 1. Clone the Repository @@ -368,7 +410,7 @@ docker compose up -d ## Updates -### Option A — Pre-built Image +### Option B — Pre-built Image Pull the latest published image and restart: @@ -379,7 +421,7 @@ docker compose up -d No rebuild needed. The database volume persists across updates. -### Option B — Build from Source +### Option C — Build from Source ```bash cd oikos @@ -392,12 +434,12 @@ docker compose up -d --build If the [CHANGELOG](../CHANGELOG.md) mentions database migrations or breaking changes, stop the container before updating: ```bash -# Option A (pre-built) +# Option B (pre-built) docker compose pull docker compose down docker compose up -d -# Option B (build from source) +# Option C (build from source) docker compose down git pull docker compose up -d --build @@ -525,7 +567,7 @@ If you have existing data, you need the original encryption key. There is no way
SQLCipher build fails during Docker build -> **Tip**: If you hit build issues, switch to the pre-built image (Option A above) — it ships with SQLCipher already compiled and requires no local build step. +> **Tip**: If you hit build issues, switch to the pre-built image (Option B above) — it ships with SQLCipher already compiled and requires no local build step. The Dockerfile installs these build dependencies: `python3`, `make`, `g++`, `libsqlcipher-dev`. If the build fails, ensure your Docker installation is up to date and has internet access to pull packages. diff --git a/package-lock.json b/package-lock.json index 84f96a7..39a0ce0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "oikos", - "version": "0.23.3", + "version": "0.23.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "oikos", - "version": "0.23.3", + "version": "0.23.4", "license": "MIT", "dependencies": { "bcrypt": "^6.0.0", diff --git a/package.json b/package.json index 3fd512f..57729f8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "oikos", - "version": "0.23.3", + "version": "0.23.4", "description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.", "main": "server/index.js", "type": "module",