feat(docker): use pre-built GHCR image in docker-compose by default (#25)

docker-compose.yml now references ghcr.io/ulsklyc/oikos:latest so users
can start the app with a single 'docker compose up' without cloning or
building locally. The build: . entry is retained for contributors who
want to build from source with --build.

README Quick Start updated to document both the no-clone path (curl
docker-compose + .env.example) and the build-from-source path.
This commit is contained in:
Ulas
2026-04-05 16:20:24 +02:00
parent 19a7161307
commit 7292b14945
4 changed files with 23 additions and 4 deletions
+6
View File
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.11.8] - 2026-04-05
### Changed
- `docker-compose.yml` now references the pre-built GHCR image (`ghcr.io/ulsklyc/oikos:latest`) by default - no local build needed to get started (#25)
- README Quick Start now shows both the pre-built image path (no clone required) and the build-from-source path
## [0.11.7] - 2026-04-05 ## [0.11.7] - 2026-04-05
### Added ### Added
+13 -1
View File
@@ -65,9 +65,21 @@
## Quick Start ## Quick Start
**Option A — pre-built image (fastest, no clone required):**
```bash
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 # edit .env — set SESSION_SECRET and DB_ENCRYPTION_KEY
docker compose up -d
docker compose exec oikos node setup.js
```
**Option B — build from source:**
```bash ```bash
git clone https://github.com/ulsklyc/oikos.git && cd oikos git clone https://github.com/ulsklyc/oikos.git && cd oikos
cp .env.example .env # then edit .env - set SESSION_SECRET and DB_ENCRYPTION_KEY cp .env.example .env # edit .env set SESSION_SECRET and DB_ENCRYPTION_KEY
docker compose up -d --build docker compose up -d --build
docker compose exec oikos node setup.js docker compose exec oikos node setup.js
``` ```
+3 -2
View File
@@ -1,6 +1,7 @@
services: services:
oikos: oikos:
build: . image: ghcr.io/ulsklyc/oikos:latest
build: . # optional: use --build to build locally instead
container_name: oikos container_name: oikos
restart: unless-stopped restart: unless-stopped
ports: ports:
@@ -12,7 +13,7 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- DB_PATH=/data/oikos.db - DB_PATH=/data/oikos.db
# Auf false setzen wenn kein HTTPS/Reverse-Proxy (direkter HTTP-Zugriff) # Set to false when not using HTTPS/reverse proxy (direct HTTP access)
- SESSION_SECURE=false - SESSION_SECURE=false
healthcheck: healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', r => process.exit(r.statusCode === 200 ? 0 : 1))"] test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', r => process.exit(r.statusCode === 200 ? 0 : 1))"]
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "oikos", "name": "oikos",
"version": "0.11.7", "version": "0.11.8",
"description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.", "description": "Self-hosted family planner - calendar, tasks, shopping, meal planning, budget and more. Private, open-source, no subscription.",
"main": "server/index.js", "main": "server/index.js",
"type": "module", "type": "module",